±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcloud.tencent.com,CynosDB
for PostgreSQLÊÇÌÚÑ¶ÔÆ×ÔÑеÄÒ»¿îÔÆÔÉúÊý¾Ý¿â£¬ÆäÖ÷ÒªºËÐÄ˼ÏëÀ´×ÔÓÚÑÇÂíÑ·µÄÔÆÊý¾Ý¿â·þÎñAurora¡£ |
|
ÆóÒµITÏµÍ³Ç¨ÒÆµ½¹«ÓÐÔÆÉÏÒÑÈ»ÊÇÕýÔÚ·¢ÉúµÄÇ÷ÊÆ¡£Êý¾Ý¿â·þÎñ£¬×÷Ϊ¹«ÓÐÔÆÉÏÌṩµÄ¹Ø¼ü×é¼þ£¬ÊÇÆóÒµ¿Í»§ÊÇ·ñÔ¸Ò⽫×Ô¼ºÔËÐжàÄêµÄϵͳ°áµ½ÔÆÉϵĹؼü¿¼Á¿Ö®Ò»¡£ÁíÒ»·½Ã棬×Ô´ÓSystem
R¿ªÊ¼£¬¹ØÏµÊý¾Ý¿âϵͳÒѾ´óÔ¼ËÄÊ®ÄêµÄÀúÊ·ÁË¡£ÓÈÆäÊÇËæ×Å»¥ÁªÍøµÄ·¢Õ¹£¬ÒµÎñ¶ÔÊý¾Ý¿âʵÀýµÄÍÌÍÂÁ¿ÒªÇóÔ½À´Ô½¸ß¡£¶ÔÓںܶàÒµÎñÀ´Ëµ£¬µ¥¸öÎïÀí»úÆ÷ËùÄÜÌṩµÄ×î´óÍÌÍÂÁ¿ÒѾ²»ÄÜÂú×ãÒµÎñµÄ¸ßËÙ·¢Õ¹¡£Òò´Ë£¬Êý¾Ý¿â¼¯ÈºÊǺܶàITÏµÍ³ÈÆ²»¹ýÈ¥µÄ¿²¡£
CynosDB for PostgreSQLÊÇÌÚÑ¶ÔÆ×ÔÑеÄÒ»¿îÔÆÔÉúÊý¾Ý¿â£¬ÆäÖ÷ÒªºËÐÄ˼ÏëÀ´×ÔÓÚÑÇÂíÑ·µÄÔÆÊý¾Ý¿â·þÎñAurora¡£ÕâÖÖºËÐÄ˼Ïë¾ÍÊÇ¡°»ùÓÚÈÕÖ¾µÄ´æ´¢¡±ºÍ¡°´æ´¢¼ÆËã·ÖÀ롱¡£Í¬Ê±£¬CynosDBÔڼܹ¹ºÍ¹¤³ÌʵÏÖÉÏȷʵÓкܶàºÍAurora²»Ò»ÑùµÄµØ·½¡£CynosDBÏà±È´«Í³µÄµ¥»úÊý¾Ý¿â£¬Ö÷Òª½â¾öÈçÏÂÎÊÌ⣺
´æËã·ÖÀë
´æËã·ÖÀëÊÇÔÆÊý¾Ý¿âÇø±ðÓÚ´«Í³Êý¾Ý¿âµÄÖ÷ÒªÌØµãÖ®Ò»£¬Ö÷ÒªÊÇΪÁË1£©ÌáÉý×ÊÔ´ÀûÓÃЧÂÊ£¬Óû§ÓöàÉÙ×ÊÔ´¾Í¸ø¶àÉÙ×ÊÔ´£»2£©¼ÆËã½ÚµãÎÞ״̬¸üÓÐÀûÓÚÊý¾Ý¿â·þÎñµÄ¸ß¿ÉÓÃÐԺͼ¯Èº¹ÜÀí£¨¹ÊÕϻָ´¡¢ÊµÀýÇ¨ÒÆ£©µÄ±ãÀûÐÔ¡£
´æ´¢×Ô¶¯À©ËõÈÝ
´«Í³¹ØÏµÐÍÊý¾Ý¿â»áÊܵ½µ¥¸öÎïÀí»úÆ÷×ÊÔ´µÄÏÞÖÆ£¬°üÀ¨µ¥»úÉÏ´æ´¢¿Õ¼äµÄÏÞÖÆºÍ¼ÆËãÄÜÁ¦µÄÏÞÖÆ¡£CynosDB²ÉÓ÷ֲ¼Ê½´æ´¢À´Í»ÆÆµ¥»ú´æ´¢ÏÞÖÆ¡£ÁíÍ⣬´æ´¢Ö§³Ö¶à¸±±¾£¬Í¨¹ýRAFTÐÒéÀ´±£Ö¤¶à¸±±¾µÄÒ»ÖÂÐÔ¡£
¸ü¸ßµÄÍøÂçÀûÓÃÂÊ
ͨ¹ý»ùÓÚÈÕÖ¾µÄ´æ´¢Éè¼ÆË¼Â·£¬´ó·ù¶È½µµÍÊý¾Ý¿âÔËÐйý³ÌÖеÄÍøÂçÁ÷Á¿¡£
¸ü¸ßµÄÍÌÍÂÁ¿
´«Í³µÄÊý¾Ý¿â¼¯Èº£¬ÃæÁÙµÄÒ»¸ö¹Ø¼üÎÊÌâÊÇ£º·Ö²¼Ê½ÊÂÎñºÍ¼¯ÈºÍÌÍÂÁ¿ÏßÐÔÀ©Õ¹µÄì¶Ü¡£Ò²¾ÍÊÇ˵£¬ºÜ¶àÊý¾Ý¿â¼¯Èº£¬ÒªÃ´Ö§³ÖÍêÕûµÄACID£¬ÒªÃ´×·Ç󼫺õÄÏßÐÔÀ©Õ¹ÐÔ£¬´ó²¿·ÖʱºòÓãºÍÐÜÕÆ²»¿É¼æµÃ¡£Ç°Õß±ÈÈçOracle
RAC£¬ÊÇĿǰÊг¡ÉÏ×î³ÉÊì×îÍêÉÆµÄÊý¾Ý¿â¼¯Èº£¬Ìṩ¶ÔÒµÎñÍêȫ͸Ã÷µÄÊý¾Ý·ÃÎÊ·þÎñ¡£µ«ÊÇOracle RACµÄÏßÐÔÀ©Õ¹ÐÔÈ´±»Êг¡Ö¤Ã÷»¹²»¹»£¬Òò´Ë£¬¸ü¶àÓû§Ö÷ÒªÓÃRACÀ´¹¹½¨¸ß¿ÉÓü¯Èº£¬¶ø²»ÊǸßÀ©Õ¹µÄ¼¯Èº¡£ºóÕß±ÈÈçProxy+¿ªÔ´DBµÄÊý¾Ý¿â¼¯Èº·½°¸£¬Í¨³£ÄÜÌṩºÜºÃµÄÏßÐÔÀ©Õ¹ÐÔ£¬µ«ÊÇÒòΪ²»Ö§³Ö·Ö²¼Ê½ÊÂÎñ£¬¶ÔÊý¾Ý¿âÓû§´æÔڽϴóµÄÏÞÖÆ¡£ÓÖ»òÕß¿ÉÒÔÖ§³Ö·Ö²¼Ê½ÊÂÎñ£¬µ«Êǵ±¿ç½ÚµãдÈë±ÈÀýºÜ´óʱ£¬·´¹ýÀ´½µµÍÁËÏßÐÔÀ©Õ¹ÄÜÁ¦¡£CynosDBͨ¹ý²ÉÓÃһд¶à¶ÁµÄ·½Ê½£¬ÀûÓÃÖ»¶Á½ÚµãµÄÏßÐÔÀ©Õ¹À´ÌáÉýÕû¸öϵͳµÄ×î´óÍÌÍÂÁ¿£¬¶ÔÓÚ¾ø´ó²¿·Ý¹«ÓÐÔÆÓû§À´Ëµ£¬Õâ¾ÍÒѾ×ã¹»ÁË¡£
ÏÂͼΪCynosDB for PostgreSQLµÄ²úÆ·¼Ü¹¹Í¼£¬CynosDBÊÇÒ»¸ö»ùÓÚ¹²Ïí´æ´¢¡¢Ö§³Öһд¶à¶ÁµÄÊý¾Ý¿â¼¯Èº¡£

