Как выполнить сегментирование на основе кэша Neo4j?

#neo4j #haproxy

#neo4j #haproxy

Вопрос:

Я читал руководство по эксплуатации Neo4j по сегментированию кэша и публикации по всему Интернету, однако я с трудом могу найти какой-либо подробный пример того, как настроить HAProxy для сегментирования кэша (да, тот, что приведен в руководстве по эксплуатации, довольно краткий) на реальном графике, который может содержать несколько меток узлов.

Кто-нибудь когда-нибудь делал это раньше? Было бы замечательно, если бы вы могли поделиться своим опытом.


Кроме того, я немного запутался в механизме способа сегментирования графика с использованием HAProxy. Как подграфы кэшируются на определенных подчиненных устройствах, просто предоставляя правила в HAProxy? Я был удивлен, узнав, что сегментирование кэша не обрабатывается Neo4j.

Ответ №1:

Цель состоит в том, чтобы отправлять запросы, попадающие в одну и ту же область вашего графика, всегда в один и тот же экземпляр. Это, конечно, означает, что данные запроса указывают регион. То, что использовать в качестве «индикатора региона», сильно зависит от структуры и формы вашего графика.

Во многих случаях клиентских приложений люди успешно использовали текущий идентификатор пользователя и устанавливали его в качестве дополнительного http-заголовка, который затем вычислялся haproxy.

Комментарии:

1. То есть, при правильной настройке HAProxy сегментирование кэша выполняется автоматически после перезапуска Neo4j?

2. @ToddLeo дело не столько в сегментировании кэша, сколько в близости кэша: используя индикатор, вы повышаете вероятность попадания в «теплый» кэш; это быстрее и уменьшает отток кэша, потому что вы уменьшаете подмножество считываемых данных (хотя это зависит от того, сколько данных обрабатывается за запрос).

3. @FrankPavageau Как заранее загружать «теплый» кеш? Индикатор только определяет, к какому узлу отправляется запрос, не так ли?

4. @ToddLeo Кэш не загружается заранее, его загрузит первый запрос, попадающий на определенную страницу. Но как только вы это сделаете, состояние кэша станет более стабильным.

5. @FrankPavageau Означает ли это, что кэш полностью загружен после прохождения всех узлов?