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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
´ó¹æÄ£·Ö²¼Ê½-·Ö²¼Ê½¼ô֦ϵͳ
 
À´Ô´£º51CTO ·¢²¼ÓÚ£º 2017-11-9
  2519  次浏览      27
 

·Ö²¼Ê½Îļþϵͳ´æ´¢Ä¿±êÒԷǽṹ»¯Êý¾ÝΪÖ÷£¬µ«ÔÚʵ¼ÊÓ¦ÓÃÖУ¬´æÔÚ´óÁ¿µÄ½á¹¹»¯ºÍ°ë½á¹¹»¯µÄÊý¾Ý´æ´¢ÐèÇó¡£·Ö²¼Ê½¼üֵϵͳÊÇÒ»ÖÖÓбðÓÚÎÒÃÇËùÊìϤµÄ·Ö²¼Ê½Êý¾Ý¿âϵͳµÄ£¬ÓÃÓÚ´æ´¢¹ØÏµ¼òµ¥µÄ°ë½á¹¹»¯Êý¾ÝµÄ´æ´¢Ó¦Óá£

ÔÚ·Ö²¼Ê½¼üֵϵͳÖУ¬°ë½á¹¹»¯Êý¾Ý±»·â×°³ÉÓÉ<key£¬value£¬timestamp>¼üÖµ¶Ô×é³ÉµÄ¶ÔÏ󣬯äÖÐkeyΪΨһ±êʾ·û;valueΪÊôÐÔÖµ£¬¿ÉÒÔΪÈκÎÀàÐÍ£¬ÈçÎÄ×Ö¡¢Í¼Æ¬£¬Ò²¿ÉÒÔΪ¿Õ;timestampΪʱ¼ä´Á£¬¿ÉÒÔÌṩÊý¾ÝµÄ¶à°æ±¾Ö§³Ö¡£·Ö²¼Ê½¼üֵϵͳÒÔ¼üÖµ¶Ô´æ´¢£¬ËüµÄ½á¹¹²»¹Ì¶¨£¬Ã¿Ò»Ôª×é¿ÉÒÔÓв»Ò»ÑùµÄ×ֶΣ¬¿É¸ù¾ÝÐèÒªÔö¼Ó¼üÖµ¶Ô£¬´Ó¶ø²»¾ÖÏÞÓڹ̶¨µÄ½á¹¹£¬ÊÊÓÃÃæ¸ü´ó£¬¿ÉÀ©Õ¹ÐÔ¸üºÃ¡£

·Ö²¼Ê½¼üֵϵͳ֧³ÖÕë¶Ôµ¥¸ö<key£¬value£¬timestamp>¼üÖµ¶ÔµÄÔö¡¢É¾¡¢²é¡¢¸Ä²Ù×÷£¬¿ÉÒÔÔËÐÐÔÚPC·þÎñÆ÷¼¯ÈºÉÏ£¬²¢ÊµÏÖ¼¯Èº°´ÐèÀ©Õ¹£¬´Ó¶ø´¦Àí´ó¹æÄ£Êý¾Ý£¬²¢Í¨¹ýÊý¾Ý±¸·Ý±£ÕÏÈÝ´íÐÔ£¬±ÜÃâÁË·Ö¸îÊý¾Ý´øÀ´µÄ¸´ÔÓÐԺͳɱ¾¡£

×ÜÌåÀ´Ëµ£¬·Ö²¼Ê½¼üֵϵͳ´Ó´æ´¢Êý¾Ý½á¹¹µÄ½Ç¶È¿´£¬·Ö²¼Ê½¼üֵϵͳÓ봫ͳµÄ¹þÏ£±í±È½ÏÀàËÆ£¬²»Í¬µÄÊÇ£¬·Ö²¼Ê½¼üֵϵͳ֧³Ö½«Êý¾Ý·Ö²¼µ½¼¯ÈºÖеĶà¸ö´æ´¢½Úµã¡£·Ö²¼Ê½¼üֵϵͳ¿ÉÒÔÅäÖÃÊý¾ÝµÄ±¸·ÝÊýÄ¿£¬¿ÉÒÔ½«Ò»·ÝÊý¾ÝµÄËùÓи±±¾´æ´¢µ½²»Í¬µÄ½ÚµãÉÏ£¬µ±Óнڵ㷢ÉúÒì³£ÎÞ·¨Õý³£Ìṩ·þÎñʱ£¬ÆäÓàµÄ½Úµã»á¼ÌÐøÌṩ·þÎñ¡£

ÏÂÃæ£¬ÎÒÃÇÀ´¿´¿´Òµ½çÖ÷Á÷µÄ·Ö²¼Ê½¼üֵϵͳµÄ¼Ü¹¹Ä£Ê½¡£

Amazon Dynamo

DynamoÊÇAWSÉÏ×î»ù´¡µÄ·Ö²¼Ê½´æ´¢Ó¦ÓÃÖ®Ò»£¬Ò²ÊÇAWS×îÔçÍÆ³öµÄÔÆ·þÎñÖ®Ò»£¬Ëü¹¹½¨ÔÚAWSµÄS3»ù´¡Ö®ÉÏ£¬²ÉÓÃÈ¥ÖÐÐĽڵ㻯µÄP2P·½Ê½£¬²ÉÓÃÕâÖÖģʽµÄ£¬»¹ÓÐFacebookÍÆ³öµÄCassandra¡£

1¡¢Êý¾Ý·Ö²¼

DynamoʹÓÃÁ˸ĽøµÄÒ»ÖÂÐÔ¹þÏ£Ëã·¨£ºÃ¿¸öÎïÀí½Úµã¸ù¾ÝÆäÐÔÄܵIJîÒì·ÖÅä¶à¸ötoken£¬Ã¿¸ötoken¶ÔÓ¦Ò»¸ö¡°ÐéÄâ½Úµã¡±¡£ËùÓнڵãÿ¸ô¹Ì¶¨Ê±¼ä(±ÈÈç1s)ͨ¹ýGossipЭÒéµÄ·½Ê½´ÓÆäËû½ÚµãÖÐÈÎÒâÑ¡ÔñÒ»¸öÓë֮ͨÐŵĽڵ㡣Èç¹ûÁ¬½Ó³É¹¦£¬Ë«·½½»»»¸÷×Ô±£´æµÄ¼¯ÈºÐÅÏ¢¡£

GossipЭÒéÓÃÓÚP2PϵͳÖÐ×ÔÖεĽڵãЭµ÷¶ÔÕû¸ö¼¯ÈºµÄÈÏʶ£¬±ÈÈ缯ȺµÄ½Úµã״̬¡¢¸ºÔØÇé¿ö¡£ÓÉÓÚÖÖ×Ó½ÚµãµÄ´æÔÚ£¬Ð½ڵã¼ÓÈë¿ÉÒÔ×öµÃ±È½Ï¼òµ¥£ºÐ½ڵã¼ÓÈëʱÊ×ÏÈÓëÖÖ×ӽڵ㽻»»¼¯ÈºÐÅÏ¢£¬´Ó¶øÁ˽âÕû¸ö¼¯Èº¡£

2¡¢Ò»ÖÂÐÔÓë¸´ÖÆ

Ò»°ãÀ´Ëµ£¬´Ó»úÆ÷K+iå´»ú¿ªÊ¼µ½±»È϶¨ÎªÓÀ¾ÃʧЧµÄʱ¼ä²»»áÌ«³¤£¬»ýÀÛµÄд²Ù×÷Ò²²»»áÌ«¶à£¬¿ÉÒÔÀûÓÃMerkleÊ÷¶Ô»úÆ÷µÄÊý¾ÝÎļþ½øÐпìËÙͬ²½¡£DynamoÒýÈëÏòÁ¿Ê±ÖÓ(Vector lock)µÄ¼¼ÊõÊÖ¶ÎÀ´³¢ÊÔ½â¾ö³åÍ»£¬Õâ¸ö²ßÂÔÒÀÀµ¼¯ÈºÄÚ½ÚµãÖ®¼äµÄʱÖÓͬ²½Ëã·¨£¬µ«²»ÄÜÍêÈ«±£Ö¤×¼È·ÐÔ¡£DynamoÖ»±£Ö¤×îÖÕÒ»ÖÂÐÔ£¬Èç¹û¶à¸ö½ÚµãÖ®¼äµÄ¸üÐÂ˳Ðò²»Ò»Ö£¬¿Í»§¶Ë¿ÉÄܶÁÈ¡²»µ½ÆÚÍûµÄ½á¹û¡£

3¡¢ÈÝ´í

ºËÐÄ»úÖÆ¾ÍÊÇ£ºÊý¾Ý»Ø´«+MerkleÊ÷ͬ²½+¶ÁÈ¡ÐÞ¸´

DynamoÔÚÊý¾Ý¶ÁдÖвÉÓÃÁËÒ»ÖÖ³ÆÎªÈõquorum (Sloppy quorum)µÄ»úÖÆ£¬Éæ¼°Èý¸ö²ÎÊýW¡¢R¡¢N,¼ûÆäÖÐW´ú±íÒ»´Î³É¹¦µÄд²Ù×÷ÖÁÉÙÐèҪдÈëµÄ¸±±¾Êý£¬R´ú±íÒ»´Î³É¹¦¶Á²Ù×÷ÐèÓÉ·þÎñÆ÷·µ»Ø¸øÓû§µÄ×îС¸±±¾Êý£¬NÊÇÿ¸öÊý¾Ý´æ´¢µÄ¸±±¾Êý¡£DynamoÒªÇóR+W¡µN£¬Âú×ãÕâ¸öÒªÇ󣬱£Ö¤Óû§¶ÁÈ¡Êý¾Ýʱ£¬Ê¼ÖÕ¿ÉÒÔ»ñµÃÒ»¸ö×îеÄÊý¾Ý°æ±¾¡£

Õë¶ÔÁÙʱ¹ÊÕÏ£¬Ò»µ©Ä³¸ö½Úµã³öÏÖÎÊÌ⣬Ôò½«Õâ¸ö½ÚµãÖµ´«Ë͸ø¡°Í¬×顱ÖеÄÏÂÒ»¸öÕý³£½Úµã£¬²¢ÔÚÕâ¸öÊý¾Ý¸±±¾µÄÔªÊý¾ÝÖмǼʧЧµÄ½ÚµãλÖ㬱ãÓÚÊý¾Ý»Ø´«;È»ºó£¬ÓÉÕâ¸ö½ÚµãÉÏÒ»¸öÁÙʱ¿Õ¼ä½øÐд洢ºÍ´¦ÀíÊý¾Ý£¬Í¬Ê±¸Ã½Úµã»¹¶ÔʧЧµÄ½Úµã½øÐмà²â£¬Ò»µ©Ê§Ð§µÄ½ÚµãÖØÐ¿ÉÓã¬Ôò½«×Ô¼ºËù±£´æµÄ×îÐÂÊý¾Ý»Ø´«¸øËü£¬È»ºóɾ³ý×Ô¼º¿ª±ÙµÄÁÙʱ¿Õ¼äÊý¾Ý¡£