ͼһCynosDB for PostgreSQL²úÆ·¼Ü¹¹Í¼
CynosDB»ùÓÚCynosStoreÖ®ÉÏ£¬CynosStoreÊÇÒ»¸ö·Ö²¼Ê½´æ´¢£¬ÎªCynosDBÌṩ¼áʵµÄµ××ù¡£CynosStoreÓɶà¸öStore
NodeºÍCynosStore Client×é³É¡£CynosStore ClientÒÔ¶þ½øÖưüµÄÐÎʽÓëDB£¨PostgreSQL£©Ò»Æð±àÒ룬ΪDBÌṩ·ÃÎʽӿڣ¬ÒÔ¼°¸ºÔðÖ÷´ÓDBÖ®¼äµÄÈÕÖ¾Á÷´«Êä¡£³ý´ËÖ®Í⣬ÿ¸öStore
Node»á×Ô¶¯½«Êý¾ÝºÍÈÕÖ¾³ÖÐøµØ±¸·Ýµ½ÌÚÑ¶ÔÆ¶ÔÏó´æ´¢·þÎñCOSÉÏ£¬ÓÃÀ´ÊµÏÖPITR£¨¼´Ê±»Ö¸´£©¹¦ÄÜ¡£
Ò»¡¢CynosStoreÊý¾Ý×éÖ¯ÐÎʽ
CynosStore»áΪÿһ¸öÊý¾Ý¿â·ÖÅäÒ»¶Î´æ´¢¿Õ¼ä£¬ÎÒÃdzÆÖ®ÎªPool£¬Ò»¸öÊý¾Ý¿â¶ÔÓ¦Ò»¸öPool¡£Êý¾Ý¿â´æ´¢¿Õ¼äµÄÀ©ËõÈÝÊÇͨ¹ýPoolµÄÀ©ËõÈÝÀ´ÊµÏֵġ£Ò»¸öPool»á·Ö³É¶à¸öSegment
Group£¨SG£©£¬Ã¿¸öSG¹Ì¶¨´óСΪ10G¡£ÎÒÃÇÒ²°Ñÿ¸öSG½Ð×öÒ»¸öÂß¼·ÖƬ¡£Ò»¸öSegment
Group£¨SG£©Óɶà¸öÎïÀíµÄSegment×é³É£¬Ò»¸öSegment¶ÔÓ¦Ò»¸öÎïÀí¸±±¾£¬¶à¸ö¸±±¾Í¨¹ýRAFTÐÒéÀ´ÊµÏÖÒ»ÖÂÐÔ¡£SegmentÊÇCynosStoreÖÐ×îСµÄÊý¾ÝÇ¨ÒÆºÍ±¸·Ýµ¥Î»¡£Ã¿¸öSG±£´æÊôÓÚËüµÄÊý¾ÝÒÔ¼°¶ÔÕⲿ·ÖÊý¾Ý×î½üÒ»¶Îʱ¼äµÄдÈÕÖ¾¡£

ͼ¶þ CynosStore Êý¾Ý×éÖ¯ÐÎʽ
ͼ¶þÖÐCynosStoreÒ»¹²ÓÐ3¸öStore Node£¬CynosStoreÖд´½¨ÁËÒ»¸öPool£¬Õâ¸öPoolÓÉ3¸öSG×é³É£¬Ã¿¸öSGÓÐ3¸ö¸±±¾¡£CynosStore»¹ÓпÕÏеĸ±±¾£¬¿ÉÒÔÓÃÀ´¸øµ±Ç°PoolÀ©ÈÝ£¬Ò²¿ÉÒÔ´´½¨ÁíÒ»¸öPool£¬½«Õâ¿ÕÏеÄ3¸öSegment×é³ÉÒ»¸öSG²¢·ÖÅä¸öÕâ¸öеÄPool¡£
¶þ¡¢»ùÓÚÈÕÖ¾Ò첽дµÄ·Ö²¼Ê½´æ´¢
´«Í³µÄÊý¾Ýͨ³£²ÉÓÃWAL£¨ÈÕÖ¾ÏÈд£©À´ÊµÏÖÊÂÎñºÍ¹ÊÕϻָ´¡£ÕâÑù×ö×îÖ±¹ÛµÄºÃ´¦ÊÇ1£©Êý¾Ý¿âdown»úºó¿ÉÒÔ¸ù¾Ý³Ö¾Ã»¯µÄWALÀ´»Ö¸´Êý¾ÝÒ³¡£2£©ÏÈдÈÕÖ¾£¬¶ø²»ÊÇÖ±½ÓдÊý¾Ý£¬¿ÉÒÔÔÚÊý¾Ý¿âд²Ù×÷µÄ¹Ø¼ü·¾¶ÉϽ«Ëæ»úIO£¨Ð´Êý¾ÝÒ³£©±ä³É˳ÐòIO£¨Ð´ÈÕÖ¾£©£¬±ãÓÚÌáÉýÊý¾Ý¿âÐÔÄÜ¡£

