Size: a a a

2021 January 18

E

Ed in pro.jvm
Господин Случай
Я на этапе проектирования. Условно есть список который читается много раз в один промежуток времени, это может быть >1к чтений в секунду, читается только по индексу. Из нескольких потоков. Размер списка не задан, но может быть очень большим, потому копировать при записи не хочу
Какой размер "большой" и долго для вас это сколько?
источник

AB

Andrey Belyaev in pro.jvm
Господин Случай
Я на этапе проектирования. Условно есть список который читается много раз в один промежуток времени, это может быть >1к чтений в секунду, читается только по индексу. Из нескольких потоков. Размер списка не задан, но может быть очень большим, потому копировать при записи не хочу
Это кэш какой-то? Какая производительность нужна?
источник

ГС

Господин Случай... in pro.jvm
Ed
Какой размер "большой" и долго для вас это сколько?
Больше чем 50мс недопустимо
источник

ГС

Господин Случай... in pro.jvm
Andrey Belyaev
Это кэш какой-то? Какая производительность нужна?
Нет, но это предстоит кешировать
источник

E

Ed in pro.jvm
Господин Случай
Больше чем 50мс недопустимо
А 50 мс на что? На то чтобы распространить изменение? Писатель не может ждать дольше 50 мс?
источник

ГС

Господин Случай... in pro.jvm
Читающий не может ждать больше 50
источник

AB

Andrey Belyaev in pro.jvm
Господин Случай
Нет, но это предстоит кешировать
Очень загадочно все. Если у вас есть точные метрики и они критичны, то берите несколько решений и моделируйте нагрузку, начиная от CopyOnWriteArrayList заканчивая каким-нибудь Embedded Redis.

Если сейчас на этапе проектирования от вас требуется назвать имя класса, который это будет делать - то это странно, ИМХО. Опишите этот кусок как абстрактный модуль с заданными характеристиками, а потом выбирайте решение. Если этот модуль вообще нужен.
источник

DP

Denis Pavlyuchenko in pro.jvm
50 мс - это же безумно много, если про inmemory говорить.. Сколько там данных, что можно не успеть попасть в это значение?
источник

E

Ed in pro.jvm
Господин Случай
Читающий не может ждать больше 50
Так он не будет ждать, почему он вообще чего то ждет?
источник

E

Ed in pro.jvm
50мс это гигабайт надо скопировать, наверно (надо тесты найти на мемкопи)
источник

ГС

Господин Случай... in pro.jvm
Ну надо потестить с Copy write тогда
источник

ГС

Господин Случай... in pro.jvm
А там делается move элементов в новый список при записи или прям копирование каждого элемента?
источник

ГС

Господин Случай... in pro.jvm
Под итератором я точно не буду писать
источник

ГС

Господин Случай... in pro.jvm
Только читать
источник

E

Ed in pro.jvm
Господин Случай
А там делается move элементов в новый список при записи или прям копирование каждого элемента?
Мемкопи должен быть и подмена массива с cas'ом, по идее
источник

N

Nikitka in pro.jvm
День добрый, подскажи плз, какая лучшая практика для взаимодействия spring webflux, и нормально ли использовать text/event-stream для нотификации ui через подписки на евенты?
источник

DP

Denis Pavlyuchenko in pro.jvm
Nikitka
День добрый, подскажи плз, какая лучшая практика для взаимодействия spring webflux, и нормально ли использовать text/event-stream для нотификации ui через подписки на евенты?
взаимодействия между чем и чем?
источник

N

Nick in pro.jvm
Господин Случай
Больше чем 50мс недопустимо
А если придет злой гц и сожрет асе время, то что произойдет?
источник

N

Nikitka in pro.jvm
Фронт бек, т.е фронт по сути подпишеться через стрим на евенты, после чего будет собственно и работать web flux
источник

DP

Denis Pavlyuchenko in pro.jvm
Nikitka
Фронт бек, т.е фронт по сути подпишеться через стрим на евенты, после чего будет собственно и работать web flux
одно из решений для этого - https://rsocket.io/
источник