• 刷新与合并期间的隔离
Manticore 在实时表的刷新和合并过程中提供隔离,以防止任何更改影响正在运行的查询。
例如,在表压缩期间,一对磁盘块被合并,生成一个新的块。在某个时刻,创建了一个新的表版本,新块替换了原始的那对块。这个过程是无缝的,因此使用原始块的长时间运行的查询将继续看到旧版本的表,而新查询将看到包含合并结果的新版本。
同样,刷新 RAM 块时,适合的 RAM 段被合并为一个新的磁盘块,参与的 RAM 块段则被放弃。在此操作期间,Manticore 为在操作开始之前启动的查询提供隔离。
此外,这些操作对于替换和更新是透明的。如果您更新属于正在与另一块合并的磁盘块的文档中的属性,该更新将同时应用于该块和生成的合并块。如果在合并期间删除文档,它将在原始块中被删除,并且在生成的合并块中也会被删除,这将导致该文档被标记为已删除,或者如果删除发生在合并过程的早期,则根本不存在该文档。
最后更新于