刷新和合并期间的隔离

Manticore 在实时表的刷新和合并过程中提供隔离,以防止任何更改影响正在运行的查询。

例如,在表压缩期间,一对磁盘块被合并并生成一个新的块。在某个时刻,创建了表的新版本,新块替换了原始的那对块。这个过程是无缝进行的,因此使用原始块的长时间运行查询将继续看到表的旧版本,而新查询将看到包含合并后块的新版本。

同样适用于刷新 RAM 块,其中合适的 RAM 段被合并成一个新的磁盘块,参与的 RAM 块段被放弃。在此操作期间,Manticore 为在操作开始前启动的查询提供隔离。

此外,这些操作对替换和更新是透明的。如果您更新属于正在与另一个块合并的磁盘块中的文档的属性,更新将应用于该块和合并后生成的块。如果您在合并期间删除文档,该文档将在原始块和合并后生成的块中被删除,合并后的块要么将该文档标记为已删除,要么如果删除发生在合并过程的早期,则根本没有该文档。

Last modified: August 28, 2025