2013-11-26 2 views
0

У нас есть длинная программа, которая копирует данные из базы данных SQL Server в базу данных Neo4j. В настоящее время он занимает более 12 часов. Для каждой записи из базы данных SQL Server программа должна выполнять десятки обращений к Neo4j. Я не могу это изменить.Ускорение работы Neo4j в Azure

Программа и Neo4j работают в роли работника Azure. Neo4j работает в своей собственной службе.

Мы попытались ускорить процесс путем обновления от Medium машины (2 х 1,6 ГГц процессор, 3,5 Гб оперативной памяти, 490GB хранения) к большой машины (4 х 1,6 ГГц процессор, ОЗУ 7 ГБ, 1000 ГБ Storage) , но это не ускорило программу.

Я не могу изменить количество обращений к Neo4j, но я надеюсь, что есть способы ускорить каждый доступ. Любые предложения по ускорению доступа к Neo4j, работающие в роли работника Azure, будут высоко оценены.

+0

Предполагая, что вы вызываете вызовы REST API в службу Neo4j, размещенную в вашей рабочей роли Azure, проблема будет в объеме HTTP-запросов, которые вы выполняете при миграции данных. Из-за этого не будет никакой пользы для масштабирования вашего экземпляра вычислений, поскольку ваше узкое место находится в сетевом уровне. Я понимаю, что вы размещаете свое приложение и службу Neo4j в одном экземпляре. Это должно позволить вам выполнить некоторую отладку, чтобы понять ограничения в количестве ваших вызовов. Какой процесс миграции данных вы используете? –

+0

Кроме того, какой объем за час записей вы переносите из SQL? Вы используете пакетный API или просто выполняете одиночные вызовы? Можете ли вы показать некоторые примеры кода, чтобы я мог лучше вам помочь? Также где находится ваш SQL-сервер? Какие запросы вы делаете для SQL? –

ответ

0

Для того, чтобы писать тяжелые вещи, убедитесь, что у вас есть твой макияж, чтобы файлы хранилища могли поместиться в ОЗУ, если это возможно. Смотрите несколько советов о том, что здесь: http://docs.neo4j.org/chunked/milestone/configuration-io-examples.html

Вы говорите, что модернизировал RAM, но также необходимо настроить параметры виртуальной машины Java кучи: http://docs.neo4j.org/chunked/stable/configuration-jvm.html

Наконец, если вы делаете много писать и не читать, вы могли бы попробуйте отключить кеш, чтобы избежать оттока кеша объектов neo. В смешанных сценариях чтения/записи это плохая идея, но в тяжелых сценариях записи я видел хороший рост пропускной способности.

В любом случае, пожалуйста, сообщите нам более подробную информацию: образцы кода, запросы cypher и файлы конфигурации - а также некоторые характеристики производительности.

Смежные вопросы