Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½Êý¾Ý¿âÊý¾ÝÒ»ÖÂÐÔµÄÔ­Àí¡¢Óë¼¼ÊõʵÏÖ·½°¸
 
×÷Õߣº³Âî£
  3055  次浏览      27
 2020-1-2 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË·Ö²¼Ê½CAPÀíÂÛ£¬·Ö²¼Ê½Êý¾ÝÒ»ÖÂÐÔ£¬RaftËã·¨µÈÏà¹ØÄÚÈÝ¡£
À´×ÔÓÚyouzhixueyuan£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

±³¾°

¿ÉÓÃÐÔ£¨Availability£©ºÍÒ»ÖÂÐÔ£¨Consistency£©ÊÇ·Ö²¼Ê½ÏµÍ³µÄ»ù±¾ÎÊÌ⣬ÏÈÓÐÖøÃûµÄCAPÀíÂÛ¶¨Òå¹ý·Ö²¼Ê½»·¾³Ï¶þÕß²»¿É¼æµÃµÄ¹ØÏµ£¬ÓÖÓÐÉñÃØµÄPaxosЭÒéºÅ³ÆÊÇÊ·ÉÏ×î¼òµ¥µÄ·Ö²¼Ê½ÏµÍ³Ò»ÖÂÐÔËã·¨²¢»ñµÃͼÁé½±£¬ÔÙÓпªÔ´²úÆ·ZooKeeperʵÏÖµÄZABЭÒéºÅ³Æ³¬Ô½Paxos¡£

ÔÚ´óÊý¾Ý³¡¾°Ï£¬·Ö²¼Ê½Êý¾Ý¿âµÄÊý¾ÝÒ»ÖÂÐÔ¹ÜÀíÊÇÆä×îÖØÒªµÄÄں˼¼ÊõÖ®Ò»£¬Ò²ÊDZ£Ö¤·Ö²¼Ê½Êý¾Ý¿âÂú×ãÊý¾Ý¿â×î»ù±¾µÄACIDÌØÐÔÖÐµÄ ¡°Ò»ÖÂÐÔ¡±(Consistency)µÄ±£ÕÏ£¬ÔÚ·Ö²¼Ê½¼¼Êõ·¢Õ¹Ï£¬Êý¾ÝÒ»ÖÂÐԵĽâ¾ö·½·¨ºÍ¼¼ÊõÒ²ÔÚ²»¶ÏµÄÑݽø¡£

·Ö²¼Ê½ÏµÍ³µÄÌôÕ½

Ò»ÖÂÐÔ¿ÉÀí½âΪËùÓнڵ㶼ÄÜ·ÃÎʵ½×îа汾µÄÊý¾Ý£¬ÕâÔÚµ¥»ú³¡¾°Ï·dz£ÈÝÒ×ʵÏÖ£¬Ê¹Óù²ÏíÄÚ´æºÍËø¼´¿É½â¾ö£¬µ«Êý¾Ý´æ´¢ÔÚµ¥»ú»áÓÐÁ½¸öÏÞÖÆ£º

1£©µ¥»ú²»¿É ÓÃϵͳÕûÌ彫²»¿ÉÓã»

2£©ÏµÍ³ÍÌÍÂÁ¿ÊÜÏÞÓÚµ¥»úµÄ¼ÆËãÄÜÁ¦¡£

Ïû³ýÕâÁ½¸öÏÞÖÆµÄ·½·¨ÊÇÓöà»úÀ´´æ´¢Êý¾ÝµÄ¶à¸ö¸±±¾£¬¸ºÔð¸üеĿͻ§¶Ë»áͬʱ¸üÐÂÊý¾ÝµÄ¶à¸ö¸± ±¾£¬ÓÚÊÇÎÊÌâ¾ÍÀ´ÁË£¬¶à»úÖ®¼äµÄÍøÂç¿ÉÄÜÎÞ·¨Á¬½Ó£¬µ±¸ºÔð¸üеĿͻ§¶ËÎÞ·¨Í¬Ê±µ½Á¬½Ó¶à¸ö»úÆ÷ʱ£¬ÈçºÎÄܱ£Ö¤ËùÓпͻ§¶Ë¶¼ÄܶÁµ½×îа汾µÄÊý¾Ý£¿

CAPÀíÂÛ

CAPÀíÂÛÓɼÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ¼ÆËã»ú½ÌÊÚEric BrewerÔÚ2000ÄêÌá³ö£¬ÆäºËÐÄ˼ÏëÊÇÈκλùÓÚÍøÂçµÄÊý¾Ý¹²Ïíϵͳ×î¶àÖ»ÄÜÂú×ãÊý¾ÝÒ»ÖÂÐÔ(Consistency)¡¢¿ÉÓÃÐÔ (Availability)ºÍÍøÂç·ÖÇøÈÝÈÌ(Partition Tolerance)Èý¸öÌØÐÔÖеÄÁ½¸ö£¬Èý¸öÌØÐԵ͍ÒåÈçÏ£º

