Использование графовых баз данных в целях оптимизации анализа биллинговой информации - page 4

М.В. Бартенев, И.Э. Вишняков
4
сии от бесплатной состоит в наличии возможности устойчивого хра-
нения базы на жестком диске. Бесплатная же версия позволяет хра-
нить данные только в оперативной памяти (in-memory).
Поскольку компания-разработчик прекратила свое существова-
ние, единственная версия БД, которую можно протестировать, —
бесплатная версия Сommunity, т. е. тестирование будет ограничено
небольшими объемами данных, целиком помещающимися в опера-
тивную память. Соответственно, работать с такими данными можно
только в случае либо их маленького объема, либо постоянной очист-
ки текущего хранилища от старых данных.
Sones не имеет встроенной поддержки алгоритмов обхода графов,
в связи с чем для тестирования задачи поиска соседей был реализо-
ван поиск в ширину [9]. Кроме того, для тестирования поиска пере-
сечений множеств соседних вершин была реализована работа с мно-
жествами найденных вершин.
Neo4J GraphDB.
Эта графовая БД разработана компанией Neo
Technology в 2009 г. Самая последняя стабильная на текущий момент
версия — 1.9. Она доступна в трех вариантах: Community, Advanced и
Enterprise. Версия Community распространяется по лицензии AGPL v3,
для коммерческих же проектов необходимо приобретать версию Ad-
vanced, включающую дополнительные возможности мониторинга
состояния базы. Версия Enterprise, кроме того, поддерживает резерв-
ное копирование и масштабируемость. На сегодняшний день Neo4J
является наиболее популярной графовой БД, в первую очередь ввиду
того, что бесплатная версия предлагает все необходимые инструмен-
ты для полноценной работы с графами.
Neo4J, в отличие от графовой БД Sones, может устойчиво хра-
нить данные на жестком диске. Следовательно, объем хранящейся
информации ограничен лишь объемами жесткого диска. Для дости-
жения максимальной производительности в Neo4J существует два
типа кэширования: файловый кэш (file buffer cache) и объектный кэш
(object cache). Первый кэширует данные с жесткого диска, целью че-
го является увеличение скорости чтения/записи на жесткий диск.
Второй кэш хранит в себе различные объекты графа: вершины, ребра
и свойства в специальном оптимизированном формате для увеличе-
ния производительности обходов графа.
Neo4J обладает режимом импорта большого объема данных
BatchInserter [10]. В этом режиме происходит отключение транзакций
в БД, следствием чего является резкое увеличение скорости импорта.
Кроме того, в Neo4J поддерживаются алгоритмы обхода графов, в
том числе можно сделать обход в ширину до заданного уровня, что
как раз и необходимо для решения задачи поиска соседних вершин.
1,2,3 5,6,7,8
Powered by FlippingBook