ͼÈý »ùÓÚÈÕÖ¾µÄ´æ´¢
ͼÈý£¨×󣩼«¶È³éÏóµØÃèÊöÁË´«Í³Êý¾Ý¿âдÊý¾ÝµÄ¹ý³Ì£ºÃ¿´ÎÐÞ¸ÄÊý¾ÝµÄʱºò£¬±ØÐë±£Ö¤ÈÕÖ¾Ïȳ־û¯Ö®ºó²Å¿ÉÒÔ¶ÔÊý¾ÝÒ³½øÐг־û¯¡£´¥·¢ÈÕÖ¾³Ö¾Ã»¯µÄʱ»úͨ³£ÓÐ
1£©ÊÂÎñÌύʱ£¬Õâ¸öÊÂÎñ²úÉúµÄ×î´óÈÕÖ¾µã֮ǰµÄËùÓÐÈÕÖ¾±ØÐë³Ö¾Ã»¯Ö®ºó²ÅÄÜ·µ»Ø¸ø¿Í»§¶ËÊÂÎñÌá½»³É¹¦£»
2£©µ±ÈÕÖ¾»º´æ¿Õ¼ä²»¹»ÓÃʱ£¬±ØÐë³Ö¾Ã»¯Ö®ºó²ÅÄÜÊÍ·ÅÈÕÖ¾»º´æ¿Õ¼ä£»
3£©µ±Êý¾ÝÒ³»º´æ¿Õ¼ä²»¹»ÓÃʱ£¬±ØÐëÌÔ̲¿·ÖÊý¾ÝÒ³À´ÊÍ·Å»º´æ¿Õ¼ä¡£±ÈÈç¸ù¾ÝÌÔÌËã·¨±ØÐëÒªÌÔÌÔàÒ³A£¬ÄÇô×îºóÐÞ¸ÄAµÄÈÕÖ¾µã֮ǰµÄËùÓÐÈÕÖ¾±ØÐëÏȳ־û¯£¬È»ºó²Å¿ÉÒԳ־û¯Aµ½´æ´¢£¬×îºó²ÅÄÜÕæÕý´ÓÊý¾Ý»º´æ¿Õ¼äÖн«AÌÔÌ¡£
´ÓÀíÂÛÉÏÀ´Ëµ£¬Êý¾Ý¿âÖ»ÐèÒª³Ö¾Ã»¯ÈÕÖ¾¾Í¿ÉÒÔÁË¡£ÒòΪֻҪӵÓдÓÊý¾Ý¿â³õʼ»¯Ê±¿Ìµ½µ±Ç°µÄËùÓÐÈÕÖ¾£¬Êý¾Ý¿â¾ÍÄָܻ´³öµ±Ç°ÈκÎÒ»¸öÊý¾ÝÒ³µÄÄÚÈÝ¡£Ò²¾ÍÊÇ˵£¬Êý¾Ý¿âÖ»ÐèҪдÈÕÖ¾£¬¶ø²»ÐèҪдÊý¾ÝÒ³£¬¾ÍÄܱ£Ö¤Êý¾ÝµÄÍêÕûÐÔºÍÕýÈ·ÐÔ¡£µ«ÊÇ£¬Êµ¼ÊÉÏÊý¾Ý¿âʵÏÖÕß²»»áÕâô×ö£¬ÒòΪ1£©´ÓÍ·µ½Î²±éÀúÈÕÖ¾»Ö¸´³öÿ¸öÊý¾ÝÒ³½«ÊǷdz£ºÄʱµÄ£»2£©È«Á¿ÈÕÖ¾±ÈÊý¾Ý±¾Éí¹æÄ£Òª´óµÃ¶à£¬ÐèÒª¸ü¶àµÄ´ÅÅ̿ռäÈ¥´æ´¢¡£
ÄÇô£¬Èç¹û³Ö¾Ã»¯ÈÕÖ¾µÄ´æ´¢É豸²»½ö½ö¾ßÓд洢ÄÜÁ¦£¬»¹ÓµÓмÆËãÄÜÁ¦£¬Äܹ»×ÔÐн«ÈÕÖ¾ÖØ·Åµ½×îеÄÒ³µÄ»°£¬½«»áÔõôÑù£¿Êǵģ¬Èç¹ûÕâÑùµÄ»°£¬Êý¾Ý¿âÒýÇæ¾ÍûÓбØÒª½«Êý¾ÝÒ³´«µÝ¸ø´æ´¢ÁË£¬ÒòΪ´æ´¢¿ÉÒÔ×ÔÐмÆËã³öÐÂÒ³²¢³Ö¾Ã»¯¡£Õâ¾ÍÊÇCynosDB¡°²ÉÓûùÓÚÈÕÖ¾µÄ´æ´¢¡±µÄºËÐÄ˼Ï롣ͼÈý£¨ÓÒ£©¼«¶È³éÏóµØÃèÊöÁËÕâÖÖ˼Ï롣ͼÖмÆËã½ÚµãºÍ´æ´¢½ÚµãÖÃÓÚ²»Í¬µÄÎïÀí»ú£¬´æ´¢½Úµã³ýÁ˳־û¯ÈÕÖ¾ÒÔÍ⣬»¹¾ß±¸Í¨¹ýapplyÈÕÖ¾Éú³É×îÐÂÊý¾ÝÒ³ÃæµÄÄÜÁ¦¡£Èç´ËÒ»À´£¬¼ÆËã½ÚµãÖ»ÐèҪдÈÕÖ¾µ½´æ´¢½Úµã¼´¿É£¬¶ø²»ÐèÒªÔÙ½«Êý¾ÝÒ³´«µÝ¸ø´æ´¢½Úµã¡£
ÏÂͼÃèÊöÁ˲ÉÓûùÓÚÈÕÖ¾´æ´¢µÄCynosStoreµÄ½á¹¹¡£

ͼËÄ CynosStore£º»ùÓÚÈÕÖ¾µÄ´æ´¢
´ËͼÃèÊöÁËÊý¾Ý¿âÒýÇæÈçºÎ·ÃÎÊCynosStore¡£Êý¾Ý¿âÒýÇæÍ¨¹ýCynosStore ClientÀ´·ÃÎÊCynosStore¡£×îºËÐĵÄÁ½¸ö²Ù×÷°üÀ¨1£©Ð´ÈÕÖ¾£»2£©¶ÁÊý¾ÝÒ³¡£
Êý¾Ý¿âÒýÇæ½«Êý¾Ý¿âÈÕÖ¾´«µÝ¸øCynosStore£¬CynosStore Client¸ºÔð½«Êý¾Ý¿âÈÕ־ת»»³ÉCynosStore
Journal£¬²¢ÇÒ¸ºÔð½«ÕâЩ²¢·¢Ð´ÈëµÄJournal½øÐÐÐòÁл¯£¬×îºó¸ù¾ÝJournalÐ޸ĵÄÊý¾Ýҳ·Óɵ½²»Í¬µÄSGÉÏÈ¥£¬²¢·¢Ë͸øSGËùÊôStore
Node¡£ÁíÍ⣬CynosStore Client²ÉÓÃÒì²½µÄ·½Ê½¼àÌý¸÷¸öStore NodeµÄÈÕÖ¾³Ö¾Ã»¯È·ÈÏÏûÏ¢£¬²¢½«¹é²¢Ö®ºóµÄ×îеij־û¯ÈÕÖ¾µã¸æËßÊý¾Ý¿âÒýÇæ¡£
µ±Êý¾Ý¿âÒýÇæ·ÃÎʵÄÊý¾ÝÒ³ÔÚ»º´æÖв»ÃüÖÐʱ£¬ÐèÒªÏòCynosStore¶ÁÈ¡ÐèÒªµÄÒ³£¨read block£©¡£read
blockÊÇͬ²½²Ù×÷¡£²¢ÇÒ£¬CynosStoreÖ§³ÖÒ»¶¨Ê±¼ä·¶Î§µÄ¶à°æ±¾Ò³¶ÁÈ¡¡£ÒòΪ¸÷¸öStore
NodeÔÚÖØ·ÅÈÕ־ʱµÄ²½µ÷²»ÄÜÍêÈ«×öµ½Ò»Ö£¬×Ü»áÓÐÏÈÓкó£¬Òò´ËÐèÒª¶ÁÇëÇ󷢯ðÕßÌṩһÖÂÐÔµãÀ´±£Ö¤Êý¾Ý¿âÒýÇæËùÒªÇóµÄÒ»ÖÂÐÔ£¬»òÕßĬÈÏÇé¿öÏÂÓÉCynosStoreÓÃ×îеÄÒ»ÖÂÐԵ㣨¶Áµã£©È¥¶ÁÊý¾ÝÒ³¡£ÁíÍ⣬ÔÚһд¶à¶ÁµÄ³¡¾°Ï£¬Ö»¶ÁÊý¾Ý¿âʵÀýÒ²ÐèÒªÓõ½CynosStoreÌṩµÄ¶à°æ±¾ÌØÐÔ¡£
CynosStoreÌṩÁ½¸ö²ãÃæµÄ·ÃÎʽӿڣºÒ»¸öÊÇ¿éÉ豸²ãÃæµÄ½Ó¿Ú£¬ÁíÒ»¸öÊÇ»ùÓÚ¿éÉ豸µÄÎļþϵͳ²ãÃæµÄ½Ó¿Ú¡£·Ö±ð½Ð×öCynosBSºÍCynosFS£¬ËûÃǶ¼²ÉÓÃÕâÖÖÒ첽дÈÕÖ¾¡¢Í¬²½¶ÁÊý¾ÝµÄ½Ó¿ÚÐÎʽ¡£ÄÇô£¬CynosDB
for PostgreSQL£¬²ÉÓûùÓÚÈÕÖ¾µÄ´æ´¢£¬Ïà±ÈÒ»Ö÷¶à´ÓPostgreSQL¼¯ÈºÀ´Ëµ£¬µ½µ×ÄÜ´øÀ´ÄÄЩºÃ´¦£¿
1£©¼õÉÙÍøÂçÁ÷Á¿¡£Ê×ÏÈ£¬Ö»Òª´æËã·ÖÀë¾Í±ÜÃâ²»Á˼ÆËã½ÚµãÏò´æ´¢½Úµã·¢ËÍÊý¾Ý¡£Èç¹ûÎÒÃÇ»¹ÊÇʹÓô«Í³Êý¾Ý¿â+ÍøÂçÓ²Å̵ķ½Ê½À´×ö´æËã·ÖÀ루¼ÆËãºÍ´æ´¢½éÖʵķÖÀ룩£¬ÄÇÃ´ÍøÂçÖгýÁËÐèÒª´«µÝÈÕÖ¾ÒÔÍ⣬»¹ÐèÒª´«µÝÊý¾Ý£¬´«µÝÊý¾ÝµÄ´óСÓɲ¢·¢Ð´ÈëÁ¿¡¢Êý¾Ý¿â»º´æ´óС¡¢ÒÔ¼°checkpointƵÂÊÀ´¾ö¶¨¡£ÒÔCynosStore×÷Ϊµ××ùµÄCynosDBÖ»ÐèÒª½«ÈÕÖ¾´«µÝ¸øCynosStore¾Í¿ÉÒÔÁË£¬½µµÍÍøÂçÁ÷Á¿¡£
2£©¸ü¼ÓÓÐÀûÓÚ»ùÓÚ¹²Ïí´æ´¢µÄ¼¯ÈºµÄʵÏÖ£ºÒ»¸öÊý¾Ý¿âµÄ¶à¸öʵÀý£¨Ò»Ð´¶à¶Á£©·ÃÎÊͬһ¸öPool¡£»ùÓÚÈÕ־дµÄCynosStoreÄܹ»±£Ö¤Ö»ÒªDBÖ÷½Úµã£¨¶Áд½Úµã£©Ð´ÈëÈÕÖ¾µ½CynosStore£¬¾ÍÄÜÈôӽڵ㣨ֻ¶Á½Úµã£©Äܹ»¶Áµ½±»Õⲿ·ÖÈÕÖ¾Ð޸ĹýµÄÊý¾ÝÒ³×îа汾£¬¶ø²»ÐèÒªµÈ´ýÖ÷½Úµãͨ¹ýcheckpointµÈ²Ù×÷½«Êý¾ÝÒ³³Ö¾Ã»¯µ½´æ´¢²ÅÄÜÈöÁ½Úµã¼ûµ½×îÐÂÊý¾ÝÒ³¡£ÕâÑùÄܹ»´ó´ó½µµÍÖ÷´ÓÊý¾Ý¿âʵÀýÖ®¼äµÄÑÓʱ¡£²»È»£¬´Ó½ÚµãÐèÒªµÈ´ýÖ÷½Úµã½«Êý¾ÝÒ³³Ö¾Ã»¯Ö®ºó£¨checkpoint£©²ÅÄÜÍÆ½ø¶Áµã¡£Èç¹ûÕâÑù£¬¶ÔÓÚÖ÷½ÚµãÀ´Ëµ£¬checkpointµÄ¼ä¸ôÌ«¾ÃµÄ»°£¬¾Í»áµ¼ÖÂÖ÷´ÓÑÓʱ¼Ó´ó£¬Èç¹ûcheckpoint¼ä¸ô̫С£¬ÓֻᵼÖÂÖ÷½ÚµãдÊý¾ÝµÄÍøÂçÁ÷Á¿Ôö´ó¡£
µ±È»£¬applyÈÕÖ¾Ö®ºóµÄÐÂÊý¾ÝÒ³µÄ³Ö¾Ã»¯£¬Õⲿ·Ö¹¤×÷×ÜÊÇÒª×öµÄ£¬²»»áƾ¿ÕÏûʧ£¬Ö»ÊÇ´ÓÊý¾Ý¿âÒýÇæÏÂÒÆµ½ÁËCynosStore¡£µ«ÊÇÕýÈçǰÎÄËùÊö£¬³ýÁ˽µµÍ²»±ØÒªµÄÍøÂçÁ÷Á¿ÒÔÍ⣬CynosStoreµÄ¸÷¸öSGÊDz¢ÐÐÀ´×öredoºÍ³Ö¾Ã»¯µÄ¡£²¢ÇÒÒ»¸öPoolµÄSGÊýÁ¿¿ÉÒÔ°´ÐèÀ©Õ¹£¬SGµÄËÞÖ÷Store
Node¿ÉÒÔ¶¯Ì¬µ÷¶È£¬Òò´Ë¿ÉÒÔÓ÷dz£Áé»îºÍ¸ßЧµÄ·½Ê½À´Íê³ÉÕⲿ·Ö¹¤×÷¡£
Èý¡¢CynosStore Journal£¨CSJ£©
CynosStore Journal£¨CSJ£©Íê³ÉÀàËÆÊý¾Ý¿âÈÕÖ¾µÄ¹¦ÄÜ£¬±ÈÈçPostgreSQLµÄWAL¡£CSJÓëPostgreSQL
WAL²»Í¬µÄµØ·½ÔÚÓÚ£ºCSJÓµÓÐ×Ô¼ºµÄÈÕÖ¾¸ñʽ£¬ÓëÊý¾Ý¿âÓïÒå½âñîºÏ¡£PostgreSQL WALÖ»ÓÐPostgreSQLÒýÇæ¿ÉÒÔÉú³ÉºÍ½âÎö£¬Ò²¾ÍÊÇ˵£¬µ±ÆäËû´æ´¢ÒýÇæÄõ½PostgreSQL
WALƬ¶ÎºÍÕⲿ·ÖƬ¶ÎËùÐ޸ĵĻù´¡Ò³ÄÚÈÝ£¬Ò²Ã»Óа취»Ö¸´³ö×îеÄÒ³ÄÚÈÝ¡£CSJÖÂÁ¦ÓÚ¶¨ÒåÒ»ÖÖÓë¸÷ÖÖ´æ´¢ÒýÇæÂß¼Î޹صÄÈÕÖ¾¸ñʽ£¬±ãÓÚ½¨Á¢Ò»¸öͨÓõĻùÓÚÈÕÖ¾µÄ·Ö²¼Ê½´æ´¢ÏµÍ³¡£CSJ¶¨ÁË5ÖÖJournalÀàÐÍ£º
1.SetByte£ºÓÃJournalÖеÄÄÚÈݸ²¸ÇÖ¸¶¨Êý¾ÝÒ³ÖС¢Ö¸¶¨Æ«ÒÆÎ»Öá¢Ö¸¶¨³¤¶ÈµÄÁ¬Ðø´æ´¢¿Õ¼ä¡£
2. SetBit£ºÓëSetByteÀàËÆ£¬²»Í¬µÄÊÇSetBitµÄ×îСÁ£¶ÈÊÇBit£¬ÀýÈçPostgreSQLÖÐhitbitÐÅÏ¢£¬¿ÉÒÔת»»³ÉSetBitÈÕÖ¾¡£
3. ClearPage£ºµ±Ð·ÖÅäPageʱ£¬ÐèÒª½«Æä³õʼ»¯£¬´ËʱзÖÅäÒ³µÄÔʼÄÚÈݲ¢²»ÖØÒª£¬Òò´Ë²»ÐèÒª½«Æä´ÓÎïÀíÉ豸ÖжÁ³öÀ´£¬¶ø½ö½öÐèÒªÓÃÒ»¸öÈ«ÁãҳдÈë¼´¿É£¬ClearPage¾ÍÊÇÃèÊöÕâÖÖÐ޸ĵÄÈÕÖ¾ÀàÐÍ¡£
4. DataMove£ºÓÐһЩдÈë²Ù×÷½«Ò³ÃæÖÐÒ»²¿·ÖµÄÄÚÈÝÒÆ¶¯µ½ÁíÒ»¸öµØ·½£¬DataMoveÀàÐ͵ÄÈÕÖ¾ÓÃÀ´ÃèÊöÕâÖÖ²Ù×÷¡£±ÈÈçPostgreSQLÔÚVacuum¹ý³ÌÖжÔPage½øÐÐcompact²Ù×÷£¬´ËʱÓÃDataMove±ÈÓÃSetByteÈÕÖ¾Á¿¸üС¡£
5. UserDefined£ºÊý¾Ý¿âÒýÇæ×Ü»áÓÐһЩ²Ù×÷²¢²»»áÐÞ¸Äij¸ö¾ßÌåµÄÒ³ÃæÄÚÈÝ£¬µ«ÊÇÐèÒª´æ·ÅÔÚÈÕÖ¾ÖС£±ÈÈçPostgreSQLµÄ×îеÄÊÂÎñid£¨xid£©¾ÍÊÇ´æ´¢ÔÚWALÖУ¬±ãÓÚÊý¾Ý¿â¹ÊÕϻָ´Ê±ÖªµÀ´ÓÄǸöxid¿ªÊ¼·ÖÅä¡£ÕâÖÖÀàÐÍÈÕÖ¾¸úÊý¾Ý¿âÒýÇæÓïÒåÏà¹Ø£¬²»ÐèÒªCynosStoreÈ¥Àí½â£¬µ«ÊÇÓÖÐèÒªÈÕÖ¾½«Æä³Ö¾Ã»¯¡£UserDefined¾ÍÊÇÀ´ÃèÊöÕâÖÖÈÕÖ¾µÄ¡£CynosStoreÕë¶ÔÕâÖÖÈÕÖ¾Ö»¸ºÔð³Ö¾Ã»¯ºÍÌṩ²éѯ½Ó¿Ú£¬apply
CSJʱ»áºöÂÔËü¡£
ÒÔÉÏ5ÖÖÀàÐ͵ÄJournalÊÇ´æ´¢×îµ×²ãµÄÈÕÖ¾£¬Ö»Òª¶ÔÊý¾ÝµÄдÊÇ»ùÓÚ¿é/Ò³µÄ£¬¶¼¿ÉÒÔת»»³ÉÕâ5ÖÖÈÕÖ¾À´ÃèÊö¡£µ±È»£¬Ò²ÓÐһЩÒýÇæ²»Ì«ÊʺÏת»»³ÉÕâÖÖ×îµ×²ãµÄÈÕÖ¾¸ñʽ£¬±ÈÈç»ùÓÚLSMµÄ´æ´¢ÒýÇæ¡£
CSJµÄÁíÒ»¸öÌØµãÊÇÂÒÐò³Ö¾Ã»¯£¬ÒòΪһ¸öPoolµÄCSJ»á·Óɵ½¶à¸öSGÉÏ£¬²¢ÇÒ²ÉÓÃÒ첽дÈëµÄ·½Ê½¡£¶øÃ¿¸öSG·µ»ØµÄjournal
ack²¢²»Í¬²½£¬²¢ÇÒÏ໥´©²å£¬Òò´ËCynosStore Client»¹ÐèÒª½«ÕâЩack½øÐй鲢²¢ÍƽøÁ¬ÐøCSJµã£¨VDL£©¡£

ͼÎå CynosStoreÈÕ־·ÓɺÍÂÒÐòACK
Ö»ÒªÊÇÁ¬ÐøÈÕÖ¾¸ù¾ÝÊý¾Ý·ÖƬ·ÓÉ£¬¾Í»áÓÐÈÕÖ¾ÂÒÐòackµÄÎÊÌ⣬´Ó¶ø±ØÐë¶ÔÈÕÖ¾ack½øÐй鲢¡£AuroraÓÐÕâ¸ö»úÖÆ£¬CynosDBͬÑùÓС£ÎªÁ˱ãÓÚÀí½â£¬ÎÒÃǶÔJournalÖеĸ÷¸ö¹Ø¼üµãµÄÃüÃû²ÉÓøúAuroraͬÑùµÄ·½Ê½¡£
ÕâÀïÐèÒªÖØµãÃèÊöµÄÊÇMTR£¬MTRÊÇCynosStoreÌṩµÄÔ×Óдµ¥Î»£¬CSJ¾ÍÊÇÓÉÒ»¸öMTR½ô°¤×ÅÒ»¸öMTR×é³ÉµÄ£¬ÈÎÒâÒ»¸öÈÕÖ¾±ØÐëÊôÓÚÒ»¸öMTR£¬Ò»¸öMTRÖеĶàÌõÈÕÖ¾ºÜÓпÉÄÜÊôÓÚ²»Í¬µÄSG¡£Õë¶ÔPostgreSQLÒýÇæ£¬¿ÉÒÔ½üËÆÀí½âΪ£ºÒ»¸öXLogRecord¶ÔÓ¦Ò»¸öMTR£¬Ò»¸öÊý¾Ý¿âÊÂÎñµÄÈÕÖ¾ÓÉÒ»¸ö»òÕß¶à¸öMTR×é³É£¬¶à¸öÊý¾Ý¿â²¢·¢ÊÂÎñµÄMTR¿ÉÒÔÏ໥´©²å¡£µ«ÊÇCynosStore²¢²»Àí½âºÍ¸ÐÖªÊý¾Ý¿âÒýÇæµÄÊÂÎñÂß¼£¬¶øÖ»Àí½âMTR¡£·¢Ë͸øCynosStoreµÄ¶ÁÇëÇóËùÌṩµÄ¶Áµã±ØÐë²»ÄÜÔÚÒ»¸öMTRµÄÄÚ²¿Ä³¸öÈÕÖ¾µã¡£¼ò¶øÑÔÖ®£¬MTR¾ÍÊÇCynosStoreµÄÊÂÎñ¡£
ËÄ¡¢¹ÊÕϻָ´
µ±Ö÷ʵÀý·¢Éú¹ÊÕϺó£¬ÓпÉÄÜÕâ¸öÖ÷ʵÀýÉÏPoolÖи÷¸öSG³Ö¾Ã»¯µÄÈÕÖ¾µãÔÚÈ«¾Ö·¶Î§ÄÚ²¢²»Á¬Ðø£¬»òÕß˵Óпն´¡£¶øÕâЩ¿Õ¶´Ëù¶ÔÓ¦µÄÈÕÖ¾ÄÚÈÝÒѾÎÞ´ÓµÃÖª¡£±ÈÈçÓÐ3ÌõÁ¬ÐøµÄÈÕÖ¾j1,
j2, j3·Ö±ð·Óɵ½Èý¸öSGÉÏ£¬·Ö±ðΪsg1, sg2, sg3¡£ÔÚ·¢Éú¹ÊÕϵÄÄÇÒ»¿Ì£¬j1ºÍj3ÒѾ³É¹¦·¢Ë͵½sg1ºÍsg3¡£µ«ÊÇj2»¹ÔÚCynosStore
ClientËùÔÚ»úÆ÷µÄÍøÂ绺³åÇøÖУ¬²¢ÇÒËæ×ÅÖ÷ʵÀý¹ÊÕ϶ø¶ªÊ§¡£ÄÇôµ±ÐµÄÖ÷ʵÀýÆô¶¯ºó£¬Õâ¸öPoolÉϾͻáÓв»Á¬ÐøµÄÈÕÖ¾j1,
j3£¬¶øj2ÒѾ¶ªÊ§¡£
µ±ÕâÖÖ¹ÊÕϳ¡¾°·¢Éúºó£¬ÐÂÆô¶¯µÄÖ÷ʵÀý½«»á¸ù¾ÝÉϴγ־û¯µÄÁ¬ÐøÈÕÖ¾VDL£¬ÔÚÿ¸öSGÉϲéѯ×Ô´ÓÕâ¸öVDLÖ®ºóµÄËùÓÐÈÕÖ¾£¬²¢½«ÕâЩÈÕÖ¾½øÐй鲢£¬¼ÆËã³öеÄÁ¬Ðø³Ö¾Ã»¯µÄÈÕÖ¾ºÅVDL¡£Õâ¾ÍÊÇеÄÒ»ÖÂÐԵ㡣ÐÂʵÀýͨ¹ýCynosStoreÌṩµÄTruncate½Ó¿Ú½«Ã¿¸öSGÉÏ´óÓÚVDLµÄÈÕÖ¾truncateµô£¬ÄÇôÐÂʵÀý²úÉúµÄµÚÒ»Ìõjournal½«´ÓÕâ¸öеÄVDLµÄÏÂÒ»Ìõ¿ªÊ¼¡£

