Надгробие (хранилище данных)


Надгробие — это удаленная запись в реплике распределенного хранилища данных . [1] Надгробие необходимо, так как распределенные хранилища данных используют консистентность в конечном счете , когда только подмножество узлов, где хранятся данные, должно ответить, прежде чем операция будет считаться успешной.

Если информация удаляется из распределенного хранилища данных, согласованного в конечном счете, «конечная» часть согласованности в конечном счете приводит к тому, что информация просачивается через структуру узлов, где некоторые узлы могут быть недоступны во время удаления. Но особенность возможной согласованности вызывает проблему в случае удаления, поскольку узел, который был недоступен в то время, попытается «обновить» другие узлы, у которых больше нет удаленной записи, предполагая, что они пропустили вставку информации. Поэтому вместо удаления информации распределенное хранилище данных создает (обычно временную) запись-захоронение, которая не возвращается в ответ на запросы. [1]

Чтобы не заполнять хранилище данных бесполезной информацией, существует политика полного удаления надгробий. Для этого система проверяет возраст надгробия и удалит его по истечении заданного времени. В Apache Cassandra это прошедшее время задается GCGraceSecondsпараметром [1] , а процесс называется уплотнением. [2] Сжатие потребляет системные ресурсы, а также замедляет вычислительную мощность. [2] [3]

Из-за задержки удаления удаленная информация будет отображаться как пустая после того, как содержимое некоторых столбцов ряда записей будет удалено. После уплотнения неиспользуемые столбцы будут удалены из этих записей. [4] [ самопубликованный источник ]