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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
°¢ÀïÔÆÐÂÒ»´ú¹ØÏµÐÍÊý¾Ý¿â PolarDB ÆÊÎö
 
×÷ÕߣººØ¾ü À´Ô´£ºinfoq ·¢²¼ÓÚ£º 2017-9-1
  2332  次浏览      27
 

±¾ÎÄͨ¹ýÃèÊö¹ØÏµÐÍÊý¾Ý¿â·¢Õ¹µÄ±³¾°ÒÔ¼°ÔƼÆËãµÄʱ´úÌØÕ÷£¬·ÖÏíÁËÊý¾Ý¿â¼ÆËãÁ¦µÄÂÝÐýʽÉÏÉýµÄ½ø»¯ÀíÄî¡£²¢ÇÒ½áºÏ°¢ÀïÔÆ RDS ²úÆ·µÄ·¢Õ¹Â·¾¶£¬²ûÊöÁË×ÔÖ÷Ñз¢µÄÐÂÒ»´úÔÆÍйܹØÏµÐÍÊý¾Ý¿â PolarDB µÄ²úÆ·ÕûÌåÉè¼ÆË¼Ï룬ͬʱҲ¶ÔһЩ¹Ø¼ü¼¼Êõµã½øÐÐÁ˽â¶Á¡£

1. ±³¾°

¹ØÏµÐÍÊý¾Ý¿â

̸µ½¹ØÏµÐÍÊý¾Ý¿â£¬ÔÚÕâ¸ö֪ʶÈÕÐÂÔÂÒìµÄTMTʱ´ú£¬ÌýÆðÀ´ÓÐЩ¡°¹Å¶­¡±£¬Õâ¸öÆðÔ´ÓÚ°ë¸öÊÀ¼ÍÒÔǰµÄIT¼¼Êõ£¬ÊÂʵÉÏÒ»Ö±´¦ÓÚÏÖ´úÉç»á¿Æ¼¼µÄºËÐÄ£¬Ö§³Å×ŵ±½ñÊÀ½ç¾ø´ó¶àÊýµÄÉÌÒµ¿Æ¼¼ÎÄÃ÷¡£CPU¡¢²Ù×÷ϵͳ¡¢Êý¾Ý¿âÕâÈý´óºËÐÄÁìÓò£¬»ù±¾ÉϾÍÊÇITʱ´úµÄËõÓ°£¬Í¬Ê±Ò²ÊÇÒ»ÇÐÐÅÏ¢»¯´¦Àí¡¢¼ÆËãÁ¦ºÍÖÇÄÜ»¯µÄ»ùʯ¡£´Ó1970ÄêE.F.Codd·¢±íÁËһƪÀï³Ì±®ÂÛÎÄ¡°A Relational Model of Data for Large Shared Data Banks¡±£¬µ½80Äê´ú³õÆÚÖ§³ÖSQLµÄÉÌÓùØÏµÐÍÊý¾Ý¿âDB2£¬OracleµÄÃæÊУ¬ÒÔ¼°90Äê´ú³õSQL-ServerµÄµ®Éú£¬¶¼ÊǹØÏµÐÍÊý¾Ý¿â³É¹¦µÄ´ú±í¡£

ʱÖÁ½ñÈÕ£¬Ëæ×ÅÈ«Çò»¥ÁªÍøµÄ·¢Õ¹£¬´óÊý¾Ý¼¼ÊõµÄ¹ã·ºÓ¦Óã¬Ó¿ÏÖ³öÔ½À´Ô½¶àµÄÐÂÐÍÊý¾Ý¿â£¬È»¶ø¹ØÏµÐÍÊý¾Ý¿âÈÔȻռ¾ÝÖ÷µ¼µØÎ»¡£×îÖ÷ÒªµÄÔ­ÒòÖ®Ò»¾ÍÊǹØÏµÐÍÊý¾Ý¿â²ÉÓÃÁËSQL±ê×¼£¬ÕâÖָ߼¶µÄ·Ç¹ý³Ì»¯±à³Ì½Ó¿ÚÓïÑÔ£¬½«¼ÆËã»ú¿ÆÑ§ºÍÒ×ÓÚÈËÀàÀí½âÈÏÖªµÄÊý¾Ý¹ÜÀí·½Ê½ÍêÃÀµÄÏνÓÔÚÁËÒ»Æð£¬Ä¿Ç°»¹ÄÑÒÔ³¬Ô½¡£

SQLÓïÑÔ

SQL(Structured Query Language)ÓïÑÔÊÇ1974ÄêÓÉBoyceºÍChamberlinÌá³öµÄÒ»ÖÖ½éÓÚ¹ØÏµ´úÊýÓë¹ØÏµÑÝËãÖ®¼äµÄ½á¹¹»¯²éѯÓïÑÔ£¬Æä±¾ÖÊÊÇÓÃÒ»ÖÖÀàËÆÓÚ×ÔÈ»ÓïÑԵĹؼü×ÖºÍÓï·¨À´¶¨ÒåºÍ²Ù×÷Êý¾Ý£¬½øÐпɱà³ÌµÄÊý¾Ý´æ´¢¡¢²éѯÒÔ¼°¹ÜÀí¡£ÕâÖÖ³éÏó±à³Ì½Ó¿Ú£¬½«¾ßÌåµÄÊý¾ÝÎÊÌâÓëÊý¾ÝµÄ´æ·Å¡¢²éѯʵÏÖµÄϸ½Ú½âñÀ´£¬Ê¹µÃÉÌÒµÒµÎñÂß¼­ÒÔ¼°ÐÅÏ¢¹ÜÀíµÄ¼ÆËãģʽÄܹ»±»´óÁ¿¸´ÖƺÍÓ¦Ó㬽â·ÅÁËÉú²úÁ¦£¬Ò²¼«´óµÄ´Ù½øÁËÉÌÒµ»¯¹ØÏµÐÍÊý¾Ý¿â×ÔÉíµÄ·¢Õ¹¡£´ÓSQLºóÀ´²»¶Ï·¢Õ¹ºÍ·á¸»À´¿´£¬SQLÒѾ­³ÉΪ¹ØÏµÐÍÊý¾Ý¿âÓïÑԵıê×¼ºÍÍõÕß¡£µ½½ñÌìÕâÖÖ±à³ÌÓïÑÔ»¹Ã»Óиü¼ÓÍêÃÀµÄÌæ´úÆ·¡£

OLTP

1976Ä꣬Jim Gray·¢±íÁËÃûΪ"Granularity of Locks and Degrees of Consistency in a Shared DataBase"µÄÂÛÎÄ£¬Õýʽ¶¨ÒåÁËÊý¾Ý¿âÊÂÎñµÄ¸ÅÄîºÍÊý¾ÝÒ»ÖÂÐԵĻúÖÆ¡£¶øOLTPÊǹØÏµÐÍÊý¾Ý¿âÉæ¼°ÊÂÎñ´¦ÀíµÄµäÐÍÓ¦Óã¬Ö÷ÒªÊÇ»ù±¾µÄ¡¢ÈÕ³£µÄÊÂÎñ´¦Àí£¬ÀýÈçÒøÐн»Òס£ÊÂÎñ´¦ÀíÐèÒª×ñÑ­ACIDËĸöÒªËØÀ´±£Ö¤Êý¾ÝµÄÕýÈ·ÐÔ£¬°üÀ¨Ô­×ÓÐÔ£¨Atomicity£©¡¢Ò»ÖÂÐÔ£¨Consistency£©¡¢¸ôÀëÐÔ£¨Isolation£©ºÍ³Ö¾ÃÐÔ£¨Durability£©¡£¶øºâÁ¿OLTP´¦ÀíÄÜÁ¦µÄÐÔÄÜÖ¸±êÖ÷ÒªÓÐÏìӦʱ¼ä¡¢ÍÌÍÂÂʵȡ£

¿ªÔ´Êý¾Ý¿âÉú̬

