设计一个带有有效时间TTL的KV存储系统,包含set(key,value,ttl)、get(key)方法、怎么优化
首先是KV存储,可以使用levelDB作为我们的存储引擎;
另外,需要考虑数据的复制与分片、去中心化等
把TTL当作value,当进行compaction时,过期的数据会被忽略。
•将数据均匀地分布在多个服务器上。•添加或者移除节点时,尽量减少数据的迁移。
一致性hash数据分区:
•自动伸缩:可以基于负载自动添加和移除服务器。•异质性:服务器的虚拟节点数量可以与服务器的性能成比例。比如,可以为性能高的服务器分配更多的虚拟节点。