Управление памятью DolphinDB - PullRequest
       6

Управление памятью DolphinDB

1 голос
/ 28 апреля 2019

Мой рабочий стол имеет 32G RAM. Мне нужно работать с разделенной таблицей 500 ГБ в DolphinDB. Каждый раздел составляет около 200 МБ. Я хотел бы понять, как DolphinDB управляет памятью, если я делаю операцию, скажем, суммируем столбец во всей таблице. Мне кажется, что DolphinDB по-разному управляет памятью в отношении многораздельной таблицы и неразделенной таблицы.

1 Ответ

1 голос
/ 01 мая 2019

Как вы сказали, DolphinDB не должен загружать все данные в память одновременно при обработке многораздельной таблицы. Возьми свой пример. Необходимо обработать около 2500 разделов и предположить, что на вашем рабочем столе 8 гиперпотоков. DolphinDB загружает до 8 разделов в память и обрабатывает их одновременно. То есть пиковое использование памяти не должно превышать 200M * 8 плюс некоторая рабочая память. DolphinDB - это колоночная база данных, и она загружает только необходимый столбец в раздел. Таким образом, использование памяти намного меньше, чем 200M * 8 в вашем случае, потому что расчет включает только один столбец.

Позвольте мне также объяснить механизм кэширования DolphinDB. После выполнения вычислений на разделе DolphinDB не будет немедленно освобождать кэш раздела из памяти. Когда использование памяти достигает установленного предела (установленного maxMemSize), DolphinDB начинает извлекать кеш.

...