ÔÚÎÒÃǼòÒªµÄ»Ø¹ËÁ˹ØÏµÐÍÊý¾Ý¿âµÄÀúÊ·¡¢µØÎ»ºÍ·¢Õ¹½×¶Îºó£¬ÎÒÃDz»ÄÑ¿´µ½Oracle¡¢SQL-Server¡¢DB2µÈ¹ØÏµÐÍÊý¾Ý¿âÈÔȻռ¾Ý×ÅÈ«ÇòÉÌÒµÊý¾Ý¿âµÄÖ÷µ¼µØÎ»£¬ËäÈ»Ôø¾­¶úÊìÄÜÏêµÄInformix¡¢SybaseÒѾ­µ­³ö´óÖÚµÄÊÓÏß¡£È»¶ø£¬´Ó20ÊÀ¼Í90Äê´ú¿ªÊ¼£¬ÁíÒ»¹ÉÍÆ³ç֪ʶ·ÖÏí¡¢×ÔÓÉ¿ª·ÅµÄÈí¼þ¾«Éñ³ÉΪÇ÷ÊÆºÍ³±Á÷£¬ÓÈÆäÒÔLinux¡¢MySQL¡¢PostgreSQLµÈΪ´ú±íµÄ¿ªÔ´Èí¼þ£¬¿ªÊ¼ÒÔÇ¿´óµÄÉúÃüÁ¦²»¶Ï·¢Õ¹×³´ó£¬Êͷųö¾Þ´óµÄÉç»á½ø²½Á¦Á¿£¬ÕâЩ±»×ÔÓÉ·ÖÏíµÄ¿Æ¼¼ºìÀû£¬ÔÐÓýºÍ´Ù½øÁËÈ«Çò»¥ÁªÍø¸ß¿Æ¼¼¹«Ë¾µÄ·ÉËÙ·¢Õ¹¡£ÕâÊÇÕû¸öÈËÀàÉç»áµÄ½ø²½£¬ÎÒÃÇÒª¸ÐлÄÇЩ¿ªÔ´Èí¼þµÄ¶·Ê¿ÃÇ£¬Richard Stallman£¬Linus Torvalds£¬Michael WideniusµÈ¡£µ±È»£¬×î½ü¼¸Äê¹úÄÚÓ¿ÏÖ³öÔ½À´Ô½¶à»ý¼«²ÎÓëµ½¿ªÔ´Ö÷Á÷ÉçÇøµÄÖйú¹«Ë¾£¬Ò²ÔÚ²»¶ÏµØ½«¼¼Êõ·ÖÏí»ØÀ¡¸ø¿ªÔ´ÊÀ½ç¡£

¸ù¾ÝDB-enginesÍøÕ¾µÄ×îÐÂͳ¼Æ£¬²»ÄÑ·¢ÏÖ£¬µ±°Ñ¿ªÔ´Êý¾Ý¿âMySQLºÍPostgreSQL¼ÓÔÚÒ»Æð£¬¿ªÔ´Êý¾Ý¿â¾ÍÒѾ­³¬Ô½ÁËÉÌÒµÊý¾Ý¿âOracle£¬³ÉΪÊÀ½çÉÏ×îÁ÷ÐеĹØÏµÐÍÊý¾Ý¿â¡£

2. ÔÆ¼ÆË㵱ǰµÄ½×¶Î

Èç¹û˵¹ØÏµÐÍÊý¾Ý¿âÊÇITʱ´úµÄ²úÎï¡£ÄÇôÔÚ»¥ÁªÍøÊ±´úµÄÔÆ¼ÆË㣬¹ØÏµÐÍÊý¾Ý¿âĿǰÕý´¦ÓÚÒ»¸öʲô½×¶ÎÄØ£¿ITʱ´ú´ÓijÖ̶ֳÈÉϽ²£¬¸ü¶àÊÇ´´ÔìÁ˼ÆËãÁ¦£¬ÄÇô½øÈ뻥ÁªÍøÊ±´úµÄÔÆ¼ÆË㣬ÔòÊÇרעÓÚÓû§ºÍ¼ÆËãÁ¦µÄÁ¬½Ó£¬ÌṩÎÞ´¦²»ÔڵļÆËãÁ¦£¬Õâ¸öÆäʵÊÇÔÆ¼ÆËãÉÌҵģʽµÄ³É¹¦ËùÔÚ£¬¿ÉÒÔ³ÆÖ®Îª1.0°æ±¾¡£¶øÔƼÆËã2.0°æ±¾£¬ÐèÒªÔÚÔÆ»·¾³Ï£¬ÖØÐ½ø»¯ºÍÉý¼¶¼ÆËãÁ¦£¬ÕâÖÖ½ø»¯ÌåÏÖÁËÉç»á¼ÆËãÁ¦µÄÕûºÏÒÔ¼°¼ÆËã×ÊÔ´ÄÜЧµÄ½ø²½¡£ÎªÁË˳ӦÂÌÉ«¼ÆËãÒÔ¼°¹²Ïí¾­¼ÃµÄ·¢Õ¹³±Á÷£¬²»½ö½öÐèÒªÔÆ·þÎñÆ÷£¬ÔÆÊý¾Ý¿â£¬ÍøÂ绥Áª£¬Ó²¼þоƬµÈµÈ¸÷¸öÈíÓ²¼þϵͳÁìÓòµÄÈÚºÏÒÔ¼°ÑݽøÉý¼¶£¬»¹ÐèÒª¼á³Ö¿Æ¼¼ÒÔÐèÇóΪ±¾¡¢·þÎñÒÔÓû§Îª¸ùµÄ¿Æ¼¼ÆÕ»Ý´óÖÚµÄÀíÄîÀ´½øÒ»²½´Ù½ø¼ÆËãЧÂʺͼÆËãÖÇÄܵÄÌá¸ß¡£

ÎÒÃÇÕý´¦ÔÚÒ»¸öÅ·¢Õ¹µÄÔÆ¼ÆËã2.0½×¶Î¡£ÔÚÕâ¸ö½×¶Î£¬¹ØÏµÐÍÊý¾Ý¿âÔÚÔÆÍйܻ·¾³Öð½¥±©Â¶³öһЩÎÊÌ⣬×÷ΪÔÚÔÆ¼ÆËãʱ´úµÄÏÈÐÐÕߣ¬AmazonÓÚ2014Äê11ÔÂ12ÈÕ µÄAWS re:Invent 2014´ó»á£¬·¢²¼AuroraÔÆÍйܹØÏµÐÍÊý¾Ý¿â¾ÍÊÇΪÁ˽â¾öÕâЩÎÊÌâ¡£Õâ¸öÐÂÒ»´úµÄÊý¾Ý¿âµÄ·¢²¼£¬Ò²ÕÑʾ×ÅÔÆ¼ÆËãʱ´ú£¬´«Í³µÄIT¼¼ÊõºËÐIJúÆ·½«½Ò¿ª×ÔÎÒ½ø»¯µÄÐòÄ»¡£¶ø2017ÄêSIGMODÊý¾Ý´ó»á£¬ Amazon ·¢²¼ÁËÂÛÎÄ¡±Amazon Aurora: Design Considerations for High Throughput Cloud Native Relational Databases¡±,¸ü¼Ó¿ª·ÅµÄ½âÊÍÁË»ùÓÚÔÆ»·¾³µÄCloud-NativeÉè¼ÆµÄ¹ØÏµÐÍÊý¾Ý¿âÊÇÈçºÎÓ¦ÔжøÉúµÄ¡£

3. Ϊʲô°¢ÀïÔÆÒªÑз¢ÐÂÒ»´úµÄ¹ØÏµÐÍÊý¾Ý¿âPolarDB ?

ÔÚÎÒÃǻعËÁ˹ØÏµÐÍÊý¾Ý¿âÒÔ¼°ÔƼÆËãµÄ±³¾°Ö®ºó£¬ÎÒÃDz»ÄÑ·¢ÏÖ, ÔÆ¼ÆËã1.0ËäÈ»½â¾öÁËÓû§ºÍ¼ÆËãµÄÁ¬½ÓµÄÎÊÌ⣬µ«ÊÇ»¹ÐèÒª½øÒ»²½½â¾öÔÚÒ»¸ö¹²Ïí¼ÆËãµÄ»·¾³Ï£¬´«Í³¹ØÏµÐÍÊý¾Ý¿âºÍ¹«ÓÐÔÆ·þÎñ»·¾³µÄÈÚºÏÎÊÌâ¡£

