这个场景涉及到10亿条记录,每条记录大小为1KB,存储在SSD中。哪种kv存储可以提供最佳的随机读取性能?需要将磁盘访问次数减少到每个查询只有1次,并且所有数据索引都将存储在内存中。
Redis速度快,但在内存中存储1TB数据太昂贵。 LevelDB每次查询都要多次读取磁盘。 我找到的最接近的是fatcache,但它不是持久化的。它是一个基于SSD的memcached。
有任何建议吗?
这个场景涉及到10亿条记录,每条记录大小为1KB,存储在SSD中。哪种kv存储可以提供最佳的随机读取性能?需要将磁盘访问次数减少到每个查询只有1次,并且所有数据索引都将存储在内存中。
Redis速度快,但在内存中存储1TB数据太昂贵。 LevelDB每次查询都要多次读取磁盘。 我找到的最接近的是fatcache,但它不是持久化的。它是一个基于SSD的memcached。
有任何建议吗?
你看过Aerospike吗?我没有使用过它,但他们声称在固态硬盘上有良好的性能表现。
LMDB比RocksDB更快,使用的内存只有1/3。此外,LMDB不需要调整;而RocksDB需要仔细调整超过40个参数才能达到接近LMDB的性能。
http://www.lmdb.tech/bench/inmem/scaling.html
此外,LMDB是完全事务性的且100%防崩溃,而RocksDB则不是。