1.Êý¾ÝÒ»ÖÂÐÔ£ºµÈͬÓÚËùÓнڵãÓµÓÐÊý¾ÝµÄ×îа汾

2.¿ÉÓÃÐÔ£ºÊý¾Ý¾ß±¸¸ß¿ÉÓÃÐÔ

3.·ÖÇøÈÝÈÌ£ºÈÝÈÌÍøÂç³öÏÖ·ÖÇø£¬·ÖÇøÖ®¼äÍøÂç²»¿É´ï

ÔÚ´ó¹æÄ£µÄ·Ö²¼Ê½»·¾³Ï£¬ÍøÂç·ÖÇøÊDZØÐëÈÝÈ̵ÄÏÖʵ£¬ÓÚÊÇÖ»ÄÜÔÚ¿ÉÓÃÐÔºÍÒ»ÖÂÐÔÁ½Õß¼ä×ö³öÑ¡Ôñ£¬CAPÀíÂÛËÆºõ¸ø·Ö²¼Ê½ÏµÍ³¶¨ÒåÁËÒ»¸ö±¯¹ÛµÄ½á¾Ö£¬Ò»Ê±¼ä ´ó¼Ò¶¼°´ÕÕCAPÀíÂÛÔÚ¶ÔÈÈÃŵķֲ¼Ê½ÏµÍ³½øÐÐÅж¨£¬Æ©ÈçÈÏΪHBaseÊÇÒ»¸öCPϵͳ£¬CassandraÊÇAPϵͳ£¬ÎÒ¸öÈËÈÏΪÕâÊDz»ÑϽ÷µÄ£¬ÀíÓÉÊÇ CAPÀíÂÛÊǶԷֲ¼Ê½ÏµÍ³ÖÐÒ»¸öÊý¾ÝÎÞ·¨Í¬Ê±´ïµ½¿ÉÓÃÐÔºÍÒ»ÖÂÐԵĶÏÑÔ£¬¶øÒ»¸öϵͳÖÐÍùÍù´æÔںܶàÀàÐ͵ÄÊý¾Ý£¬²¿·ÖÊý¾Ý£¨Æ©ÈçÒøÐÐÕË»§ÖеÄÓà¶î£©ÊÇÐèҪǿ Ò»ÖÂÐԵ쬶øÁíÍâÒ»²¿·ÖÊý¾Ý£¨Æ©ÈçÒøÐеÄ×ܿͻ§Êý£©²¢²»ÒªÇóǿһÖÂÐÔ£¬ËùÒÔÄÃCAPÀíÂÛÀ´»®·ÖÕû¸öϵͳÊDz»ÑϽ÷µÄ£¬ CAPÀíÂÛ´øÀ´µÄ¼ÛÖµÊÇÖ¸ÒýÎÒÃÇÔÚÉè¼Æ·Ö²¼Ê½ÏµÍ³Ê±Ðè񻂿·Ö¸÷ÖÖÊý¾ÝµÄÌØµã£¬²¢×Ðϸ¿¼ÂÇÔÚС¸ÅÂʵÄÍøÂç·ÖÇø·¢Éúʱ¾¿¾¹Îª¸ÃÊý¾ÝÑ¡Ôñ¿ÉÓÃÐÔ»¹ÊÇÒ»ÖÂÐÔ¡£

BASEÀíÂÛ

BASEÊÇBasically Available£¨»ù±¾¿ÉÓã©¡¢Soft state£¨Èí״̬£©ºÍEventually consistent£¨×îÖÕÒ»ÖÂÐÔ£©Èý¸ö¶ÌÓïµÄËõд¡£BASEÀíÂÛÊǶÔCAPÖÐÒ»ÖÂÐԺͿÉÓÃÐÔȨºâµÄ½á¹û£¬ÆäÀ´Ô´ÓÚ¶Ô´ó¹æÄ£»¥ÁªÍøÏµÍ³·Ö²¼Ê½Êµ¼ùµÄ×ܽᣬ ÊÇ»ùÓÚCAP¶¨ÀíÖð²½ÑÝ»¯¶øÀ´µÄ¡£BASEÀíÂ۵ĺËÐÄ˼ÏëÊÇ£º¼´Ê¹ÎÞ·¨×öµ½Ç¿Ò»ÖÂÐÔ£¬µ«Ã¿¸öÓ¦Óö¼¿ÉÒÔ¸ù¾Ý×ÔÉíÒµÎñÌØµã£¬²ÉÓÃÊʵ±µÄ·½Ê½À´Ê¹ÏµÍ³´ïµ½×îÖÕÒ»ÖÂÐÔ¡£½ÓÏÂÀ´¿´Ò»ÏÂBASEÖеÄÈýÒªËØ£º

1¡¢»ù±¾¿ÉÓÃ