ÔÆ¼ÆËã1.0ÓõÍÁ®µÄ³É±¾£¬Áé»î¿ìËٵIJ¿Êð¡¢µ¯ÐÔºÍÀ©Õ¹ÄÜÁ¦£¬»ñµÃÁË´«Í³IT¼ÆËãÉÏÔÆµÄת»»¶¯Á¦¡£Ôڵͳɱ¾ÏíÊÜÆÕ»Ý¿Æ¼¼³ÉΪ³£Ì¬Ö®ºó£¬Ëæ×ÅÓû§ÒµÎñµÄÔö³¤£¬Óû§ÐµÄÍ´µã¿ªÊ¼³öÏÖ£¬ÀýÈ磬ÈçºÎ´Ó¸ù±¾ÉϽâ¾öÓóÖÐøµÍµÄ³É±¾£¬ÏíÊܺʹ«Í³IT¼ÆËãÁ¦Ò»Ñù£¬ÉõÖÁ¸üºÃµÄÔÆ·þÎñ£¬³ÉΪÆÈÇÐÐèÒª¡£Õâ³õ¿´ÆðÀ´ÏñαÃüÌ⣬×Ðϸ·ÖÎöÖ®ºó£¬È´ÁÜÀ쾡ÖµÄÌåÏÖÁËÂÝÐýʽÉÏÉýµÄÕÜѧ˼Ïë¡£¾ÍºÃÏñÔÚPC·þÎñÆ÷Ó¿ÏÖµÄʱ´ú£¬PC·þÎñÆ÷Ê×ÏÈÓõÍÁ®µÄ¼Û¸ñÌṩÁ˺ÍСÐÍ·þÎñÆ÷½Ó½üµÄ¼ÆËãÄÜÁ¦£¬È»ºóÔÚ±£³Ö³É±¾ºÍÐÔ¼Û±ÈÓÅÊÆµÄ»ù´¡ÉÏ£¬ÊµÏÖÁ˳¬Ô½Ð¡ÐÍ·þÎñÆ÷µÄÐÔÄÜÓÅÊÆ£¬Ö±ÖÁÖÕ½áÁËСÐÍ·þÎñÆ÷ʱ´ú£¬¿ªÊ¼ÁËPC·þÎñÆ÷ʱ´ú¡£

ËùÒÔËµÔÆ¼ÆËãʱ´ú»¹Ô¶Ô¶Ã»Óе½´ï¶¦Ê¢Ê±ÆÚ£¬³ý·ÇËüͨ¹ý×ÔÉí½ø»¯Ñݱ䣬ÔÚ²»¶Ï±£³ÖÐÔ¼Û±ÈÓÅÊÆµÄͬʱ£¬ÔÚ¾ßÓпìËÙÁé»îµ¯ÐÔµÄÄÚÔÚÊôÐÔ»ù´¡ÉÏ£¬ÓµÓг¬¹ý´«Í³IT¼ÆËãÁ¦µÄÄÜÁ¦Ö®ºó£¬ÔƼÆËã²Å»áÕæÕý½øÈëËüËùÖ÷Ô×µÄʱ´ú£¬ÕâÖ»ÊǸöʱ¼äÎÊÌâ¡£

Ò²¾ÍÊÇ˵½ñÌì²»Ö»Êǰ¢ÀïÔÆÒª×öÕâÑùÒ»¿î¹ØÏµÐÍÊý¾Ý¿â£¬¶øÊÇËùÓеÄÔÆ¼ÆËã³§É̶¼²»¿É±ÜÃâµÄÒª¾­ÀúÕâÑùÒ»¸ö½×¶Î¡£ÄǾÍÊÇÔÆ¼ÆËãʱ´ú´«Í³IT¼ÆËãÁ¦µÄÖØ½¨ºÍ½ø»¯£¡Ö»²»¹ýAmazon×ßÔÚÁË×îÇ°Ãæ£¬¶ø°¢ÀïÔÆ½ô¸úÆäºó£¬¶¼ÐèÒª¾­ÀúÕâ½ø»¯µ½ÍɱäµÄ¹ý³Ì¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬ÐÂÒ»´ú¹ØÏµÐÍÊý¾Ý¿âÊǹؼüµÄÀï³Ì±®Ö®Ò»¡£Í¬Àí£¬½ÓÏÂÀ´Ó¦¸ÃÓиü¶à¸ü¼Ó¸ß¼¶µÄÔÆ·þÎñ£¬±ÈÈçÖÇÄÜÔÆ²Ù×÷ϵͳ³öÏÖ£¬À´ÈÚºÏÎªÔÆÊ±´úÉè¼ÆµÄÓ²¼þоƬºÍÍøÂ绥ÁªµÈµÈ¡£

ÔÚITʱ´ú£¬´«Í³µÄ¼ÆËãÁ¦£¨ÀýÈçÓùØÏµÐÍÊý¾Ý¿âÀ´´¦Àí½á¹¹»¯Êý¾ÝµÈ£©ÊÇ·þÎñÓÚϵͳӲ¼þ¸ôÀë»·¾³ÏµĶàÓû§Ê¹Óó¡¾°µÄ¡£¶øÔƼÆËãʱ´úÊǶà¿Í»§Self-Service×âÓû·¾³£¬¸÷ÖÖ¼ÆËã¸ºÔØ³¡¾°¸ü¼Ó¸´ÔÓ£¬ÔÚÕâÖÖ¼ÆËã¸ºÔØ±äǨµÄ»·¾³Ï£¬ÈçºÎ½â¾öITʱ´úµÄ¼¼Êõ²úÎïºÍÔÆ¼ÆËãʱ´úÓ¦Óû·¾³µÄÊÊÅäì¶Ü£¬ÕýÊÇÔÆ¼ÆËã×ÔÎÒ½ø»¯µÄÄÚÔÚÍÆ¶¯Á¦¡£

ÀýÈ磬ÔÚ¹«ÓÐÔÆ»·¾³Ï£¬Ëæ×ÅÓû§µÄÔö¶à£¬ÒÔ¼°Óû§ÒµÎñºÍÊý¾ÝµÄÔö³¤£¬±¸·Ý¡¢ÐÔÄÜ¡¢Ç¨ÒÆ¡¢Éý¼¶¡¢Ö»¶ÁʵÀý¡¢´ÅÅÌÈÝÁ¿¡¢BinlogÑÓ³ÙµÈÏà¹ØÎÊÌâ½¥½¥ÏÔÏÖ³öÀ´¡£Õâ±³ºó´ó²¿·ÖÔ­ÒòÊÇÓÉÓÚI/OÆ¿¾±£¨´æ´¢ºÍÍøÂ磩µ¼Ö£¬Ø½Ðëͨ¹ý¼¼Êõ¸ïÐÂÒÔ¼°ÐµIJúÆ·¼Ü¹¹½â¾öÕâ¸öÎÊÌâ¡£ÁíÒ»·½Ã棬´Ó²úÆ·ÐÎ̬À´½²£¬°¢ÀïÔÆRDSĿǰµÄ²úÆ·ÐÎ̬¸÷¾ßÓÅÊÆ£¬ÔÚÏÂÒ»½Ú»áÏêϸ½éÉÜ¡£µ«ÊÇ´Ó²úÆ·¼Ü¹¹µÄ·¢Õ¹À´¿´£¬³ýÈ¥Êý¾Ý¿â´æ´¢ÒýÇæµÄÀàÐÍÖ®Í⣬¶ÔÓÚ¹ØÏµÐÍÊý¾Ý¿â£¬¿¼Âǵ½¹¤³ÌЧÂÊÒÔ¼°ÔËά³É±¾£¬×îºÃÓÐÒ»ÖÖͨÓõIJúÆ·¼¼Êõ¼Ü¹¹Äܼæ¹Ë²»Í¬Óû§³¡¾°µÄÐèÇ󣬶ø²»ÊÇÕë¶Ôÿһ¸ö³¡¾°¶¼ÊµÏÖÒ»ÖÖ¶ÔÓ¦µÄ¼¼Êõ¼Ü¹¹¡£

