該場景大約有10億條記錄。每個記錄具有1kb的數據大小並存儲在SSD中。 哪個kv商店可以提供最好的隨機讀取性能?它需要將磁盤訪問減少到每個查詢只有一次,並且所有的數據索引都將被存儲在內存中。高性能持久性關鍵值存儲大量記錄
Redis速度很快,但將1 TB數據存儲在內存中的成本太高。每個查詢LevelDB讀取磁盤數次。 我發現的最接近的一個是fatcache,但它不是持久的。這是一個SSD支持的memcached。
有什麼建議嗎?
該場景大約有10億條記錄。每個記錄具有1kb的數據大小並存儲在SSD中。 哪個kv商店可以提供最好的隨機讀取性能?它需要將磁盤訪問減少到每個查詢只有一次,並且所有的數據索引都將被存儲在內存中。高性能持久性關鍵值存儲大量記錄
Redis速度很快,但將1 TB數據存儲在內存中的成本太高。每個查詢LevelDB讀取磁盤數次。 我發現的最接近的一個是fatcache,但它不是持久的。這是一個SSD支持的memcached。
有什麼建議嗎?
你看過aerospike嗎?我沒有使用它,但他們聲稱在SSD上有很好的表現。
LMDB比RocksDB快並且使用1/3的內存。 LMDb也不需要調整; RocksDB需要仔細調整超過40個參數才能獲得接近LMDB的性能。
http://www.lmdb.tech/bench/inmem/scaling.html
而且LMDB是完全事務和100%防撞,RocksDB兩者都不是。
我比較了RocksDB和LMDB。在我的測試環境中,RocksDB獲勝。 – avhacker 2014-09-25 10:22:51
我猜,當所有的數據都可以加載到內存中時,LMDB將會贏。 這裏是我的測試環境: 4GB內存虛擬機,10M記錄,每個記錄有16個字節的大小和1024字節的值。您可以看到該數據大小至少爲10GB。 我試着在測試集中多次隨機讀取數次,RocksDB總是獲勝。 – avhacker 2014-09-25 10:28:22
當然,這取決於值的大小。看到這個新的磁盤基準測試報告:http://symas.com/mdb/ondisk/ – hyc 2014-11-29 23:19:34