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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ϸ˵·Ö²¼Ê½Êý¾Ý¿âµÄ¹ýÈ¥¡¢ÏÖÔÚÓëδÀ´
 
À´Ô´£º51cto ·¢²¼ÓÚ£º 2017-5-17
  2709  次浏览      20
 

Ëæ×Å´óÊý¾ÝÕâ¸ö¸ÅÄîµÄÐËÆðÒÔ¼°ÕæʵÐèÇóÔÚ¸÷¸öÐÐÒµµÄÂäµØ£¬ºÜ¶àÈ˶¼ÈÈÖÔÓÚÌÖÂÛ·Ö²¼Ê½Êý¾Ý¿â£¬½ñÌì¾ÍÕâ¸ö»°Ì⣬Ö÷Òª·ÖΪÈý²¿·Ö£ºµÚÒ»²¿·Ö½²Ò»Ï·ֲ¼Ê½Êý¾Ý¿âµÄ¹ýÈ¥ºÍÏÖ×´£¬Ï£Íû´ó¼ÒÄܶÔÕâ¸öÁìÓòÓÐÒ»¸öÈ«ÃæµÄÁ˽â;µÚ¶þ²¿·Ö½²Ò»ÏÂTiDBµÄ¼Ü¹¹ÒÔ¼°×î½üµÄһЩ½øÕ¹;×îºó½áºÏÎÒÃÇ¿ª·¢TiDB¹ý³ÌÖеÄһЩ˼¿¼½²Ò»Ï·ֲ¼Ê½Êý¾Ý¿âδÀ´¿ÉÄܵÄÇ÷ÊÆ¡£

Ò»¡¢·Ö²¼Ê½Êý¾Ý¿âµÄÀúÊ·ºÍÏÖ×´

1¡¢´Óµ¥»úÊý¾Ý¿â˵Æð

¹ØϵÐÍÊý¾Ý¿âÆðÔ´×Ô1970Äê´ú£¬Æä×î»ù±¾µÄ¹¦ÄÜÓÐÁ½¸ö£º

°ÑÊý¾Ý´æÏÂÀ´£»

Âú×ãÓû§¶ÔÊý¾ÝµÄ¼ÆËãÐèÇó¡£

µÚÒ»µãÊÇ×î»ù±¾µÄÒªÇó£¬Èç¹ûÒ»¸öÊý¾Ý¿âû°ì·¨°ÑÊý¾Ý°²È«ÍêÕû´æÏÂÀ´£¬ÄÇôºóÐøµÄÈκι¦Äܶ¼Ã»ÓÐÒâÒå¡£µ±Âú×ãµÚÒ»µãºó£¬Óû§½ô½ÓמͻáÒªÇóÄܹ»Ê¹ÓÃÊý¾Ý£¬¿ÉÄÜÊǼòµ¥µÄ²éѯ£¬±ÈÈç°´ÕÕij¸öKeyÀ´²éÕÒValue;Ò²¿ÉÄÜÊǸ´ÔӵIJéѯ£¬±ÈÈçÒª¶ÔÊý¾Ý×ö¸´ÔӵľۺϲÙ×÷¡¢Á¬±í²Ù×÷¡¢·Ö×é²Ù×÷¡£ÍùÍùµÚ¶þµãÊÇÒ»¸ö±ÈµÚÒ»µã¸üÄÑÂú×ãµÄÐèÇó¡£

ÔÚÊý¾Ý¿â·¢Õ¹ÔçÆڽ׶Σ¬ÕâÁ½¸öÐèÇóÆäʵ²»ÄÑÂú×㣬±ÈÈçÓкܶàÓÅÐãµÄÉÌÒµÊý¾Ý¿â²úÆ·£¬ÈçOracle/DB2¡£ÔÚ1990ÄêÖ®ºó£¬³öÏÖÁË¿ªÔ´Êý¾Ý¿âMySQLºÍPostgreSQL¡£ÕâЩÊý¾Ý¿â²»¶ÏµØÌáÉýµ¥»úʵÀýÐÔÄÜ£¬ÔÙ¼ÓÉÏ×ñѭĦ¶û¶¨ÂɵÄÓ²¼þÌáÉýËٶȣ¬ÍùÍùÄܹ»ºÜºÃµØÖ§³ÅÒµÎñ·¢Õ¹¡£