ͼÁù£º¹ÊÕϻָ´Ê±ÈÕÖ¾»Ö¸´¹ý³Ì
Èç¹ûͼÎå¸ÕºÃÊÇij¸öÊý¾Ý¿âʵÀý¹ÊÕÏ·¢ÉúµÄʱ¼äµã£¬µ±ÖØÐÂÆô¶¯Ò»¸öÊý¾Ý¿â¶ÁдʵÀýÖ®ºó£¬Í¼Áù¾ÍÊǼÆËãеÄÒ»ÖÂÐÔµãµÄ¹ý³Ì¡£CynosStore
Client»á¼ÆËãµÃ³öеÄÒ»ÖÂÐÔµã¾ÍÊÇ8£¬²¢ÇÒ°Ñ´óÓÚ8µÄÈÕÖ¾¶¼Truncateµô¡£Ò²¾ÍÊǰÑSG2ÉϵÄ9ºÍ10truncateµô¡£ÏÂÒ»¸ö²úÉúµÄÈÕÖ¾½«»á´Ó9¿ªÊ¼¡£
Îå¡¢¶à¸±±¾Ò»ÖÂÐÔ
CynosStore²ÉÓÃMulti-RAFTÀ´ÊµÏÖSGµÄ¶à¸±±¾Ò»ÖÂÐÔ£¬ CynosStore²ÉÓÃÅúÁ¿ºÍÒì²½Á÷Ë®Ïߵķ½Ê½À´ÌáÉýRAFTµÄÍÌÍÂÁ¿¡£ÎÒÃDzÉÓÃCynosStore×Ô¶¨ÒåµÄbenchmark²âµÃµ¥¸öSGÉÏÈÕÖ¾³Ö¾Ã»¯µÄÍÌÍÂÁ¿Îª375ÍòÌõ/ÿÃë¡£CynosStore
benchmark²ÉÓÃÒ첽дÈëÈÕÖ¾µÄ·½Ê½²âÊÔCynosStoreµÄÍÌÍÂÁ¿£¬ÈÕÖ¾ÀàÐͰüº¬SetByteºÍSetBitÁ½ÖÖ£¬Ð´ÈÕÖ¾Ï̳߳ÖÐø²»¶ÏµØÐ´ÈëÈÕÖ¾£¬¼àÌýÏ̸߳ºÔð´¦Àíack»Ø°ü²¢ÍƽøVDL£¬È»ºóbenchmark²âÁ¿µ¥Î»Ê±¼äÄÚVDLµÄÍÆ½øËÙ¶È¡£375ÍòÌõ/ÃëÒâζ×ÅÿÃëÖÓÒ»¸öSG³Ö¾Ã»¯375ÍòÌõSetByteºÍSetBitÈÕÖ¾¡£ÔÚÒ»¸öSGµÄ³¡¾°Ï£¬CynosStore
Clientµ½Store NodeµÄƽ¾ùÍøÂçÁ÷Á¿171MB/ÿÃ룬ÕâÒ²ÊÇÒ»¸öLeaderµ½Ò»¸öFollowerµÄÍøÂçÁ÷Á¿¡£
Áù¡¢Ò»Ð´¶à¶Á
CynosDB»ùÓÚ¹²Ïí´æ´¢CynosStore£¬Ìṩ¶Ôͬһ¸öPoolÉϵÄһд¶à¶ÁÊý¾Ý¿âʵÀýµÄÖ§³Ö£¬ÒÔÌáÉýÊý¾Ý¿âµÄÍÌÍÂÁ¿¡£»ùÓÚ¹²Ïí´æ´¢µÄһд¶à¶ÁÐèÒª½â¾öÁ½¸öÎÊÌ⣺
1. Ö÷½Úµã£¨¶Áд½Úµã£©ÈçºÎ½«¶ÔÒ³µÄÐÞ¸Ä֪ͨ¸ø´Ó½Úµã£¨Ö»¶Á½Úµã£©¡£ÒòΪ´Ó½ÚµãÒ²ÊÇÓÐBufferµÄ£¬µ±´Ó½Úµã»º´æµÄÒ³ÃæÔÚÖ÷½ÚµãÖб»ÐÞ¸Äʱ£¬´Ó½ÚµãÐèÒªÒ»ÖÖ»úÖÆÀ´µÃÖªÕâ¸ö±»Ð޸ĵÄÏûÏ¢£¬´Ó¶øÔÚ´Ó½ÚµãBufferÖиüÐÂÕâ¸öÐ޸ĻòÕß´ÓCynosStoreÖÐÖØ¶ÁÕâ¸öÒ³µÄа汾¡£
2. ´Ó½ÚµãÉϵĶÁÇëÇóÈçºÎ¶Áµ½Êý¾Ý¿âµÄÒ»ÖÂÐԵĿìÕÕ¡£¿ªÔ´PostgreSQLµÄÖ÷±¸Ä£Ê½ÖУ¬±¸»úͨ¹ýÀûÓÃÖ÷»úͬ²½¹ýÀ´µÄ¿ìÕÕÐÅÏ¢ºÍÊÂÎñÐÅÏ¢¹¹ÔìÒ»¸ö¿ìÕÕ£¨»î¶¯ÊÂÎñÁÐ±í£©¡£CynosDBµÄ´Ó½Úµã³ýÁËÐèÒªÊý¾Ý¿â¿ìÕÕ£¨»î¶¯ÊÂÎñÁÐ±í£©ÒÔÍ⣬»¹ÐèÒªÒ»¸öCynosStoreµÄ¿ìÕÕ£¨Ò»ÖÂÐÔ¶Áµã£©¡£ÒòΪ·ÖƬµÄÈÕ־ʱ²¢ÐÐapplyµÄ¡£
Èç¹ûÒ»¸öһд¶à¶ÁµÄ¹²Ïí´æ´¢Êý¾Ý¿â¼¯ÈºµÄ´æ´¢±¾Éí²»¾ß±¸ÈÕÖ¾ÖØ×öµÄÄÜÁ¦£¬Ö÷´ÓÄÚ´æÒ³µÄͬ²½ÓÐÁ½ÖÖ±¸Ñ¡·½°¸£º
µÚÒ»ÖÖ±¸Ñ¡·½°¸£¬Ö÷´ÓÖ®¼äֻͬ²½ÈÕÖ¾¡£´ÓʵÀý½«ÖÁÉÙÐèÒª±£ÁôÖ÷ʵÀý×Ô´ÓÉÏ´ÎcheckpointÒÔÀ´ËùÓвúÉúµÄÈÕÖ¾£¬Ò»µ©´ÓʵÀý²úÉúcache
miss£¬Ö»ÄÜ´Ó´æ´¢É϶ÁÈ¡ÉÏ´ÎcheckpointµÄbaseÒ³£¬²¢ÔÚ´Ë»ù´¡ÉÏÖØ·ÅÈÕÖ¾»º´æÖÐ×ÔÉÏ´ÎcheckpointÒÔÀ´µÄËùÓйØÓÚÕâ¸öÒ³µÄÐ޸ġ£ÕâÖÖ·½·¨µÄ¹Ø¼üÎÊÌâÔÚÓÚÈç¹ûÖ÷ʵÀýcheckpointÖ®¼äµÄʱ¼ä¼ä¸ôÌ«³¤£¬»òÕßÈÕÖ¾Á¿Ì«´ó£¬»áµ¼Ö´ÓʵÀýÔÚÃüÖÐÂʲ»¸ßµÄÇé¿öÏÂÔÚapplyÈÕÖ¾ÉϺķѷdz£¶àµÄʱ¼ä¡£ÉõÖÁ£¬¼«¶Ë³¡¾°Ï£¬µ¼Ö´ÓʵÀý¶Ôͬһ¸öÒ³»á·´¸´¶à´Îapplyͬһ¶ÎÈÕÖ¾£¬³ýÁË´ó·ùÔö´ó²éѯʱÑÓ£¬»¹²úÉúÁ˺ܶàû±ØÒªµÄCPU¿ªÏú£¬Í¬Ê±Ò²»áµ¼ÖÂÖ÷´ÓÖ®¼äµÄÑÓʱÓпÉÄÜ´ó·ùÔö¼Ó¡£
µÚ¶þÖÖ±¸Ñ¡·½°¸£¬Ö÷ʵÀýÏò´ÓʵÀýÌṩ¶ÁÈ¡Äڴ滺³åÇøÊý¾ÝÒ³µÄ·þÎñ£¬Ö÷ʵÀý¶¨ÆÚ½«±»Ð޸ĵÄÒ³ºÅºÍÈÕ־ͬ²½¸ø´ÓʵÀý¡£µ±¶Áҳʱ£¬´ÓʵÀýÊ×Ïȸù¾ÝÖ÷ʵÀýͬ²½µÄ±»Ð޸ĵÄÒ³ºÅÐÅÏ¢À´ÅжÏÊÇ1£©Ö±½ÓʹÓôÓʵÀý×Ô¼ºµÄÄÚ´æÒ³£¬»¹ÊÇ2£©¸ù¾ÝÄÚ´æÒ³ºÍÈÕÖ¾ÖØ·ÅеÄÄÚ´æÒ³£¬»¹ÊÇ3£©´ÓÖ÷ʵÀýÀÈ¡×îеÄÄÚ´æÒ³£¬»¹ÊÇ4£©´Ó´æ´¢¶Áȡҳ¡£ÕâÖÖ·½·¨ÓеãÀàËÆOracle
RACµÄ¼ò»¯°æ¡£ÕâÖÖ·½°¸Òª½â¾öÁ½¸ö¹Ø¼üÎÊÌ⣺1£©²»Í¬µÄ´ÓʵÀý´ÓÖ÷ʵÀý»ñÈ¡µÄÒ³¿ÉÄÜÊDz»Í¬°æ±¾£¬Ö÷ʵÀýÄÚ´æÒ³·þÎñÓпÉÄÜÐèÒªÌṩ¶à°æ±¾µÄÄÜÁ¦¡£2£©¶ÁÄÚ´æÒ³·þÎñ¿ÉÄܶÔÖ÷ʵÀý²úÉú½Ï´ó¸ºµ££¬ÒòΪ³ýÁ˶à¸ö´ÓʵÀýµÄÓ°ÏìÒÔÍ⣬»¹ÓÐÒ»µã¾ÍÊÇÿ´ÎÖ÷ʵÀýÖеÄij¸öÒ³ÄÄÅÂÐ޸ĺÜСµÄÒ»²¿·ÖÄÚÈÝ£¬´ÓʵÀýÈç¹û¶Áµ½´ËÒ³Ôò±ØÐëÀÈ¡ÕûÒ³ÄÚÈÝ¡£´óÖÂÀ´Ëµ£¬Ö÷ʵÀýÐÞ¸ÄԽƵ·±£¬´ÓʵÀýÀȡҲ»á¸üƵ·±¡£
Ïà±È½ÏÀ´Ëµ£¬CynosStoreÒ²ÐèҪͬ²½ÔàÒ³£¬µ«ÊÇCynosStoreµÄ´ÓʵÀý»ñÈ¡ÐÂÒ³µÄ·½Ê½ÒªÁé»îµÄ¶àÓÐÁ½ÖÖÑ¡Ôñ1£©´ÓÈÕÖ¾ÖØ·ÅÄÚ´æÒ³£»2£©´ÓStoreNode¶ÁÈ¡¡£´ÓʵÀý¶Ôͬ²½ÔàÒ³ÐèÒªµÄ×îСÐÅÏ¢½ö½öÊǵ½µ×ÄÄЩҳ±»Ö÷ʵÀý¸øÐ޸Ĺý£¬Ö÷´Óͬ²½ÈÕÖ¾ÄÚÈÝÊÇΪÁËÈôÓʵÀý¼ÓËÙ£¬ÒÔ¼°½µµÍStore
NodeµÄ¸ºµ£¡£

