Kafka Streams - RocksDB - максимальное количество открытых файлов - PullRequest
0 голосов
/ 03 февраля 2020

Если мы определим максимальное количество открытых файлов равным 300, и если число файлов .sst превысит, я предполагаю, что файлы в кэше будут удалены, но если к данным в этих файлах будет произведен доступ, будет ли это перезагрузить его или этот файл потерян навсегда?

https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide

1 Ответ

0 голосов
/ 13 февраля 2020

По ссылке, которую вы разместили:

max_open_files - RocksDB хранит все файловые дескрипторы в кэше таблиц. Если количество файловых дескрипторов превышает max_open_files, некоторые файлы удаляются из кэша таблиц, и их файловые дескрипторы закрываются. Это означает, что каждое чтение должно go через кеш таблицы для поиска необходимого файла. Установите для max_open_files значение -1, чтобы всегда держать все файлы открытыми, что позволяет избежать дорогостоящих вызовов кэша таблиц.

Это означает только то, что при превышении количества открытых файлов некоторые файлы будут закрыты. Если вы хотите получить доступ к закрытому файлу, соответствующий файл будет повторно открыт (и, возможно, раньше, другой файл будет закрыт).

Следовательно, конфигурация не о создании / удалении файлов, а только о сколько файлов должно быть открыто параллельно.

...