Как мы храним большой социальный граф презентация

Содержание

План доклада Что мы решали с помощью графовых БД Графовые БД Neo4J и Sparksee Настройка и оптимизация Neo4J и Sparksee Каких результатов удалось достичь

Слайд 1Как мы храним большой социальный граф
Бартенев Максим Норси-Транс


Слайд 2План доклада
Что мы решали с помощью графовых БД
Графовые БД Neo4J и

Sparksee
Настройка и оптимизация Neo4J и Sparksee
Каких результатов удалось достичь


Слайд 3Графы везде
Применяются во многих сферах:
веб-ссылки;
маршруты;
социальные сети;
и т.д.
Имеют очень большой

объем.
Сложность в анализе графа, а не в хранении.

Слайд 4Графовое хранилище


Слайд 5Решаемые задачи
Загрузка графа
Выполнение аналитической операции
Догрузка новых данных, в случае их

появления

Слайд 6Аналитические задачи
Получить всех соседей вершины (Neighbors)
Выполнить обход графа (BFS)
Найти кратчайший путь

(Shortest path)

Слайд 7Neo4J
Наиболее распространенная
Развитое сообщество
Высокая функциональность
Может быть как серверным приложением, так и встраиваемым
Есть

бесплатная версия


Слайд 8Особенности Neo4J
Все операции только внутри транзакции – правильно и надежно, но

медленно и ест много оперативной памяти.
Объекты – вершины, ребра и атрибуты. Доступ к ним только по внутреннему идентификатору.


Слайд 9BatchInserter
Быстрый импорт
НЕ отказоустойчивый
НЕ потокобезопасный


Слайд 10Индексирование
Новый метод schema.indexFor() – только по атрибутам на вершинах
Устаревший метод graphDb.index()

– и по вершинам и по ребрам
Индексация в режиме Batch inserter BatchInserterIndexProvider.nodeIndex()

Слайд 11Memory mapped cache
Служит для ускорения I/O
Проецирует файлы хранилища в память
Каждому файлу

свой кэш

Слайд 12Размеры объектов на диске
Cache size = размер объекта * количество объектов


Слайд 13Настройки memory mapped cache
use_memory_mapped_buffers
mapped_memory
nodestore.db.mapped_memory
relationshipstore.db.mapped_memory
propertystore.db.mapped_memory
и т.д.


Слайд 14Object cache
Хранит в себе объекты для быстрого доступа при обходах графа
Вытеснение

объектов осуществляет GC
Реально производительный кэш есть только в Enterprice версии

Слайд 15Типы Object cache


Слайд 16Sparksee (в прошлом DEX)
Заявлена высокая производительность
Только встраиваемая
Не столь распространенная
Сообщество очень маленькое
Полностью

закрытая
Бесплатна для исследований

Слайд 17Особенности Sparksee
Обязательно задается схема данных
Доступ к объекту только по внутреннему идентификатору


Слайд 18Настройки Sparksee
Настройки ребер:
Ориентированные
Индексированные
Типы атрибутов:
Обычный
Индексированный
Уникальный


Слайд 19Sparksee cache
Настройки кэширования минимальны
Все новые объекты попадают в кэш
SetCacheMaxSize(int megabytes)
Если megabytes

== 0, то используется вся свободная память минус 512mb.

Слайд 20Тестовый стенд
Intel Xeon E7540 2.0 GHz
64GB DDR3
2x2TB hard drive


Слайд 21ПО и настройки Neo4J
Neo4J 2.1.5 Community Edition
Ubuntu 14.04 LTS
JVM: -d64 –Xmx40G

-XX:+UseParallelGC
Batch insertion mode
Use_memory_mapped_buffers
Cache vertices 2GB, relationships 18GB

Слайд 22ПО и настройки Sparksee
Sparksee 5.1.0 Unlimited licence
Windows Server 2008 x64
.NET API
Cache

size 60GB

Слайд 23Время импорта данных (ч)
Больше суток.
Слишком долго!


Слайд 24Время обработки графа (с)
~10 миллионов вершин и ~100 миллионов ребер


Слайд 25Время обработки графа (с)
~50 миллионов вершин и ~500 миллионов ребер


Слайд 26Выводы
Sparksee производительнее Neo4J
Высокая производительность графовых БД ограничивается размером памяти
Графы размером больше

1 млрд вершин не получится обработать

Слайд 27Спасибо за внимание!


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика