Изоляция во время слива и слияния

Manticore обеспечивает изоляцию во время процессов слива и слияния таблицы в реальном времени, чтобы предотвратить влияние изменений на выполняющиеся запросы.

Например, во время уплотнения таблицы объединяется пара дисковых чанков, и создаётся новый чанк. В какой-то момент создаётся новая версия таблицы с новым чанком, заменяющим исходную пару. Это происходит бесшовно, так что длительно выполняющийся запрос, использующий исходные чанки, продолжит видеть старую версию таблицы, а новый запрос увидит новую версию с объединённым чанком.

То же самое касается слива RAM-чанка, где подходящие сегменты RAM объединяются в новый дисковый чанк, а участвующие сегменты RAM-чанка игнорируются. Во время этой операции Manticore обеспечивает изоляцию для запросов, которые начались до начала операции.

Кроме того, эти операции прозрачны для replace и update. Если вы обновляете атрибут в документе, который принадлежит дисковому чанку, объединяемому с другим, обновление будет применено как к этому чанку, так и к результирующему объединённому чанку. Если вы удаляете документ во время слияния, он будет удалён в исходном чанке и также в результирующем объединённом чанке, где документ либо будет помечен как удалённый, либо вообще отсутствовать, если удаление произошло на ранней стадии процесса слияния.

Last modified: August 28, 2025