½ÓÏÂÀ´£¬Ëæ×Å»¥ÁªÍøµÄ²»¶ÏÆÕ¼°ÌرðÊÇÒƶ¯»¥ÁªÍøµÄÐËÆð£¬Êý¾Ý¹æÄ£±¬Õ¨Ê½Ôö³¤£¬¶øÓ²¼þÕâЩÄêµÄ½ø²½ËÙ¶ÈÈ´ÔÚÖð½¥¼õÂý£¬ÈËÃÇÒ²ÔÚµ£ÐÄĦ¶û¶¨ÂÉ»áʧЧ¡£ÔÚ´ËÏû±Ë³¤µÄÇé¿öÏ£¬µ¥»úÊý¾Ý¿âÔ½À´Ô½ÄÑÒÔÂú×ãÓû§ÐèÇ󣬼´Ê¹Êǽ«Êý¾Ý±£´æÏÂÀ´Õâ¸ö×î»ù±¾µÄÐèÇó¡£

2¡¢·Ö²¼Ê½Êý¾Ý¿â

ËùÒÔ2005Äê×óÓÒ£¬ÈËÃÇ¿ªÊ¼Ì½Ë÷·Ö²¼Ê½Êý¾Ý¿â£¬´øÆðÁËNoSQLÕⲨÀ˳±¡£ÕâЩÊý¾Ý¿â½â¾öµÄÊ×ÒªÎÊÌâÊǵ¥»úÉÏÎÞ·¨±£´æÈ«²¿Êý¾Ý£¬ÆäÖÐÒÔHBase/Cassadra/MongoDBΪ´ú±í¡£ÎªÁËʵÏÖÈÝÁ¿µÄˮƽÀ©Õ¹£¬ÕâЩÊý¾Ý¿âÍùÍùÒª·ÅÆúÊÂÎñ£¬»òÕßÊÇÖ»Ìṩ¼òµ¥µÄKV½Ó¿Ú¡£´æ´¢Ä£Ð͵ļò»¯Îª´æ´¢ÏµÍ³µÄ¿ª·¢´øÀ´Á˱ãÀû£¬µ«ÊǽµµÍÁ˶ÔÒµÎñµÄÖ§³Å¡£

(1)NoSQLµÄ½ø»÷

HBaseÊÇÆäÖеĵäÐÍ´ú±í¡£HBaseÊÇHadoopÉú̬ÖеÄÖØÒª²úÆ·£¬Google BigTableµÄ¿ªÔ´ÊµÏÖ£¬ËùÒÔÕâÀïÏÈ˵һÏÂBigTable¡£

BigTableÊÇGoogleÄÚ²¿Ê¹Óõķֲ¼Ê½Êý¾Ý¿â£¬¹¹½¨ÔÚGFSµÄ»ù´¡ÉÏ£¬ÃÖ²¹ÁË·Ö²¼Ê½Îļþϵͳ¶ÔÓÚС¶ÔÏóµÄ²åÈë¡¢¸üС¢Ëæ»ú¶ÁÇëÇóµÄȱÏÝ¡£HBaseÒ²°´ÕÕÕâ¸ö¼Ü¹¹ÊµÏÖ£¬µ×²ã»ùÓÚHDFS¡£HBase±¾Éí²¢²»Êµ¼Ê´æ´¢Êý¾Ý£¬³Ö¾Ã»¯µÄÈÕÖ¾ºÍSST file´æ´¢ÔÚHDFSÉÏ£¬Region Serverͨ¹ý MemTable Ìṩ¿ìËٵIJéѯ£¬Ð´È붼ÊÇÏÈдÈÕÖ¾£¬ºǫ́½øÐÐCompact£¬½«Ëæ»úдת»»ÎªË³Ðòд¡£Êý¾Ýͨ¹ý Region ÔÚÂß¼­ÉϽøÐзָ¸ºÔؾùºâͨ¹ýµ÷½Ú¸÷¸öRegion Server¸ºÔðµÄRegionÇø¼äʵÏÖ£¬RegionÔÚ³ÖÐøдÈëºó£¬»á½øÐзÖÁÑ£¬È»ºó±»¸ºÔؾùºâ²ßÂÔµ÷¶Èµ½¶à¸öRegion ServerÉÏ¡£

Ç°ÃæÌáµ½ÁË£¬HBase±¾Éí²¢²»´æ´¢Êý¾Ý£¬ÕâÀïµÄRegion½öÊÇÂß¼­ÉϵĸÅÄÊý¾Ý»¹ÊÇÒÔÎļþµÄÐÎʽ´æ´¢ÔÚHDFSÉÏ£¬HBase²¢²»¹ØÐĸ±±¾¸öÊý¡¢Î»ÖÃÒÔ¼°Ë®Æ½À©Õ¹ÎÊÌ⣬ÕâЩ¶¼ÒÀÀµÓÚHDFSʵÏÖ¡£ºÍBigTableÒ»Ñù£¬HBaseÌṩÐ춵ÄÒ»ÖÂÐÔ£¬´ÓCAPÀíÂ۵ĽǶÈÀ´¿´£¬ËüÊÇÒ»¸öCPµÄϵͳ£¬²¢ÇÒûÓиü½øÒ»²½Ìṩ ACID µÄ¿çÐÐÊÂÎñ£¬Ò²ÊǺÜÒź¶¡£

