Могу ли я создать две базы данных neo4j с моего сервера?

Я работаю над веб-приложением, которое будет иметь миллиарды графиков размером не более 500 узлов. Я пытаюсь использовать Neo4j для хранения всех данных моего графика. Я изучал, как можно масштабировать Neo4j для достижения моей цели. После долгих исследований я обращаюсь за помощью к SO по вопросам, о которых я не знаю. Прошу извинить меня, если мои вопросы уже есть в Интернете и я не смог в них разобраться.

  1. Все мои графики маленькие и несвязные. Так что разделить их по горизонтали для меня не проблема. Но я нигде не нашел в Интернете информацию о том, как создать более одной базы данных Neo4j (НЕ экземпляр) для поддержки моего веб-приложения. Есть ли способ сделать это? Если это невозможно, будет ли это включено в ближайшем будущем? EDIT: Как упоминалось в комментариях ниже, я использовал маркировку для идентификации небольших графиков в своей БД, но каждая статья, связанная с горизонтальным сегментированием, говорит об оптимальном разделении графика и его хранении в отдельных базах данных. На данный момент я жестко запрограммировал путь к базе данных «/data/graph.db» в neo4j-server.properties во время настройки. Есть ли способ, которым я могу жестко закодировать два таких пути для 2 разных баз данных и на лету решить, к какому из них подключиться?

  2. Для базы данных с одним графом я читал о сочетании кэш-шардинга и кластеризации высокой доступности для достижения высокой производительности. Во всех статьях упоминается, что каждый экземпляр базы данных может обрабатывать множество запросов. Может ли кто-нибудь дать мне приблизительное количество запросов, которое каждый экземпляр базы данных (подчиненный кластер высокой доступности) может обрабатывать на данный момент, и будет ли оно увеличиваться в ближайшем будущем?

График — единственный элемент моего веб-продукта, и я хотел бы добиться максимально возможной производительности. Пожалуйста, помогите мне лучше понять Neo4j, чтобы понять, подходит ли он для моей цели. Приветствуются любые предложения по другим базам данных, которые будут служить моей цели. Спасибо за ваше терпение! :)


person Sonika Malloth    schedule 01.08.2013    source источник


Ответы (2)


Я могу ответить 1. Идея независимых графов или островков графов в базе данных neo4j может быть реализована с помощью lables запуск Neo4j 2.0.

person Aravind Yarram    schedule 01.08.2013
comment
В Neo4j 2.0 реализовано много новых функций, которые помогли мне выполнить требования. Метки Neo4j позволяют однозначно идентифицировать узлы определенного типа. В то время как устаревшее индексирование (индексирование схемы БД) все еще остается, функция Neo4j, позволяющая индексировать определенное свойство на определенной метке (представленная в версии 2.0), значительно увеличила результаты шифровального запроса RTO, доказав, что маркировка является правильным подходом для моего проблема в Q1. И согласно Q2 это сильно зависит от вашей архитектуры, как указал Питер Нойбауэр в ответе ниже! Спасибо вам за помощь! :) - person Sonika Malloth; 20.05.2016

Для 2) это сильно зависит от типа запросов и от того, можете ли вы кэшировать чтение или нет. Обычно вы настраиваете кластер высокой доступности и направляете запросы к одной и той же окрестности данных на одни и те же узлы кластера, тем самым затрагивая горячие кэши. У вас есть более подробная информация о вашем домене, объеме данных и т. д.?

person Peter Neubauer    schedule 02.08.2013
comment
В моей базе данных будут миллиарды пользовательских узлов, у которых есть свои небольшие графы по 500 узлов в каждом. Я рассматриваю разделение пользовательских узлов и их соответствующих графиков на две базы данных в качестве решения для масштабирования. Поскольку локальные данные пользователей находятся в одной базе данных, я могу воспользоваться преимуществами теплых кешей. Я хотел бы знать, сколько подключений к базе данных каждый из этих экземпляров базы данных будет поддерживать одновременно, и возможный метод доступа к двум базам данных Neo4j и запуска запросов к конкретной базе данных, решенной во время выполнения. Любые указатели были бы действительно полезны. Спасибо - person Sonika Malloth; 02.08.2013