ÔÚ½ÓÏÂÀ´µÄÄÚÈÝ£¬Í¨¹ý½²Êö°¢ÀïÔÆRDSµÄ²»Í¬²úÆ·ÐÎ̬µÄÌØµã£¬ÎÒÃÇ»á¸ü¼ÓÇåÎúµÄÁ˽⵽£¬PolarDBµÄ²úÆ·ÐÎ̬ÕýÊÇÔÚÎüÊÕÁË֮ǰ¼¸ÖÖ²úÆ·ÐÎ̬µÄÓÅµã¶øÔÐÓý¶øÉúµÄ¡£

4. PolarDBµÄÉè¼ÆË¼Ïë

Óû§ÐèÇóºÍ¹«ÓÐÔÆ×ÔÉí·¢Õ¹µÄÑ¡Ôñ

×÷ÎªÔÆÍйܵĹØÏµÐÍÊý¾Ý£¬³ýÁ˹ØÏµÐÍÊý¾Ý¿âµÄºËÐÄÌØÕ÷Ö®Íâ¡£PoalrDB¸ü¶àµÄ¹Ø×¢ÓÚÈçºÎÌṩÂú×ãÓû§ÒµÎñÐèÇóµÄÔÆ·þÎñ£¬²¢ÇÒͨ¹ý¼¼Êõ¸ïУ¬²»¶Ï½ø»¯£¬ÔÚÌṩ¸üºÃµÄÊý¾Ý¿â¼ÆËãÁ¦µÄͬʱ£¬Âú×ãÓû§µÄÈçÏÂÒµÎñÐèÇó£º

ÉÏÔÆ³É±¾

OLTPÐÔÄÜ

ÒµÎñÁ¬ÐøÐÔ

ÔÚÏßÒµÎñÀ©Õ¹

Êý¾Ý°²È«

ÁíÒ»·½ÃæÔƼÆËã³ýÁ˳ɱ¾ÓÅÊÆÖ®Í⣬µ¯ÐԺͿÉÀ©Õ¹ÐÔÒ²ÊÇÔÆ¼ÆËãµÄÌìÈ»ÊôÐÔ¡£ÎªÁËÓû§ÒµÎñµÄÀ©Õ¹£¬¸üºÃµÄScale UpÒÔ¼°¹ÊÕϻָ´£¬¼ÆËãºÍ´æ´¢·ÖÀëµÄ¼Ü¹¹³ÉÎªÔÆ×ÊÔ´»·¾³¸üºÃµÄÑ¡Ôñ¡£ÕâÒ»µã½«ÔÚÏÂÒ»½ÚRDS²úÆ·¼Ü¹¹µÄÑݽøÖеõ½½øÒ»²½µÄÚ¹ÊÍ¡£

°¢ÀïÔÆRDS²úÆ·¼Ü¹¹µÄÑݽø

ÈçÉÏËùÊö£¬°¢ÀïÔÆPolarDBºÍAmazon AuroraÊý¾Ý¿â½ø»¯µÄ·½ÏòÊÇÒ»Öµģ¬È»¶ø½ø»¯µÄ·¾¶¸÷Óв»Í¬¡£±¾ÉíÀ´½²£¬ÕâÊÇÓÉÓÚ¸÷×ÔµÄÊý¾Ý¿âÔÆ·þÎñʵÏÖ·½Ê½²»Í¬Ëù¾ö¶¨µÄ¡£°¢ÀïÔÆRDS MySQLÓÐÈçϼ¸¸ö°æ±¾¡£ÕâЩ²úÆ·ÐÎ̬Âú×㲻ͬµÄÓû§ÒµÎñ³¡¾°£¬¾ßÓв»Í¬µÄÌØµã£¬¿ÉÒÔ½øÐÐÓÅÊÆ»¥²¹¡£

1. MySQL»ù´¡°æ

MySQL»ù´¡°æ²ÉÓÃÊý¾Ý¿â¼ÆËã½ÚµãºÍ´æ´¢½Úµã·ÖÀëµÄ·½Ê½£¬ÀûÓÃÔÆÅÌÊý¾Ý±¾ÉíµÄ¿É¿¿ÐԺͶั±¾µÄÌØÐÔ£¬Í¬Ê±Ò²ÀûÓÃÁËECSÔÆ·þÎñÆ÷ÐéÄ⻯À´ÌáÉý±ê×¼»¯²¿Êð¡¢°æ±¾ºÍÔËάµÄ¹ÜÀíЧÂÊ£¬Äܹ»Âú×ãµÍ¶ËÓû§²»Ì«×¢Öظ߿ÉÓ÷þÎñµÄÒµÎñ³¡¾°¡£Í¬Ê±ÕâÖּܹ¹¶ÔÓÚÊý¾Ý¿âµÄÇ¨ÒÆ£¬Êý¾ÝÈÝÁ¿µÄÀ©ÈÝ£¬¼ÆËã½ÚµãµÄScale Up£¬¼ÆËã½Úµã¹ÊÕϻָ´¶¼ÓÐÌìÈ»µÄÓÅÊÆ£¬¸ù±¾Ô­Òò¾ÍÊǼÆËãºÍ´æ´¢µÄ·ÖÀë¡£ºóÃæÒ²»á½²µ½£¬PolarDBÒ²²ÉÓÃÁË´æ´¢ºÍ¼ÆËã·ÖÀëµÄÉè¼ÆÀíÄî¡£

2. MySQL¸ß¿ÉÓðæ

MySQL¸ß¿ÉÓðæÔòÊÇÕë¶ÔÆóÒµ¼¶Óû§ÌṩµÄ¸ß¿ÉÓÃÊý¾Ý¿â°æ±¾£¬Ìṩ99.95%µÄSLA±£ÕÏ¡£²ÉÓÃActive-StandbyµÄ¸ß¿ÉÓüܹ¹£¬Ö÷½ÚµãºÍ±¸½ÚµãÖ®¼äͨ¹ýMySQL Binlog½øÐÐÊý¾ÝµÄReplication¡£µ±Ö÷½Úµã·¢Éú¹ÊÕÏ£¬±¸½Úµã½Ó¹Ü·þÎñ¡£Í¬Ê±»¹Ö§³Ö¶à¸öÖ»¶Á½Úµã£¬Ö§³Ö¸ºÔؾùºâµÄÊý¾Ý¶Áд·ÖÀëµÄ·ÃÎÊ·½Ê½¡£²ÉÓÃShared-Nothing¼Ü¹¹£¬¼ÆËãºÍÊý¾ÝλÓÚͬһ¸ö½Úµã£¬×î´ó³Ì¶È±£ÕÏÐÔÄܵÄͬʱÓÖͨ¹ýÊý¾ÝµÄ¶à¸±±¾´øÀ´¿É¿¿ÐÔ¡£

3. MySQL½ðÈÚ°æ

MySQL½ðÈÚ°æ¿ÉÒÔ˵ÊÇÕë¶Ô½ðÈÚÐÐÒµµÈ¸ß¶ËÓû§Éè¼ÆµÄ¸ß¿ÉÓᢸ߿ɿ¿ÔÆ·þÎñ²úÆ·£¬²ÉÓ÷ֲ¼Ê½RaftЭÒéÀ´±£Ö¤Êý¾ÝµÄǿһÖÂÐÔ£¬ÓµÓиü¼ÓÓÅÒìµÄ¹ÊÕϻָ´Ê±¼ä£¬¸ü¼ÓÂú×ãÊý¾ÝÈÝÔÖ±¸·ÝµÈÒµÎñ³¡¾°µÄÐèÇó¡£

PolarDBµÄ½ø»¯

PolarDB²ÉÓô洢Óë¼ÆËã·ÖÀëµÄ¼¼Êõ¼Ü¹¹£¬Í¬Ê±¿ÉÒÔÖ§³Ö¸ü¶àµÄÖ»¶Á½Úµã¡£Ö÷½ÚµãºÍÖ»¶Á½ÚµãÖ®¼äÊÇActive-ActiveµÄFailover·½Ê½£¬¼ÆËã½Úµã×ÊÔ´µÃµ½³ä·ÖÀûÓã¬ÓÉÓÚʹÓù²Ïí´æ´¢£¬¹²Ïíͬһ·ÝÊý¾Ý£¬½øÒ»²½½µµÍÁËÓû§µÄʹÓóɱ¾¡£ÏÂÒ»½ÚÎÒÃǽ«½øÒ»²½´Óϸ½ÚÉÏÃèÊöPolarDBµÄ¹Ø¼üÌØÐÔ¡£