HBaseµÄÓÅÊÆÔÚÓÚͨ¹ýÀ©Õ¹Region Server¿ÉÒÔ¼¸ºõÏßÐÔÌáÉýϵͳµÄÍÌÍ£¬¼°HDFS±¾Éí¾Í¾ßÓеÄˮƽÀ©Õ¹ÄÜÁ¦£¬ÇÒÕû¸öϵͳ³ÉÊìÎȶ¨¡£µ«HBaseÒÀÈ»ÓÐһЩ²»×ã¡£Ê×ÏÈ£¬HadoopʹÓÃJava¿ª·¢£¬GCÑÓ³ÙÊÇÒ»¸öÎÞ·¨±ÜÃâÎÊÌ⣬Õâ¶ÔϵͳµÄÑÓ³ÙÔì³ÉһЩӰÏì¡£ÁíÍ⣬ÓÉÓÚHBase±¾Éí²¢²»´æ´¢Êý¾Ý£¬ºÍHDFSÖ®¼äµÄ½»»¥»á¶àÒ»²ãÐÔÄÜËðºÄ¡£µÚÈý£¬HBaseºÍBigTableÒ»Ñù£¬²¢²»Ö§³Ö¿çÐÐÊÂÎñ£¬ËùÒÔÔÚGoogleÄÚ²¿ÓÐÍŶӿª·¢ÁËMegaStore¡¢PercolatorÕâЩ»ùÓÚBigTableµÄÊÂÎñ²ã¡£Jeff Dean³ÐÈϺܺó»ÚûÓÐÔÚBigTableÖмÓÈë¿çÐÐÊÂÎñ£¬ÕâÒ²ÊÇSpanner³öÏÖµÄÒ»¸öÔ­Òò¡£

(2)RDMSµÄ¾ÈÊê

³ýÁËNoSQLÖ®Í⣬RDMSϵͳҲ×öÁ˲»ÉÙŬÁ¦À´ÊÊÓ¦ÒµÎñµÄ±ä»¯£¬Ò²¾ÍÊǹØϵÐÍÊý¾Ý¿âµÄÖмä¼þºÍ·Ö¿â·Ö±í·½°¸¡£×öÒ»¿îÖмä¼þÐèÒª¿¼ÂǺܶ࣬±ÈÈç½âÎö SQL£¬½âÎö³öShardKey£¬È»ºó¸ù¾ÝShardKey·Ö·¢ÇëÇó£¬Ôٺϲ¢½á¹û¡£ÁíÍâÔÚÖмä¼þÕâ²ã»¹ÐèҪά»¤Session¼°ÊÂÎñ״̬£¬¶øÇÒ´ó¶àÊý·½°¸²¢²»Ö§³Ö¿çshardµÄÊÂÎñ£¬Õâ¾Í²»¿É±ÜÃâµØµ¼ÖÂÁËÒµÎñʹÓÃÆðÀ´»á±È½ÏÂé·³£¬ÐèÒª×Ô¼ºÎ¬»¤ÊÂÎñ״̬¡£´ËÍ⣬»¹Óж¯Ì¬µÄÀ©ÈÝËõÈݺÍ×Ô¶¯µÄ¹ÊÕϻָ´£¬ÔÚ¼¯Èº¹æÄ£Ô½À´Ô½´óµÄÇé¿öÏ£¬ÔËάºÍDDLµÄ¸´ÔÓ¶ÈÊÇÖ¸Êý¼¶ÉÏÉý¡£

¹úÄÚ¿ª·¢ÕßÔÚÕâ¸öÁìÓòÓйýºÜ¶àµÄÖøÃûµÄÏîÄ¿£¬±ÈÈç°¢ÀïµÄCobar¡¢TDDL£¬ºóÀ´ÉçÇø»ùÓÚCobar¸Ä½øµÄMyCAT£¬360¿ªÔ´µÄAtlasµÈ£¬¶¼ÊôÓÚÕâÒ»ÀàÖмä¼þ²úÆ·¡£ÔÚÖмä¼þÕâ¸ö·½°¸ÉÏÓÐÒ»¸öÖªÃûµÄ¿ªÔ´ÏîÄ¿ÊÇYoutubeµÄVitess£¬ÕâÊÇÒ»¸ö¼¯´ó³ÉµÄÖмä¼þ²úÆ·£¬ÄÚÖÃÁËÈÈÊý¾Ý»º´æ¡¢Ë®Æ½¶¯Ì¬·ÖƬ¡¢¶Áд·ÖÀëµÈ£¬µ«ÕâÒ²Ôì³ÉÁËÕû¸öÏîÄ¿·Ç³£¸´ÔÓ¡£