Õë¶ÔÓÀ¾ÃÐÔ¹ÊÕÏ£¬Dynamo±ØÐë¼ì–˺ͱ£³ÖÊý¾ÝµÄͬ²½ £¬Dynamo²ÉÓÃÒ»ÖÖ³ÆÎª·´ìØÐ­ÒéµÄÊÖ¶ÎÀ´±£Ö¤Êý¾ÝµÄͬ²½¡£ÎªÁ˼õÉÙÊý¾Ýͬ²½¼ì²âÖÐÐèÒª´«ÊäµÄÊý¾ÝÁ¿£¬¼Ó¿ì¼ì²âËÙ¶È£¬DynamoʹÓÃÁËMerkle¹þÏ£Ê÷¼¼Êõ£¬Ã¿¸öÐéÄâ½Úµã±£´æÈý¿ÅMerkleÊ÷£¬¼´Ã¿¸ö¼üÖµÇø¼ä½¨Á¢Ò»¸öMerkleÊ÷¡£DynamoÖÐMerkle¹þÏ£Ê÷µÄÒ¶×Ó½ÚµãÊǴ洢ÿ¸öÊý¾Ý·ÖÇøÄÚËùÓÐÊý¾Ý¶ÔÓ¦µÄ¹þÏ£Öµ£¬¸¸½ÚµãÊÇÆäËùÓÐ×Ó½ÚµãµÄ¹þÏ£Öµ¡£

4¡¢¸ºÔؾùºâ

²ÉÓøĽøµÄÒ»ÖÂÐÔHash+ÐéÄâ½Úµãģʽ¡£

ÔÚ´«Í³µÄÒ»ÖÂÐÔ¹þÏ£Ëã·¨ÉÏ£¬·þÎñ½Úµã¸ú¹þÏ£»·ÉϵĵãÊÇÒ»Ò»¶ÔÓ¦µÄ¡£ÕâÀï»á´æÔÚÒ»¸öÎÊÌ⣬¾ÍÊÇÿһ¸ö½ÚµãµÄ¸ºÔØ×îºóÊDz»¾ùÔȵ쬶øÎÒÃÇÒ²ÎÞ·¨½øÐе÷Õû¡£Dynamoͨ¹ýÒ»¸ö·þÎñ½Úµã¿ÉÒÔÓжà¸ö¹þÏ£»·ÉϵÄÐéÄâ½ÚµãµÄ·½·¨£¬Ê¹µÃÿһ¸ö·þÎñ½ÚµãµÄ¸ºÔض¼ÊǾùÔȵġ£²¢ÇÒ¼ÙÈç·¢ÏÖÁËijһ¸ö½ÚµãµÄ¸ºÔعý¸ß£¬ÉÙ·ÖÅäÐéÄâ½Úµã¸øËü±ã¿ÉÒÔ½µµÍ¸Ã·þÎñ½ÚµãµÄ¸ºÔØ£¬´Ó¶øÊµÏÖÁË×Ô¶¯µØ¸ºÔؾùºâ¡£

5¡¢¶ÁдÁ÷³Ì

ÓÉÓÚ²ÉÓÃÁËÈ¥ÖÐÐÄ»¯µÄģʽ£¬Òò´Ë£¬ÐèÒª²ÉÓýϸ´ÔÓµÄģʽÀ´¿ØÖƲ¢·¢£¬DynamoʹÓÃPaxosЭÒé½áºÏGossipÀ´½øÐв¢·¢´¦Àí¡£¾ßÌå´¦ÀíģʽÈçͼ1Ëùʾ¡£

ͼ1 Dynamo дÈëºÍ¶ÁÈ¡Á÷³Ì

Dynamo²ÉÓÃÈ¥ÖÐÐĽڵãµÄP2PÉè¼Æ£¬Ôö¼ÓÁËϵͳ¿ÉÀ©Õ¹ÐÔ£¬µ«Í¬Ê±´øÀ´ÁËÒ»ÖÂÐÔÎÊÌ⣬ӰÏìÉϲãÓ¦Óá£Ò»ÖÂÐÔÎÊÌâʹµÃÒì³£Çé¿öϵIJâÊÔ±äµÃ¸ü¼ÓÀ§ÄÑ£¬ÓÉÓÚDynamoÖ»±£Ö¤×î»ù±¾µÄ×îÖÕÒ»ÖÂÐÔ£¬¶à¿Í»§¶Ë²¢·¢²Ù×÷µÄʱºòºÜÄÑÔ¤²â²Ù×÷½á¹û£¬Ò²ºÜÄÑÔ¤²â²»Ò»ÖµÄʱ¼ä´°¿Ú£¬Ó°Ïì²âÊÔÓÃÀýÉè¼Æ¡£

