Lite_stream
@Lite_stream

Производительность системы обмена сообщениями?

Всем привет :)
В набирающем популярность фреймворке - Vert.x(TCP/UDP сервер) в качестве потокобезопасной коллекции для обмена сообщениями используется copy on write array. Коллекция предназначена для обмена сообщениями между некоторыми абстракциями фреймворка, работающими в разных потоках. Типичный юз кейс сообщения: на абстракцию-Http-сервер приходит запрос, требующий обращений в БД -> Http-сервер кладёт в коллекцию, скажем, id пользователя -> абстракция-БД забирает сообщение, обрабатывает и кладёт обратно -> Http-сервер забирает сообщение от БД и отдаёт ответ клиенту.

Как вы понимаете сообщений в единицу времени может быть очень много. А значит и операций вставки / удаления. В то время как copy on write коллекции предназначены для случаев с соотношением количества модификации / чтения данных близким к нулю.

Вопрос заключается в том, почему разработчики выбрали именно copy on write? Потому что в теории это должно работать очень медленно.

Сама коллекция
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
В теории, там тяжелая операция , только снятия элемента с головы очереди. Опять же в теории она может
оказаться выполняемой вместе с обновлением стекающего тока в микросхемах памяти.
На практике нужно глубоко покопаться в всех этих виртулизациях . А так операция копирования данных
в ОЗУ из одного места в другое , выполняется вспомогательными контролерами, а не АЛУ.
Сорри, что в терминах ранних процессоров.
Ответ написан
Ваш ответ на вопрос

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

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