ÁíÍâÒ»¸öÖµµÃÒ»ÌáµÄÊÇPostgreSQL XCÕâ¸öÏîÄ¿£¬ÆäÕûÌåµÄ¼Ü¹¹ÓеãÏñÔçÆÚ°æ±¾µÄOceanBase£¬ÓÉÒ»¸öÖÐÑë½ÚµãÀ´´¦ÀíЭµ÷·Ö²¼Ê½ÊÂÎñ£¬Êý¾Ý·ÖÉ¢ÔÚ¸÷¸ö´æ´¢½ÚµãÉÏ£¬Ó¦¸ÃÊÇÄ¿Ç°PG ÉçÇø×îºÃµÄ·Ö²¼Ê½À©Õ¹·½°¸£¬²»ÉÙÈËÔÚ»ùÓÚÕâ¸öÏîÄ¿×ö×Ô¼ºµÄϵͳ¡£

3¡¢NewSQLµÄ·¢Õ¹

2012~2013ÄêGoogle Ïà¼Ì·¢±íÁËSpannerºÍF1Á½Ì×ϵͳµÄÂÛÎÄ£¬ÈÃÒµ½çµÚÒ»´Î¿´µ½Á˹ØϵģÐͺÍNoSQLµÄÀ©Õ¹ÐÔÔÚÒ»¸ö´ó¹æÄ£Éú²úϵͳÉÏÈںϵĿÉÄÜÐÔ¡£ Spanner ͨ¹ýʹÓÃÓ²¼þÉ豸(GPSʱÖÓ+Ô­×ÓÖÓ)ÇÉÃîµØ½â¾öʱÖÓͬ²½µÄÎÊÌ⣬¶øÔÚ·Ö²¼Ê½ÏµÍ³ÀʱÖÓÕýÊÇ×îÈÃÈËÍ·Í´µÄÎÊÌâ¡£SpannerµÄÇ¿´óÖ®´¦ÔÚÓÚ¼´Ê¹Á½¸öÊý¾ÝÖÐÐĸôµÃ·Ç³£Ô¶£¬Ò²Äܱ£Ö¤Í¨¹ýTrueTime API»ñÈ¡µÄʱ¼äÎó²îÔÚÒ»¸öºÜСµÄ·¶Î§ÄÚ(10ms)£¬²¢ÇÒ²»ÐèҪͨѶ¡£SpannerµÄµ×²ãÈÔÈ»»ùÓÚ·Ö²¼Ê½Îļþϵͳ£¬²»¹ýÂÛÎÄÀïҲ˵ÊÇ¿ÉÒÔδÀ´ÓÅ»¯µÄµã¡£

GoogleµÄÄÚ²¿µÄÊý¾Ý¿â´æ´¢ÒµÎñ£¬´ó¶àÊÇ3~5¸±±¾£¬ÖØÒªµÄÊý¾ÝÐèÒª7¸±±¾£¬ÇÒÕâЩ¸±±¾±é²¼È«Çò¸÷´óÖÞµÄÊý¾ÝÖÐÐÄ£¬ÓÉÓÚÆÕ±éʹÓÃÁËPaxos£¬ÑÓ³ÙÊÇ¿ÉÒÔËõ¶Ìµ½Ò»¸ö¿ÉÒÔ½ÓÊܵķ¶Î§(дÈëÑÓ³Ù100msÒÔÉÏ)£¬ÁíÍâÓÉPaxos´øÀ´µÄAuto-FailoverÄÜÁ¦£¬¸üÊÇÈÃÕû¸ö¼¯Èº¼´Ê¹Êý¾ÝÖÐÐÄ̱»¾£¬ÒµÎñ²ã¶¼ÊÇ͸Ã÷ÎÞ¸ÐÖªµÄ¡£F1Êǹ¹½¨ÔÚSpannerÖ®ÉÏ£¬¶ÔÍâÌṩÁËSQL½Ó¿Ú£¬F1ÊÇÒ»¸ö·Ö²¼Ê½MPP SQL²ã£¬Æä±¾Éí²¢²»´æ´¢Êý¾Ý£¬¶øÊǽ«¿Í»§¶ËµÄSQL·­Òë³É¶ÔKVµÄ²Ù×÷£¬µ÷ÓÃSpannerÀ´Íê³ÉÇëÇó¡£

