Nп/п : 5 из 100
От : Egor Gavrilov 2:5015/519.1 07 апр 25 07:19:58
К : Nil A 07 апр 25 07:23:01
Тема : NodehistJ Phase 2
----------------------------------------------------------------------------------
@MSGID: 2:5015/519.1 ea3629f8
@REPLY: 2:5015/46 67f33549
@PID: ХотДог/2.14.5/Android
@TID: jNode/Android
@CHRS: CP866 2
Hello, Nil A.
On 07.04.2025 05:12 you wrote:
NA> Он все нодлисты как XML DOM всосал в память, чтобы потом, на
последней стадии сделать тот
NA> самый map reduce.
Сейчас нынче это просто ArrayList, где хранится каждая строка
нодлиста. От DOM я ушёл, ибо его сложнее в БД класть, при необходимости.
Хотя когда-нибудь я и отделю NodelistJ от NodehistJ, и там опять будет
DOM, а в NodehistJ - текущая реализация парсинга, уже напрямую в entity
для СУБД.
NA> Но ты ещё несколько приколов пропустил, как он парсил
нодлисты. Он взаместа O(n) парсинга, там
NA> чуть ли не O(n2) сделал ;-)
Конкретно сейчас там O(n) в NodelistJ. А вот в NodehistJ там свой
прикол - полученный после парсинга объект мы потом оборачиваем в entity, и
пихаем уже в СУБД. Отсюда это добро превращается, собственно, в O(n^2).
Единственный вариант - отказаться от NodelistJ, по сути, и вынести
часть функционала NodelistJ в NodehistJ, чтобы можно было сразу в СУБД
гонять, минуя промежуточный объект, которую нужно отдельно маппить в entity.
В памяти хранить все нодлисты - это слишком дорого по ресурсам, а
также это лишняя нагрузка (и трафик) на тот же MinIO/S3, особенно при
рестарте. Поэтому без последующего сохранения в СУБД, к сожалению, никуда.
--
С наилучшими пожеланиями!
--- ХотДог/2.14.5/Android
* Origin: Фидошник, линуксоид, и немного джавист... (2:5015/519.1)
SEEN-BY: 221/6 301/1 460/58 5001/100 5015/42 46
120 255 519 5019/40 5020/570
SEEN-BY: 5020/715 828 830 848 1042 4441 12000
5023/24 5030/49 722 1081
SEEN-BY: 5053/51 55 58 5054/8 5058/104 5060/900
5061/133
@PATH: 5015/519 46 5020/1042 4441