titan
titan copied to clipboard
Separate the expiration list into multiple buckets
The implementation of the expiration list now is a big list of keys that shares a common prefix. There are two problems with this design.
- If all the keys set with at some TTL, the expiration time acts like an incrementing ID which may cause write hotspot on a single region.
- The expiration items are deleted sequentially, which causes a continuous range of tombstone keys. It has a big impact on the performance of RocksDB