基于 LSM Tree 的数据库在更新 MemTable 时如何处理并发

How do LSM Tree based DBs deal with concurency when updating the MemTable

在几个博客中阅读有关 LSM 树的文章,我想知道在接收到多个同时插入值的请求时,实际实现如何处理并发性,这会修改 MemTable 的内存结构。

在 Cassandra 中,具有最新时间戳的突变会获胜,因此它可以处理数千个并发插入,并且没有要处理的竞争,也不需要锁。

SSTables 是不变的table——它们一旦写入磁盘就永远不会改变。但是数据可以通过压缩线程重写,压缩线程将 SSTables 合并到新的 SSTables 中,具体取决于 table 上定义的压缩策略。干杯!