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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÈçºÎ¹¹½¨Ò»¸öNewSQLÊý¾Ý¿â
 
×÷Õߣº ÖÙÅàÒÕ
  3844  次浏览      39
2019-11-15
 
±à¼­ÍƼö:
±¾´Î½²ÊöÁ˼òÒª½éÉÜNewSQL£» ÈçºÎ½¨Á¢Ò»¸öNewSQLÊý¾Ý¿â£» ÒÔ¼°roadmap£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú,
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­¡¢ÍƼö¡£

ΪʲôÎÒÃÇÐèÒªÒ»¸öеÄÊý¾Ý¿â£¿

ÔÚÕýʽ¿ªÊ¼Ç°£¬ÎÒÏÈÎÊÒ»¸öÎÊÌ⣺ÄãÃÇÊìϤÊý¾Ý¿âÂð£¿

ÁíÍ⣬ÓÐË­ÖªµÀMySQLÂð£¿

ÄÇô£¬ÏÖÓÐÊý¾Ý¿â´æÔÚÄÄЩÎÊÌâÄØ£¿

ÏñMySQL¡¢Oracle¡¢PostgreSQLÕâÑùµÄ¹ØÏµÊý¾Ý¿â£¬ËüÃǵÄÎÊÌâÊǺÜÄÑÀ©Õ¹¡£¾¡¹ÜÎÒÃÇÓÐ·ÖÆ¬¼¼Êõ£¬»¹ÓÐyoutube/vitessºÍMySQL proxyµÈ,µ«ËüÃǶ¼²»Ö§³Ö·Ö²¼Ê½ÊÂÎñÒÔ¼°cross-node joinÁ¬½Ó¡£

ÏñHBase¡¢MongoDBÒÔ¼°RedisÕâÑùµÄNoSQLÊý¾Ý¿â£ºËüÃÇ¿ÉÀ©Õ¹£¬µ«²»Ö§³ÖSQL£¬Í¬Ê±Ò²ÉáÆúÁËÊÂÎñµÄÒ»ÖÂÐÔ¡£

Òò´Ë£¬ÐÂÒ»´úÊý¾Ý¿â½«»áÊÇÔõÑùµÄ£¿ÔÚÎÒ¿´À´£¬ÆäÖ÷ÒªÌØÕ÷Ó¦¸ÃÊÇ£º

Ö§³ÖSQL£»

¾ßÓпÉÀ©Õ¹ÐÔ£»

Ö§³ÖÊÂÎñÖ´ÐÐËÄÒªËØ/ACID Transaction£»

¸ß¿ÉÓá£

Ê×ÏÈ£¬Ëü±ØÐëÖ§³ÖSQL£¬ÒòΪÕâÊýÊ®ÄêÀ´ÎÒÃÇÒ»Ö±ÔÚʹÓÃSQL£¬¶øÇÒÐí¶àÓ¦ÓóÌÐò¶¼Ê¹ÓÃSQL£¬¹Ê¶ø²»ÄÜÇáÒ×½«ÆäÉáÆú¡£

µÚ¶þ£¬±ØÐëÓÐÁ¼ºÃµÄÀ©Õ¹ÐÔ£¬Ò²¾ÍÊÇ˵ֻÐèͨ¹ý½ÓÈë¸ü¶àµÄ»úÆ÷¾Í¿ÉÒÔÀ©Õ¹ÆäÈÝÁ¿»òʹ֮ʵÏÖ¸ºÔؾùºâ¡£

µÚÈý£¬±ØÐëÖ§³ÖÊÂÎñµÄACIDÊôÐÔ£¬ÕâÒ»µãҲǡǡÊǹØÏµÊý¾Ý¿âµÄÖ÷ÒªÌØÕ÷Ö®Ò»¡£ÓÐÁËÇ¿´óµÄÒ»ÖÂÐÔ×÷±£ÕÏ£¬¿ª·¢Õß±ã¿ÉÒÔÓý϶̵ĴúÂë±àд³öÕýÈ·µÄ³ÌÐò¡£

×îºó£¬¼´Ê¹ÊÇÔÚ¼ÆËã»úÏÝÈë¹ÊÕÏ£¬ÉõÖÁÊÇÕû¸öÊý¾ÝÖÐÐÄ̱»¾µÄÇé¿öÏ£¬ËüÒ²Ó¦¸ÃÄܹ»±£³ÖÆä½Ï¸ßµÄ¿ÉÓÃÐÔ¡£Í¬Ê±£¬Ëü»¹Ó¦µ±¿ÉÒÔ×Ô¶¯ÐÞ¸´¡£

