Ищете зрелую, масштабируемую базу данных GraphDB с привязкой к .NET или C ++

StackOverflow https://stackoverflow.com/questions/7370375

Вопрос

Мой основные требования из базы данных GraphDB:

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

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

  • Бесконечный график:нет привязки к языку C ++ / .NET
  • HyperGraphDB:нет привязки к языку C ++ / .NET
  • Microsoft Тринити:Не зрелый
  • Neo4j:не распространяется

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

  • Разреженность DEX
  • Franz Inc.Аллегрография
  • Соны GraphDB

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

Будем признательны за любую информацию.

Это было полезно?

Решение

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

  • Neo4j
  • OrientDB
  • ДЕКС
  • HyperGraphDB
  • Бесконечный график
  • Информационная сетка
  • Microsoft Хортон

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

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

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

  • AllegroGraph (хорошо, это гибрид хранилища graphdb / rdf ;)
  • Jena
  • Кунжут
  • Звездный Пес
  • Виртуоз
  • ... и многие другие магазины RDF

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top