Чтение пути и карты смещения сжатия - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь понять путь чтения Кассандры и не могу понять, зачем нам нужна карта смещения сжатия.

https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlAboutReads.html

enter image description here

Индекс раздела находится на диске и хранит индекс всех ключей раздела, сопоставленных с их смещением.

Карта смещений сжатия хранит указатели на точное местоположение на диске, на котором будут найдены нужные данные раздела.

Зачем нам они оба?Почему нельзя разделить указатели хранилища индекса на точное местоположение на диске?

Извините за глупый заголовок, но это то, о чем меня спрашивал stackoverflow, я не мог использовать "Зачем нам нуженКарта смещения сжатия, если у нас есть индекс раздела? "

1 Ответ

0 голосов
/ 01 июня 2018

Файл сжимается кусками.По умолчанию сжатые данные размером 64 КБ, затем следующие 64 КБ и т. Д. Смещения, записанные в индексном файле, относятся к несжатым данным.Это связано с тем, что при написании он знает, сколько байтов уже записано, поэтому использует его для отметки при запуске нового раздела.Смещения сжатия отображают сжатые смещения и их несжатые позиции, чтобы он знал, какой блок начать распаковку, чтобы попасть в раздел с некоторым несжатым смещением от индекса.

Если раздел существует в середине сжатого фрагмента 64 КБВам нужно распаковать весь кусок.Вы не можете начать чтение в середине этого из-за того, как работают алгоритмы сжатия.Вот почему в некоторых ситуациях имеет смысл уменьшить размер чанка, так как это уменьшит накладные расходы при чтении крошечного раздела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...