在读了几篇博客中关于lsm树的文章后,我想知道,当同时接收到几个插入值的请求时,实际的实现如何处理内存中的并发性,这些请求会修改memtable的内存结构。在memtable中插入一个值时(大多数似乎表示是一棵树)它如何同时处理多个插入请求?它如何处理读/写竞争?它是否使用简单的r/w锁定机制?
aelbi1ox1#
在cassandra中,具有最新时间戳的突变获胜,因此它可以处理数千次并发插入,而且不需要竞争,也不需要锁。sstables是不可变的——一旦写入磁盘,它们就永远不会改变。但是数据可以由压缩线程重写,压缩线程根据表上定义的压缩策略将sstables合并到新的sstable中。干杯!
1条答案
按热度按时间aelbi1ox1#
在cassandra中,具有最新时间戳的突变获胜,因此它可以处理数千次并发插入,而且不需要竞争,也不需要锁。
sstables是不可变的——一旦写入磁盘,它们就永远不会改变。但是数据可以由压缩线程重写,压缩线程根据表上定义的压缩策略将sstables合并到新的sstable中。干杯!