PolarDBµÄÉè¼ÆË¼ÏëÓм¸¸ö´óµÄ¸ïС£Ò»ÊÇͨ¹ýÖØÐÂÉè¼ÆÌØ¶¨µÄÎļþϵͳÀ´´æÈ¡Redo logÕâÖÖÌØ¶¨µÄWAL I/OÊý¾Ý£¬¶þÊÇͨ¹ý¸ßËÙÍøÂçºÍ¸ßЧЭÒ齫Êý¾Ý¿âÎļþºÍRedo logÎļþ·ÅÔÚ¹²Ïí´æ´¢É豸ÉÏ£¬±ÜÃâÁ˶à´Î³¤Â·¾¶I/OµÄÖØ¸´²Ù×÷£¬Ïà±È½ÏBinlogÕâÖÖ·½Ê½¸ü¼ÓÇÉÃî¡£ÁíÍâÔÚDB ServerÉè¼ÆÉÏ£¬²ÉÓÃMySQLÍêÈ«¼æÈݵÄ˼·£¬Íêȫӵ±§¿ªÔ´Éú̬£¬´ÓSQLµÄ±àÒë¡¢ÐÔÄÜÓÅ»¯Æ÷ºÍÖ´Ðмƻ®µÈµÈ¶¼±£ÁôÁË´«Í³¹ØÏµÐÍÊý¾Ý¿âµÄÌØÉ«¡£²¢ÇÒÕë¶ÔRedologµÄI/O·¾¶£¬×¨ÃÅÉè¼ÆÁ˶ั±¾¹²Ïí´æ´¢¿éÉ豸¡£

ÎÒÃÇÖªµÀ£¬·Ö²¼Ê½Êý¾Ý¿âÒ»Ö±ÊÇÊý¾Ý¿âÁìÓòµÄÈȵ㣬¾ßÓзdz£´óµÄʵÏÖÄѶȡ£²»¹ÜÊÇ×ñÑ­CAPÀíÂÛ£¬»¹ÊÇBASE˼Ï룬ͨÓõķֲ¼Ê½¹ØÏµÐÍÊý¾Ý¿â»ù±¾ÉϺÜÄÑ×öµ½¼¼ÊõºÍÉÌÓõÄÍêÃÀƽºâ¡£ÓëSQL±ê×¼ÒÔ¼°Ö÷Á÷Êý¾Ý¿â¼æÈÝ£¬OLTP ACIDÊÂÎñ100%Ö§³Ö£¬99.99%µÄ¸ß¿ÉÓ㬸ßÐÔÄܵÍÑÓ³Ù²¢·¢´¦ÀíÄÜÁ¦£¬µ¯ÐÔScale Up£¬Scale out¿ÉÀ©Õ¹ÐÔ£¬±¸·ÝÈÝÔֺ͵ͳɱ¾Ç¨ÒƵȵȣ¬Äܹ»ÍêÃÀ¼æ¹ËËùÓÐÕâÐ©ÌØµãµÄÉÌÓùØÏµÐÍÊý¾Ý¿â»¹Ã»ÓгöÏÖ¡£

°¢ÀïÔÆPolarDBºÍAmazon AuroraµÄÒ»¸ö¹²Í¬Éè¼ÆÕÜѧ¾ÍÊÇ£¬·ÅÆúÁËͨÓ÷ֲ¼Ê½Êý¾Ý¿âOLTP¶à·²¢·¢Ð´µÄÖ§³Ö£¬²ÉÓÃһд¶à¶ÁµÄ¼Ü¹¹Éè¼Æ£¬¼ò»¯ÁË·Ö²¼Ê½ÏµÍ³ÄÑÒÔ¼æ¹ËµÄÀíÂÛÄ£ÐÍ£¬ÓÖÄÜÂú×ã¾ø´ó¶àÊýOLTPµÄÓ¦Óó¡¾°ºÍÐÔÄÜÒªÇó¡£×ÜÖ®£¬100% MySQLµÄ¼æÈÝÐÔ£¬¼ÓÉÏרÓõÄÎļþϵͳºÍ¹²Ïí´æ´¢¿éÉ豸Éè¼Æ£¬ÒÔ¼°ÔÚÏÂÎÄÖÐÌáµ½µÄ¶àÏî¸ß¼¶¼¼ÊõµÄÓ¦Óã¬Ê¹µÃÐÂÒ»´ú¹ØÏµÐÍÊý¾Ý¿âPoalrDBÔÚÔÆÊ±´ú±Ø½«´ó·ÅÒì²Ê¡£

5. PolarDB²úÆ·¹Ø¼ü¼¼ÊõµãÆÊÎö

ÔÚ½²ÊöÁ˰¢ÀïÔÆRDSµÄ²»Í¬²úÆ·ÐÎ̬֮ºó£¬ÎÒÃÇÔÙ´ÓÕûÌåÉÏ¿´Ò»¿´PolarDBµÄ²úÆ·¼Ü¹¹¡£ÏÂͼ¹´»­ÁËPolarDB²úÆ·µÄÖ÷Ҫģ¿é£¬°üÀ¨Êý¾Ý¿â·þÎñÆ÷£¬Îļþϵͳ£¬¹²Ïí¿é´æ´¢µÈ¡£

PoalrDB²úÆ·¼Ü¹¹

°¢ÀïÔÆ¹ØÏµÐÍÊý¾Ý¿âPoalrDB¼¯Èº

ÈçͼËùʾ£¬PolarDB²úÆ·ÊÇÒ»¸ö·Ö²¼Ê½¼¯Èº¼Ü¹¹µÄÉè¼Æ¡£Ëü¼¯ÖÚ¶à¸ß¼¶µÄ¼¼ÊõʵÏÖÓÚÒ»Éí£¬Ê¹µÃÊý¾Ý¿âOLTP´¦ÀíÐÔÄÜÓÐÁËÖʵķÉÔ¾¡£PoalrDB²ÉÓÃÁË´æ´¢Óë¼ÆËã·ÖÀëµÄÉè¼ÆÀíÄÂú×㹫ÓÐÔÆ¼ÆËã»·¾³ÏÂÓû§ÒµÎñµ¯ÐÔÀ©Õ¹µÄ¸ÕÐÔÐèÇó¡£Êý¾Ý¿â¼ÆËã½ÚµãºÍ´æ´¢½ÚµãÖ®¼ä²ÉÓøßËÙÍøÂ绥Áª£¬²¢Í¨¹ýRDMAЭÒé½øÐÐÊý¾Ý´«Ê䣬ʹµÃI/OÐÔÄܲ»ÔÚ³ÉΪƿ¾±¡£

Êý¾Ý¿â½Úµã²ÉÓúÍMySQLÍêÈ«¼æÈݵÄÉè¼Æ¡£Ö÷½ÚµãºÍÖ»¶Á½ÚµãÖ®¼ä²ÉÓÃActive-ActiveµÄFailover·½Ê½£¬ÌṩDBµÄ¸ß¿ÉÓ÷þÎñ¡£DBµÄÊý¾ÝÎļþ¡¢redologµÈͨ¹ýUser-SpaceÓû§Ì¬Îļþϵͳ£¬¾­¹ý¿éÉ豸Êý¾Ý¹ÜÀí·ÓÉ£¬ÒÀ¿¿¸ßËÙÍøÂçºÍRDMAЭÒé´«Êäµ½Ô¶¶ËµÄChunk Server¡£Í¬Ê±DB ServerÖ®¼ä½öÐèͬ²½Redo logÏà¹ØµÄÔªÊý¾ÝÐÅÏ¢¡£Chunk ServerµÄÊý¾Ý²ÉÓöั±¾È·±£Êý¾ÝµÄ¿É¿¿ÐÔ£¬²¢Í¨¹ýParallel-RaftЭÒé±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£

ÔÚÃèÊöÁËPolarDBµÄ²úÆ·¼Ü¹¹Ö®ºó£¬ÎÒÃÇÔÙ·Ö±ð´Ó·Ö²¼Ê½¼Ü¹¹£¬Êý¾Ý¿â¸ß¿ÉÓã¬ÍøÂçЭÒ飬´æ´¢¿éÉ豸£¬ÎļþϵͳºÍÐéÄ⻯µÈ·½ÃæÖðÒ»½éÉÜÏÂPolarDBʹÓõĹؼü¼¼Êõµã¡£

