LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

а редис случаем шмем не использует

Редис — клиент-сервер. Да, есть попытка присобачить разделяемую память туда:

https://github.com/edgarsi/redis-module-shm

Однако, проблема в том, что для коротких запрос-ответов разделяемая память не дает никаких преимуществ. Потому, например, ALPC использует для мелких буферов копирование памяти вместо использования разделяемой памяти. Чтобы получить преимущества разделяемой памяти, клиент редиса должен складывать в единственный сегмент разделяемой памяти запросы, а потом читать оттуда ответы. По коду redis-module-shm (благо, кода там меньше чем доков) видно, что под каждое соединение выделяется фиксированный буфер 16 кб для каждого направления (клиент->сервер и сервер->клиент) и над этими буферами стоит глобальная блокировка на весь сервер (привет GIL). Чел измеряет задержку, а должен был бы измерять число запросов в секунду. А ведь именно здесь можно было бы получить сотни тысяч запросов в секунду, если не миллионов — и тогда проект возымел бы реальное практическое применение.

Исходная версия byko3y, :

а редис случаем шмем не использует

Редис — клиент-сервер. Да, есть попытка присобачить разделяемую память туда:

https://github.com/edgarsi/redis-module-shm

Однако, проблема в том, что для коротких запрос-ответов разделяемая память не дает никаких преимуществ. Потому, например, ALPC использует для мелких буферов копирование памяти вместо использования разделяемой памяти. Чтобы получить преимущества разделяемой памяти, клиент редиса должен складывать в единственный сегмент разделяемой памяти запросы, а потом читать оттуда ответы. По коду redis-module-shm (благо, кода там меньше чем доков) видно, что под каждое соединение выделяется фиксированный буфер 16 кб для каждого направления (клиент->сервер и сервер->клиент) и этими буферами стоит глобальная блокировка на весь сервер (привет GIL). Чел измеряет задержку, а должен был бы измерять число запросов в секунду. А ведь именно здесь можно было бы получить сотни тысяч запросов в секунду, если не миллионов — и тогда проект возымел бы реальное практическое применение.