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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
TerarkDB Êý¾Ý¿âµÄÐÔÄܱ¨¸æÓë¼¼Êõ½âÎö
 
×÷Õß  ÌìÀÇ  À´Ô´£º²©¿Í    ·¢²¼ÓÚ 2016-8-4
  4293  次浏览      27
 

TerarkDB ¼ò½é

TerarkDB ÊÇÒ»¸öÓµÓм«¸ßÐÔÄܺÍÊý¾ÝѹËõÂʵĴ洢ÒýÇæ¡£Ê¹Ó÷½·¨ÀàËÆFacebookµÄRocksDB£¬²»¹ý±È RocksDB ¾ßÓиü¶à¹¦ÄÜ£¬ÏÂÃæÊÇ TerarkDB µÄ¹¦ÄÜÌØÐÔ£º

(1)¸ßѹËõÂÊ£¬Í¨³£ÊÇ snappy µÄ2¡«5±¶

(2)ʵʱÃâ½âѹֱ½Ó¼ìË÷Êý¾Ý

(3)Query ÑӳٺܵͲ¢ÇÒºÜÎȶ¨

(4)ͬһ Table ¿É°üº¬¶à¸öË÷Òý£¬Ö§³ÖÁªºÏË÷Òý£¬Ö§³Ö·¶Î§ËÑË÷

(5)Ô­ÉúÖ§³ÖÕýÔò±í´ïʽ¼ìË÷

(6)Ö§³ÖǶÈë½ø³Ì£¬»òÕß Server-Client ģʽ>

(7)Êý¾Ý³Ö¾Ã»¯

(8)Ö§³Ö Schema£¬°üº¬·á¸»µÄÊý¾ÝÀàÐÍ

(9)Áд洢ÒÔ¼°Ðд洢£¬Ö§³Ö Column Group TerarkDB ÔÚ»¥ÁªÍøÒÔ¼°´«Í³ÐÐÒµ¶¼ÓÐÏ൱¹ã·ºµÄÓ¦Óó¡¾°¡£ÓÉÓÚ TerarkDB ¶ÔÓÚ¶Á²Ù×÷×öÁË´óÁ¿ÓÅ»¯£¬Òò´Ë¸üÊʺ϶à¶ÁÉÙд£¬ÒÔ¼°ÅúÁ¿Ð´´óÁ¿¶ÁµÄ³¡¾°¡£

TerarkDB ʹÓ÷½·¨Ï൱Áé»î£¬¿ÉÒÔ×÷Ϊ¶ÀÁ¢¿âʹÓÃÒÔÊÊÓ¦¿Í»§µÄ¶¨ÖÆ»¯³¡¾°¡£¹Ù·½ÌṩÁËÏÂÔØ°üÒÔ¼° Docker ÒÔ·½±ãÓû§ÏÂÔØÊ¹Óá£Ä¿Ç°Ö§³ÖLinux£¬WindowsÒÔ¼°Mac OS²Ù×÷ϵͳ¡£

TerarkDB ×÷Ϊһ¸ö´æ´¢ÒýÇæ£¬ÓÐ×Ô¼ºµÄÔ­Éú½Ó¿Ú£¬Í¬Ê±Ìṩ¼æÈÝ LevelDB µÄ½Ó¿Ú£¬´Ó¶ø¿ÉÒÔÊÊÅäµ½ËùÓÐʹÓà LevelDB µÄϵͳºÍÓ¦Óã¬ÀýÈçʵÏÖÁË´ó²¿·Ö Redis ½Ó¿ÚµÄ SSDB¡£ÁíÍ⣬´ó¼Ò¹ã·ºÊ¹ÓÃµÄ RocksDB ½Ó¿ÚÊÇ LevelDB ½Ó¿ÚµÄ³¬¼¯£¬ËùÒԴ󲿷ÖʹÓà RocksDB µÄϵͳºÍÓ¦ÓÃÒ²¿ÉÒÔºÜÈÝÒ×µØÊÊÅäµ½ TerarkDB¡£

Terark ¹Ù·½ÌṩÁË TerarkDB µ½ MongoDB µÄÊÊÅ䣬µ½ MySQL ÒÔ¼°ÆäËû·Ö²¼Ê½Êý¾Ý¿âϵͳµÄÊÊÅäÒ²ÔÚ½ôÕŵĿª·¢¹ý³ÌÖУ¬Îȶ¨°æµÄ MongoTerark ²úÆ·ÒѼƻ®ÔÚ½üÆÚ·¢²¼¡£

TerarkDB ÐÔÄܲâÊÔ±¨¸æ

Ŀ¼

1.»·¾³

1.1.·þÎñÆ÷ÐÅÏ¢

1.2.±È½Ï¶ÔÏó

1.3.²âÊÔÊý¾Ý¼¯

1.4.²âÊÔÔ´´úÂë

1.5.ѹËõÂÊ˵Ã÷

2.Tests

2.1.Ëæ»ú¶Á²âÊÔ

2.2.Ëæ»úд²âÊÔ