ͼÆß CynosDBһд¶à¶Á
ͼÆßÃèÊöÁËһдһ¶Á£¨Ò»Ö÷Ò»´Ó£©µÄ»ù±¾¿ò¼Ü£¬Ò»Ð´¶à¶Á£¨Ò»Ö÷¶à´Ó£©¾ÍÊÇһдһ¶ÁµÄµþ¼Ó¡£CynosStore
Client£¨CSClient£©ÔËÐÐÌ¬Çø·ÖÖ÷´Ó£¬Ö÷CSClientÔ´Ô´²»¶ÏµØ½«CynosStore
Journal£¨CSJ£©´ÓÖ÷ʵÀý·¢Ë͵½´ÓʵÀý£¬Ó뿪ԴPostgreSQLÖ÷±¸Ä£Ê½²»Í¬µÄÊÇ£¬Ö»ÒªÕâЩÁ¬ÐøµÄÈÕÖ¾µ½´ï´ÓʵÀý£¬²»Óõȵ½ÕâЩÈÕ־ȫ²¿apply£¬DB
engine¾Í¿ÉÒÔ¶Áµ½ÕâЩÈÕÖ¾ËùÐ޸ĵÄ×îа汾¡£´Ó¶ø½µµÍÖ÷´ÓÖ®¼äµÄʱÑÓ¡£ÕâÀïÌåÏÖ¡°»ùÓÚÈÕÖ¾µÄ´æ´¢¡±µÄÓÅÊÆ£ºÖ»ÒªÖ÷ʵÀý½«ÈÕÖ¾³Ö¾Ã»¯µ½Store
Node£¬´ÓʵÀý¼´¿É¶Áµ½ÕâЩÈÕÖ¾ËùÐ޸ĵÄ×îа汾Êý¾ÝÒ³¡£
Æß¡¢½áÓï
CynosStoreÊÇÒ»¸öÍêÈ«´ÓÁã´òÔì¡¢ÊÊÓ¦ÔÆÊý¾Ý¿âµÄ·Ö²¼Ê½´æ´¢¡£CynosStoreÔڼܹ¹ÉϾ߱¸Ò»Ð©ÌìÈ»ÓÅÊÆ£º1£©´æ´¢¼ÆËã·ÖÀ룬²¢ÇÒ°Ñ´æ´¢¼ÆËãµÄÍøÂçÁ÷Á¿½µµ½×îµÍ£»
2£©ÌáÉý×ÊÔ´ÀûÓÃÂÊ£¬½µµÍÔÆ³É±¾£¬3£©¸ü¼ÓÓÐÀûÓÚÊý¾Ý¿âʵÀýʵÏÖһд¶à¶Á£¬4£©Ïà±ÈÒ»Ö÷Á½´ÓµÄ´«Í³RDS¼¯Èº¾ß±¸¸ü¸ßµÄÐÔÄÜ¡£³ý´ËÖ®Í⣬ºóÐøÎÒÃÇ»áÔÚÐÔÄÜ¡¢¸ß¿ÉÓá¢×ÊÔ´¸ôÀëµÈ·½Ãæ¶ÔCynosStore½øÐнøÒ»²½µÄÔöÇ¿¡£ |