×ÜÖ®£¬ÐÂÒ»´úÊý¾Ý¿âÓ¦¸Ã¼ÈÓкܺõĿÉÀ©Õ¹ÐÔ£¬ÓÖÄܱ£Áô¹ØÏµÊý¾Ý¿âµÄÖ÷ÒªÌØÕ÷¡£

NewSQLÊÇʲô?

Äã¿ÉÄÜ»áºÃÆæ£¬ÕâÑùµÄÊý¾Ý¿âÕæµÄ´æÔÚÂð£¿ËüÌýÆðÀ´ËƺõÌ«¹ýÍêÃÀºÍÀíÏ뻯ÁË¡£Õâ¸öÎÊÌâµÄ´ð°¸Êǿ϶¨µÄ£¬ÕâÑùµÄÊý¾Ý¿âµÄÈ·´æÔÚ£¬Ëü¾ÍÊÇNewSQL¡£ÄÇʲôÊÇNewSQLÊý¾Ý¿â£¿ÏÈÀ´¿´Ò»¿´Î¬»ù°Ù¿Æ¸ø³öµÄ½âÊÍ£º

NewSQLÊÇÖ¸ÕâÑùÒ»ÀàÐÂʽµÄ¹ØÏµÐÍÊý¾Ý¿â¹ÜÀíϵͳ£¬ËüÕë¶ÔOLTPʵÏÖ¶Á-д¹¤×÷¸ºÔØ£¬×·ÇóÌṩºÍNoSQLϵͳÏàͬµÄÀ©Õ¹ÐÔÄÜ£¬ÇÒÈÔÈ»±£³Ö´«Í³Êý¾Ý¿âÖ§³ÖµÄACIDÌØÐÔ¡£

´ÓÉÏÊö¶¨ÒåÀ´¿´£¬ÎÒÃDz»ÄÑ·¢ÏÖNewSQLµÄÀ©Õ¹ÐÔÓëNoSQLÏ൱£¬²¢Í¬Ê±±£ÁôÁËACIDÌØÐÔ¡£¶øÕâǡǡÊÇÎÒÃÇÐèÒªµÄ¡£

½¨Á¢Ò»¸öNewSQLÊý¾Ý¿â

½ñÌìÎÒ½«Ïò´ó¼ÒչʾÈçºÎ½¨Á¢Ò»¸öÕâÑùµÄÊý¾Ý¿â¡£ÎÒÃÇÊܵ½È«Çò×î´óÊý¾Ý¿âGoogle Spanner ºÍ F1 µÄÆô·¢£¬½«Æä·ÖΪÁ½¸ö²ã¼¶£º

KV²ã£ºÕâÒ»²ãÊôÓÚµ×²ã´æ´¢ÏµÍ³£¬¸ºÔðÌṩ¿çÊý¾ÝÖÐÐĵÄͬ²½ÒÔ¼°Ç¿Ò»ÖÂÐÔÊÂÎñ¡£

SQL²ã£ºÕâÒ»²ãʹÄܹ»Âú×ãÎÒÃǶԴ«Í³SQLÊý¾Ý¿â¿ÉÓÃÐÔÒÔ¼°¹¦ÄÜÐÔµÄÖ§³Ö¡£

½¨Á¢NewSQLÊý¾Ý¿â

Õâ¾ÍÊÇÎÒÃÇÔÚPingCAPËù´ÓÊµĹ¤×÷£¬µ±È»ÊÇ¿ªÔ´µÄ¡£ÆäÖУ¬ÎÒÃǵÄÊý¾Ý¿â·ÖΪÁ½²ã£¬¼´KV²ãºÍSQL²ã¡£¾ÍKV²ãÀ´¿´£¬ÎÒÃÇÓÐTiKV£»¶ÔÓÚSQL²ã£¬ÔòÓÐTiDB¡£¶øÎÒ½«ÔÚÉÔºó½éÉÜÆäÖеĹؼü¼¼Êõ¡£ÕâÀïµÄTiÊÇTitanium£¨îÑ£©µÄËõд£¬ÎÒÃǶ¼ÖªµÀîÑ×÷ΪһÖÖ¿¹¸¯Ê´ÐԵĻ¯Ñ§ÔªËØ£¬±»¹ã·ºÓ¦ÓÃÓڸ߶˿Ƽ¼µ±ÖС£

