Как работать с ключами разной длины в SSTable?

Я пытаюсь реализовать постоянный инвертированный индекс на диске. Я решил использовать структуру, подобную Sorted-String-Table, чтобы сохранить ее в файл, где ключи хранятся в отсортированном порядке.

Но как поступить, если ключи могут иметь разную длину (потому что это строка)? Если я буду хранить ключи как есть (key1,val1;key_other_len2,value2) при бинарном поиске было бы невозможно совершить прыжок.

Итак, я могу хранить хешированные ключи и смещение в файле до реальных ключей в заголовке файла, например hash1,offset1,hash2,offset2,....,[on offset1]key1,val1;other_key_with_hash1,val2,[on offset2]key2,val3,.... Но я думаю, что было бы сложно выполнить сжатие, объединить два файла, потому что я не могу читать оба файла последовательно и записывать их последовательно способом сортировки слиянием.

Можно ли иметь ключи переменной длины в SSTable и максимально упростить сжатие?

0 ответов

Другие вопросы по тегам