2.3.¶Áд»ì²â

2.4 ¶ÁÑÓ³Ù²âÊÔ

1.»·¾³

1.1.·þÎñÆ÷ÐÅÏ¢

1.2.±È½Ï¶ÔÏó

1.3.²âÊÔÊý¾Ý¼¯

Amazon movie data (~8 million reviews), ƽ¾ùÿÌõÊý¾Ý³¤¶È´óÔ¼ 1K

ԭʼÊý¾Ý¸ñʽ

product/productId: B00006HAXW
review/userId: A1RSDE90N6RSZF
review/profileName: Joseph M. Kotow
review/helpfulness: 9/9
review/score: 5.0
review/time: 1042502400
review/summary: Pittsburgh - Home of the OLDIES
review/text: I have all of the doo wop DVD's and this one is as good or better than the
1st ones. Remember once these performers are gone, we'll never get to see them again.
Rhino did an excellent job and if you like or love doo wop and Rock n Roll you'll LOVE
this DVD !!

ÔªÊý¾Ý£¨ÁÐÃû£©

£¨1£©ÒòΪ TerarkDB ÓÐ Schema£¬²»ÐèÒªÔÚÿÌõ¼Ç¼ÖжîÍâ±£´æÔªÊý¾Ý£¨ÁÐÃû£©

£¨2£©Îª¹«Æ½Æð¼û£¬¶ÔÆäËüÊý¾Ý¿â£¬½öÔÚÁУ¨×ֶΣ©Ö®¼ä²åÈëÒ»¸ö·Ö¸ô·û£¬²»±£´æÁÐÃû

Êý¾Ý¼¯´óС

moviesÊý¾Ý¼¯µÄ×Ü´óСԼΪ 9GB, ¼Ç¼Êý´óԼΪ 800Íò

1.4.Benchmark Ô´´úÂë

1.5.Compression Ratio

£¨1£©TerarkDB ʹÓÃ×Ô¼ºÑз¢µÄѹËõËã·¨½øÐÐÊý¾ÝѹËõ

£¨2£©ÆäËûÊý¾Ý¿âʹÓÿéѹËõ£¬¿é´óСΪ 4KB£¬Ñ¹ËõËã·¨ÉèÖÃΪ snappy

£¨3£©ÎÒÃÇʹÓÃ Ëæ»úд µÄ²âÊÔÓÃÀý£¬¶ÔдÈ벢ѹËõºóµÄÊý¾Ý³ß´ç½øÐжԱÈ

2.Tests

ËùÓеĶÁ²Ù×÷£¬¶¼Êǵ¥Ìõ¼ÇÂ¼Ëæ»ú²éѯ¡£ËùÓеÄд²Ù×÷£¬Ò²¶¼Êǵ¥Ìõ¼ÇÂ¼Ëæ»ú²åÈë»ò¸üС£

2.1.Random Read

£¨1£©ËùÓеÄÊý¾Ý»áÔ¤ÏÈдÈëÎļþϵͳ

£¨2£©ËùÓеÄÊý¾Ý¿âдÈë²Ù×÷¾ùÆôÓÃѹËõ£¬ÅäÖà rocksdb/leveldb/wiredtiger ʹÓà snappy Ëã·¨

£¨3£©TerarkDBʹÓÃÎÒÃÇ×Ô¼º×¨ÓеÄѹËõËã·¨£¬²»ÐèÒª¿éѹËõ£¬ÆäËûÊý¾Ý¿â¾ùʹÓÃ4KBµÄĬÈÏ¿é´óС(Block Size)

2.1.1.Êý¾ÝСÓÚÄÚ´æ

ÔÚÕâÖÖÇé¿öÏÂÎÒÃǵÄÄÚ´æ×ã¹»´ó£¬¿ÉÒÔ°ÑËùÓеÄÊý¾Ý×°ÈëÄڴ棬ͬʱ TerarkDB ²»ÐèҪרÓлº´æ£¬µ«ÆäËüÊý¾Ý¿âÐèҪרÓлº´æ£¨Ö÷ÒªÓÃÀ´»º´æ¶Ô¿éѹËõ½âѹºóµÄÊý¾Ý£©£¬ÎÒÃÇΪÕâЩÊý¾Ý¿âÉèÖÃרÓлº´æÉèÖÃΪ3GB¡£

ͬʱÕâÏî²âÊÔÎÒÃDz»ÏÞÖÆ²Ù×÷ϵͳ¶ÔÄÚ´æµÄʹÓã¨×ÜÄÚ´æ64GB£©£¬Êý¾ÝÁ¿Ô¶Ð¡ÓÚÄڴ棬²Ù×÷ϵͳ¿ÉÒÔ°ÑËùÓÐÊý¾Ý»º´æÆðÀ´¡£

ÎÒÃÇ¿ÉÒÔ¿´µ½TerarkDBÔÚÕâÖÖÇé¿öÏÂÒªºÃÓÚÆäËûÊý¾Ý¿â£º

