Загрузка всего Neo4J db в RAM - PullRequest
10 голосов
/ 03 апреля 2012

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

1 Ответ

5 голосов
/ 07 апреля 2012

Neo4j загружает все данные лениво, то есть загружает их в память при первом обращении. Опция кэширования относится только к стратегии GC, поэтому, когда (или если) ссылки будут GCed. Чтобы загрузить весь граф в память, ваш тип кеша должен быть сильным, и вам нужно пройти весь граф один раз. Вы можете сделать это так:

// untested java code

import org.neo4j.helpers.collection.IteratorUtil;

// ...

for(Node node : graph.getAllNodes()) {
  IteratorUtil.count(node.getRelationships());
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...