ÓÉÓÚÈ¥ÖÐÐÄ»¯Ä£Ê½Ëùµ¼Öµĸ´ÔÓÐԺͲ»È·¶¨ÐÔ¡£Ä¿Ç°Ö÷Á÷µÄ·Ö²¼Ê½ÏµÍ³Ò»°ã¶¼´øÓÐÖÐÐĽڵ㣬ÕâÑùÄܹ»¼ò»¯Éè¼Æ£¬¶øÇÒÖÐÐĽڵãֻά»¤ÉÙÁ¿ÔªÊý¾Ý£¬Ò»°ã²»»á³ÉΪÐÔÄÜÆ¿¾±¡£

ÌÔ±¦Tair

TairÊǰ¢Àï°Í°ÍÍÆ³öµÄÒ»¸ö¸ßÐÔÄÜ£¬·Ö²¼Ê½£¬¿ÉÀ©Õ¹£¬¸ß¿É¿¿µÄkey/value½á¹¹´æ´¢ÏµÍ³£¬ËüרÃÅÕë¶ÔСÎļþµÄ´æ´¢×öÁËÓÅ»¯£¬²¢Ìṩ¼òµ¥Ò×ÓõĽӿÚ(ÀàËÆMap)¡£

1¡¢ÕûÌå¼Ü¹¹

Tair×÷Ϊһ¸ö·Ö²¼Ê½ÏµÍ³£¬ÊÇÓÉÒ»¸öÖÐÐÄ¿ØÖƽڵãºÍÈô¸É¸ö·þÎñ½Úµã×é³É¡£Config ServerÊÇ¿ØÖƵ㣬¶øÇÒÊǵ¥µã£¬Ä¿Ç°²ÉÓÃÒ»Ö÷Ò»±¸µÄÐÎʽÀ´±£Ö¤¿É¿¿ÐÔ£¬ËùÓеÄData ServerµØÎ»¶¼Êǵȼ۵ġ£

ͼ2 Tairϵͳ¼Ü¹¹

2¡¢Êý¾Ý·Ö²¼

Tair¸ù¾ÝÊý¾ÝµÄÖ÷¼ü¼ÆËã¹þÏ£Öµºó£¬·Ö²¼µ½Q¸öͰÖУ¬¸ù¾ÝDynamoÂÛÎÄÖеÄʵÑé½áÂÛ£¬QȡֵÐèÒªÔ¶´óÓÚ¼¯ÈºµÄÎïÀí»úÆ÷Êý£¬ÀýÈçQȡֵ102400¡£

3¡¢ÈÝ´í

Èç¹ûÊDZ¸¸±±¾£¬ÔòÖ±½ÓÇ¨ÒÆ;Èç¹ûÊÇÖ÷¸±±¾£¬ÔòÏÈÇл»ÔÙÇ¨ÒÆ¡£

4¡¢Êý¾ÝÇ¨ÒÆ