»ù±¾¿ÉÓÃÊÇÖ¸·Ö²¼Ê½ÏµÍ³ÔÚ³öÏÖ²»¿ÉÔ¤Öª¹ÊÕϵÄʱºò£¬ÔÊÐíËðʧ²¿·Ö¿ÉÓÃÐÔ----×¢Ò⣬Õâ¾ø²»µÈ¼ÛÓÚϵͳ²»¿ÉÓᣱÈÈ磺

£¨1£©ÏìӦʱ¼äÉϵÄËðʧ¡£Õý³£Çé¿öÏ£¬Ò»¸öÔÚÏßËÑË÷ÒýÇæÐèÒªÔÚ0.5ÃëÖ®ÄÚ·µ»Ø¸øÓû§ÏàÓ¦µÄ²éѯ½á¹û£¬µ«ÓÉÓÚ³öÏÖ¹ÊÕÏ£¬²éѯ½á¹ûµÄÏìӦʱ¼äÔö¼ÓÁË1~2Ãë

£¨2£©ÏµÍ³¹¦ÄÜÉϵÄËðʧ£ºÕý³£Çé¿öÏ£¬ÔÚÒ»¸öµç×ÓÉÌÎñÍøÕ¾ÉϽøÐйºÎïµÄʱºò£¬Ïû·ÑÕß¼¸ºõÄܹ»Ë³ÀûÍê³Éÿһ±Ê¶©µ¥£¬µ«ÊÇÔÚһЩ½ÚÈÕ´ó´Ù¹ºÎï¸ß·åµÄʱºò£¬ÓÉÓÚÏû·ÑÕߵĹºÎïÐÐΪ¼¤Ôö£¬ÎªÁ˱£»¤¹ºÎïϵͳµÄÎȶ¨ÐÔ£¬²¿·ÖÏû·ÑÕß¿ÉÄܻᱻÒýµ¼µ½Ò»¸ö½µ¼¶Ò³Ãæ

2¡¢Èí״̬

Èí״ָ̬ÔÊÐíϵͳÖеÄÊý¾Ý´æÔÚÖмä״̬£¬²¢ÈÏΪ¸ÃÖмä״̬µÄ´æÔÚ²»»áÓ°ÏìϵͳµÄÕûÌå¿ÉÓÃÐÔ£¬¼´ÔÊÐíϵͳÔÚ²»Í¬½ÚµãµÄÊý¾Ý¸±±¾Ö®¼ä½øÐÐÊý¾Ýͬ²½µÄ¹ý³Ì´æÔÚÑÓʱ

3¡¢×îÖÕÒ»ÖÂÐÔ

×îÖÕÒ»ÖÂÐÔÇ¿µ÷µÄÊÇËùÓеÄÊý¾Ý¸±±¾£¬ÔÚ¾­¹ýÒ»¶Îʱ¼äµÄͬ²½Ö®ºó£¬×îÖÕ¶¼Äܹ»´ïµ½Ò»¸öÒ»ÖµÄ״̬¡£Òò´Ë£¬×îÖÕÒ»ÖÂÐԵı¾ÖÊÊÇÐèҪϵͳ±£Ö¤×îÖÕÊý¾ÝÄܹ»´ïµ½Ò»Ö£¬¶ø²»ÐèҪʵʱ±£Ö¤ÏµÍ³Êý¾ÝµÄǿһÖÂÐÔ¡£

×ܵÄÀ´Ëµ£¬BASEÀíÂÛÃæÏòµÄÊÇ´óÐ͸߿ÉÓÿÉÀ©Õ¹µÄ·Ö²¼Ê½ÏµÍ³£¬ºÍ´«Í³µÄÊÂÎïACIDÌØÐÔÊÇÏà·´µÄ£¬ËüÍêÈ«²»Í¬ÓÚACIDµÄǿһÖÂÐÔÄ£ÐÍ£¬¶øÊÇͨ¹ýÎþÉüǿһÖÂÐÔÀ´»ñµÃ¿ÉÓÃÐÔ£¬²¢ÔÊÐíÊý¾ÝÔÚÒ»¶Îʱ¼äÄÚÊDz»Ò»Öµģ¬µ«×îÖÕ´ïµ½Ò»ÖÂ״̬¡£µ«Í¬Ê±£¬ÔÚʵ¼ÊµÄ·Ö²¼Ê½³¡¾°ÖУ¬²»Í¬ÒµÎñµ¥ÔªºÍ×é¼þ¶ÔÊý¾ÝÒ»ÖÂÐÔµÄÒªÇóÊDz»Í¬µÄ£¬Òò´ËÔÚ¾ßÌåµÄ·Ö²¼Ê½ÏµÍ³¼Ü¹¹Éè¼Æ¹ý³ÌÖУ¬ACIDÌØÐÔºÍBASEÀíÂÛÍùÍùÓÖ»á½áºÏÔÚÒ»Æð¡£

