Как связаны object_store_memory и redis_max_memory?

Я не думаю, что полностью понимаю связь между object_store_memory и redis_max_memory. Сначала я думал, что redis db хранит все объекты в памяти, но тогда как размер хранилища объектов может быть больше, чем размер redis_max_memory? Или некоторые его части записываются на диск? Как расходуется оперативная память? RAM_CONSUMED = object_store_memory + redis_max_memory или это их объединение?


ray
person Muppet    schedule 18.06.2019    source источник


Ответы (1)


БД Redis содержит только метаданные об объектах и ​​задачах (т. е. для задач: от каких объектов зависит задача и идентификаторы выходных данных, которые она производит, какую функцию необходимо запустить для получения выходных данных; для объектов: на каких узлах ) в кластере хранится объект). redis_max_memory ограничивает размер этой базы данных, старые записи отбрасываются по принципу LRU.

Фактические данные хранятся в хранилище объектов общей памяти (см. https://arrow.apache.org/docs/python/plasma.html), размер которого ограничен object_store_memory. Опять же, старые объекты, которые в настоящее время не сопоставлены ни с одной рабочей памятью, будут удалены оттуда в порядке LRU. Также можно создать резервную копию хранилища объектов на диске, указав параметр плазменного_каталога. Это позволяет иметь хранилища объектов, превышающие размер вашей оперативной памяти, но также замедляет хранение объектов в зависимости от размера диска и объема буферного кеша.

Так что да, RAM_CONSUMED = object_store_memory + redis_max_memory, если вы не поддерживаете хранилище объектов на диске, и в этом случае RAM_CONSUMED = redis_max_memory.

Дайте мне знать, если у вас есть дополнительные вопросы.

person Philipp Moritz    schedule 18.06.2019
comment
Спасибо вам за это. Каков разумный размер базы данных Redis? Если он содержит только метаданные, должно быть достаточно, чтобы он был довольно маленьким? - person Muppet; 19.06.2019
comment
Я бы сказал, что 10 ^ 9 (байт) должно быть достаточно для большинства рабочих нагрузок. Метаданные для задач/объектов занимают несколько сотен байт, поэтому 10^9 позволяет хранить несколько миллионов задач/объектов одновременно, чего должно быть достаточно. - person Philipp Moritz; 19.06.2019
comment
Привет, интересно ответить, каков обычно разумный размер для object_store_memory? Есть ли какое-то эмпирическое правило? - person GoingMyWay; 04.05.2020
comment
Я также финансирую driver_object_store_memory в Рэе, какие-либо предложения по установке его значения? - person GoingMyWay; 04.05.2020