»úÆ÷¼ÓÈë»òÕ߸ºÔز»¾ùºâ¿ÉÄܵ¼ÖÂÍ°Ç¨ÒÆ£¬Ç¨ÒƵĹý³ÌÖÐÐèÒª±£Ö¤¶ÔÍâ·þÎñ¡£µ±Ç¨ÒÆ·¢Éúʱ£¬¼ÙÉèData Server AÒª°ÑͰ1¡¢2¡¢3Ç¨ÒÆµ½Data Server B¡£Ç¨ÒÆÍê³Éǰ£¬¿Í»§¶ËµÄ·ÓɱíûÓб仯£¬¿Í»§¶Ë¶Ô1¡¢2¡¢3µÄ·ÃÎÊÇëÇó¶¼»á·Óɵ½A¡£ÏÖÔÚ¼ÙÉè1»¹Ã»¿ªÊ¼Ç¨ÒÆ£¬2ÕýÔÚÇ¨ÒÆÖУ¬3ÒѾ­Ç¨ÒÆÍê³É¡£ÄÇôÈç¹û¶Ô1·ÃÎÊ£¬AÖ±½Ó·þÎñ;Èç¹û¶Ô3·ÃÎÊ£¬A»á°ÑÇëÇóת·¢¸øB£¬²¢ÇÒ½«BµÄ·µ»Ø½á¹û·µ»Ø¸øÓû§;Èç¹û¶Ô2·ÃÎÊ£¬ÓÉA´¦Àí£¬Í¬Ê±Èç¹ûÊǶÔ2µÄÐ޸IJÙ×÷£¬»á¼Ç¼ÐÞ¸ÄÈÕÖ¾£¬µÈµ½Í°2Ç¨ÒÆÍê³Éʱ£¬»¹Òª°ÑÐÞ¸ÄÈÕÖ¾·¢Ë͵½B£¬ÔÚBÉÏÓ¦ÓÃÕâЩÐ޸IJÙ×÷£¬Ö±µ½AºÍBÖ®¼äÊý¾ÝÍêȫһÖÂÇ¨ÒÆ²ÅÕæÕýÍê³É¡£

5¡¢ÅäÖ÷þÎñÆ÷(Config Server)

¿Í»§¶Ë»º´æÂ·ÓÉ±í£¬´ó¶àÊýÇé¿öÏ£¬¿Í»§¶Ë²»ÐèÒª·ÃÎÊÅäÖ÷þÎñÆ÷(Config Server)£¬Config Serverå´»úÒ²²»Ó°Ïì¿Í»§¶ËÕý³£·ÃÎÊ¡£Èç¹ûData Server·¢ÏÖ¿Í»§¶ËµÄ°æ±¾ºÅ¹ý¾É£¬Ôò»á֪ͨ¿Í»§¶ËÈ¥Config Server»ñȡһ·ÝеķÓÉ±í¡£Èç¹û¿Í»§¶Ë·ÃÎÊij̨Data Server·¢ÉúÁ˲»¿É´ïµÄÇé¿ö(¸ÃData Server¿ÉÄÜå´»úÁË)£¬¿Í»§¶Ë»áÖ÷¶¯È¥Config Server»ñȡеķÓÉ±í¡£

6¡¢Êý¾Ý·þÎñÆ÷(Data Server)

Tair´æ´¢ÒýÇæÓÐÒ»¸ö³éÏó²ã£¬Ö»ÒªÂú×ã´æ´¢ÒýÇæÐèÒªµÄ½Ó¿Ú£¬¾Í¿ÉÒԺܷ½±ãµØÌæ»»Tairµ×²ãµÄ´æ´¢ÒýÇæ¡£

Tair×îÖ÷ÒªµÄÓÃ;ÔÚÓÚ·Ö²¼Ê½»º´æ£¬³Ö¾Ã»¯´æ´¢Æð²½±È½ÏÍí£¬ÔÚʵÏÖϸ½ÚÉÏÒ²ÓÐһЩ²»¾¡ÈçÈËÒâµÄµØ·½¡£ÀýÈ磬Tair³Ö¾Ã»¯´æ´¢Í¨¹ý¸´ÖƼ¼ÊõÀ´Ìá¸ß¿É¿¿ÐÔ£¬È»¶ø£¬ÕâÖÖ¸´ÖÆÊÇÒì²½µÄ¡£Òò´Ë£¬µ±ÓÐData Server·¢Éú¹ÊÕÏʱ£¬¿Í»§ÓпÉÄÜÔÚÒ»¶¨Ê±¼äÄÚ¶Á²»µ½×îеÄÊý¾Ý£¬ÉõÖÁ·¢Éú×îÐÂÐ޸ĵÄÊý¾Ý¶ªÊ§µÄÇé¿ö¡£

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

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

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

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