Ищете зрелый, масштабируемый GraphDB с привязкой .NET или C ++ - PullRequest
3 голосов
/ 10 сентября 2011

My базовые требования от GraphDB:

  • Зрелые (готовые к производству)
  • Нативная привязка к языку .NET или C ++
  • Горизонтальная масштабируемость: оба
    • Автоматическое резервирование и обработка данных
    • Алгоритмы распределенного графа / выполнение запроса

В настоящее время я дисквалифицирован:

  • InfiniteGraph: без привязки к языку C ++ / .NET
  • HyperGraphDB: без привязки к языку C ++ / .NET
  • Microsoft Trinity: не созрели
  • Neo4j: не распространяется

Я не уверен в масштабируемости следующего:

  • разреженность DEX
  • Franz Inc. AllegroGraph
  • Sones GraphDB

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

Любая информация будет оценена.

1 Ответ

10 голосов
/ 10 сентября 2011

К сожалению, ваши основные требования уже сегодня расширяют общее представление о графиках - даже в академических кругах.Ни одна из перечисленных чистых графовых баз данных не сможет удовлетворить все ваши потребности.Алгоритмы распределенных графов, которые знают о больших распределенных, но взаимосвязанных графах, все еще остаются большой исследовательской проблемой.Поэтому для вашего приложения лучше всего найти хорошо подходящую базу данных графов, стек обработки графиков или RDF-Store и самостоятельно реализовать недостающие части.Если ваше приложение в основном представляет собой онлайновую обработку транзакционных графов (OLTP) (интенсивное чтение / запись) с акцентом на вершины, и вы можете на мгновение отказаться от распределенных алгоритмов, используйте один из них:

  • Neo4j
  • OrientDB
  • DEX
  • HyperGraphDB
  • InfiniteGraph
  • InfoGrid
  • Microsoft Horton

Когда это больше онлайн-аналитическая обработка (OLAP) (в основном читаемая), все еще с акцентом на вершины и распределение действительно имеет значение, тогда:

  • Apache Hama (проект ранней стадии)
  • Microsoft Trinity (исследовательский проект)
  • Золотой шар (хорошо, но только на Java)
  • Сигнал / сбор (http://www.ifi.uzh.ch/ddis/research/sc, но исследовательский проект)

Или больше внимания уделяется краям, логическим рассуждениям / сопоставлению с образцом, и вам нужно или лучше жить с распределением на уровне ребер, как в семантической паутине, а затем использовать один из этих RDF- / Triple- / Quadstores:

  • AllegroGraph (ладно, это гибрид магазина graphdb / rdf;)
  • Йена
  • Кунжут
  • Stardog
  • Виртуоз
  • ...и много других хранилищ RDF

Хорошей отправной точкой могут быть DEX или Neo4j: если вы ищете хорошее и действительно быстрое ядро ​​graphdb для C ++, то лучше всего подойдет DEX, но вам придется реализоватьмного сетевого и дистрибутивного материала самостоятельно.Neo4j имеет большое распространение и отказоустойчивость, но на данный момент больше на уровне разделения вершин, и его ядро ​​- Java.Для идей и вдохновения для реализации алгоритмов распределенных графов, возможно, взгляните на Golden Orb и Signal / Collect.Альтернативный подход может начинаться с AllegroGraph или Stardog.Особенно AllegroGraph может быть немного хитрым в начале, пока вы не привыкнете к их образу мышления.Stardog еще молод и Java, но быстр и уже достаточно зрел.

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