Токийский кабинет - настройка памяти

У меня более 100 миллионов пар ключ-значение (один ключ может иметь несколько значений). Я использую Токийский кабинет BDB (B + Tree DB), чей ключ, значение 32 бит байтового массива.

Возможно ли в Tokyo Cabinet установить, сколько памяти (нижний и верхний предел) он может использовать? На самом деле, у меня 8 ГБ памяти, но, похоже, она не может использовать большую память.

Другое дело, что я хочу знать, как установить,

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() эти параметры, таким образом, я могу получить максимальную настройку для моего случая. Заранее спасибо. Любая идея также полезна для меня.

Ответы

Ответ 1

tokyoCabinet.setcache() - задайте размер кеша, обычно это половина или больше файлов

tokyoCabinet.tune() - установите файл хэш файла и индексные параметры BTree перед открытием

tokyoCabinet.optimize() - заданные новые параметры файла хэш файла и индекс BTree, когда файл уже открыт, если количество записей увеличилось больше, чем установлено в настройке (bnum) Например, вы можете увеличить оптимизацию().

tokyoCabinet.setxmsiz() задает размер дополнительной отображаемой памяти, так как использование mmap обычно имеет размер файла

100 миллионов пар ключ-значение - bnum > 100M * 2 значение - 32-битный байт-массив → recsize = 32bit = 8 байт → apow = 3 (= 2 ^ 3)

Если у вас 1024 элемента массива: reccize, установите apow = 13

lmemb указывает количество членов на каждой странице листа. Если оно не больше 0, задается значение по умолчанию. Значение по умолчанию - 128.

nmemb указывает количество членов на каждой нелистовой странице. Если оно не больше 0, задается значение по умолчанию. Значение по умолчанию - 256. fpow указывает максимальное количество элементов пула свободных блоков по мощности 2.

Официальная документация