·Ö²¼Ê½Êý¾ÝÒ»ÖÂÐÔ

1.Êý¾ÝÒ»ÖÂÐÔÊÇʲô

´ó²¿·ÝʹÓô«Í³¹ØÏµÐÍÊý¾Ý¿âµÄDBAÔÚ¿´µ½¡°Êý¾ÝÒ»ÖÂÐÔ¡±Ê±£¬µÚÒ»·´Ó¦¿ÉÄܶ¼ÊÇÊý¾ÝÔÚ¿ç±íÊÂÎñÖеÄÊý¾ÝÒ»ÖÂÐÔ³¡¾°¡£µ«ÊDZ¾ÎĽéÉܵġ°Êý¾ÝÒ»ÖÂÐÔ¡±£¬Ö¸µÄÊÇ¡°Êý¾ÝÔÚ¶à·Ý¸±±¾Öд洢ʱ£¬ÈçºÎ±£ÕÏÊý¾ÝµÄÒ»ÖÂÐÔ¡±³¡¾°¡£

ÓÉÓÚÔÚ´óÊý¾ÝÁìÓò£¬Êý¾ÝµÄ°²È«²»ÔÙÓÉÓ²¼þÀ´±£Ö¤£¬¶øÊÇͨ¹ýÈí¼þÊֶΣ¬Í¨¹ýͬʱ½«Êý¾ÝдÈëµ½¶à¸ö¸±±¾ÖУ¬À´È·±£Êý¾ÝµÄ°²È«¡£Êý¾Ý¿âÔÚͬʱÏò¶à¸ö¸±±¾Ð´Èë¼Ç¼ʱ£¬ÈçºÎÈ·±£Ã¿¸ö¸±±¾Êý¾ÝÒ»Ö£¬³ÆÎª¡°Êý¾ÝÒ»ÖÂÐÔ¡±¡£

2.¹ØÏµÐÍÊý¾Ý¿âÈçºÎ±£ÕÏÊý¾ÝÒ»ÖÂÐÔ

´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿âÔÚ´óÊý¾ÝµÄ³¡¾°£¬¶ÔÓÚÔËÐл·¾³¨CÓ²¼þÒªÇ󶼱Ƚϸߣ¬ÀýÈçOracle»á½¨ÒéÓû§Ê¹ÓÃСÐÍ»ú+¹²Ïí´æ´¢×÷ΪÊý¾Ý¿âµÄÔËÐл·¾³£¬DB2 DPFҲͬÑù½¨ÒéÓû§²ÉÓøüºÃµÄ·þÎñÆ÷+¸ß¶Ë´æ´¢À´´î½¨Êý¾Ý¿âµÄÔËÐл·¾³¡£ËùÒÔÔÚÊý¾Ý´æ´¢°²È«µÄ¼¼ÊõÒªÇóÏ£¬´«Í³¹ØÏµÐÍÊý¾Ý¿âÔÚ´óÊý¾Ý³¡¾°¸ü¶àÊÇÒÀÀµÓ²¼þµÄ¼¼ÊõÀ´±£ÕÏÊý¾ÝµÄ°²È«ÐÔ¡£

ÒòΪ¹ØÏµÐÍÊý¾Ý¿âµÄÊý¾Ý°²È«ÊÇ»ùÓÚÓ²¼þÀ´±£ÕÏ£¬²¢ÇÒÊý¾ÝÒ²²»»áͨ¹ýͬʱ´æ´¢¶à·ÝÀ´±£ÕÏÊý¾ÝµÄ°²È«£¬ËùÒÔ¹ØÏµÐÍÊý¾Ý¿âµÄÓû§Ä¬ÈÏÈÏΪÊý¾Ý´æ´¢ÊÇÒ»Öµġ£

3.·Ö²¼Ê½´æ´¢ÈçºÎ±£ÕÏÊý¾ÝÒ»ÖÂÐÔ

±¾ÎÄÔÚÌÖÂÛ·Ö²¼Ê½´æ´¢Ê±£¬Ö÷ÒªÖ¸µÄÊÇ´óÊý¾Ý²úÆ·Öеķֲ¼Ê½ÎļþϵͳºÍ·Ö²¼Ê½Êý¾Ý¿â£¬ÀýÈ磺HDFS¡£

Óû§ÔÚ¸ãÃ÷°×·Ö²¼Ê½´æ´¢µÄÊý¾ÝÒ»ÖÂÐÔÔ­Àíʱ£¬±ØÐëÒªÏÈÃ÷°×ΪʲôËûÃǾÍÐèÒªÊý¾ÝÒ»ÖÂÐÔ£¬ºÍ·Ö²¼Ê½´æ´¢µÄÊý¾Ý´æ´¢Óë¹ØÏµÐÍÊý¾Ý¿âµÄÊý¾Ý´æ´¢ÓÖÓÐÊ²Ã´Çø±ð¡£

