Задать вопрос
kamaltdin
@kamaltdin
Изучающий программирование,в данный момент node.js

Необходимо прочитать n больших объектов (в сумме ~4 млрд. свойств) в бэкенде, как это сделать на сайте с Node.js самым оперативным способом?

Обновление 1. Изменил вопрос, теперь интересует загрузка объекта только в бекенд.
Обновление 2. Добавил инфу о сути задачи, выложил примерный объект, изменил объект на несколько объектов и еще небольшие изменения.
Обновление 3. Заменил слово "загрузить" на "прочитать" для верного понимания меня и некрупные изменения. Жирным выделил вопрос, на который еще не ответили.

Или массив. В объекте есть ссылки на 10 переменных (не циклические). Без учета вложенных объектов/массивов конечные элементы объекта/массива - это строки и числа (хотя это не принципиально). Вложенность свойств - десятиуровневая или одноуровневая, пока не определился. Свойства - варианты разложения 10 предметов по 9 ячейкам. Более подробно и пример объекта вы можете посмотреть в комментариях к вопросу. Так как размер объекта, с которым может работать JS ограничен в том числе мощностью железа, на котором он работает, то вместо одного объекта будет несколько объектов приемлемого размера, но суть вопроса от этого остается той же.

Бонусные вопросы. Базы данных, например, Mongo DB оперативнее в плане загрузки объектов, чем чтение из JSON-файла или нет? Чтение объекта быстрее в Node.js, чем в фронтендском JS, если мощности железа одинаковые? Вариант в JS-файлы вставить просто содержимое JSON-файла (в котором будет только те большие объекты) и подключить их как модуль в Node.js вместо чтения из БД или JSON-файла? Будет ли этот вариант чтения объектов быстрее, ведь не будет происходить парсирование (я правильно понимаю, что при чтении из БД происходит парсирование?)?
Каким способом объект/массив читается самым быстрым способом?
  • Вопрос задан
  • 1085 просмотров
Подписаться 3 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 4
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Допустим свойства не содержат никакой структуры и оверхеда на формат данных, ключи, вложенность и т.д..
И допустим они состоят из одного символа т.е. 1 байт.

Итого 4ккк байт = 4гб данных.

Так что никак при текущей постановке вопроса/задачи.
Ответ написан
@vshvydky
вопрос на уровне бреда. порывался заминусовать минут 5.
нода не рекомендуется никому для тяжелых вычислений, описанный в вопросе кейс пахнет дампом из какой-то бд, туда ему и дорога, jsonb (postgres) mongo elastic да что угодно, главное потоком этот файл читать и в бд разложить.... пытаться заюзать JSON.parse какой-то трешак....
Ответ написан
@alexstup
Оркестр
Переделать ИИ
Ответ написан
Комментировать
@chibitko
Js для такой структуры данных не подойдёт, js-объект - это ассоциативный массив, а не структура, жрать памяти будет больше в разы, можно попробовать загрузить данные в один объект ключ-значение, где ключ и значение - это строки, значение нужно парсить чтобы получить parent, либо использовать БД, подойдёт любая, нужно будет создать индекс по parent node, для анализа ситуации не более 10 запросов по 4 млрд. записей - партиции в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы