Как соотносятся object_store_memory и redis_max_memory? - PullRequest
0 голосов
/ 18 июня 2019

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

1 Ответ

1 голос
/ 19 июня 2019

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

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

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

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

...