Shared Disk¼Ü¹¹

·Ö²¼Ê½ÏµÍ³µÄ¾«Ëè¾ÍÔÚÓڷַֺϺϣ¬ÓÐʱºòΪÁ˲¢·¢ÐÔÄܽøÐÐÊý¾ÝÇз֣¬¶øÓÐʱºòΪÁËÊý¾Ý״̬µÄÒ»ÖÂÐÔ¶ø²»µÃ²»ºÏ£¬»òÕßÓÉÓÚ·Ö²¼Ê½Ëø¶ø²»µÃ²»Í¬²½µÈ´ý¡£

PolarDB²ÉÓÃShared Disk¼Ü¹¹£¬Æä¸ù±¾Ô­ÒòÊÇÉÏÊöµÄ¼ÆËãÓë´æ´¢·ÖÀëµÄÐèÒª¡£Âß¼­ÉÏDBÊý¾Ý¶¼·ÅÔÚËùÓÐDB server¶¼Äܹ»¹²Ïí·ÃÎʵÄÊý¾Ýchunk´æ´¢·þÎñÆ÷ÉÏ¡£¶øÔÚ´æ´¢·þÎñÄÚ²¿£¬Êµ¼ÊÉÏÊý¾Ý±»Çпé³ÉchunkÀ´´ïµ½Í¨¹ý¶à¸ö·þÎñÆ÷²¢·¢·ÃÎÊI/OµÄÄ¿µÄ¡£

ÎïÀíReplication

ÎÒÃÇÖªµÀ£¬MySQL Binlog¼Ç¼µÄÊÇTupleÐм¶±ðµÄÊý¾Ý±ä¸ü¡£¶øÔÚInnoDBÒýÇæ²ã£¬ÐèÒªÖ§³ÖÊÂÎñACID£¬Ò²Î¬³ÖÁËÒ»·ÝRedoÈÕÖ¾£¬´æ´¢µÄÊÇ»ùÓÚÎļþÎïÀíÒ³ÃæµÄÐ޸ġ£ÕâÑùMySQLµÄÒ»¸öÊÂÎñ´¦ÀíĬÈÏÖÁÉÙÐèÒªµ÷ÓÃÁ½´Îfsync()½øÐÐÈÕÖ¾µÄ³Ö¾Ã»¯²Ù×÷£¬Õâ¶ÔÊÂÎñ´¦ÀíµÄϵͳÏìӦʱ¼äºÍÍÌÍÂÐÔÄÜÔì³ÉÁËÖ±½ÓµÄÓ°Ïì¡£¾¡¹ÜMySQL²ÉÓÃÁËGroup CommitµÄ»úÖÆÀ´ÌáÉý¸ß²¢·¢ÏµÄÍÌÍÂÁ¿£¬µ«²¢²»ÄÜÍêÈ«Ïû³ýI/OÆ¿¾±¡£

´ËÍ⣬ÓÉÓÚµ¥¸öÊý¾Ý¿âʵÀýµÄ¼ÆËãºÍÍøÂç´ø¿íÓÐÏÞ£¬Ò»ÖÖµäÐ͵Ä×ö·¨ÊÇͨ¹ý´î½¨¶à¸öÖ»¶ÁʵÀý·Öµ£¶Á¸ºÔØÀ´ÊµÏÖScale out¡£PolarDBͨ¹ý½«Êý¾Ý¿âÎļþÒÔ¼°RedologµÈ´æ·ÅÔÚ¹²Ïí´æ´¢É豸ÉÏ£¬·Ç³£ÌÖÇɵĽâ¾öÁËÖ»¶Á½ÚµãºÍÖ÷½ÚµãµÄÊý¾ÝReplicationÎÊÌâ¡£ÓÉÓÚÊý¾Ý¹²Ïí£¬Ö»¶Á½ÚµãµÄÔö¼ÓÎÞÐèÔÙ½øÐÐÊý¾ÝµÄÍêÈ«¸´ÖÆ£¬¹²ÓÃÒ»·ÝÈ«Á¿Êý¾ÝºÍRedo log£¬Ö»ÐèҪͬ²½ÔªÊý¾ÝÐÅÏ¢£¬Ö§³Ö»ù±¾µÄMVCC£¬±£Ö¤Êý¾Ý¶ÁÈ¡µÄÒ»ÖÂÐÔ¼´¿É¡£ÕâʹµÃϵͳÔÚÖ÷½Úµã·¢Éú¹ÊÕϽøÐÐFailoverʱºò£¬Çл»µ½Ö»¶Á½ÚµãµÄ¹ÊÕϻָ´Ê±¼äÄÜËõ¶Ìµ½30ÃëÒÔÄÚ¡£ÏµÍ³µÄ¸ß¿ÉÓÃÄÜÁ¦½øÒ»²½µÃµ½ÔöÇ¿¡£¶øÇÒ£¬Ö»¶Á½ÚµãºÍÖ÷½ÚµãÖ®¼äµÄÊý¾ÝÑÓ³ÙÒ²¿ÉÒÔ½µµÍµ½ºÁÃë¼¶±ð¡£

´Ó²¢·¢µÄ½Ç¶ÈÀ´¿´£¬Ê¹ÓÃBinlog¸´ÖÆÏÖÔÚÖ»Äܰ´ÕÕ±í¼¶±ð²¢Ðи´ÖÆ£¬¶øÎïÀí¸´ÖÆÖ»°´ÕÕÊý¾Ýҳά¶È£¬Á£¶È¸üϸ£¬²¢ÐÐЧÂʸü¼Ó¸ß¡£

×îºóÒ»µã£¬ÒýÈëRedologÀ´ÊµÏÖReplicationµÄºÃ´¦ÊÇ£¬BinlogÊÇ¿ÉÒԹرÕÀ´¼õÉÙ¶ÔÐÔÄܵÄÓ°Ï죬³ý·ÇÐèÒªBinlogÀ´ÓÃÓÚÂß¼­ÉϵÄÈÝÔÖ±¸·Ý»òÕßÊý¾ÝÇ¨ÒÆ¡£

×ÜÖ®£¬ÔÚI/O·¾¶ÖУ¬Í¨³£Ô½Íùµ×²ã×ö£¬Ô½ÈÝÒ׺ÍÉϲãµÄÒµÎñÂß¼­ºÍ״̬½âñî¶ø½µµÍϵͳ¸´ÔÓ¶È¡£¶øÇÒÕâÖÖWAL Redo log´óÎļþ¶ÁдµÄI/O·½Ê½Ò²·Ç³£ÊÊÓÃÓÚ·Ö²¼Ê½ÎļþϵͳµÄ²¢·¢»úÖÆ£¬ÎªPolarDB´øÀ´²¢·¢¶ÁÐÔÄܵÄÌá¸ß¡£

¸ßËÙÍøÂçϵÄRDMAЭÒé

RDMA֮ǰÊÇÔÚHPCÁìÓò±»Ê¹ÓöàÄêµÄ¼¼ÊõÊֶΣ¬ÏÖÔÚ¿ªÊ¼±»Ê¹Óõ½ÔƼÆËãÁìÓò£¬Ò²Ö¤ÊµÎÒµÄÒ»¸öÅжϡ£ÔƼÆËã2.0ʱ´ú£¬½«Öؽ¨ÈËÃǶÔÓÚÔÆ¼ÆËãµÄÈÏʶ£¬ÔƶËÒ²Äܹ»´´Ô쳬Խ´«Í³IT¼¼ÊõµÄ¼ÆËãÁ¦£¬Õ⽫ÊÇÒ»¸öÔ½À´Ô½ÑϽ÷µÄ¹¤ÒµÊµÏÖ¡£