TiKVµÄÌØÐÔ

ÒìµØ±¸·Ý£ºÎÒÃÇÀûÓÃRaftÀ´Ö§³ÖÒìµØ±¸·Ý¡£RaftÊÇÒ»ÖÖÒ»ÖÂÐÔËã·¨£¬ËüÔÚÈÝ´íÐÔºÍÐÔÄÜ·½ÃæÏ൱ÓÚPaxosËã·¨¡£ÎÒÃǵÄʵÏֲο¼Ó¦Óù㷺µÄetcd£¬ËüÒѾ­Í¨¹ýÁ˹㷺²âÊÔ²¢¾ßÓнϸߵÄÎȶ¨ÐÔ¡£

ˮƽÀ©Õ¹ÐÔ£ºÓÉÓÚRaftÖ§³Ö membership ±ä¸ü£¬ÎÒÃÇÀûÓÃÆäÕâÒ»ÌØÐÔÀ´ÊµÏÖˮƽÀ©Õ¹¡£

Ò»ÖÂÐԵķֲ¼Ê½ÊÂÎñ£ºÕâÖÖÊÂÎñÄ£Ð͵Ĵ´½¨ÊÇÊܵ½ÁË Google Percolator£¨À´×Ôһƪ2006·¢±íµÄÂÛÎÄ£©µÄÆô·¢£¬Ö÷ÒªÊÇÒ»¸öÓÅ»¯µÄÁ½½×¶ÎÌύЭÒé¡£¸ÃÄ£ÐͽèÖúÒ»¸öʱ¼ä´Á·ÖÅäÆ÷À´¸ø¸÷ÏîÊÂÎñ·ÖÅäµ¥µ÷µÝÔöµÄʱ¼ä´Á£¬Òò´Ë¿É¼ì²âµ½³åÍ»¡£

Э´¦ÀíÆ÷Ö§³Ö£ºÓë HBase ÀàËÆ£¬ÎÒÃÇÔËÓÃЭ´¦ÀíÆ÷¼Ü¹¹Ö´ÐзþÎñÆ÷´úÂëÀ´½øÐзֲ¼Ê½¼ÆËã¡£

×·Çó¸ü¸ßµÄÐÔÄܺ͸üµÍµÄÑÓ³Ù£¬Óñà³ÌÓïÑÔ Rust ½øÐÐÁ˱àд¡£ÄãÃǵ±ÖÐÓÐË­ÖªµÀ Rust Â𣿺ܲ»´í¡£ÄãÃÇÓ¦¸Ã³¢ÊÔһϣ¬ËüÕæµÄÏ൱ÓÐȤ¡£

TiKV¼Ü¹¹

´ÓÉÏͼÖпÉÒÔ¿´³ö£¬Ëü¾­¹ýÁ˸߶ȷֲ㡣

´Óµ×²ãÍùÉÏ¿´¡£µ×²ãÊÇRocksDB£¬ËüÊÇÒ»¸ö³Ö¾ÃµÄÄÚǶʽKV´æ´¢ÒýÇæ¡£RocksDBµÄ×î³õÉè¼ÆÖØµãÔÚÓÚÆä¼«¸ßµÄÐÔÄÜ£¬¿ÉÒÔÇáËɶԶÁ·Å´ó¡¢Ð´·Å´óÒÔ¼°¿Õ¼ä·Å´ó½øÐÐÓÅ»¯¡£

ÉÏÃæÒ»²ãÊÇRaft KV£¬ÕâÒ»²ãÓÃÀ´ÊµÏÖ·Ö²¼Ê½¡£

ÔÙÍùÉÏÊÇMVCC£¬¼´¶à°æ±¾²¢·¢¿ØÖÆ£¨Multi-version concurrency control£©¡£ÎÒÏàÐÅÄãÃǵ±ÖкܶàÈ˶Դ˶¼ºÜÊìϤ¡£TiKVÊÇÒ»¸ö¶à°æ±¾Êý¾Ý¿â£¬¶øMVCCÔòÖ§³ÖÎÒÃǵÄÎÞËø¶ÁÒÔ¼°ÊÂÎñµÄACIDÊôÐÔ¡£