£¨1£©TerarkDB ʹÓÃ×ÔÖ÷Ñз¢µÄÊý¾ÝѹËõËã·¨£¬¿ÉÒÔÖ±½ÓÌáÈ¡µ¥Ìõ¼Ç¼£¬²»ÐèÒª´«Í³Êý¾Ý¿âµÄ¿éѹËõ/½âѹ

£¨2£©TerarkDB ʹÓÃ×ÔÖ÷Ñз¢µÄSuccinctѹËõÐÍÊý¾Ý½á¹¹×÷ΪË÷Òý£¬Ê¹ÓøüÉÙµÄÄڴ棬²¢ÇÒËÑË÷Ëٶȸü¿ì

2.1.2.Êý¾ÝÂÔ´óÓÚÄÚ´æ

µ±Êý¾ÝÁ¿ÎÞ·¨È«²¿ÔØÈëÄÚ´æµÄÇé¿öÏ£¬ÎÒÃÇÐèÒª°ÑÊý¾Ý´æ´¢ÔÚÎïÀí´ÅÅÌÉÏ£¨ÎÒÃÇ´Ë´¦Ê¹Óà SSD ×÷Ϊ´æ´¢½éÖÊ£©¡£

£¨1£©²Ù×÷ϵͳ¿ÉÒÔʹÓõĵÄÎïÀíÄÚ´æÏÞÖÆÎª8GB

£¨2£©ÎÒÃÇΪÆäËûÊý¾Ý¿âÉèÖÃÁË1GBµÄרÓûº´æÓÃÀ´×°ÔØÈÈÊý¾Ý

£¨3£©ËùÓÐÊý¾Ý¿â½øÐÐÁËÔ¤ÈÈ(TerarkDB¿ªÆômmap populate, ÆäËûÊý¾Ý¿â½øÐÐÒ»ÂÖÔ¤¶Á)

ÕâÖÖÇé¿öÏ£¬TerarkDB µÄÓÅÊÆ¸üÃ÷ÏÔ £º

£¨1£©³ýÁË TerarkDB ÒÔÍ⣬ÆäËûµÄÊý¾Ý¿â¾ùÐèҪʹÓÿéѹËõ£¬ÔÚËæ»ú¶ÁµÄÇé¿öÏ£¬¼´±ãÓлº´æÖ§³Ö£¬µ«±Ï¾¹»º´æµÄ´óСÓÐÏÞ£¬²»¿ÉÄܰÑËùÓÐÊý¾Ý×°È뻺´æ£¬Õâ¾Í»áµ¼ÖÂÆµ·±µÄ´ÅÅÌI/O£¬½µµÍ¶ÁÐÔÄÜ

£¨2£©TerarkDB µÄѹËõÂʱȽϸߣ¬Ñ¹ËõºóµÄÊý¾Ý¿ÉÒÔÈ«²¿×°ÈëÄڴ棬ͬʱ TerarkDB ¿ÉÒÔÖ±½Ó·ÃÎÊѹËõºóµÄÊý¾Ý£¬Ê¹ TerarkDB µÄÓÅÊÆ¸ü¼ÓÃ÷ÏÔ

£¨3£©ÆäËûÊý¾Ý¿âÓÉÓÚʹÓÃÁËרÓлº´æ£¬µ±¶ÁÈ¡µÄÊý¾ÝÔ¶Ô¶³¬³ö»º´æÈÝÁ¿£¬»áÔì³É´óÁ¿µÄÊý¾Ý»»ÈëºÍ»»³ö£¬Ôö¼ÓÁ˶îÍâµÄ×ÊÔ´¿ªÏú

2.1.3.Êý¾ÝÔ¶´óÓÚÄÚ´æ

£¨1£©²Ù×÷ϵͳÄÚ´æÏÞÖÆÎª3G

£¨2£©ÎªÆäËûÊý¾Ý¿âÉèÖÃ256MµÄרÓûº´æ

£¨3£©ËùÓÐÊý¾Ý¿â½øÐÐÁËÔ¤ÈÈ(TerarkDB¿ªÆômmap populate, ÆäËûÊý¾Ý¿â½øÐÐÒ»ÂÖÔ¤¶Á)

ÓÉÓÚTerarkDB±ÈÆäËûÊý¾Ý¿âµÄÊý¾Ý¸ß³öÌ«¶à£¬ÏÂÃæÕâ·ùͼʹÓöÔÊý×ø±ê£¬¸ü±ãÓڲ鿴ÊýÁ¿¼¶£¨Çë¹Û²ì×Ý×ø±êÖᣩ

2.2.Random Write

£¨1£©Ð´ÈëʱËùÓеÄÊý¾Ý¿â¾ù¿ªÆôѹËõ£¬²¢ÇÒĬÈÏ¿éѹËõµÄ´óСΪ 4KB£¨TerarkDB²»ÐèÒª¿éѹËõ£©

£¨2£©ËùÓеÄд Buffer ¶¼ÉèÖÃΪ256M

£¨3£©Ð´Èëʱ·Ö±ðʹÓà 1/3/6 ¸öÏß³Ìͬʱ½øÐвÙ×÷

