Как HBase выполняет обновления со скоростью передачи данных по диску, а не со скоростью поиска по диску?
Я читаю книгу HBase: The Definitive Guide, и там упоминается, что, хотя традиционные реляционные базы данных выполняют обновления / удаления со скоростью поиска (B-деревья), HBase выполняет обновления / удаления со скоростью передачи (деревья LSM).
Я знаю, как работают LSM-деревья, но не понимаю, почему автор утверждает, что обновления происходят со скоростью передачи. Когда клиент выполняет определенную операцию обновления, соответствующая запись будет записана в хранилище памяти в памяти, а также будет запись, которая будет добавлена к WAL. Периодически memstore будет объединяться с HFiles, хранящимися на диске.
Как это означает, что HBase выполняет обновления / удаления со скоростью передачи?
1 ответ
HBase выполняет обновления и удаления, когда он объединяет несколько деревьев LSM в одно (сжатие памяти) или когда он выполняет сжатие файлов (объединение нескольких файлов HF в один), пока не будет сохранено несколько версий одной и той же записи.
Парадигма базы данных скорости передачи в этом случае означает, что все обновления применяются только при переносе даты в новое место.