RDMAͨ³£ÊÇÐèÒªÓÐÖ§³Ö¸ßËÙÍøÂçÁ¬½ÓµÄÍøÂçÉ豸£¨Èç½»»»»ú£¬NICµÈ£©£¬Í¨¹ýÌØ¶¨µÄ±à³Ì½Ó¿Ú£¬À´ºÍNIC Driver½øÐÐͨѶ£¬È»ºóͨ³£ÒÔZero-CopyµÄ¼¼ÊõÒÔ´ïµ½Êý¾ÝÔÚNICºÍÔ¶¶ËÓ¦ÓÃÄÚ´æÖ®¼ä¸ßЧÂʵÍÑÓ³Ù´«µÝ£¬¶ø²»ÓÃͨ¹ýÖжÏCPUµÄ·½Ê½À´½øÐÐÊý¾Ý´ÓÄÚºË̬µ½Ó¦ÓÃ̬µÄ¿½±´£¬¼«´óµÄ½µµÍÁËÐÔÄܵͶ¶¯£¬Ìá¸ßÁËÕûÌåϵͳµÄ´¦ÀíÄÜÁ¦¡£

SnapshotÎïÀí±¸·Ý

SnapshotÊÇÒ»ÖÖÁ÷ÐеĻùÓÚ´æ´¢¿éÉ豸µÄ±¸·Ý·½°¸¡£Æä±¾ÖÊÊDzÉÓÃCopy-On-WriteµÄ»úÖÆ£¬Í¨¹ý¼Ç¼¿éÉ豸µÄÔªÊý¾Ý±ä»¯£¬¶ÔÓÚ·¢Éúд²Ù×÷µÄ¿éÉ豸½øÐÐдʱ¸´ÖÆ£¬½«Ð´²Ù×÷ÄÚÈݸ͝µ½Ð¸´ÖƳöµÄ¿éÉ豸ÉÏ£¬À´ÊµÏÖ»Ö¸´µ½¿ìÕÕʱ¼äµãµÄÊý¾ÝµÄÄ¿µÄ¡£SnapshotÊÇÒ»¸öµäÐ͵ĻùÓÚʱ¼äÒÔ¼°Ð´¸ºÔØÄ£Ð͵ĺóÖô¦Àí»úÖÆ¡£Ò²¾ÍÊÇ˵´´½¨Snapshotʱ£¬²¢Ã»Óб¸·ÝÊý¾Ý£¬¶øÊǰѱ¸·ÝÊý¾ÝµÄ¸ºÔؾù·Öµ½´´½¨SnapshotÖ®ºóµÄʵ¼ÊÊý¾Ýд·¢ÉúµÄʱ¼ä´°¿Ú£¬ÒÔ´ËʵÏÖ±¸·Ý¡¢»Ö¸´µÄ¿ìËÙÏìÓ¦¡£PolarDBÌṩ»ùÓÚSnapshotÒÔ¼°Redo logµÄ»úÖÆ£¬ÔÚ°´Ê±¼äµã»Ö¸´Óû§Êý¾ÝµÄ¹¦ÄÜÉÏ£¬±È´«Í³µÄÈ«Á¿Êý¾Ý½áºÏBinlogÔöÁ¿Êý¾ÝµÄ»Ö¸´·½Ê½¸ü¼Ó¸ßЧ¡£

Parallel-RaftËã·¨

̸µ½·Ö²¼Ê½Êý¾Ý¿âµÄÊÂÎñÒ»ÖÂÐÔ£¬ÎÒÃǺÜÈÝÒ×Ïëµ½2PC£¨2 Phases Commit£©£¬3PC£¨3 Phases Commit£©Ð­Òé¡£¶øÂÛÊý¾Ý״̬һÖÂÐÔ£¬ÎÒÃǾͲ»µÃ²»Ìáµ½Leslie Lamport·¢Ã÷µÄPaxosЭÒ飬ÔÚPaxosΪGoogleµÈ»¥ÁªÍø³§ÉÌËù¹ã·ºÓ¦Óõ½¶à¸ö·Ö²¼Ê½ÏµÍ³ÊµÏÖÖ®ºó£¬Paxos³ÉΪÁË×îÊܹØ×¢µÄÊý¾Ý״̬һÖÂÐÔËã·¨Ö®Ò»¡£¿ÉÊÇÓÉÓÚPaxosËã·¨ÂÛÎĵÄÀíÂÛºÍʵÏÖ¹ýÓÚ¸´ÔÓ£¬µ¼ÖÂÄÑÒÔ±»¿ìËÙÓ¦Óõ½¹¤³Ì¼¼ÊõÉÏ¡£Paxos½â¾öµÄÎÊÌâÖ®Ò»ÊÇ£¬ÔÚ¶à¸ö»úÆ÷µÄ¼¯ºÏÖУ¬¼¯ºÏÖгõʼ״̬ÏàͬµÄÈκλúÆ÷ÄÜ·ñͨ¹ýÏàͬµÄÃüÁîÐòÁе½´ïͬÑùÏàͬµÄ״̬µã£¬ÐγÉÒ»¸öÒ»ÖµÄÊÕÁ²µÄ״̬»ú¡£ÁíÒ»¸öÎÊÌâÊÇ£¬×÷Ϊ¼¯ÈºÖеÄÒ»Ô±£¬Í¨¹ý΢¹ÛµÄʱ¼ä´®ÐÐͨѶ·½Ê½£¬ÐèÒªÕÒµ½Ò»¸öʼÖÕÓÐЧµÄЭÒ飬µ±Ò»¸ö»úÆ÷µÄij¸öÊý¾Ý״̬ÐèÒª¸Ä±äʱ£¬ÐèÒªºÍÕû¸ö¼¯Èº£¨°üÀ¨ÆäËû»úÆ÷£©¿¿Í¨Ñ¶ºÍЭÒé´ï³ÉÏàͬµÄÈÏÖª£¬Ò»ÆðÈÏͬÕâ¸ö»úÆ÷ÉϵÄij¸ö״̬µÄ¸Ä±ä¡£

»ùÓÚÕâÁ½µã£¬»ù±¾ÉϾͽâ¾öÁË·Ö²¼Ê½¼¯Èº¼Ü¹¹ÖУ¬²»Í¬½ÇÉ«µÄ»úÆ÷£¬´ï³ÉÒ»ÖÂÐÔ״̬»úµÄÎÊÌâ¡£Ò²¾Í¿ÉÒÔ½øÒ»²½Éè¼Æ³ö¾ø´ó¶àÊý·Ö²¼Ê½ÏµÍ³µÄ¿ò¼Ü¡£Paxos¿ÉÒÔ¿°³ÆÊÇP2P£¨Peer to Peer£©µÄ¶ÔµÈÉè¼Æ£¬¸ü¼Ó³éÏóºÍͨÓã¬Ò²¸üÄÑÒÔÀí½â¡£¶øRaftÔòÊÇÑ¡¾Ù³öLeader£¬ÔÙ¾­ÓÉLeader·¢Æð¶ÔÆäËû½ÇÉ«½øÐÐ״̬һÖÂÐÔ¸üеÄʵÏÖ£¬¸üÈÝÒ×Àí½â¡£¶øÐ­Òé±¾ÉíµÄʵÏÖÁ÷³ÌºÍPaxosÓÐÏàËÆÖ®´¦¡£

Parallel-RaftÊÇÔÚRaftЭÒéµÄ»ù´¡ÉÏ£¬Õë¶ÔPolarDB chunk ServerµÄI/OÄ£ÐÍ£¬½øÐиÄÁ¼µÄÒ»ÖÂÐÔËã·¨¡£RaftЭÒé»ùÓÚLogÊÇÁ¬ÐøµÄ£¬log#nûÓÐÌá½»µÄ»°£¬ºóÃæµÄLog²»ÔÊÐíÌá½»¡£¶øPolarDBʵÏÖµÄParallel-RaftÔÊÐí²¢ÐеÄÌá½»£¬´òÆÆÁËRaftµÄlogÊÇÁ¬ÐøµÄ¼ÙÉ裬Ìá¸ß²¢·¢¶È£¬Í¨¹ý¶îÍâµÄÏÞÖÆÀ´È·±£Ò»ÖÂÐÔ¡£

Docker