2.2.1.Êý¾ÝСÓÚÄÚ´æ

Ëæ»úд²âÊÔºÍËæ»ú¶Á(Random Read)²âÊԵĻ·¾³ÀàËÆ£º

£¨1£©´æ´¢½éÖÊʹÓÃÄÚ´æÎļþϵͳ(¼´Êý¾ÝÏÈÔ¤¶Áµ½ÄÚ´æÎļþϵͳÖУ¬ÒÔ¼Ó¿ì²âÊÔËÙ¶È)

£¨2£©²Ù×÷ϵͳÄÚ´æ²»×öÏÞÖÆ

£¨3£©³ýÁË TerarkDB, ΪÆäËûÊý¾Ý¿âÉèÖà 3GB µÄרÓûº´æ

2.2.2.Êý¾ÝÂÔ´óÓÚÄÚ´æ

ÓëËæ»ú¶Á²âÊԵĻ·¾³ÀàËÆ£º

(1)²Ù×÷ϵͳµÄ×ÜÄÚ´æÏÞÖÆÎª 8GB

(2)³ýÁË TerarkDB £¬ÆäËûÊý¾Ý¿âµÄרÓûº´æÉèÖÃΪ1GB

(3)Êý¾Ý´æ´¢½éÖʲÉÓà SSD

(4)д buffer ÉèÖÃΪ 256M

ÔÚSSDÉϵIJâÊÔ½á¹û£¬¸üÕæÊµµÄ·´Ó¦ÁË´ÅÅÌI/O¶ÔÐÔÄܵÄÓ°Ïì:

TerarkDB ²ÉÓÃË÷ÒýºÍÊý¾Ý·ÖÀëµÄ·½Ê½½øÐÐд²Ù×÷£¬Äܹ»½«Êý¾ÝµÄдÈ뷽ʽÔÚÒ»¶¨³Ì¶ÈÉÏת»»³É˳Ðòд

2.2.3.Êý¾ÝÔ¶´óÓÚÄÚ´æ

(1)²Ù×÷ϵͳÄÚ´æÏÞÖÆÎª3G

(2)ΪÆäËûÊý¾Ý¿âÉèÖÃ256MµÄרÓûº´æ

2.3.Read-Write Mixed

(1)TerarkDB Ö÷ÒªÓ¦ÓÃÓÚÉÙÁ¿Ð´´óÁ¿¶ÁµÄ³¡¾°

(2)²âÊÔÒ»¹²Ê¹ÓÃ8¸öỊ̈߳¬ÆäÖÐÿ¸öÏß³ÌÄÚ²¿Ëæ»ú¶Áд£¬95% / 99%µÄʱ¼äÔÚ½øÐжÁ²Ù×÷

(3)д²Ù×÷È«²¿ÆôÓÃѹËõ£¬¿éѹËõµÄ´óСÊÇ 4KB

(4) Ê×ÏÈÈÃÆäËûÊý¾Ý¿â½øÐÐÒ»ÂÖËæ»ú¶Á(warm up), Ìî³äרÓûº´æ

2.3.1. Êý¾ÝÁ¿Ð¡ÓÚÄÚ´æ

(1)´æ´¢½éÖÊʹÓÃÄÚ´æÎļþϵͳ(¼´Êý¾ÝÏÈÔ¤¶Áµ½ÄÚ´æÎļþϵͳÖУ¬ÒÔ¼Ó¿ì²âÊÔËÙ¶È)

(2)²Ù×÷ϵͳÄÚ´æ²»×öÏÞÖÆ

(3)³ýÁË TerarkDB £¬ÆäËûÊý¾Ý¿âµÄרÓûº´æÉèÖÃΪ3GB

2.3.2. Êý¾ÝÂÔ´óÓÚÄÚ´æ

(1)´æ´¢½éÖʸÄΪ SSD

(2) ²Ù×÷ϵͳÄÚ´æÏÞÖÆÎª8GB

(3) ÆäËûÊý¾Ý¿âµÄרÓûº´æÉèÖÃΪ1GB

(4)·Ö±ð²âÊÔ 99% Read ºÍ 95% Read

2.3.3.Êý¾ÝÔ¶´óÓÚÄÚ´æ

(1)²Ù×÷ϵͳÄÚ´æÏÞÖÆÎª3G

(2)ΪÆäËûÊý¾Ý¿âÉèÖÃ256MµÄרÓûº´æ

(3)ËùÓÐÊý¾Ý¿â½øÐÐÁËÔ¤ÈÈ(TerarkDB¿ªÆômmap populate, ÆäËûÊý¾Ý¿â½øÐÐÒ»ÂÖÔ¤¶Á)

ͬÑù£¬ÓÉÓÚÊýÁ¿¼¶Ïà²î½Ï´ó£¬ÎÒÃÇͨ¹ý¶ÔÊý×ø±ê¿´Ò»ÏÂÊý¾Ý£º

2.4 Read Latency Test