½ÓÏÂÀ´µÄÊÂÎñ£¨Transaction£©²ã£¬ÎÒ֮ǰÒѾ­½éÉܹýÁË¡£

È»ºóÊÇKV API£¬ÕâÊÇÒ»×é³ÌÐò½Ó¿Ú£¬ËüÔÊÐí¿ª·¢Õß¶ÔÊý¾ÝµÄÊäÈëºÍÊä³ö¡£

ͬÑù£¬Ð­´¦ÀíÆ÷£¨Coprocesser£©ÔÚÇ°ÃæÒ²Ìá¹ýÁË¡£

×îºóÊÇPlacement Driver£¬ÕâÊÇÒ»¸öÓÈÎªÖØÒªµÄ²¿·Ö£¬ÒòΪËü¿ÉЭÖú½øÐÐÒìµØ±¸·Ý£¬Ë®Æ½À©Õ¹ÒÔ¼°Ò»ÖÂÐԵķֲ¼Ê½ÊÂÎñ¡£ÉÔºóÎÒ½«¶ÔÆäϸ½Ú½øÐнøÒ»²½²¹³ä¡£

TiKV Èí¼þÕ»

ÈÃÎÒÃÇÀ´¿´Ò»ÏÂÈí¼þÕ»¡£Ê×ÏÈ£¬ÎÒÃǻᷢÏÖ¿Í»§¶ËÓëTiKVÏàÁ¬¡£Í¬Ê±ÎÒÃÇ»¹ÄÜ¿´¼û¼¸¸öNode¡£¶øÔÚÿ¸öNodeµ±Öж¼ÓÐStore£¬Ã¿Ò»¸öÎïÀí´ÅÅÌ´æÒ»¸östore¡£ÔÚÿ¸ö Store µ±ÖУ¬ÎÒÃÇÓÖ»®³öÐí¶àRegion¡£¶øRegionÊÇÊý¾ÝÇ¨ÒÆµÄ»ù±¾µ¥Î»£¬²¢ÇÒ¾­ÓÉRaft±¸·Ý¡£Ã¿¸öRegion¶¼±»Í¬²½µ½¶à¸ö½Úµã¡£Ò»¸ö Raft group ÓÉÒ»¸ö Region µÄÊý¸ö±¸·Ý×é³É¡£ÈçÄãËù¼û£¬Ã¿¸ö Region ÔÚÈý¸ö²»Í¬µÄ½ÚµãÉÏÓÐÈý¸ö±¸·Ý¡£

Çý¶¯³ÌÐòÅäÖÃ

PD£¬ÓÖ³Æ placement driver£¬ÕâÒ»Ãû³ÆÀ´Ô´×ÔSpannerµÄÔ­ÎÄ¡£ËüÊǼ¯Èº¹ÜÀíÆ÷£¬ÌṩÁ˸ü¯ÈºµÄÉϵÛÊӽǡ£ËüÓÉÁ½¸ö²¿·Ö¹¹³É£ºrebalancerºÍtimestamp allocator¡£PD¶ÔRegion¸±±¾½øÐÐÖÜÆÚÐÔ¼ì²â£¬Æ½ºâ¸ºÔØ£¬²¢×Ô¶¯´¦ÀíÊý¾ÝÇ¨ÒÆ¡£µ±Ëü¼ì²âµ½¸ºÔعý¸ßʱ£¬½«»áÖØÐÂÆ½ºâÊý¾Ý¡£

TiDB

ÒÔTiKVΪ»ù´¡µÄNewSQL£ºËü½«TiKVת±ä³ÉÁËÒ»¸öNewSQLÊý¾Ý¿â¡£

