Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

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

Содержание

План докладаЧто мы решали с помощью графовых БДГрафовые БД Neo4J и SparkseeНастройка и оптимизация Neo4J и SparkseeКаких результатов удалось достичь
Как мы храним большой социальный графБартенев Максим Норси-Транс План докладаЧто мы решали с помощью графовых БДГрафовые БД Neo4J и SparkseeНастройка Графы вездеПрименяются во многих сферах: веб-ссылки; маршруты;социальные сети;и т.д.Имеют очень большой объем.Сложность Графовое хранилище Решаемые задачиЗагрузка графа Выполнение аналитической операцииДогрузка новых данных, в случае их появления Аналитические задачиПолучить всех соседей вершины (Neighbors)Выполнить обход графа (BFS)Найти кратчайший путь (Shortest path) Neo4JНаиболее распространеннаяРазвитое сообществоВысокая функциональностьМожет быть как серверным приложением, так и встраиваемымЕсть бесплатная версия Особенности Neo4JВсе операции только внутри транзакции – правильно и надежно, но медленно BatchInserterБыстрый импортНЕ отказоустойчивыйНЕ потокобезопасный ИндексированиеНовый метод schema.indexFor() – только по атрибутам на вершинахУстаревший метод graphDb.index() – Memory mapped cacheСлужит для ускорения I/OПроецирует файлы хранилища в памятьКаждому файлу свой кэш Размеры объектов на дискеCache size = размер объекта * количество объектов Настройки memory mapped cacheuse_memory_mapped_buffersmapped_memorynodestore.db.mapped_memoryrelationshipstore.db.mapped_memorypropertystore.db.mapped_memoryи т.д. Object cacheХранит в себе объекты для быстрого доступа при обходах графаВытеснение объектов Типы Object cache Sparksee (в прошлом DEX)Заявлена высокая производительностьТолько встраиваемаяНе столь распространеннаяСообщество очень маленькоеПолностью закрытаяБесплатна для исследований Особенности SparkseeОбязательно задается схема данныхДоступ к объекту только по внутреннему идентификатору Настройки SparkseeНастройки ребер:ОриентированныеИндексированныеТипы атрибутов:ОбычныйИндексированныйУникальный Sparksee cacheНастройки кэширования минимальныВсе новые объекты попадают в кэшSetCacheMaxSize(int megabytes)Если megabytes == Тестовый стендIntel Xeon E7540 2.0 GHz64GB DDR32x2TB hard drive ПО и настройки Neo4JNeo4J 2.1.5 Community EditionUbuntu 14.04 LTSJVM: -d64 –Xmx40G -XX:+UseParallelGCBatch ПО и настройки SparkseeSparksee 5.1.0 Unlimited licenceWindows Server 2008 x64.NET APICache size 60GB Время импорта данных (ч) Время обработки графа (с)~10 миллионов вершин и ~100 миллионов ребер Время обработки графа (с)~50 миллионов вершин и ~500 миллионов ребер ВыводыSparksee производительнее Neo4JВысокая производительность графовых БД ограничивается размером памятиГрафы размером больше 1 Спасибо  за  внимание!
Слайды презентации

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

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

БД Neo4J и Sparksee
Настройка и оптимизация Neo4J и Sparksee
Каких

результатов удалось достичь


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

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

т.д.
Имеют очень большой объем.
Сложность в анализе графа, а не

в хранении.

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

Графовое хранилище

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

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

в случае их появления


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

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

(BFS)
Найти кратчайший путь (Shortest path)


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

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

так и встраиваемым
Есть бесплатная версия


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

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

и надежно, но медленно и ест много оперативной памяти.
Объекты

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


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

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

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

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

вершинах
Устаревший метод graphDb.index() – и по вершинам и по

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

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

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

в память
Каждому файлу свой кэш


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

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

* количество объектов


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

Настройки memory mapped cacheuse_memory_mapped_buffersmapped_memorynodestore.db.mapped_memoryrelationshipstore.db.mapped_memorypropertystore.db.mapped_memoryи т.д.

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

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

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

только в Enterprice версии

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

Типы Object cache

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

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

распространенная
Сообщество очень маленькое
Полностью закрытая
Бесплатна для исследований


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

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

по внутреннему идентификатору


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

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

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

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

кэш
SetCacheMaxSize(int megabytes)
Если megabytes == 0, то используется вся свободная

память минус 512mb.

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

Тестовый стендIntel Xeon E7540 2.0 GHz64GB DDR32x2TB hard drive

drive


Слайд 21 ПО и настройки Neo4J
Neo4J 2.1.5 Community Edition
Ubuntu 14.04

ПО и настройки Neo4JNeo4J 2.1.5 Community EditionUbuntu 14.04 LTSJVM: -d64 –Xmx40G

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

ПО и настройки SparkseeSparksee 5.1.0 Unlimited licenceWindows Server 2008 x64.NET APICache size 60GB

2008 x64
.NET API
Cache size 60GB


Слайд 23 Время импорта данных (ч)

Время импорта данных (ч)

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

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

миллионов ребер


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

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

миллионов ребер


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

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

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


  • Имя файла: kak-my-hranim-bolshoy-sotsialnyy-graf.pptx
  • Количество просмотров: 114
  • Количество скачиваний: 0