¸Ã²âÊÔÖÐÊý¾Ý¼¯ÒÀÈ»ÊÇ9GµÄµçÓ°µãÆÀÊý¾Ý£¬½ö²âÊ﵀ Read Query ÑÓ³Ù£¬²âÊÔÖÐÎÞ Write ²Ù×÷¡£

ÒòΪ TerarkDB µÄѹËõÂʺܸߣ¬ÏµÍ³ÄÚ´æ3G¾Í¿ÉÒÔ×°ÏÂÈ«²¿Êý¾Ý£¨Êµ¼ÊÉÏѹËõºóµÄÊý¾ÝÖ»ÓÐ2.1G£¬µ«²âÊÔ³ÌÐò±¾ÉíÒªÕ¼´óÔ¼750MÄڴ棩£¬ËùÒÔÒÔÏÂ3×é¶Ô±ÈÖУ¬TerarkDB¶¼ÊÇÔÚ3GÄÚ´æµÄÌõ¼þϲâÊԵġ£¶ÔÓÚrocksdbºÍwiredtiger£¬ÎÒÃÇ·Ö±ðÔÚ8G£¬4GºÍ3GÄÚ´æµÄÌõ¼þϽøÐÐÁ˲âÊÔ¡£ËùÓвâÊÔÖУ¬ÎÒÃǾùʹÓÃÁË8¸öÏ̡߳£

2.4.1. Êý¾ÝÂÔ´óÓÚÄÚ´æ

(1)8GÎïÀíÄڴ棨TerarkDBÊÇ3G£©

(2)ÆäËûÊý¾Ý¿âÓÐ512MרÓûº´æ

(1)ºá×ø±ê±íʾÑÓ³Ù£¬Êý×ֵĵ¥Î»ÊÇ΢Ãë£¬×ø±ê±ÈÀýÊǽüËÆ¶ÔÊýµÄ×Ðϸ¹Û²ìºá×ø±êµÄÊý×Ö¿ÉÒÔ·¢ÏÖ TerarkDB µÄÑÓ³ÙÒªµÍµÃ¶à

(2)×Ý×ø±ê±íÊ¾Çø¼äÄÚÀÛ¼ÆQueryÊýµÄËùÕ¼×ÜQueryÊýµÄ°Ù·Ö±È

(3)Point(X, Y%) ±íʾ ÑÓ³ÙµÍÓÚ X΢ÃëµÄQueryÊý Õ¼ ×ÜQueryÊý µÄ Y%

(4)Êý¾Ý½á¹û£¬Ô½¿ìµ½´ï100%£¬ËµÃ÷ Query ÑÓ³Ù±íÏÖÔ½ºÃ£¨ÑÓ³ÙÔ½µÍ£©

(5)ÔÚµ±Ç°Çé¿öÏ£¬ÄÚ´æ¶ÔËùÓÐÊý¾Ý¿â¶¼¹»Óã¬ËùÒÔÇúÏß½ÏΪƽ»¬

(6)TerarkDBµÄLatency¾ùÖµ£¬ÖÐÖµ£¬±ê×¼²î£¬99·Öλֵ¶¼ÓÐÃ÷ÏÔÓÅÊÆ£¬LatencyºÜÎȶ¨¡£

2.4.2. Êý¾ÝÔ¶´óÓÚÄÚ´æ

(1)3GÎïÀíÄÚ´æ

(2)ÆäËûÊý¾Ý¿âÓÐ256MµÄרÓлº´æ

ÆäËûÊý¾Ý¿âÓÐÁ½¶ÎбÏòÉϵÄÇúÏߣ¬·Ö±ð±íʾ¶ÁÈ¡µÄÊý¾ÝÃüÖÐÄÚ´æÒÔ¼°Ã»ÓÐÃüÖÐÄÚ´æÁ½ÖÖÇé¿öϵÄÑÓ³Ù,ÖмäÄÇÌõÖ±Ïß»ù±¾ÉÏÊÇ»º´æÊÇ·ñÃüÖеķֽç

TerarkDBµÄÑÓ³ÙÒªµÍµÃ¶à£¬TerarkDBµÄLatency¾ùÖµ£¬ÖÐÖµ£¬±ê×¼²î£¬99·Öλֵ¶¼ÓÐÃ÷ÏÔÓÅÊÆ£¬LatencyºÜÎȶ¨

ÔÚÕâÖÖÇé¿öÏ£¬ËäÈ»×ÜÄÚ´æÖ»ÓÐ3G£¬µ«ÊÇÎÒÃǵÄѹËõÂʱȽϸߣ¬Ñ¹ËõºóµÄÊý¾ÝÍêÈ«¿ÉÒÔ×°ÈëÄڴ棬ËùÒÔ²»»á³öÏÖCacheδÃüÖеÄÇé¿ö

2.4.3 ÎÒÃÇ»¹²âÊÔÁË rocksdb ºÍ wiredtiger ÔÚ4GÄÚ´æÌõ¼þϵÄÖ¸±ê£º

ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ÔÚ 4G ÄÚ´æµÄÇé¿öÏ£¬RocksDB ºÍ WiredTiger ³öÏÖ»º´æÃüÖеIJÙ×÷±ÈÂÊÉý¸ßÁË£¨ÖмäÒ»¶ÎˮƽֱÏߣ©

