СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ...
TRANSCRIPT
СЕГМЕНТАЦИЯ ДАННЫХВ ИГРОВЫХ КЛАСТЕРАХConsistent Hashing Concept
ПавелМатлашов
Director of Game Server Development Department
Copyright Plarium Global LTD. 2018Do not distribute
CONTENTS
1 Задача сегментации данных.
2 Статическая сегментация.
3 Накопленный опыт и пересмотр проблемы.
4 Концепция DHT.
5 Consistent hashing в действии.
6 Итоги применения DHT.
Copyright Plarium Global LTD. 2018Do not distribute
4 Сегментация данных в игровых кластерах
ЗАДАЧА СЕГМЕНТИРОВАНИЯ ДАННЫХCONSISTENT HASHING CONCEPT
Обеспечивает линейную контролируемую горизонтальную масштабируемость
ПЛЮСЫ:+ Расширение границ системы за рамки нескольких серверов.+ Адаптируемость под различные параметры нагрузки.+ Наличие нескольких стратегий сегментирования под характеристики системы.+ Сегментировать дешевле и проще, чем планировать стоимость и емкость
вертикально масштабируемой системы.
МИНУСЫ:- Повышенная сложность поддержания согласованности сегментов.- Возросшая стоимость разработки.- Повышенная стоимость администрирования (настройка, резервные копии,
миграция и т.д.).
Copyright Plarium Global LTD. 2018Do not distribute
5 Сегментация данных в игровых кластерах
СТАТИЧЕСКАЯ СЕГМЕНТАЦИЯ CONSISTENT HASHING CONCEPT
Основные типы сущностей распределяются по централизованному алгоритму, создаются дескрипторы сущностей, указывающие их расположение в кластере (сегмент).
ПЛЮСЫ: просто, надёжно.
МИНУСЫ: отсутствие перебалансировки (хоть и не понадобилось), лишние данные, ограничения алгоритма сегментации.
Copyright Plarium Global LTD. 2018Do not distribute
6 Сегментация данных в игровых кластерах
СТАТИЧЕСКАЯ СЕГМЕНТАЦИЯCONSISTENT HASHING CONCEPT
SEGMENTSERVER
00
MASTERSERVER
SEGMENTSERVER
01
SEGMENTSERVER
02
DESCRIPTORS
Copyright Plarium Global LTD. 2018Do not distribute
7 Сегментация данных в игровых кластерах
НАКОПЛЕННЫЙ ОПЫТ И ПЕРЕСМОТР ПРОБЛЕМЫCONSISTENT HASHING CONCEPT
● Со временем собрали ряд повторяющихся паттернов при решении задач доступа к распределенным данным (кэширование, нотификации об изменении, интеграция с EventBus и т.д).
● Решили в очередной раз обобщить паттерны в повторно используемом механизме.
● Одновременно с этим решили попробовать сделать динамическое распределение без дескрипторов.
Copyright Plarium Global LTD. 2018Do not distribute
8 Сегментация данных в игровых кластерах
НАКОПЛЕННЫЙ ОПЫТ И ПЕРЕСМОТР ПРОБЛЕМЫCONSISTENT HASHING CONCEPT
Copyright Plarium Global LTD. 2018Do not distribute
9 Сегментация данных в игровых кластерах
КОНЦЕПЦИЯ DHTCONSISTENT HASHING CONCEPT
● Описание основных принципов.
● Сonsistent hashing, rendezvouz hashing etc.
● Оverlay network.
● Что выбрали.
Copyright Plarium Global LTD. 2018Do not distribute
10 Сегментация данных в игровых кластерах
ХЕШ ТАБЛИЦАCONSISTENT HASHING CONCEPT
John Smith
Keys
Lisa Smith
Sandra Dee
521-8976
521-1234
00
01
02
03
521-9655
13
14
15
Hash function Buckets
Copyright Plarium Global LTD. 2018Do not distribute
11 Сегментация данных в игровых кластерах
РАСПРЕДЕЛЁННАЯ ХЕШ ТАБЛИЦАCONSISTENT HASHING CONCEPT
The red fox runs across
the ice
The red fox walks across
the ice
Fox Hashfunction
Hashfunction
Hashfunction
Data Key
DistributedNetwork
Peers
DFCD3454
52ED879E
46042841
Copyright Plarium Global LTD. 2018Do not distribute
12 Сегментация данных в игровых кластерах
CONSISTENT HASHINGCONSISTENT HASHING CONCEPT
k/N
Copyright Plarium Global LTD. 2018Do not distribute
13 Сегментация данных в игровых кластерах
ИСПОЛЬЗОВАНИЕ CH В ПРОДУКТАХ И ПЛАТФОРМАХCONSISTENT HASHING CONCEPT
● Couchbase automated data partitioning.● Openstack's Object Storage Service Swift.● Partitioning component of Amazon's storage system Dynamo.● Data partitioning in Apache Cassandra.● Data Partitioning in Voldemort.● Akka's consistent hashing router.● Riak, a distributed key-value database.● GlusterFS, a network-attached storage file system.● Skylable, an open-source distributed object-storage system.● Akamai Content Delivery Network.● Discord chat application.● Maglev: A Fast and Reliable Software Network Load Balancer.
Copyright Plarium Global LTD. 2018Do not distribute
14 Сегментация данных в игровых кластерах
RENDEZVOUS HASHING (HRW HASHING)CONSISTENT HASHING CONCEPT
● Расчет очков для каждого узла на основе выбранной хеш-функции и seed узла.
● Выбираем узел с наибольшим количеством очков.
● Можно добавить вес.
https://en.wikipedia.org/wiki/Rendezvous_hashing
Copyright Plarium Global LTD. 2018Do not distribute
15 Сегментация данных в игровых кластерах
ИСПОЛЬЗОВАНИЕ HRWCONSISTENT HASHING CONCEPT
● Oracle in memory DB.
● Microsoft Cache Array Routing Protocol.
● Router design.
● Mobile caching studies.
Copyright Plarium Global LTD. 2018Do not distribute
16 Сегментация данных в игровых кластерах
OVERLAY NETWORK CONSISTENT HASHING CONCEPT
● Зачем и где это нужно?
● Почему не нужно нам?
Copyright Plarium Global LTD. 2018Do not distribute
17 Сегментация данных в игровых кластерах
CONSISTENT HASHING В ДЕЙСТВИИ. MurMurCONSISTENT HASHING CONCEPT
● Быстрый, некриптостойкий алгоритм хеширования c хорошей защитой от коллизий.
● Масса реализаций под различные языки и платформы.
https://en.wikipedia.org/wiki/MurmurHashhttps://sites.google.com/site/murmurhash/
Copyright Plarium Global LTD. 2018Do not distribute
18 Сегментация данных в игровых кластерах
CONSISTENT HASHING В ДЕЙСТВИИ CONSISTENT HASHING CONCEPT
МИГРАЦИЯ ДАННЫХ
● Узлы (сегменты) в текущей архитектуре лишь добавляются.
● Можно задать специальные параметры распределения.
● Миграция хранилища выполняется асинхронно, с координацией сегментов.
Copyright Plarium Global LTD. 2018Do not distribute
19 Сегментация данных в игровых кластерах
CONSISTENT HASHING В ДЕЙСТВИИ CONSISTENT HASHING CONCEPT
SEGMENTSERVER
00
SEGMENTSERVER
01
SEGMENTSERVER
02
Copyright Plarium Global LTD. 2018Do not distribute
20 Сегментация данных в игровых кластерах
CONSISTENT HASHING В ДЕЙСТВИИCONSISTENT HASHING CONCEPT
МИГРАЦИЯ EventBus
● Возникла проблема поддержания гарантии порядка событий.
● Схема миграции событий аналогична асинхронной, только выполняется в три этапа: завершение потенциально прерванной прошлой миграции, миграция входящих событий, миграция исходящих событий.
Copyright Plarium Global LTD. 2018Do not distribute
21 Сегментация данных в игровых кластерах
CONSISTENT HASHING В ДЕЙСТВИИCONSISTENT HASHING CONCEPT
ENTITY
1SEGMENTSERVER
00
2
1
ENTITY
?SEGMENTSERVER
01
ENTITY
2SEGMENTSERVER
02
4
3
2
1
ENTITY
1
4 3 2 1ENTITY
2
Copyright Plarium Global LTD. 2018Do not distribute
22 Сегментация данных в игровых кластерах
ИТОГИ ПРИМЕНЕНИЯ DHTCONSISTENT HASHING CONCEPT
● Накопленный опыт + новые знания = развитие.
● Работа одновременно устоявшихся и новых решений.
● Дальнейшие варианты развития.
Copyright Plarium Global LTD. 2018Do not distribute
23 Сегментация данных в игровых кластерах
Что почитать?CONSISTENT HASHING CONCEPT
Copyright Plarium Global LTD. 2018Do not distribute
THANK YOU