Òì²½schema¸Ä±ä£ºÄã¿ÉÒÔÔÚ²»Í£Ö¹Ò²²»Ó°ÏìÕýÔÚ½øÐеIJÙ×÷µÄǰÌáÏ£¬Ìí¼ÓеÄÁÐÒÔ¼°Ë÷Òý¡£±¾ÖÊÉÏ¿´£¬ËüÊÇÒ»¸ö¶à½×¶ÎЭÒé¡£ ÓëMySQLЭÒ鼿ÈÝ£ºTiDB·þÎñÆ÷×ñ´ÓMySQLЭÒ飬²¢ÇÒ×ñÑ­ÆäSQLÓï·¨¡£»»¾ä»°Ëµ¾ÍÊÇÔÚ´ó¶àÇé¿öÏ£¬ÄãÄܹ»ÔÚ²»¸ü¸ÄÈκÎÒ»ÐдúÂëµÄͬʱ£¬Í¨¹ýÓÃTiDBÌæ»»MySQLÀ´ÔöÇ¿ÄãµÄÓ¦Óá£TiDBÊÊÓÃÓÚMySQLÓ¦Óú͹ÜÀí¹¤¾ß£¬±ÈphpMyAdmin¡¢NavicatÒÔ¼°WordPress¡£Í¬Ê±£¬ºÜ¶àORMÒ²¿ÉÒÔÔÚTiDBÉϺܺõŤ×÷£¬ÀýÈçHibernate¡¢GORM¡¢ActiveRecord¡¢SQLAlchemyµÈ¡£

TiDBµÄ¼Ü¹¹

ÈÃÎÒÃÇÀ´¿´Ò»ÏÂTiDBµÄ¼Ü¹¹£º

MySQL¿Í»§¶Ë£º¶¥²ãÊÇÒ»×éMySQL¿Í»§¶Ë£¬ÕâЩ¿Í»§¶ËÏòÏÂÒ»²ã·¢ËÍÇëÇó¡£ÔÚÕâÀïÄãÈÔÈ»¿ÉÒÔʹÓÃÄãËùÊìϤµÄMySQLÇý¶¯³ÌÐò¡£

¸ºÔØÆ½ºâÆ÷£ºÕâÒ»²ãÊôÓÚ¿ÉÑ¡²ã£¬ÀýÈçHAProxy ÒÔ¼° LVS¡£

TiDB·þÎñÆ÷£ºËüÊÇÎÞ״̬µÄ£¬Ò»¸ö¿Í»§¶Ë¿ÉÒÔͬÈκÎÒ»¸öTiDB·þÎñÆ÷ÏàÁ¬½Ó¡£ÔÚTiDB·þÎñÆ÷ÄÚ²¿£¬×î¶¥²ãÌṩMySQLЭÒéÖ§³Ö£»ÏÂÒ»²ãÊÇSQL Plan²ã£¬ÍùÍù±»ÓÃÒÔ½«MySQLÇëÇóת»»³ÉTiDB SQL Plan£»µ×²ãÔòÊÇKV APIÒÔ¼°·Ö²¼Ê½SQL API¡£Èç¹û½Ïµ×²ãµÄ´æ´¢ÒýÇæÖ§³ÖЭ´¦ÀíÆ÷£¬TiDB SQL²ã½«»áʹÓñÈKV API¸üΪ¸ßЧµÄDistSQL API¡£TiDBÖ§³Ö²å¼þʽ´æ´¢ÒýÇæ£¬ÔçÆÚÖ§³ÖHBase¡£Í¬Ê±×÷ΪÊÔÑéÐÔ´æ´¢ÒýÇæ£¬ÎÒÃÇ»¹Ö§³ÖCockroachDB¡£µ«ÎÒÃÇÍÆ¼öTiKVΪĬÈÏ´æ´¢ÒýÇæ¡£

TiDBÈçºÎʹSQLÓëKVÏàÆ¥Åä

ÈÃÎÒÃÇÓÃÒ»¸öÀý×ÓÀ´Õ¹Ê¾Ò»¸öSQL ±íÊÇÈçºÎÓ³Éä³ÉKV¶ÔµÄ¡£

¼ÙÉèÎÒÃǵÄÊý¾Ý¿âÀïÓÐÒ»Õżòµ¥µÄÓû§±í¡£ËüÓÐÒ»ÐÐÈýÁУºnickname¡¢emailºÍage¡£´Ë´¦µÄnicknameÀàÐÍÊÇ×Ö·û´®£¬ÇÒnicknameÊÇÖ÷¼ü¡£

Èç¹ûÎÒÃÇÓ³ÉäÕâÕÅ±íµ½KV¶Ô£¬Key¾Í·Ö³ÉÁËÈý¸ö²¿·Ö£ºtable¡¢row key¡¢column¡£¶øÕâʱµÄKV¶ÔÅÅÁÐÈçÏ£º

   
3844 ´Îä¯ÀÀ       39
Ïà¹ØÎÄÕÂ

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

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

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