SpannerºÍF1µÄ³öÏÖ±êÖ¾×ŵÚÒ»¸öNewSQLÔÚÉú²ú»·¾³ÖÐÌṩ·þÎñ£¬½«ÏÂÃ漸¸ö¹¦ÄÜÔÚÒ»Ì×ϵͳÖÐÌṩ£º

SQLÖ§³Ö

ACIDÊÂÎñ

ˮƽÀ©Õ¹

Auto Failover

¶à»ú·¿ÒìµØÈÝÔÖ

ÕýÒòΪ¾ß±¸Èç´Ë¶àµÄÓÕÈËÌØÐÔ£¬ÔÚGoogleÄÚ²¿£¬´óÁ¿µÄÒµÎñÒѾ­´ÓÔ­À´µÄ BigTableÇл»µ½SpannerÖ®ÉÏ¡£ÏàÐÅÕâ¶ÔÒµ½çµÄ˼·»áÓо޴óµÄÓ°Ï죬¾ÍÏñµ±ÄêµÄHadoopÒ»Ñù£¬GoogleµÄ»ù´¡Èí¼þµÄ¼¼ÊõÇ÷ÊÆÊÇ×ßÔÚÉçÇøÇ°ÃæµÄ¡£

Spanner/F1ÂÛÎÄÒýÆðÁËÉçÇøµÄ¹ã·ºµÄ¹Ø×¢£¬ºÜ¿ì¿ªÊ¼³öÏÖÁË×·ËæÕß¡£µÚÒ»¸öÍŶÓÊÇCockroachLabs×öµÄCockroachDB¡£CockroachDBµÄÉè¼ÆºÍSpannerºÜÏñ£¬µ«ÊÇûÓÐÑ¡ÔñTrueTime API £¬¶øÊÇʹÓÃHLC(Hybrid logical clock)£¬Ò²¾ÍÊÇNTP +Âß¼­Ê±ÖÓÀ´´úÌæTrueTimeʱ¼ä´Á£¬ÁíÍâCockroachDBÑ¡ÓÃRaft×öÊý¾Ý¸´ÖÆЭÒ飬µ×²ã´æ´¢ÂäµØÔÚRocksDBÖУ¬¶ÔÍâµÄ½Ó¿ÚÑ¡ÔñÁËPGЭÒé¡£

CockroachDBµÄ¼¼ÊõÑ¡ÐͱȽϼ¤½ø£¬±ÈÈçÒÀÀµÁËHLCÀ´×öÊÂÎñ£¬Ê±¼ä´ÁµÄ¾«È·¶È²¢Ã»Óа취×öµ½10msÄÚµÄÑÓ³Ù£¬ËùÒÔCommit WaitÐèÒªÓû§×Ô¼ºÖ¸¶¨£¬ÆäÑ¡ÔñÈ¡¾öÓÚÓû§µÄNTP·þÎñʱÖÓÎó²î£¬Õâµã¶ÔÓÚÓû§À´Ëµ·Ç³£²»ÓѺᣵ±È» CockroachDBµÄÕâЩ¼¼ÊõÑ¡ÔñÒ²´øÀ´Á˺ܺõÄÒ×ÓÃÐÔ£¬ËùÓÐÂß¼­¶¼ÔÚÒ»¸ö×é¼þÖУ¬²¿Êð·Ç³£¼òµ¥£¬Õâ¸öÊǷdz£´óµÄÓŵ㡣

ÁíÒ»¸ö×·ËæÕß¾ÍÊÇÎÒÃÇ×öµÄTiDB¡£Õâ¸öÏîÄ¿ÒѾ­¿ª·¢ÁËÁ½Äêʱ¼ä£¬µ±È»ÔÚ¿ªÊ¼¶¯ÊÖÇ°ÎÒÃÇÒ²×¼±¸Á˺ܳ¤Ê±¼ä¡£½ÓÏÂÀ´ÎÒ»á½éÉÜÒ»ÏÂÕâ¸öÏîÄ¿¡£

¶þ¡¢TiDBµÄ¼Ü¹¹ºÍ×î½ü½øÕ¹

TiDB±¾ÖÊÉÏÊÇÒ»¸ö¸ü¼ÓÕýͳµÄSpannerºÍF1ʵÏÖ£¬²¢²»CockroachDBÄÇÑùÑ¡Ôñ½«SQLºÍKVÈںϣ¬¶øÊÇÏñSpannerºÍF1Ò»ÑùÑ¡Ôñ·ÖÀë¡£ÏÂÃæÊÇTiDBµÄ¼Ü¹¹Í¼£º