¼¼Êõ½âÎö

TerarkDBʹÓÃÁ˷dz£ÏȽø²¢ÇÒ¸´Ôӵļ¼Êõ£¬Í¬Ê±Ò²ÉêÇëÁË4¸öרÀû¡£ÆäºËÐļ¼ÊõÓëÆäËûÊý¾Ý¿â²úÆ·µÄB£«Ê÷¡¢LSMÊ÷¡¢ÒÔ¼°¿éѹËõ¼¼ÊõÓÐ×ű¾ÖʵÄÇø±ð¡£´øÀ´µÄºÃ´¦¾ÍÊÇѹËõÂÊÓëÐÔÄܵÄͬʱ´ó·ùÌá¸ß£¬²¢·Ç¼òµ¥µÄʱ¼ä¿Õ¼ä»¥»»¡£±¾ÎļòÒª½éÉܼ¸¸ö¼¼Êõµã£¬¸ü¶àµÄ¼¼Êõϸ½ÚÇë´ó¼Òµ½ terark.com Éϲ鿴Îĵµ¡£

²¢·Ç¡°¿Õ¼ä»»Ê±¼ä¡±»ò¡°Ê±¼ä»»¿Õ¼ä¡±

ÏÖÓм¼Êõ

ÏÖÓеÄÖ÷Á÷Êý¾Ý¿âÒ²ÔÚʹÓÃѹËõ¼¼Êõ£¬Ö»²»¹ýËüÃÇÖ÷ÒªÊǶÔʱ¼äÓë¿Õ¼äµÄÕÛÖÔ£ºÑ¹ËõµÄ·½Ê½¶¼ÊÇʹÓÃͨÓÃѹËõ¼¼Êõ°´¿é/Ò³(block/page)ѹËõ£¨¿é³ß´çͨ³£ÊÇ 4K~32K£¬ÒÔѹËõÂÊÖø³ÆµÄ TokuDB ¿é³ß´çÊÇ 2M~4M£©¡£

µ±ÆôÓÃѹËõµÄʱºò£¬ËæÖ®¶øÀ´µÄÊÇ·ÃÎÊËÙ¶ÈϽµ£¬ÕâÊÇÒòΪ£º

(1)дÈëʱ£¬ºÜ¶àÌõ¼Ç¼±»´ò°üÔÚÒ»ÆðѹËõ³ÉÒ»¸ö¸öµÄ¿é£¬Ôö´ó¿é³ß´ç£¬Ñ¹ËõËã·¨¿ÉÒÔ»ñµÃ¸ü´óµÄÉÏÏÂÎÄ£¬´Ó¶øÌá¸ßѹËõÂÊ£»Ïà·´µØ£¬¼õС¿é³ß´ç£¬»á½µµÍѹËõÂÊ¡£

(2)¶Áȡʱ£¬¼´±ãÊǶÁÈ¡ºÜ¶ÌµÄÊý¾Ý£¬Ò²ÐèÒªÏȰÑÕû¸ö¿é½âѹ£¬ÔÙÈ¥¶ÁÈ¡½âѹºóµÄÊý¾Ý¡£ÕâÑù£¬¿é³ß´çÔ½´ó£¬Í¬Ò»¸ö¿éÄÚ°üº¬µÄ¼Ç¼ÊýĿԽ¶à£¬Îª¶ÁȡһÌõÊý¾Ý£¬Ëù×öµÄ²»±ØÒªµÄ½âѹ¾ÍÒ²¾ÍÔ½¶à£¬ÐÔÄÜÒ²¾ÍÔ½²î¡£Ïà·´µØ£¬¿é³ß´çԽС£¬ÐÔÄÜÒ²¾ÍÔ½ºÃ¡£

Ò»µ©ÆôÓÃѹËõ£¬ÎªÁË»º½âÒÔÉÏÎÊÌ⣬´«Í³Êý¾Ý¿âÒ»°ã¶¼ÐèÒª±È½Ï´óµÄרÓûº´æ£¬ÓÃÀ´»º´æ½âѹºóµÄÊý¾Ý£¬ÕâÑù¿ÉÒÔ´ó·ùÌá¸ßÈÈÊý¾ÝµÄ·ÃÎÊÐÔÄÜ£¬µ«ÓÖÒýÆðÁËË«»º´æµÄ¿Õ¼äÕ¼ÓÃÎÊÌ⣬һÊDzÙ×÷ϵͳ»º´æÖеÄѹËõÊý¾Ý£¬¶þÊÇרÓûº´æÖнâѹºóµÄÊý¾Ý¡£»¹ÓÐÒ»¸öͬÑùºÜÑÏÖØµÄÎÊÌ⣺רÓûº´æÖÕ¹éÊÇ»º´æ£¬µ±»º´æÎ´ÃüÖÐʱ£¬ÈÔÐèÒª½âѹÕû¸ö¿é£¬Õâ¾ÍÊÇÂýQueryÎÊÌâµÄÒ»¸öÀ´Ô´£»ÂýQuery µÄÁíÒ»¸öÀ´Ô´ÊDzÙ×÷ϵͳ»º´æÎ´ÃüÖÐʱ¡­¡­

