Мога ли да създам две бази данни neo4j от моя сървър?

Работя върху уеб приложение, което ще има милиарди графики, всяка с размер не повече от 500 възела. Опитвам се да използвам Neo4j, за да съхранявам всички мои данни за графиката. Правих проучване за това как Neo4j може да бъде мащабиран, за да постигна целта си. След много проучвания търся помощ от SO за проблемите, които не са ми ясни. Моля, извинете ме, ако проблемите ми вече са в интернет и не успях да ги разбера.

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

  2. За база данни с единична графика прочетох за комбинацията Cache Sharding и HA clustering за постигане на висока производителност. Всички статии споменават, че всеки екземпляр на база данни може да обработва много заявки. Може ли някой да ми даде приблизителен брой заявки, които всеки екземпляр на база данни (подчинен на HA клъстер) може да обработва към момента и дали ще се увеличи в близко бъдеще?

Графиката е единствената част от моя уеб продукт и бих искал да постигна възможно най-висока производителност. Моля, помогнете ми да разбера по-добре Neo4j, за да видя дали отговаря на целта ми. Всякакви предложения за други бази данни, които биха послужили на моята цел, са добре дошли. Благодаря ви за търпението! :)


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


Отговори (2)


Мога да отговоря 1. Идеята за независими графики или графични острови в рамките на neo4j db може да се приложи с помощта на етикети стартиране на Neo4j 2.0.

person Aravind Yarram    schedule 01.08.2013
comment
Neo4j 2.0 внедри много нови функции, които ми помогнаха да постигна изискванията. Етикетите Neo4j ви позволяват уникално да идентифицирате възли от определен тип. Въпреки че наследеното индексиране (индексиране на схемата на db) все още остава, функцията на Neo4j за възможност за индексиране на конкретно свойство на конкретен етикет (въведена във 2.0) увеличи значително резултатите от RTO шифрова заявка, доказвайки, че етикетирането е правилният подход за моя проблем през Q1. И според Q2 това силно зависи от вашата архитектура, както Peter Neubauer посочи в отговора по-долу! Благодаря ти за помощта! :) - person Sonika Malloth; 20.05.2016

За 2), това силно зависи от типа заявки и дали можете да кеширате четения или не. Обикновено бихте настроили HA клъстер и насочвали заявки от една и съща околност на данни към същите възли на клъстера, като по този начин удряте топли кешове. Имате ли повече подробности за вашия домейн, обем данни и т.н.?

person Peter Neubauer    schedule 02.08.2013
comment
Моята база данни ще има милиарди потребителски възли, които имат свои собствени малки графики от 500 възела всеки. Разглеждам разделянето на потребителски възли и съответните им графики в две бази данни като решение за мащабиране. Тъй като локалните данни на потребителите присъстват в една база данни, мога да се възползвам от топлите кешове. Бих искал да знам колко db връзки всеки от тези db екземпляри би поддържал наведнъж и възможния метод за достъп до две Neo4j db и изстрелване на заявки към определена db, решен по време на изпълнение. Всякакви насоки биха били наистина полезни. Благодаря ти - person Sonika Malloth; 02.08.2013