Интересно, это хорошая или плохая идея использовать deepstream record.getList для хранения множества уникальных значений, например, электронных писем или любых других уникальных идентификаторов. Основная цель — иметь возможность быстро ответить на вопрос, есть ли у нас уже, скажем, пользователь с такой электронной почтой (используемая электронная почта) или другой записью по конкретному уникальному полю.
Сегодня я провел несколько экспериментов и столкнулся с двумя проблемами: 1) когда я попытался заполнить список несколькими тысячами значений, я получил
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
и мой сервер Deepstream отключился. Я смог исправить это, добавив больше памяти в процесс узла сервера с этим флагом.
--max-old-space-size=5120
это не выглядит хорошо, но позволило мне составить список из более чем 5000 элементов.
2) Этого было недостаточно для моих тестов, поэтому я предварительно создал список из 50000 элементов и поместил данные непосредственно в таблицу rethinkdb и получил еще одну проблему при получении списка или его изменении:
RangeError: Maximum call stack size exceeded
Я смог исправить это с другим флагом:
--stack-size=20000
Это помогает, но я считаю, что это только вопрос времени, когда одна из этих ошибок появится в производстве, когда размер списка достигнет правильного значения. Я действительно не знаю, является ли это проблемой nodejs, javascript, deepstream или rethinkdb. Это все в целом навело меня на мысль, что я пытаюсь неправильно использовать Deepstream List. Пожалуйста, дай мне знать. Заранее спасибо!