´«Í³Êý¾Ý¿âµÄ Btree Ë÷Òý±¾ÉíÒ²»áÕ¼¾Ý½Ï´óµÄ¿Õ¼ä£¬ÒòΪ Btree ͨ³£Ê¹ÓõÄǰ׺ѹËõµÄѹËõÂʺܵ͡£

ÕâЩ¶¼µ¼ÖÂÏÖÓд«Í³Êý¾Ý¿âÔÚ·ÃÎÊËٶȺͿռäÕ¼ÓÃÉÏÊÇÒ»¸ö´ËÏû±Ë³¤£¬ÎÞ·¨³¹µ×½â¾öµÄÎÊÌ⣬ֻÄܽøÐÐÕâÑù»òÄÇÑùµÄÕÛÖÔ¡£

Terark µÄ¼¼Êõ ÓëÏÖÓÐÊý¾Ý¿âÓб¾ÖÊÉϵÄÇø±ð

¶ÔÓÚÊý¾ÝµÄѹËõ£¨¿ÉÒÔÈÏΪÊÇ key-value ÖÐ¶Ô value µÄѹËõ£©£¬TerarkDB Ö÷ҪʹÓÃ×Ô¼ºÑз¢µÄרÃÅÕë¶ÔÊý¾Ý¿âµÄÈ«¾ÖѹËõ¼¼Êõ£¬Ñ¹ËõÂʸü¸ß£¬²¢ÇÒûÓпéѹËõµÄ¸ÅÄҲûÓÐË«»º´æµÄÎÊÌâ¡£ÕâÖÖѹËõ¼¼Êõ¿ÉÒÔ°´ RowID/RecordID Ö±½Ó¶ÁÈ¡µ¥ÌõÊý¾Ý£¬Èç¹û°ÑÕâÖÖ¶ÁÈ¡µ¥ÌõÊý¾Ý¿´×÷ÊÇÒ»ÖÖ½âѹ£¬ÄÇô£¬°´ RowID ˳Ðò½âѹʱ£¬½âѹËÙ¶ÈÒ»°ãÔÚ 500MBÿÃë(µ¥Ïß³Ì)£¬×î¸ß´ïµ½Ô¼ 7GB/s£»°´ RowID Ëæ»ú½âѹʱ£¬½âѹËÙ¶ÈÒ»°ãÔÚ 300MBÿÃë(µ¥Ïß³Ì)£¬×î¸ß´ïµ½Ô¼3GB/s¡£

¶ÔÓÚË÷ÒýµÄѹËõ£¬Terark Ö÷ҪʹÓà Succinct ¼¼Êõ£¬Ñ¹ËõÂʸßÓÚÏÖÓм¼Êõ£¬²¢ÇÒѹËõµÄͬʱ£¬²»Óýâѹ¾Í¿ÉÒÔ¸ßЧµØÖ´ÐÐËÑË÷£¬³ý´ËÖ®Í⣬Ë÷Òý¿ÉÒÔÖ§³ÖÕýÔò±í´ïʽËÑË÷(²»ÓÃÖðÌõ±éÀúÆ¥ÅäÕýÔò±í´ïʽ)¡£ÕâÖÖ»ùÓÚ Succinct ¼¼ÊõµÄË÷Òý£¬»¹¶îÍâÖ§³Ö ·´ÏòËÑË÷£ºÕýÏòÊÇ´Ó Key »ñÈ¡ RowID£¬·´ÏòËÑË÷¾ÍÊÇ´Ó RowID »ñÈ¡ Key£¬ÕâÑù£¬Key ¾Í²»ÐèÒªÔÙµ¥¶À´æ´¢Ò»·Ý£¨´«Í³BtreeË÷ÒýÎÞÕâ¸ö¹¦ÄÜ£©¡£Õâ¾ÍΪ TerarkDB ÔÚͬһ¸ö Table ÉÏÖ§³Ö¶à¸öË÷ÒýÌṩÁËÒ»¸ö¼¼ÊõÖ§µã¡£

Succinct ¼¼Êõµ®ÉúÒÑÓкܳ¤Ê±¼ä£¬µ«ÊÇÒ»Ö±ÒòΪÐÔÄÜÎÊÌâδµÃµ½¹ã·ºÓ¦Óã¬Terark Succinct ¼¼ÊõÔÚ CPU Ö¸Áî¼¶±ðרÃÅ×öÁËÓÅ»¯£¬´ó·ùÌáÉýÁË Succinct µÄÐÔÄÜ¡£

ÕýÊÇÕâЩм¼ÊõµÄʹÓã¬TerarkDB µÄѹËõÂʺͷÃÎÊËÙ¶Èͬʱ´ó·ùÌáÉý£¬²¢ÇÒ¹¦Äܷdz£·á¸»¡£

