В rockdb Есть ли способ узнать, до какого размера файл может идти на уровне?

Я работаю над rockdb, но не могу получить параметр, который может указать мне максимальный предел размера файла внутри уровня? И если однажды он достигнет этого максимального размера, как файлы будут разделены в RocksDB?


person Rishav    schedule 25.04.2019    source источник


Ответы (1)


Вариант, который вы ищете, это target_file_size_base и target_file_size_multiplier.

target_file_size_base — настраивает размер файлов SST на уровне 1.

target_file_size_multiplier — настраивает размер файлов SST на следующих уровнях.

Например: если для target_file_size_base установлено значение 2 МБ, а для target_file_size_multiplier установлено значение 10,

Файлы SST уровня 1 будут иметь размер 2 МБ, файлы SST уровня 2 будут иметь размер 20 МБ, файлы SST уровня 3 будут иметь размер 200 МБ и так далее.

Вы также можете настроить количество таких файлов на каждом уровне, используя max_bytes_for_level_base и max_bytes_for_level_multiplier.

Например: если max_bytes_for_level_base = 200 МБ и target_file_size_base = 2 МБ, то уровень 1 будет содержать 100 файлов по 2 МБ каждый.

Вы можете проверить эти параметры в файлах options.h и advanced_options.h.

если когда-то он достигнет этого максимального размера, как файлы будут разделены в RocksDB

Во время сжатия/сброса файлы создаются с настроенным размером. Если файлов больше, чем настроенное число, запускается уплотнение, и файлы перемещаются на более высокие уровни.

person krithikaGopalakrisnan    schedule 26.04.2019