ÈÝÆ÷ÐéÄ⻯¼¼Êõ×îÔçµÄ³öÏÖÊÇLinuxÄÚºËΪÁ˽â¾ö½ø³ÌÔÚ²Ù×÷ϵͳ֮¼ä£¬»òÕßÔÚ½ø³ÌÔËÐйý³Ìµ±ÖÐ×öÇ¨ÒÆ£¬Í¨¹ý½ø³ÌºÍ²Ù×÷ϵͳ֮¼äµÄ½âñÀ´´ïµ½½ø³ÌÔËÐÐʱµÄÉÏÏÂÎĺÍ״̬Äܹ»±£´æ£¬¸´Öƺͻָ´µÄÄ¿µÄ¡£¿ÉÊÇLXCµÄʵÏÖ£¬È´´Ù³ÉÁËÔøºì¼«Ò»Ê±µÄDockerµÄµ®Éú¡£

´ÓÔ­ÀíÉϽ²£¬ÈÝÆ÷ÐéÄ⻯µÄʵÏÖÏà¶ÔÓÚKVMµÈÐéÄ⻯¼¼Êõ¶øÑÔ£¬¸ü¼ÓÇáÁ¿¼¶¡£Èç¹ûÓû§²»ÐèÒª¸ÐÖªÕû¸ö²Ù×÷ϵͳµÄ¹¦ÄÜ£¬ÄÇôÓÃÈÝÆ÷ÐéÄ⻯¼¼ÊõÀíÂÛÉÏÓ¦¸ÃÄܹ»»ñµÃ¸üºÃµÄ¼ÆËãÄÜЧ±È¡£ÆäʵLXC¼ÓÉÏCgroupÕâÖÖ½ø³ÌÐéÄâºÍ×ÊÔ´¸ôÀëµÄ·½Ê½ÒѾ­±»Ê¹ÓúܶàÄ꣬ÔÚHPCÁìÓò¾Í³£±»Ó¦Óõ½MPI³¬¼¶ÈÎÎñµÄcheckpointºÍrestart»Ö¸´ÉÏ¡£PolarDB²ÉÓÃDocker»·¾³À´ÔËÐÐDB¼ÆËã½Úµã£¬ÓøüÇáÁ¿µÄÐéÄ⻯·½Ê½£¬½â¾öÁË×ÊÔ´µÄ¸ôÀëºÍÐÔÄܵĸôÀ룬Ҳ½ÚÊ¡ÁËϵͳ×ÊÔ´¡£

User-SpaceÎļþϵͳ

̸µ½Îļþϵͳ£¬¾Í²»µÃ²»ÌáÒ»ÏÂIEEE·¢Ã÷µÄPOSIXÓïÒ壨POSIX.1ÒѾ­±»ISOËù½ÓÊÜ£©£¬¾ÍÏñ˵µ½Êý¾Ý¿âҪ̸µ½SQL±ê×¼¡£Í¨Ó÷ֲ¼Ê½ÎļþϵͳʵÏÖµÄ×î´óÌôÕ½¾ÍÊÇÔÚÍêÈ«¼æÈÝPOSIX±ê×¼µÄ»ù´¡ÉÏÌṩǿ¾¢µÄ²¢·¢Îļþ¶ÁдÐÔÄÜ¡£¿ÉÊÇPOSIXµÄ¼æÈÝÊÆ±Ø»áÎþÉüÒ»²¿·ÖÐÔÄÜÀ´»ñµÃ¶ÔÓÚ±ê×¼µÄÍêȫ֧³Ö£¬Í¬Ê±ÏµÍ³ÊµÏֵĸ´ÔÓ¶ÈÒ²¼«´óµÄÔö¼Ó¡£Ëµµ½µ×ÊÇͨÓÃÉè¼ÆºÍרÓÐÉè¼ÆµÄÈ¡ÉáºÍÇø±ð£¬Ò²ÊÇÒ×ÓÃÐÔºÍÐÔÄÜÖ®¼äµÄƽºâ£¬ÕâÊǸö¾­µäÎÊÌâ¡£·Ö²¼Ê½ÎļþϵͳÊÇITÐÐÒµ×î¾­¾Ã²»Ë¥µÄ¼¼Êõ£¬´ÓHPCʱ´ú£¬ÔƼÆËãʱ´ú£¬»¥ÁªÍøÊ±´ú£¬´óÊý¾Ýʱ´úÒ»Ö±ÔÚÍÆ³Â³öУ¬Æäʵ¸üÑϸñµÄ˵Ӧ¸ÃÊÇÕë¶Ô²»Í¬Ó¦ÓÃI/O³¡¾°Ó¿ÏÖ³öºÜ¶à¶¨ÖÆ»¯µÄʵÏÖ£¬ÔÙ˵°×µã£¬¾ÍÊDz»È¥Ö§³ÖPOSIX±ê×¼¡£

ÕâÒ»µãÉÏ£¬Ö»ÄÜ˵֪ÄѶøÍË£¬²»¹ýÖ»·þÎñÓÚרÃŵÄI/O³¡¾°Ê±£¬²»ÊÊÓÃPOSIXÒ²²»ÊÇʲôÎÊÌâ¡£ÕâÒ»µã£¬ºÍ´ÓSQLµ½NoSQLµÄ·¢Õ¹Èç³öÒ»ÕÞ¡£Ö§³ÖPOSIXµÄÎļþϵͳ£¬ÐèҪʵÏÖ¼æÈݱê×¼µÄÎļþ¶Áд²Ù×÷µÄϵͳµ÷Óýӿڣ¬ÕâÑù¶ÔÓÚÓû§¶øÑÔ£¬¾ÍÎÞÐèÐÞ¸ÄPOSIX½Ó¿ÚʵÏÖµÄÎļþ²Ù×÷Ó¦ÓóÌÐò¡£ÕâÑùÒ»À´¾ÍÒªÇóͨ¹ýLinux VFS²ãÀ´Ã­½Ó¾ßÌåµÄÎļþϵͳÄÚºËʵÏÖ¡£ÕâÒ²Êǵ¼ÖÂÎļþϵͳ¹¤³ÌʵÏÖÄѶȼӴóµÄÔ­ÒòÖ®Ò»¡£

¶ÔÓÚ·Ö²¼Ê½Îļþϵͳ¶øÑÔ£¬ÄÚºËÄ£¿é»¹±ØÐëºÍÓû§Ì¬µÄDaemon½øÐÐÊý¾Ý½»»»£¬ÒÔ´ïµ½Êý¾Ý·ÖƬÒÔ¼°Í¨¹ýDaemon½ø³Ì´«Ë͵½ÆäËû»úÆ÷ÉϵÄÄ¿µÄ¡£¶øUser-SpaceÎļþϵͳÌṩÓû§Ê¹ÓõÄרÓÃAPI£¬²»ÓÃÍêÈ«¼æÈÝPOSIX±ê×¼£¬Ò²ÎÞÐèÔÚ²Ù×÷ϵͳÄں˽øÐÐϵͳµ÷ÓõÄ1:1mapping¶Ô½Ó£¬Ö±½ÓÔÚÓû§Ì¬ÊµÏÖÎļþϵͳµÄÔªÊý¾Ý¹ÜÀíºÍÊý¾Ý¶Áд·ÃÎÊÖ§³Ö¼´¿É£¬ÊµÏÖÄѶȴó´ó½µµÍ£¬²¢ÇÒ¸ü¼ÓÓÐÀûÓÚ·Ö²¼Ê½ÏµÍ³µÄ½ø³Ì¼äͨѶ¡£

С½á£ºÍ¨¹ýÒÔÉϵĽéÉÜ£¬ÎÒÃDz»ÄÑ·¢ÏÖ£¬PolarDB²ÉÓÃÁË´Ó¼ÆËãÐéÄ⻯£¬¸ßËÙÍøÂ绥Áª£¬´æ´¢¿éÉ豸£¬·Ö²¼Ê½Îļþϵͳ£¬Êý¾Ý¿âÎïÀíReplicationµÈÈ«·½Î»µÄ¼¼ÊõÊֶΣ¬¿ÉÒÔ˵ÊÇÖÚ¶àÈȵ㼼ÊõµÄ¼¯´ó³É¡£ÕýʽÕâЩ¹Ø¼ü¼¼ÊõµÄÕûºÏ´´Ð£¬²ÅʹµÃPolarDBµÄÐÔÄÜÓÐÁËÖʵķÉÔ¾¡£

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

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

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

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