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

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

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

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

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

Last modified: August 28, 2025