Почему DJ Bernstein CDB (постоянная база данных) использует 256 хеш-таблиц?
Почему DJB CDB (постоянная база данных) был разработан для использования 256 хеш-таблиц?
Почему бы не один более крупный 252 * 256 хеш-таблицы?
Это только для экономии места или есть какая-то другая причина?
1 ответ
DJB CDB использует два уровня хеш-таблиц. Первая таблица имеет фиксированный размер 2K в начале файла. Второй набор таблиц находится в конце файла и встроен в память, поскольку данные передаются в cdb. Как только все данные передаются в cdb, второй набор хеш-таблиц передается на диск, а затем первая таблица (в начале файла) заполняется смещениями для каждой из таблиц во втором наборе.
Другими словами, многоуровневые хеш-таблицы позволяют создавать потоковое создание cdb с простым исключением записи начальных 2K файла в конце создания cdb.
Доступ к cdb осуществляется быстро, нажимая первую таблицу (2K в начале файла), чтобы найти смещение второй таблицы (среди второго набора таблиц) в конце файла cdb, в котором указывается местоположение данных. в CDB.
Дополнительную информацию можно найти в ПРИМЕЧАНИЯХ на https://github.com/gstrauss/mcdb/ которая является переписью почтенного CDB DJB. mcdb работает быстрее, чем cdb, и снимает ограничение cdb 4 ГБ, помимо прочих преимуществ.