´óÊý¾Ý¼¼ÊõµÄµ®Éú£¬È·È·ÊµÊµÈÃϵͳµÄÐÔÄÜÓÐеÄÍ»ÆÆ£¬²¢ÇÒÖ§³ÖÓ²¼þÒÔˮƽÀ©Õ¹µÄ·½Ê½À´»ñµÃÏßÐÔÔö³¤µÄÐÔÄܺʹ洢¡£

ÕâЩ¶¼ÊǹýÈ¥´«Í³¹ØÏµÐÍÊý¾Ý¿âËùÎÞ·¨ÌṩµÄ¡£ÁíÍ⣬´óÊý¾Ý¼¼ÊõÒ²ÅׯúÁËÔËÐл·¾³±ØÐë×ã¹»ºÃµÄÓ²ÐÔÒªÇ󣬶øÊÇÔÊÐíÓû§Í¨¹ýÅúÁ¿Á®¼ÛX86·þÎñÆ÷+±¾µØ´ÅÅ̵ķ½Ê½´î½¨¹æÄ£¼¯Èº£¬´Ó¶ø»ñµÃ±È¹ýÈ¥ÒÀÀµÓ²¼þ´¹Ö±À©Õ¹ËùÌṩµÄ¸üÇ¿µÄ¼ÆËãÄÜÁ¦ºÍ¸ü¶àµÄ´æ´¢¿Õ¼ä¡£

´óÊý¾Ý¼¼ÊõµÄºËÐÄ˼Ïë¾ÍÊÇ·Ö²¼Ê½£¬½«Ò»¸ö´óµÄ¹¤×÷ÈÎÎñ·Ö½â³É¶à¸öСÈÎÎñ£¬È»ºóͨ¹ý·Ö²¼Ê½²¢·¢²Ù×÷µÄ·½Ê½½«ÆäÍê³É£¬´Ó¶øÌá¸ßÕû¸öϵͳµÄ¼ÆËãЧÂÊ»òÕßÊÇ´æ´¢ÄÜÁ¦¡£¶øÔÚ·Ö²¼Ê½»·¾³Ï£¬ÓÉÓÚÓ²¼þµÄÒªÇ󽵵ͣ¬±ØÈ»ÐèÒª´óÊý¾Ý²úÆ·ÌṩÁíÍâÒ»¸öÖØÒªµÄ¹¦ÄܨCÊý¾Ý°²È«¡£

´óÊý¾Ý²úÆ·ÔÚ½â¾öÊý¾Ý°²È«µÄ·½Ê½ÉÏ£¬¶¼±È½Ï½Ó½ü£¬¼òµ¥À´Ëµ£¬¾ÍÊÇÈÃÒ»·ÝÊý¾Ýͨ¹ýÒì²½»òÕßͬ²½µÄ·½Ê½±£´æÔÚ¶ą̀»úÆ÷ÉÏ£¬´Ó¶ø±£ÕÏÊý¾ÝµÄ°²È«¡£

·Ö²¼Ê½´æ´¢ÔÚ½â¾öÊý¾Ý°²È«µÄ¼¼ÊõÄѵãºó£¬ÓÖÒýÈëÁËÒ»¸öеļ¼ÊõÎÊÌ⣬¾ÍÊÇÈçºÎ±£Õ϶à¸ö¸±±¾ÖеÄÊý¾ÝÒ»ÖÂÐÔ¡£Ä¿Ç°SequoiaDBÊÇʹÓÃRaftËã·¨À´±£Ö¤Êý¾ÝÔÚ¶à¸ö¸±±¾ÖÐÒ»ÖÂÐÔ¡£

RaftËã·¨

1.RaftËã·¨±³¾°

ÔÚ·Ö²¼Ê½»·¾³Ï£¬×îÖøÃûµÄÒ»ÖÂÐÔËã·¨Ó¦¸ÃÊÇPaxosËã·¨£¬µ«ÊÇÓÉÓÚËüʵÔÚ¹ýÓÚ»ÞɬÄѶ®£¬²¢ÇÒʵÏÖÆðÀ´¼«¶ÈÀ§ÄÑ£¬ËùÒÔÔÚ2013Ä꣬Diego Ongaro¡¢John OusterhoutÁ½¸öÈËÒÔÒ×¶®(Understandability)ΪĿ±êÉè¼ÆÁËÒ»Ì×Ò»ÖÂÐÔËã·¨Raft¡£RaftËã·¨×î´óµÄÌØµãÔÚÓÚ¼òµ¥Ò×¶®£¬²¢ÇÒʵÏÖÆðÀ´¼òµ¥

2.RaftËã·¨¸ÅÊö

ÓëPaxos²»Í¬£¬RaftÇ¿µ÷µÄÊÇÒ×¶®£¬RaftºÍPaxosÒ»ÑùÖ»Òª±£Ö¤n/2+1½ÚµãÕý³£¾ÍÄܹ»Ìṩ·þÎñ¡£

