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 Ïֽ׶εļƻ®ÊÇ£¬Ñ°ÕÒµ½¸ü¶àµÄÑз¢ºÍÉÌÎñºÏ×÷£¬°Ñ²úÆ·¾¡¿ìÍÆÏòÊг¡¡£ÎÒÃÇĿǰҲÔÚÕÐÈË£¬¸ÐÐËȤµÄÅóÓÑ¿ÉÒÔÖ±½ÓÁªÏµÎÒÃÇ¡£Ò²¿ÉÒÔ·ÃÎÊ
¹Ù·½ÍøÕ¾ À´»ñÈ¡¸ü¶àÐÅÏ¢¡£ |