ÕâÑù·Ö²ãµÄ˼ÏëÒ²ÊǹᴩÕû¸öTiDBÏîĿʼÖյģ¬¶ÔÓÚ²âÊÔ£¬¹ö¶¯Éý¼¶ÒÔ¼°¸÷²ãµÄ¸´ÔӶȿØÖÆ»á±È½ÏÓÐÓÅÊÆ£¬ÁíÍâTiDBÑ¡ÔñÁËMySQLЭÒéºÍÓï·¨µÄ¼æÈÝ£¬MySQLÉçÇøµÄORM¿ò¼Ü¡¢ÔËά¹¤¾ß£¬Ö±½Ó¿ÉÒÔÓ¦ÓÃÔÚTiDBÉÏ£¬ÁíÍâºÍ SpannerÒ»Ñù£¬TiDBÊÇÒ»¸öÎÞ״̬µÄMPP SQL Layer£¬Õû¸öϵͳµÄµ×²ãÊÇÒÀÀµ TiKV À´Ìṩ·Ö²¼Ê½´æ´¢ºÍ·Ö²¼Ê½ÊÂÎñµÄÖ§³Ö£¬TiKVµÄ·Ö²¼Ê½ÊÂÎñÄ£ÐͲÉÓõÄÊÇGoogle PercolatorµÄÄ£ÐÍ£¬µ«ÊÇÔÚ´ËÖ®ÉÏ×öÁ˺ܶàÓÅ»¯£¬PercolatorµÄÓŵãÊÇÈ¥ÖÐÐÄ»¯³Ì¶È·Ç³£¸ß£¬Õû¸ö¼ÌÐø²»ÐèÒªÒ»¸ö¶ÀÁ¢µÄÊÂÎñ¹ÜÀíÄ£¿é£¬ÊÂÎñÌύ״̬ÕâЩÐÅÏ¢ÆäʵÊǾùÔÈ·ÖÉ¢ÔÚϵͳµÄ¸÷¸ökeyµÄmetaÖУ¬Õû¸öÄ£ÐÍΨһÒÀÀµµÄÊÇÒ»¸öÊÚʱ·þÎñÆ÷£¬ÔÚÎÒÃǵÄϵͳÉÏ£¬¼«ÏÞÇé¿öÕâ¸öÊÚʱ·þÎñÆ÷ÿÃëÄÜ·ÖÅä 400wÒÔÉϸöµ¥µ÷µÝÔöµÄʱ¼ä´Á£¬´ó¶àÊýÇé¿ö»ù±¾¹»ÓÃÁË(±Ï¾¹ÓÐGoogleÁ¿¼¶µÄ³¡¾°²¢²»¶à¼û)£¬Í¬Ê±ÔÚTiKVÖУ¬Õâ¸öÊÚʱ·þÎñ±¾ÉíÊǸ߿ÉÓõģ¬Ò²²»´æÔÚµ¥µã¹ÊÕϵÄÎÊÌâ¡£

ÉÏÃæÊÇTiKVµÄ¼Ü¹¹Í¼¡£TiKVºÍCockroachDBÒ»ÑùÒ²ÊÇÑ¡ÔñÁËRaft×÷ΪÕû¸öÊý¾Ý¿âµÄ»ù´¡£¬²»Ò»ÑùµÄÊÇ£¬TiKVÕûÌå²ÉÓÃRustÓïÑÔ¿ª·¢£¬×÷Ϊһ¸öûÓÐGCºÍ RuntimeµÄÓïÑÔ£¬ÔÚÐÔÄÜÉÏ¿ÉÒÔÍÚ¾òµÄDZÁ¦»á¸ü´ó¡£²»Í¬TiKVʵÀýÉϵĶà¸ö¸±±¾Ò»Æð¹¹³ÉÁËÒ»¸öRaft Group£¬PD¸ºÔð¶Ô¸±±¾µÄλÖýøÐе÷¶È£¬Í¨¹ýÅäÖõ÷¶È²ßÂÔ£¬¿ÉÒÔ±£Ö¤Ò»¸öRaft GroupµÄ¶à¸ö¸±±¾²»»á±£´æÔÚͬһ̨»úÆ÷/»ú¼Ü/»ú·¿ÖС£

