Как быстро прогреть кеш страниц Neo4J для набора узлов и связей - PullRequest
0 голосов
/ 02 апреля 2019

Я настраиваю REST API, подкрепленный экземпляром Neo4J сложных данных размером около 400 ГБ, и мне нужно подогреть кеш страниц для набора узлов и связей.

Существуют определенные вызовы для набора входных данных, которые требуют много времени для запроса и получения ответа. Поэтому я хочу способ разогреть кэш только для узлов и отношений, к которым осуществляется доступ для этих вызовов. Я попытался использовать APOC.warmup.run (true, true) (заняло около 15 минут, что приемлемо для меня), но он загружает весь магазин в память, что я не могу сделать, так как у меня есть ограничение на память. Я попытался написать простой Cypher, который проходит через этот путь, но он занимает много времени для выполнения, и когда я проверяю рост памяти экземпляра Neo4J, который очень медленный по сравнению с прогревом APOC.

Я также думаю, есть ли способ расширить / настроить прогрев APOC для загрузки только определенных частей магазина, но хочу посмотреть, есть ли люди, которые уже пробовали что-то подобное раньше.

Я ожидаю быстрого способа прогрева определенной части магазина, а не всего магазина.

1 Ответ

0 голосов
/ 02 апреля 2019

У вас также должно быть достаточно настроенного кеша страниц (400G)

Если вы используете apoc.warmup.run(true,true,true), индексы схемы также будут прогреваться.

Я полагаю, это заняло всего 15минут, потому что производительность чтения с вашего диска может быть ниже?А сколько у вас процессоров?

Вы не можете загрузить определенную часть хранилища.

Но последние версии Neo4j отслеживают использование кэша страниц и восстанавливают его после перезапуска.Таким образом, вы можете просто выполнить свои запросы, и после перезапуска те же самые страницы будут в кеше страниц.

Вы также увидите с PROFILE, если у вас есть сбои страниц в вашем запросе.

...