СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ...

25

Transcript of СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ...

Page 1: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage
Page 2: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

СЕГМЕНТАЦИЯ ДАННЫХВ ИГРОВЫХ КЛАСТЕРАХConsistent Hashing Concept

ПавелМатлашов

Director of Game Server Development Department

Page 3: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

CONTENTS

1 Задача сегментации данных.

2 Статическая сегментация.

3 Накопленный опыт и пересмотр проблемы.

4 Концепция DHT.

5 Consistent hashing в действии.

6 Итоги применения DHT.

Page 4: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

4 Сегментация данных в игровых кластерах

ЗАДАЧА СЕГМЕНТИРОВАНИЯ ДАННЫХCONSISTENT HASHING CONCEPT

Обеспечивает линейную контролируемую горизонтальную масштабируемость

ПЛЮСЫ:+ Расширение границ системы за рамки нескольких серверов.+ Адаптируемость под различные параметры нагрузки.+ Наличие нескольких стратегий сегментирования под характеристики системы.+ Сегментировать дешевле и проще, чем планировать стоимость и емкость

вертикально масштабируемой системы.

МИНУСЫ:- Повышенная сложность поддержания согласованности сегментов.- Возросшая стоимость разработки.- Повышенная стоимость администрирования (настройка, резервные копии,

миграция и т.д.).

Page 5: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

5 Сегментация данных в игровых кластерах

СТАТИЧЕСКАЯ СЕГМЕНТАЦИЯ CONSISTENT HASHING CONCEPT

Основные типы сущностей распределяются по централизованному алгоритму, создаются дескрипторы сущностей, указывающие их расположение в кластере (сегмент).

ПЛЮСЫ: просто, надёжно.

МИНУСЫ: отсутствие перебалансировки (хоть и не понадобилось), лишние данные, ограничения алгоритма сегментации.

Page 6: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

6 Сегментация данных в игровых кластерах

СТАТИЧЕСКАЯ СЕГМЕНТАЦИЯCONSISTENT HASHING CONCEPT

SEGMENTSERVER

00

MASTERSERVER

SEGMENTSERVER

01

SEGMENTSERVER

02

DESCRIPTORS

Page 7: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

7 Сегментация данных в игровых кластерах

НАКОПЛЕННЫЙ ОПЫТ И ПЕРЕСМОТР ПРОБЛЕМЫCONSISTENT HASHING CONCEPT

● Со временем собрали ряд повторяющихся паттернов при решении задач доступа к распределенным данным (кэширование, нотификации об изменении, интеграция с EventBus и т.д).

● Решили в очередной раз обобщить паттерны в повторно используемом механизме.

● Одновременно с этим решили попробовать сделать динамическое распределение без дескрипторов.

Page 8: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

8 Сегментация данных в игровых кластерах

НАКОПЛЕННЫЙ ОПЫТ И ПЕРЕСМОТР ПРОБЛЕМЫCONSISTENT HASHING CONCEPT

Page 9: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

9 Сегментация данных в игровых кластерах

КОНЦЕПЦИЯ DHTCONSISTENT HASHING CONCEPT

● Описание основных принципов.

● Сonsistent hashing, rendezvouz hashing etc.

● Оverlay network.

● Что выбрали.

Page 10: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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

Page 11: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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

Page 12: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

12 Сегментация данных в игровых кластерах

CONSISTENT HASHINGCONSISTENT HASHING CONCEPT

k/N

Page 13: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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.

Page 14: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

14 Сегментация данных в игровых кластерах

RENDEZVOUS HASHING (HRW HASHING)CONSISTENT HASHING CONCEPT

● Расчет очков для каждого узла на основе выбранной хеш-функции и seed узла.

● Выбираем узел с наибольшим количеством очков.

● Можно добавить вес.

https://en.wikipedia.org/wiki/Rendezvous_hashing

Page 15: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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.

Page 16: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

16 Сегментация данных в игровых кластерах

OVERLAY NETWORK CONSISTENT HASHING CONCEPT

● Зачем и где это нужно?

● Почему не нужно нам?

Page 17: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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/

Page 18: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

18 Сегментация данных в игровых кластерах

CONSISTENT HASHING В ДЕЙСТВИИ CONSISTENT HASHING CONCEPT

МИГРАЦИЯ ДАННЫХ

● Узлы (сегменты) в текущей архитектуре лишь добавляются.

● Можно задать специальные параметры распределения.

● Миграция хранилища выполняется асинхронно, с координацией сегментов.

Page 19: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

19 Сегментация данных в игровых кластерах

CONSISTENT HASHING В ДЕЙСТВИИ CONSISTENT HASHING CONCEPT

SEGMENTSERVER

00

SEGMENTSERVER

01

SEGMENTSERVER

02

Page 20: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

20 Сегментация данных в игровых кластерах

CONSISTENT HASHING В ДЕЙСТВИИCONSISTENT HASHING CONCEPT

МИГРАЦИЯ EventBus

● Возникла проблема поддержания гарантии порядка событий.

● Схема миграции событий аналогична асинхронной, только выполняется в три этапа: завершение потенциально прерванной прошлой миграции, миграция входящих событий, миграция исходящих событий.

Page 21: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

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

Page 22: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

22 Сегментация данных в игровых кластерах

ИТОГИ ПРИМЕНЕНИЯ DHTCONSISTENT HASHING CONCEPT

● Накопленный опыт + новые знания = развитие.

● Работа одновременно устоявшихся и новых решений.

● Дальнейшие варианты развития.

Page 23: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

23 Сегментация данных в игровых кластерах

Что почитать?CONSISTENT HASHING CONCEPT

Page 24: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage

Copyright Plarium Global LTD. 2018Do not distribute

THANK YOU

Page 25: СЕГМЕНТАЦИЯ ДАННЫХ В ИГРОВЫХ КЛАСТЕРАХcdn01.x-plarium.com/browser/content/developers/udev/content/uDev… · GlusterFS, a network-attached storage