[Sheepdog] [PATCH 2/4] sheep: transient failure - parameter changes

wujue yao yaohaiting.wujue at gmail.com
Wed Mar 7 03:17:17 CET 2012


On Wed, Mar 7, 2012 at 9:31 AM, huxinwei <huxinwei at huawei.com> wrote:

> > -----Original Message-----
> > From: sheepdog-bounces at lists.wpkg.org
> > [mailto:sheepdog-bounces at lists.wpkg.org] On Behalf Of
> > yaohaiting.wujue at gmail.com
> > Sent: Tuesday, March 06, 2012 6:52 PM
> > To: sheepdog at lists.wpkg.org
> > Cc: HaiTing Yao
> > Subject: [Sheepdog] [PATCH 2/4] sheep: transient failure - parameter
> changes
> >
> > From: HaiTing Yao <wujue.yht at taobao.com>
> >
> > Add one parameter, user can specify the time one node leave then join
> > again.
> >
> > -t, --templeft          specify the time(in seconds) node can leave then
> > join again
>
> What if some/all sheeps have different timeout setting?
>
> I think it'll better to make it a cluster wide parameter.
> Maybe another subcommand for collie ?
>

If sheeps have different timeout setting

1, Transient failure disappear, then is ok
2, Transient failure to permanent one, then there is error.  It is because
sheeps can not deal with the same event at same time

Your suggestion maybe better.

Thanks


>
> > If do not use this parameter, the sheep works without transient failure
> > detection as before
> >
> > Signed-off-by: HaiTing Yao <wujue.yht at taobao.com>
> > ---
> >  sheep/sheep.c |    9 ++++++++-
> >  1 files changed, 8 insertions(+), 1 deletions(-)
> >
> > diff --git a/sheep/sheep.c b/sheep/sheep.c
> > index b3b834b..63c53be 100644
> > --- a/sheep/sheep.c
> > +++ b/sheep/sheep.c
> > @@ -38,11 +38,12 @@ static struct option const long_options[] = {
> >       {"zone", required_argument, NULL, 'z'},
> >       {"vnodes", required_argument, NULL, 'v'},
> >       {"cluster", required_argument, NULL, 'c'},
> > +     {"templeft", required_argument, NULL, 't'},
> >       {"help", no_argument, NULL, 'h'},
> >       {NULL, 0, NULL, 0},
> >  };
> >
> > -static const char *short_options = "p:fl:dDz:v:c:h";
> > +static const char *short_options = "p:fl:dDz:v:c:t:h";
> >
> >  static void usage(int status)
> >  {
> > @@ -62,6 +63,7 @@ Options:\n\
> >    -z, --zone              specify the zone id\n\
> >    -v, --vnodes            specify the number of virtual nodes\n\
> >    -c, --cluster           specify the cluster driver\n\
> > +  -t, --templeft          specify the time(in seconds) node can leave
> then
> > join again\n\
> >    -h, --help              display this help and exit\n\
> >  ", PACKAGE_VERSION, program_name);
> >       exit(status);
> > @@ -98,6 +100,8 @@ int main(int argc, char **argv)
> >       char *p;
> >       struct cluster_driver *cdrv;
> >
> > +     memset(sys, 0, sizeof(struct cluster_info));
> > +
> >       signal(SIGPIPE, SIG_IGN);
> >
> >       while ((ch = getopt_long(argc, argv, short_options, long_options,
> > @@ -165,6 +169,9 @@ int main(int argc, char **argv)
> >
> >                       sys->cdrv_option = get_cdrv_option(sys->cdrv,
> optarg);
> >                       break;
> > +             case 't':
> > +                     sys->templeft_time = atoi(optarg);
> > +                     break;
> >               case 'h':
> >                       usage(0);
> >                       break;
> > --
> > 1.7.1
> >
> > --
> > sheepdog mailing list
> > sheepdog at lists.wpkg.org
> > http://lists.wpkg.org/mailman/listinfo/sheepdog
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wpkg.org/pipermail/sheepdog/attachments/20120307/ff63f016/attachment-0003.html>


More information about the sheepdog mailing list