TerarkDBÊý¾Ý¿â¼Ü¹¹

TerarkDB Êý¾Ý¿â°üº¬¶à¸ö segment£¬°´ÕÕ segment µÄ״̬¿É·ÖΪ writing segment£¬writable frozen segment£¬ÒÔ¼° readonly segment¡£Êý¾Ý»áÊ×ÏÈдÈë writing segment£¬Õâ¸ö segment ÖеÄÊý¾Ý¿ÉÒÔÖ±½Ó¸üм°¼ìË÷¡£µ±Ð´ÈëµÄÊý¾Ý´ïµ½Ò»¶¨µÄ³ß´çʱ£¬writing segment »á³ÉΪ writable frozen segment £¬Í¬Ê±¿ªÊ¼±»ºǫ́Ï߳̽øÐÐѹËõ¡£µ±ºǫ́ѹËõ½áÊøÊ±£¬¾Í»áÉú³É readonly segment£¬²¢É¾³ý writable frozen segment¡£³ý´ËÖ®Í⣬Êý¾ÝµÄÎïÀíɾ³ý¡¢segment ºÏ²¢µÈ¹¤×÷Ò²¶¼ÔÚºǫ́Ïß³ÌÖÐÖ´ÐС£×îÖÕ£¬´ó²¿·ÖÊý¾Ý¶¼»á´¦ÓÚ readonly segment ÖУ¬´Ó¶øÓµÓм«¸ßµÄѹËõÂʺͷÃÎÊÐÔÄÜ¡£

×Ô¶¯»ú¼¼ÊõºÍ Succinct ¼¼Êõ

Óë Terark ͬʱÔÚ¹¤³Ì»¯ Succinct ¼¼ÊõµÄ»¹ÓÐÖøÃûµÄ²®¿ËÀû AmpLab ʵÑéÊÒ£¬Spark ¾ÍÊÇÔÚÕâ¸öʵÑéÊÒµ®ÉúµÄ¡£Terark ÔÚËã·¨¡¢Êý¾Ý½á¹¹ºÍ¹¤³Ì¼¼ÊõÉ϶¼ÓÐ×Å×ÔÉíµÄÓÅÊÆ¡£

×Ô¶¯»ú¼¼ÊõÔÚ TerarkDB ÖÐÓдóÁ¿µÄÓ¦Óã¬×Ô¶¯»ú¾ÍÊÇÒ»ÕÅ×´Ì¬×ªÒÆÍ¼£¬ÕâÕÅͼÓÃÀ´±í´ïÊý¾Ý£¬ÑØ×ÅͼÖеıߣ¬°´ÕÕij¸öÈ·¶¨µÄ¹æÔò·ÃÎʽڵ㣬¾Í¿ÉÒÔ³éÈ¡³öËùÐèÒªµÄÊý¾Ý¡£Óô«Í³¼¼ÊõÀ´´æ´¢Õâ¸öͼ£¬ÄÚ´æÏûºÄºÜ´ó£¬Terark ²ÉÓà Succinct ¼¼ÊõÀ´Ñ¹ËõÕâ¸ö×´Ì¬×ªÒÆÍ¼¡£Succinct ¼¼ÊõµÄ±¾ÖʾÍÊÇʹÓà bitmap À´±íʾÊý¾Ý½á¹¹£¬ÄÚ´æÓÃÁ¿´ó´ó½µµÍµÄͬʱ±£³Ö¿ìËٵķÃÎÊÐÔÄÜ¡£ÁíÒ»·½Ã棬ÓÉÓÚÊÇ»ùÓÚ×Ô¶¯»ú£¬Ò²¾Í¿ÉÒÔÔ­ÉúÖ§³ÖÕýÔò±í´ïʽ¼ìË÷¡£

½áÓï

»¶Ó­´ó¼ÒÏÂÔØÊ¹Óà Terark ²úÆ·¡£Î´À´ Terark ¼Æ»®°ÑºËÐÄÒýÇæÒÆÖ²µ½¸ü¶à·Ö²¼Ê½ÏµÍ³ÒÔÊÊÓøü¶à³¡¾°£¬±ÈÈç Elastic Search£¬Spark£¬ÊÖ»úºÍǶÈëʽÉ豸µÈ¡£Terark Ïֽ׶εļƻ®ÊÇ£¬Ñ°ÕÒµ½¸ü¶àµÄÑз¢ºÍÉÌÎñºÏ×÷£¬°Ñ²úÆ·¾¡¿ìÍÆÏòÊг¡¡£ÎÒÃÇĿǰҲÔÚÕÐÈË£¬¸ÐÐËȤµÄÅóÓÑ¿ÉÒÔÖ±½ÓÁªÏµÎÒÃÇ¡£Ò²¿ÉÒÔ·ÃÎÊ ¹Ù·½ÍøÕ¾ À´»ñÈ¡¸ü¶àÐÅÏ¢¡£

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí