Dmitry Yemanov wrote:

суперсервер за счёт единого кэша весьма эффективен и быстр

Это скорее теорема, чем аксиома...

Разнесённый кэш мне не ещё нравится тем, что быстро выжирает
память. Различные процессы классика конкурируют и вытесняют горячие данные из кэша процессора, который нерезиновый.

Давайте сделаем такую архитектуру: гибрид классика и супера

Может лучше таки параллельную работу с общим кешем?

Это конечно идеальный вариант, но требует больше переработок. Как я себе представляю проблема в большом количестве legacy code, который не может выполняться сразу несколькими потоками. Чисто теоретически, read only запросы при полном попадании в кэш должны очень хорошо параллелится.

Что же касается вытесняющей многозадачности на одном ядре, то в идеале надо делать свой шедулер потоков и ресурсов. Потому что надо эффективно управлять приоритетом. Например, в одном соединении запускается долгоиграющий запрос, а другое соединение хочет выполнять короткие быстрые запросы. Первое соединение после n секунд выполнения запроса должно принудительно быть понижено в приоритете. Аналогично между соединениями должна по братски распределяться полоса пропускания IO, память.



Ответить