ÖÚËùÖÜÖªµ±ÎÊÌâ½ÏΪ¸´ÔÓʱ¿ÉÒÔ°ÑÎÊÌâ·Ö½âΪ¼¸¸öСÎÊÌâÀ´´¦Àí£¬RaftҲʹÓÃÁË·Ö¶øÖÎÖ®µÄ˼Ïë¡£RaftËã·¨ÖØµã½â¾öÈý¸ö×ÓÎÊÌ⣺

1£©Ñ¡¾Ù(Leader election)

2£©ÈÕÖ¾¸´ÖÆ(Log replication)

3£©°²È«ÐÔ(Safety)¡£

RaftË㷨ǿ»¯ÁËLeader½ÚµãµÄ¹¦ÄÜ£¬Follower½ÚµãµÄÊý¾ÝÖ»Äܹ»´ÓLeaderÖлñÈ¡£¬ËùÒÔFollower½ÚµãµÄʵÏ־ͱäµÃ¼òµ¥£¬Ö»Òª¸ºÔðºÍLeader±£³ÖͨÐÅ£¬²¢ÇÒ½ÓÊÜLeaderÍÆË͵ÄÊý¾Ý¼´¿É¡£

3.RaftËã·¨Ô­Àí

½Úµã½ÇÉ«

RaftËã·¨ÖУ¬¶Ô½ÚµãµÄ״̬·ÖΪ3ÖÖ½ÇÉ«:

1)·Ö±ðÊÇLeader(Áìµ¼Õß)

2)Follower(×·ËæÕß)

3)Candidate(ºòÑ¡Õß)

Leader£¬¸ºÔð´¦ÀíÀ´×Ô¿Í»§¶ËµÄÇëÇ󣬸ºÔð½«ÈÕ־ͬ²½µ½FollowerÖУ¬²¢ÇÒ±£Ö¤ÓëFollowerÖ®¼äµÄheartBeatÁªÏµ;

Follower£¬µ±¼¯Èº¸Õ¸ÕÆô¶¯Ê±£¬ËùÓнڵã¾ùΪFollower״̬£¬ËüµÄ¹¤×÷Ö÷ҪΪÏìÓ¦LeaderµÄÈÕ־ͬ²½ÇëÇó£¬ÏìÓ¦CandidateµÄÇëÇó£¬ÒÔ¼°°ÑÇëÇóµ½FollowerµÄÊÂÎñÇëÇóת·¢¸øLeader;

Candidate£¬Ñ¡¾ÙLeaderʱ¸ºÔðͶƱ£¬Ñ¡¾Ù³öÀ´Leaderºó£¬½Úµã½«´ÓCandidate״̬±äΪLeader״̬¡£

Terms

ÔÚ·Ö²¼Ê½»·¾³Ï£¬¡°Ê±¼äͬ²½¡±Ò»Ö±¶¼ÊÇÀÏ´óÄѵļ¼ÊõÄÑÌâ¡£RaftΪÁ˽â¾öÕâ¸öÎÊÌ⣬½«Ê±¼ä»®·ÖΪһ¸öÒ»¸öµÄTerm(¿ÉÒÔÀí½âΪ¡°Âß¼­Ê±¼ä¡±)À´´¦ÀíÔÚ²»Í¬Ê±¼ä¶ÎÀïµÄÊý¾ÝÒ»ÖÂÐÔ¡£

4.ÈÕÖ¾¸´ÖÆ

ÈÕÖ¾¸´ÖÆÖ÷ÒªµÄ×÷ÓþÍÊÇÓÃÀ´±£Ö¤½ÚµãµÄÊý¾ÝÒ»ÖÂÐÔÓë¸ß¿ÉÓÃÐÔ¡£

µ±Leader±»Ñ¡¾Ù³öÀ´ºó£¬ËùÓеÄÊÂÎñ²Ù×÷¶¼±ØÐëÒª¾­¹ýLeader´¦Àí¡£ÕâЩÊÂÎñ²Ù×÷³É¹¦ºó£¬½«»á±»°´Ë³ÐòдÈëµ½LOGÖУ¬Ã¿¸öLOG¶¼°üº¬Ò»¸öindex±àºÅ¡£

5. °²È«ÐÔ

°²È«ÐÔÊÇÓÃÓÚÈ·±£Ã¿¸ö½Úµã¶¼Êǰ´ÕÕÏàͬµÄÈÕÖ¾ÐòÁнøÐÐÖ´Ðеݲȫ»úÖÆ¡£

·Ö²¼Ê½Êý¾Ý¿âÊý¾ÝÒ»ÖÂÐÔ¼¼ÊõʵÏÖ

ÒÔ¹ú²úÔ­³§µÄ·Ö²¼Ê½Êý¾Ý¿âSequoiaDBΪÀý£¬SequoiaDBÔڶั±¾µÄ²¿ÊðÖУ¬²ÉÓÃRaftËã·¨±£Ö¤Êý¾ÝÔڶั±¾»·¾³Öб£³ÖÒ»Ö¡£

SequoiaDB¼¯ÈºÖУ¬×ܹ²°üº¬3ÖнÇÉ«½Úµã£¬·Ö±ðÊÇ

1£©Ð­µ÷½Úµã

2£©±àÄ¿½Úµã

3£©Êý¾Ý½Úµã

ÓÉÓÚЭµ÷½Úµã±¾Éí²»´æÈκÎÊý¾Ý£¬ËùÒÔÖ»ÓбàÄ¿½ÚµãºÍÊý¾Ý½Úµã´æÔÚÊÂÎñ²Ù×÷£¬»»ÑÔÖ®£¬±àÄ¿·ÖÇø×éºÍÊý¾Ý·ÖÇø×éµÄ¸±±¾Í¬²½²ÉÓÃRaftËã·¨±£Ö¤Êý¾ÝÒ»ÖÂÐÔ¡£

1.±àÄ¿½ÚµãºÍÊý¾Ý½ÚµãµÄÊÂÎñÈÕÖ¾½éÉÜ

±àÄ¿½ÚµãºÍÊý¾Ý½ÚµãÓÉÓÚ¶¼ÊÇÐèÒª´æ´¢Êý¾ÝµÄ£¬²¢ÇÒÔÚ¼¯Èº²¿ÊðÖиã¬ÎªÁËÈ·±£Êý¾ÝµÄ°²È«£¬¶¼Êǽ¨Òé²ÉÓ÷ֲ¼Ê½µÄ·½Ê½½øÐв¿Êð£¬ËùÒÔÔÚÊý¾Ýͬ²½ÖУ¬ÐèÒª²ÉÓÃRaftËã·¨µÄ»ù±¾Ô­Àí½øÐÐÊý¾Ýͬ²½¡£

±àÄ¿½ÚµãºÍÊý¾Ý½ÚµãÔÚ´æ´¢Êý¾Ýʱ£¬¹²°üº¬Á½´ó²¿·Ö£º

1£©Ò»¸öÕæÊµµÄÊý¾ÝÎļþ

2£©ÁíÒ»¸öÊÇÊÂÎñÈÕÖ¾Îļþ

SequoiaDBµÄ½ÚµãÊÂÎñÈÕÖ¾£¬Ä¬ÈÏÇé¿öÏÂÓÉ20¸ö64MB(×Ü´óСΪ1.25GB)µÄÎļþ¹¹³É¡£½ÚµãµÄÊÂÎñÈÕÖ¾Ö÷Òª°üº¬Ò»¸öindex±àºÅºÍÊý¾Ý²Ù×÷ÄÚÈÝ£¬index±àºÅ±£³ÖÓÀÔ¶µÝÔö״̬¡£

ÁíÍ⣬SequoiaDB½ÚµãµÄÊÂÎñÈÕÖ¾²»»áÓÀ¾Ã±£´æ£¬¶øÊǵ±ËùÓеÄÊÂÎñÈÕ־дÂúºó£¬ÔÙÖØÐ´ӵÚÒ»¸öÎļþ¿ªÊ¼½øÐи²¸ÇдÈë¡£

2.±àÄ¿·ÖÇø×éµÄÊý¾ÝÒ»ÖÂÐÔ

ÓÉÓÚ±àÄ¿·ÖÇø×éÊDZ£´æSequoiaDB¼¯ÈºµÄÔªÐÅÏ¢£¬Êý¾Ýͬ²½ÒªÇó¸ß£¬ËùÒÔ±àÄ¿·ÖÇø×éµÄÊý¾ÝÒ»ÖÂÐÔÒªÇóΪǿһÖÂÐÔ£¬¼´Ã¿´ÎÏò±àÄ¿·ÖÇø×éÖ´ÐÐÊÂÎñ²Ù×÷ʱ£¬±ØÐëҪȷ±£ËùÓеıàÄ¿½Úµã²Ù×÷³É¹¦£¬²Å¼ÆËã¸Ã²Ù×÷Ö´Ðгɹ¦£¬·ñÔò¸ÃÊÂÎñ²Ù×÷½«ÔÚÕû¸ö±àÄ¿·ÖÇø×éÖлØÍËÊÂÎñÈÕÖ¾£¬ÒÔ±£Ö¤·ÖÇø×éÄÚµÄÊý¾ÝÒ»ÖÂÐÔ¡£

3.Êý¾Ý·ÖÇø×éµÄÊý¾ÝÒ»ÖÂÐÔ

Êý¾Ý·ÖÇø×éµÄÊý¾ÝÒ»ÖÂÐÔĬÈÏÇé¿öÏÂΪ×îÖÕÒ»ÖÂÐÔÐÔ£¬¼´Ö»ÒªÇóÖ÷½ÚµãÖ´ÐÐÊÂÎñ²Ù×÷³É¹¦¼´ÊÓΪ²Ù×÷³É¹¦£¬Ö÷½Úµã½«ÔÚδÀ´Ò첽ͬ²½ReplicaLOGµ½´Ó½ÚµãÉÏ¡£

