Вышел релиз Neo4j 1.3, высокоэффективной БД для хранения данных в виде графов. Вместо столбцов, строк или ключей и их значений, модель хранения данных представляет собой структуру, похожую на сеть - задаются узлы, их свойства и отношения между собой. БД обеспечивает прекрасную производительность и широкие возможности по масштабированию решения - один сервер может обслуживать несколько миллиардов объектов. При увеличении объёма данных достаточно подключить дополнительный сервер.

Neo4j поддерживает транзакции, индексацию данных и обладает хорошей масштабируемостью - база может обслуживаться кластером из нескольких серверов. Для быстрого обхода узлов разработан специальный фреймворк. Возможна работа как в режиме обособленного сервера (доступ через REST API), так и в виде встраиваемой системы, позволяющей интегрировать функции работы с графом в пользовательские программы. Готовые биндинги распространяются для языков Clojure, Erlang, Gremlin, Groovy, Java, PHP, Python, Ruby и Scala. Код проекта написан на языке Java.

Примечательным новшеством новой в версии является переход на лицензию GPLv3, в ответ на пожелания пользователей системы, утверждавших, что ранее использованная лицензия AGPLv3, накладывает слишком большие ограничения на разработчиков. Например, лицензия AGPL требовала открывать код всех разработок при задействовании Neo4j для организации работы web-сервисов.

Из добавленных в новой версии улучшений можно отметить:

  • Расширение ограничения максимального размера графа до 32 миллиардов узлов и 64 миллиардов свойств, чего по заявлению разработчиков достаточно для того чтобы построить граф связи между всеми людьми на земле;
  • Применена новая техника организации хранения данных, позволяющая снизить потребление памяти при хранении строк, значительно уменьшить размеры файлов с базой и увеличить производительность за счет уменьшения обращений к диску;
  • Переработан управляющий web-интерфейс. Добавлен новый метод визуализации хранимых данных, позволяющий наглядно оценить состав базы и связь между узлами графа;
  • В число поддерживаемых алгоритмов поиска наикратчайшего пути в графе включён классический алгоритм Дейкстры;
  • Проведена чистка API;
  • Улучшена работа фреймворка для обеспечения прохода по узлам графа;
  • Расширены возможности API для работы с индексами, REST API и API для создания серверных плагинов.


Источник: http://www.opennet.ru/opennews/art.shtml?num=30256