logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

cvs commit: spread/daemon Readme.txt membership.c: msg#00002

Subject: cvs commit: spread/daemon Readme.txt membership.c
jonathan    04/02/08 09:13:38

  Modified:    daemon   Readme.txt membership.c
  Log:
  Decrease the number of daemon probe messages sent when the configuration
  consists of a single segment.
  
  Revision  Changes    Path
  1.44      +1 -0      spread/daemon/Readme.txt
  
  Index: Readme.txt
  ===================================================================
  RCS file: /storage/cvsroot/spread/daemon/Readme.txt,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- Readme.txt        2 Feb 2004 21:36:46 -0000       1.43
  +++ Readme.txt        8 Feb 2004 14:13:38 -0000       1.44
  @@ -69,6 +69,7 @@
      not start. Suggested by Tim Peters. 
   *) Zero buffer in c library before sending multicast. 
      Reported by Panagiotis Kougiouris. 
  +*) Send fewer lookup probe messages when only a single segment is configured.
   
   June 20, 2003 Ver 3.17.1
   ----------------------------
  
  
  
  1.4       +24 -5     spread/daemon/membership.c
  
  Index: membership.c
  ===================================================================
  RCS file: /storage/cvsroot/spread/daemon/membership.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- membership.c      24 Oct 2003 21:47:37 -0000      1.3
  +++ membership.c      8 Feb 2004 14:13:38 -0000       1.4
  @@ -188,6 +188,12 @@
                Lookup_timeout.sec =  60; Lookup_timeout.usec = 0;
        }
   
  +        /* Lookup timeout when only one segment exists can be longer,
  +         * since a no remote segments need to be probed
  +         */
  +        if ( Cn.num_segments == 1 )
  +            Lookup_timeout.sec = 300;
  +
        Membership = Conf();
        My_conf_seg = Cn.segments[My.seg_index];
        for( i=0; i < Conf().num_segments; i++ )
  @@ -390,7 +396,7 @@
       switch( State )
       {
        case OP:
  -         /* if sender belongs to my ring then my token is lost 
  +         /* if sender belongs to my ring then my token is lost (except for 
single segment confs)
               otherwise if I am a ring leader shift_to_gather */
            Alarm( MEMB, "Handle_join in OP\n");
            if( Conf_id_in_conf( &Membership, pack_ptr->proc_id ) == -1 )
  @@ -420,7 +426,13 @@
                }
            }else{
                /* sender belongs to my ring - my token is lost */
  -             Memb_token_loss();
  +                /* If only one segment exists, then token is not lost, but 
rather
  +                 * a JOIN probe for merged segments was received. This can be
  +                 * ignored because a real token loss will trigger an ALIVE 
broadcast
  +                 * packet which will force the membership change.
  +                 */
  +                if ( Cn.num_segments > 1 )
  +                    Memb_token_loss();
            }
            break;
   
  @@ -1006,8 +1018,14 @@
        pack_ptr->data_len = Send_pack.elements[1].len + 
Send_pack.elements[2].len;
   
        num_missing = 0;
  -     for( i=0; i < Cn.num_segments; i++ )
  -     {
  +        /* For single segment configured, send local broadcast of join to 
entire segment -- current members will ignore */
  +        if ( Cn.num_segments == 1 ) {
  +            Net_scast( My.seg_index, &Send_pack );
  +            num_missing++;
  +        } else {
  +            /* Send unicasts to each host that is not in the current 
membership. */
  +            for( i=0; i < Cn.num_segments; i++ )
  +            {
                for( j=0; j < Cn.segments[i].num_procs; j++ )
                {
                    if( Conf_id_in_conf( &Reg_membership, 
Cn.segments[i].procs[j]->id ) == -1 )
  @@ -1016,7 +1034,8 @@
                        num_missing++;
                    }
                }
  -     }
  +            }
  +        }
        if( num_missing ) Shift_to_gather();
   }


<Prev in Thread] Current Thread [Next in Thread>