³ýÁ˺ËÐĵÄTiDB¡¢TiKVÖ®Í⣬ÎÒÃÇ»¹ÌṩÁ˲»ÉÙÒ×ÓõŤ¾ß£¬±ãÓÚÓû§×öÊý¾ÝǨÒƺͱ¸·Ý¡£±ÈÈçÎÒÃÇÌṩµÄSyncer£¬²»µ«Äܽ«µ¥¸öMySQLʵÀýÖеÄÊý¾Ýͬ²½µ½TiDB£¬»¹Äܽ«¶à¸öMySQLʵÀýÖеÄÊý¾Ý»ã×ܵ½Ò»¸öTiDB¼¯ÈºÖУ¬ÉõÖÁÊǽ«ÒѾ­·Ö¿â·Ö±íµÄÊý¾ÝÔٺϿâºÏ±í¡£ÕâÑùÊý¾ÝµÄͬ²½·½Ê½¸ü¼ÓÁé»îºÃÓá£

TiDBÄ¿Ç°¼´½«·¢²¼RC3°æ±¾£¬Ô¤¼ÆÁùÔ·ÝÄܹ»·¢²¼GA°æ±¾¡£ÔÚ¼´½«µ½À´µÄ RC3°æ±¾ÖУ¬¶ÔMySQL¼æÈÝÐÔ¡¢SQLÓÅ»¯Æ÷¡¢ÏµÍ³Îȶ¨ÐÔ¡¢ÐÔÄÜ×öÁË´óÁ¿µÄ¹¤×÷¡£¶ÔÓÚOLTP³¡¾°£¬ÖصãÓÅ»¯Ð´ÈëÐÔÄÜ¡£ÁíÍâÌṩÁËȨÏÞ¹ÜÀí¹¦ÄÜ£¬Óû§¿ÉÒÔ°´ÕÕMySQLµÄȨÏÞ¹ÜÀí·½Ê½¿ØÖÆÊý¾Ý·ÃÎÊȨÏÞ¡£¶ÔÓÚOLAP³¡¾°£¬Ò²¶ÔÓÅ»¯Æ÷×öÁË´óÁ¿µÄ¹¤×÷£¬°üÀ¨¸ü¶àÓï¾äµÄÓÅ»¯¡¢Ö§³ÖSortMergeJoinËã×Ó¡¢IndexLookupJoinËã×Ó¡£ÁíÍâ¶ÔÄÚ´æʹÓÃÒ²×öÁË´óÁ¿µÄÓÅ»¯£¬Ò»Ð©³¡¾°Ï£¬ÄÚ´æʹÓÃϽµ75%¡£

³ýÁËTiDB±¾ÉíµÄÓÅ»¯Ö®Í⣬ÎÒÃÇ»¹ÔÚ×öÒ»¸öÐµĹ¤³Ì£¬Ãû×Ö½ÐTiSpark¡£¼òµ¥À´½²£¬¾ÍÊÇÈÃSpark¸üºÃµØ½ÓÈëTiDB¡£ÏÖÔÚÆäʵSparkÒѾ­¿ÉÒÔͨ¹ýJDBC½Ó¿Ú¶ÁÈ¡TiDBÖеÄÊý¾Ý£¬µ«ÊÇÕâÀïÓÐÁ½¸öÎÊÌ⣺1. Ö»ÄÜͨ¹ýµ¥¸öTiDB½Úµã¶ÁÈ¡Êý¾ÝÇÒÊý¾ÝÐèÒª´ÓTiKVÖо­¹ý TiDB ÖÐת¡£2. ²»ÄܺÍSparkµÄÓÅ»¯Æ÷Ïà½áºÏ£¬ÎÒÃÇÆÚÍûÄܺÍSparkµÄÓÅ»¯Æ÷ÕûºÏ£¬½«Filter¡¢¾ÛºÏÄÜͨ¹ýTiKVµÄ·Ö²¼Ê½¼ÆËãÄÜÁ¦ÌáËÙ¡£Õâ¸öÏîÄ¿ÒѾ­¿ªÊ¼¿ª·¢£¬Ô¤¼Æ½üÆÚ¿ªÔ´£¬ÎåÔ·ݾÍÄÜÓеÚÒ»¸ö°æ±¾¡£

Èý¡¢·Ö²¼Ê½Êý¾Ý¿âµÄδÀ´Ç÷ÊÆ

¹ØÓÚδÀ´£¬ÎÒ¾õµÃδÀ´µÄÊý¾Ý¿â»áÓм¸¸öÇ÷ÊÆ£¬Ò²ÊÇTiDBÏîĿ׷ÇóµÄÄ¿±ê£º