4.Ö÷´Ó½ÚµãµÄÊÂÎñÈÕ־ͬ²½

SequoiaDBµÄÖ÷´Ó½ÚµãÊÇͨ¹ýÊÂÎñÈÕ־ͬ²½À´±£Ö¤Êý¾ÝÒ»ÖÂÐԵ쬲¢ÇÒÖ÷´Ó½ÚµãµÄÊÂÎñÈÕ־ͬ²½Êǵ¥Ïß³ÌÍê³É¡£

Èç¹ûµ±Ö÷½ÚµãºÍ´Ó½ÚµãµÄLSN²î¾àΪһÌõ¼Ç¼£¬ÔòÖ÷½Úµã»áÖ÷¶¯½«×îеÄÊÂÎñÈÕÖ¾ÍÆË͸ø´Ó½Úµã¡£

Èç¹ûÖ÷½ÚµãºÍ´Ó½ÚµãµÄLSN²î¾à³¬¹ýÒ»Ìõ¼Ç¼£¬Ôò´Ó½Úµã»áÖ÷¶¯ÏòÖ÷½ÚµãÇëÇóͬ²½ÊÂÎñÈÕÖ¾£¬Ö÷½ÚµãÊÕµ½Í¬²½ÇëÇóºó£¬»á½«´Ó½ÚµãµÄLSNºÅµ½Ö÷½Úµã×îеÄLSNºÅ¶ÔÓ¦µÄÊÂÎñÈÕÖ¾´ò°üÒ»´ÎÐÔ·¢Ë͸ø´Ó½Úµã¡£

5.´Ó½ÚµãÈÕÖ¾ÖØ·Å

µ±´Ó½Úµã»ñÈ¡µ½Ö÷½ÚµãÍÆË͹ýÀ´µÄÊÂÎñÈÕÖ¾ºó£¬¾Í»á×Ô¶¯½âÎöÊÂÎñÈÕÖ¾ºÍÖØ·Å¡£´Ó½ÚµãÔÚÖØ·ÅÊÂÎñÈÕ־ʱ£¬Ä¬ÈÏÇé¿öÏ»áÒÔ10²¢·¢À´ÖØ·ÅÊÂÎñÈÕÖ¾¡£

´Ó½ÚµãÔÚÖ´Ðв¢·¢ÖØ·ÅÈÕ־ʱÓÐÌõ¼þÏÞÖÆ£¬¼´ÔÚ¼¯ºÏµÄΨһË÷Òý¸öÊý<=1µÄÇé¿öÏ£¬INSERT¡¢DELETE¡¢UPDATE¡¢LOB WRITE¡¢LOBUPDATE¡¢LOB REMOVE²Ù×÷¿ÉÒÔÖ§³Ö²¢·¢ÖØ·ÅÊÂÎñÈÕÖ¾¡£

´Ó½ÚµãÔÚ×ö²¢·¢ÖØ·Åʱ£¬ÊÇͨ¹ý¼Ç¼µÄOID½øÐдòÉ¢²¢·¢Ö´ÐУ¬ÕâÑù¾Í¿ÉÒÔ±£Ö¤¶ÔÏàͬ¼Ç¼µÄ²Ù×÷²»»áÓÉÓÚ²¢·¢Öطŵ¼ÖÂÊý¾Ý²»Ò»Ö¡£

×ܽá

·Ö²¼Ê½µÄÊý¾Ý¿â£¬Í¨¹ýRaftËã·¨À´È·±£ÔÚ·Ö²¼Ê½Çé¿öÉÏÊý¾ÝµÄÒ»ÖÂÐÔ£¬²¢ÇÒ±àÄ¿·ÖÇø×éºÍÊý¾Ý·ÖÇø×é¶ÔÊý¾ÝÒ»ÖÂÐÔÒªÇóÓÖÓÐËù²»Í¬£¬±àÄ¿·ÖÇø×éʼÖÕÒªÇóµÄÊÇÊý¾ÝÔڶั±¾ÇëÇé¿öÏÂÊý¾ÝǿһÖÂÐÔ£¬¶øÊý¾Ý·ÖÇø×éÔò¿ÉÒÔÓÉÓû§ÔÚ´´½¨¼¯ºÏʱÀ´Ö´ÐÐÊý¾ÝÒ»ÖÂÐÔµÄÇ¿¶È£¬Ç¿¶ÈÔ½¸ß£¬Êý¾Ý°²È«ÐÔÔ½ºÃ£¬µ«ÊÇÖ´ÐеÄЧÂʾͻáÏà¶Ô½Ï²î£¬·´Ö®ÒÀÈ»¡£

   
3055 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