1¡¢Êý¾Ý¿â»áËæ×ÅÒµÎñÔÆ»¯£¬Î´À´Ò»ÇеÄÒµÎñ¶¼»áÅÜÔÚÔƶˣ¬²»¹ÜÊÇ˽ÓÐÔÆ»òÕß¹«ÓÐÔÆ£¬ÔËάÍŶӽӴ¥µÄ¿ÉÄÜÔÙÒ²²»ÊÇÕæʵµÄÎïÀí»ú£¬¶øÊÇÒ»¸ö¸ö¸ôÀëµÄÈÝÆ÷»òÕß¡¸¼ÆËã×ÊÔ´¡¹£¬Õâ¶ÔÊý¾Ý¿âÒ²ÊÇÒ»¸öÌôÕ½£¬ÒòΪÊý¾Ý¿âÌìÉú¾ÍÊÇÓÐ״̬µÄ£¬Êý¾Ý×ÜÊÇÒª´æ´¢ÔÚÎïÀíµÄ´ÅÅÌÉÏ£¬¶øÊý¾ÝÒƶ¯µÄ´ú¼Û±ÈÒƶ¯ÈÝÆ÷µÄ´ú¼Û¿ÉÄÜ´óºÜ¶à¡£

2¡¢¶à×⻧¼¼Êõ»á³ÉΪ±êÅ䣬һ¸ö´óÊý¾Ý¿â³ÐÔØÒ»ÇеÄÒµÎñ£¬Êý¾ÝÔڵײã´òͨ£¬Éϲãͨ¹ýȨÏÞ£¬ÈÝÆ÷µÈ¼¼Êõ½øÐиôÀ룬µ«ÊÇÊý¾ÝµÄ´òͨºÍÀ©Õ¹»á±äµÃÒì³£¼òµ¥£¬½áºÏµÚÒ»µãÌáµ½µÄÔÆ»¯£¬ÒµÎñ²ã¿ÉÒÔÔÙÒ²²»ÓùØÐÄÎïÀí»úµÄÈÝÁ¿ºÍÍØÆË£¬Ö»ÐèÒªÈÏΪµ×²ãÊÇÒ»¸öÎÞÇî´óµÄÊý¾Ý¿âƽ̨¼´¿É£¬²»ÓÃÔÙµ£Ðĵ¥»úÈÝÁ¿ºÍ¸ºÔؾùºâµÈÎÊÌâ¡£

3¡¢OLAPºÍOLTPÒµÎñ»áÈںϣ¬Óû§½«Êý¾Ý´æ´¢½øÈ¥ºó£¬ÐèÒª±È½Ï·½±ã¸ßЧµÄ·½Ê½·ÃÎÊÕâ¿éÊý¾Ý£¬µ«ÊÇOLTPºÍOLAPÔÚSQLÓÅ»¯Æ÷/Ö´ÐÐÆ÷Õâ²ãµÄʵÏÖÒ»¶¨ÊÇǧ²îÍò±ðµÄ¡£ÒÔÍùµÄʵÏÖÖУ¬Óû§ÍùÍùÊÇͨ¹ýETL¹¤¾ß½«Êý¾Ý´ÓOLTPÊý¾Ý¿âͬ²½µ½OLAPÊý¾Ý¿â£¬ÕâÒ»·½ÃæÔì³ÉÁË×ÊÔ´µÄÀË·Ñ£¬ÁíÒ»·½ÃæÒ²½µµÍÁËOLAPµÄʵʱÐÔ¡£¶ÔÓÚÓû§¶øÑÔ£¬Èç¹ûÄÜʹÓÃͬһÌ×±ê×¼µÄÓï·¨ºÍ¹æÔòÀ´½øÐÐÊý¾ÝµÄ¶ÁдºÍ·ÖÎö£¬»áÓиüºÃµÄÌåÑé¡£

4¡¢ÔÚδÀ´·Ö²¼Ê½Êý¾Ý¿âϵͳÉÏ£¬Ö÷´ÓÈÕ־ͬ²½ÕâÑùÂäºóµÄ±¸·Ý·½Ê½»á±»Multi-Paxos / RaftÕâÑù¸üÇ¿µÄ·Ö²¼Ê½Ò»ÖÂÐÔËã·¨Ìæ´ú£¬È˹¤µÄÊý¾Ý¿âÔËάÔÚ¹ÜÀí´ó¹æÄ£Êý¾Ý¿â¼¯ÈºÊ±ÊDz»¿ÉÄܵģ¬ËùÓеĹÊÕϻָ´ºÍ¸ß¿ÉÓö¼½«ÊǸ߶È×Ô¶¯»¯µÄ¡£

   
2709 ´Îä¯ÀÀ       20
Ïà¹ØÎÄÕÂ

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

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

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