SlideShare a Scribd company logo
Опыт внедрения и использования распределенной
      системы хранения данных на основе
             Voldemort+Tarantool
О чем данный доклад?

•   Опыт использования NoSQL разных типов
•   Архитектура существующего решения на основе BerkeleyDB
•   Цель внедрения распределенной системы хранения данных
•   Архитектура хранилища данных на основе Voldemort и Tarantool
•   Проблемы, с которыми столкнулись и пути их решения
•   Преимущества и недостатки каждого из решений
•   Результаты внедрения на примере сервиса отправки сообщений
Существующее решение
Архитектурно хранилище CP-типа с горизонтальным партиционированием:
one-db — BerkeleyDB 4.5 (Си) + Remote Interface (JBoss remoting)

                    Slave 1                      Slave 2                          Slave N


                     Node 1                          Node 2                        Node N




                   Master 1                      Master 2                        Master N

                 Remote interface             Remote interface      ...        Remote interface



                     JBoss remoting      JBoss remoting       JBoss remoting
                                                                      Партиционирование по
                                                                     младшему байту ключа.
                                                                     256 возможных партиций
                                    Remote clients
Недостатки существующего решения

•   Невысокая производительность < 10K операций в секунду с одной ноды
•   Низкая отказоустойчивость (SPOF)
•   Сложное обслуживание (ручная работа по восстановлению)
•   Высокая стоимость оборудования (В случае интенсивных операций
    update slave может использоваться только как backup)
Цель внедрения распределенной системы
                 хранения данных

•   Высокая отказоустойчивость (SPOF)
•   Неограниченная масштабируемость без down time
•   Максимальная производительность на чтение/запись
•   Возможность использования дешевого железа
•   Простота обслуживания (минимум ручной работы, только для
    восстановления персистентных отказов оборудования)
Свойства распределенных систем AP-типа


+ Высокая доступность (High Availability), отсутствие SPOF
+ Устойчивость к отказам сегментов сети (Partition tolerance)
+ Масштабируемость без down time
- Eventual Consistency (согласованность в конечном счете)
- Неопределенное состояние данных в случае timeout или quorum fail
Анализ существующих решений
• Cassandra 0.6.4
    + Табличная модель данных (на подобие Google Big Table)
    + Поддерживает Hinted Handoff
    + Java
    - Отсутствие механизма разрешения конфликтов (есть только timestamp
     для колонки)
• Voldemort 0.8.1
    + Разные backend (default BerkeleyDB)
    + Механизм отслеживания параллельных изменений (Vector Clock)
    + Java
    - Отсутствие Hinted Handoff
• Riak
    + Сопоставим с Voldemort
    - Erlang
Исследование производительности
Тесты для кластера 3 ноды с replication factor 3, read/write quorum 2
Сервера SuperMicro 2 CPU(8 cores), RAM 32 GB, 500 GB SATA 7200.
Размер данных < 5Kb, объем данных 25G, сценарий: read 50%, write 50%
• Cassandra 0.6.4
     Read: ~8-9K ops
     Write: > 20K ops
     Увеличение размеров хранимых данных для разрешения конфликтов
• Voldemort 0.8.1 (BerkeleyDB)
     Read: ~32K ops
     Write: ~7.5K ops
• Voldemort 0.8.1 (Tarantool)
     Read: ~36K ops
     Write: ~9K ops
Архитектура на основе Voldemort + Tarantool
                          Node 1
 Voldemort clients
                            Voldemort
 Quorum r=2, w=2
                                        Tarantool


                          Node 2

                            Voldemort
                                        Tarantool

                          ...
                          Node N
Cleanup Scheduler
                            Voldemort
 Quorum r=2, w=3
                                        Tarantool
Функционирование Voldemort cluster

•   Replication factor 3, quorum read: 2, write:2. R+W>N (strong consistency)
•   Vector clock + Custom conflict resolver
•   Использование проверок для уменьшения повторных обновлений
•   Segment locks на каждой ноде для операций модифицирующих данные
•   Использование soft delete (маркировка)
•   Нет Hinted Handoff (частично компенсируется процедурой cleanup)
Функционирование Cleanup scheduler

•   Сканирование всех ключей хранимых в Tarantool
•   Проверка данных в Voldemort на наличие признака soft delete
•   Восстановление данных по read repair
•   Для hard delete необходимо перемаркировать с quorum write 3.
    В случае успешной маркировки возможно физическое удаление
Проблемы, с которыми столкнулись
• Отсутствие Hinted Handoff (реализовано в версии 0.9)
• Ошибка в работе процедуры восстановления ноды кластера:
   - Заливались данные, которые не принадлежат данной ноде согласно
   hash ring
   - Переполнение in-memory storage
   + Используется собственный fix (должно быть исправлено в версии 0.9)
• Особенности процедуры перебалансировки
   - Нельзя одновременно переносить партиции с репликами друг друга
   - Для равномерной балансировки требуется предварительный
    анализ кластерной конфигурации.
Нагрузка на примере сервиса обмена сообщениями
    Отосланных сообщений ~170M в день
    Операций с диалогами ~30K в секунду (чтений 22K, запись 8К)




                                                              Сообщения
Диалоги
Результаты внедрения распределенного хранилища
             для пользовательских диалогов
• Отсутствие SPOF
• Масштабируемость без down time
• Уменьшение размеров кластера с 18 серверов до 10 (загрузка RAM на 50%)
• Время старта кластера ~10 минут
• Время полного восстановления ноды с реплик ~30минут
• Необходимость ручной работы только в случае down time на нодах с
  пересечением данных
• Увеличение среднего времени операций на ~80%
• Наличие небольшого количества повторных изменений ~3∙10-5% (~100 в
  день)
Количество операций, выполняющихся на
      Voldemort cluster, в 5 минут
Количество операций, выполняющихся
с пользовательскими диалогами, в 5 минут
Среднее время выполнения операций с диалогами
СПАСИБО!
         к.т.н. Роман Антипин
Инженер-программист, Одноклассники.ru
    roman.antipin@odnoklassniki.ru

More Related Content

What's hot

За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
odnoklassniki.ru
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
odnoklassniki.ru
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Ontico
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ontico
 
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на CassandraЗа гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandra
odnoklassniki.ru
 
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Ontico
 
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
odnoklassniki.ru
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователя
Anatoliy Orlov
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Ontico
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
Ontico
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Ontico
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
Ontico
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Ontico
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Ontico
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
Ontico
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Ontico
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico
 

What's hot (20)

За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на CassandraЗа гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandra
 
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
 
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
 
Скорость с доставкой до пользователя
Скорость с доставкой до пользователяСкорость с доставкой до пользователя
Скорость с доставкой до пользователя
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 

Viewers also liked

1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group
1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group
1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Grouptfmailru
 
Tech forum 2011-почта
Tech forum 2011-почтаTech forum 2011-почта
Tech forum 2011-почтаtfmailru
 
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...tfmailru
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Grouptfmailru
 
Платформа@Mail.Ru: настоящее и будущее
Платформа@Mail.Ru: настоящее и будущееПлатформа@Mail.Ru: настоящее и будущее
Платформа@Mail.Ru: настоящее и будущееtfmailru
 
Разработка социальных игр «из первых рук»: ваш путь в топ!
	Разработка социальных игр «из первых рук»: ваш путь в топ!	Разработка социальных игр «из первых рук»: ваш путь в топ!
Разработка социальных игр «из первых рук»: ваш путь в топ!tfmailru
 
Стабильность — признак мастерства
Стабильность — признак мастерстваСтабильность — признак мастерства
Стабильность — признак мастерстваtfmailru
 
Создание мобильных приложений: платформы, тренды, тонкости
	Создание мобильных приложений: платформы, тренды, тонкости	Создание мобильных приложений: платформы, тренды, тонкости
Создание мобильных приложений: платформы, тренды, тонкостиtfmailru
 
Платежные системы и мошенники в Сети (Ефимочкин Андрей))
Платежные системы и мошенники в Сети (Ефимочкин Андрей))Платежные системы и мошенники в Сети (Ефимочкин Андрей))
Платежные системы и мошенники в Сети (Ефимочкин Андрей))tfmailru
 
Типичные проблемы с массовыми рассылками и как их избежать
Типичные проблемы с массовыми рассылками и как их избежатьТипичные проблемы с массовыми рассылками и как их избежать
Типичные проблемы с массовыми рассылками и как их избежать
tfmailru
 
Машинное обучение в ранжировании поиска
Машинное обучение в ранжировании поискаМашинное обучение в ранжировании поиска
Машинное обучение в ранжировании поискаtfmailru
 
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuФорум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Yury Vetrov
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
tfmailru
 
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?tfmailru
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Ontico
 

Viewers also liked (17)

1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group
1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group
1145 1230 Технологическое партнерство с Microsoft – опыт Mail.Ru Group
 
Alekseev
AlekseevAlekseev
Alekseev
 
Sumin
SuminSumin
Sumin
 
Tech forum 2011-почта
Tech forum 2011-почтаTech forum 2011-почта
Tech forum 2011-почта
 
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
 
Платформа@Mail.Ru: настоящее и будущее
Платформа@Mail.Ru: настоящее и будущееПлатформа@Mail.Ru: настоящее и будущее
Платформа@Mail.Ru: настоящее и будущее
 
Разработка социальных игр «из первых рук»: ваш путь в топ!
	Разработка социальных игр «из первых рук»: ваш путь в топ!	Разработка социальных игр «из первых рук»: ваш путь в топ!
Разработка социальных игр «из первых рук»: ваш путь в топ!
 
Стабильность — признак мастерства
Стабильность — признак мастерстваСтабильность — признак мастерства
Стабильность — признак мастерства
 
Создание мобильных приложений: платформы, тренды, тонкости
	Создание мобильных приложений: платформы, тренды, тонкости	Создание мобильных приложений: платформы, тренды, тонкости
Создание мобильных приложений: платформы, тренды, тонкости
 
Платежные системы и мошенники в Сети (Ефимочкин Андрей))
Платежные системы и мошенники в Сети (Ефимочкин Андрей))Платежные системы и мошенники в Сети (Ефимочкин Андрей))
Платежные системы и мошенники в Сети (Ефимочкин Андрей))
 
Типичные проблемы с массовыми рассылками и как их избежать
Типичные проблемы с массовыми рассылками и как их избежатьТипичные проблемы с массовыми рассылками и как их избежать
Типичные проблемы с массовыми рассылками и как их избежать
 
Машинное обучение в ранжировании поиска
Машинное обучение в ранжировании поискаМашинное обучение в ранжировании поиска
Машинное обучение в ранжировании поиска
 
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuФорум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
 

Similar to Опыт внедрения и использования распределенной системы хранения данных на основе Voldemort+Tarantool

Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Ontico
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
Vasil Remeniuk
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
Ontico
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
Cassandra:Курс молодого бойца
Cassandra:Курс молодого бойцаCassandra:Курс молодого бойца
Cassandra:Курс молодого бойца
Igor Khokhryakov
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
High Load
High LoadHigh Load
High Load
alexeymaykov
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Ontico
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
Nikolay Sivko
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDB
Sergey Petrunya
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
Ontico
 
Tarantool/Silverbox (Юрий Востриков)
Tarantool/Silverbox (Юрий Востриков)Tarantool/Silverbox (Юрий Востриков)
Tarantool/Silverbox (Юрий Востриков)Ontico
 
Современные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO StorageСовременные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO Storage
DEPO Computers
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
Iosif Itkin
 
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...rit2011
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
ARCCN
 
Multimaster2
Multimaster2Multimaster2
Multimaster2
Stas Kelvich
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBIurii Ogiienko
 

Similar to Опыт внедрения и использования распределенной системы хранения данных на основе Voldemort+Tarantool (20)

Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Cassandra:Курс молодого бойца
Cassandra:Курс молодого бойцаCassandra:Курс молодого бойца
Cassandra:Курс молодого бойца
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
High Load
High LoadHigh Load
High Load
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDB
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
 
Tarantool/Silverbox (Юрий Востриков)
Tarantool/Silverbox (Юрий Востриков)Tarantool/Silverbox (Юрий Востриков)
Tarantool/Silverbox (Юрий Востриков)
 
Современные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO StorageСовременные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO Storage
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Multimaster2
Multimaster2Multimaster2
Multimaster2
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 

More from tfmailru

к форуму технологий вступление Last
к форуму технологий   вступление Lastк форуму технологий   вступление Last
к форуму технологий вступление Lasttfmailru
 
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.Ru
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.RuПартнерские возможности Почты: как дружить с миллионами пользователей Mail.Ru
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.Rutfmailru
 
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?tfmailru
 
Стабильность — признак мастерства
Стабильность — признак мастерстваСтабильность — признак мастерства
Стабильность — признак мастерстваtfmailru
 
Развитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайныРазвитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайныtfmailru
 
Типичные проблемы с массовыми рассылками и как из избежать
Типичные проблемы с массовыми рассылками и как из избежатьТипичные проблемы с массовыми рассылками и как из избежать
Типичные проблемы с массовыми рассылками и как из избежатьtfmailru
 
Как избавиться от опасных ссылок в вашем проекте
Как избавиться от опасных ссылок в вашем проектеКак избавиться от опасных ссылок в вашем проекте
Как избавиться от опасных ссылок в вашем проектеtfmailru
 
Платежные системы и мошенники в Сети
Платежные системы и мошенники в СетиПлатежные системы и мошенники в Сети
Платежные системы и мошенники в Сетиtfmailru
 
Технологии поиска
Технологии поискаТехнологии поиска
Технологии поискаtfmailru
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаtfmailru
 
Программа форума
Программа форумаПрограмма форума
Программа форумаtfmailru
 

More from tfmailru (11)

к форуму технологий вступление Last
к форуму технологий   вступление Lastк форуму технологий   вступление Last
к форуму технологий вступление Last
 
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.Ru
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.RuПартнерские возможности Почты: как дружить с миллионами пользователей Mail.Ru
Партнерские возможности Почты: как дружить с миллионами пользователей Mail.Ru
 
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 
1,5 млрд запросов в сутки?
 
Стабильность — признак мастерства
Стабильность — признак мастерстваСтабильность — признак мастерства
Стабильность — признак мастерства
 
Развитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайныРазвитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайны
 
Типичные проблемы с массовыми рассылками и как из избежать
Типичные проблемы с массовыми рассылками и как из избежатьТипичные проблемы с массовыми рассылками и как из избежать
Типичные проблемы с массовыми рассылками и как из избежать
 
Как избавиться от опасных ссылок в вашем проекте
Как избавиться от опасных ссылок в вашем проектеКак избавиться от опасных ссылок в вашем проекте
Как избавиться от опасных ссылок в вашем проекте
 
Платежные системы и мошенники в Сети
Платежные системы и мошенники в СетиПлатежные системы и мошенники в Сети
Платежные системы и мошенники в Сети
 
Технологии поиска
Технологии поискаТехнологии поиска
Технологии поиска
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кода
 
Программа форума
Программа форумаПрограмма форума
Программа форума
 

Опыт внедрения и использования распределенной системы хранения данных на основе Voldemort+Tarantool

  • 1.
  • 2. Опыт внедрения и использования распределенной системы хранения данных на основе Voldemort+Tarantool
  • 3. О чем данный доклад? • Опыт использования NoSQL разных типов • Архитектура существующего решения на основе BerkeleyDB • Цель внедрения распределенной системы хранения данных • Архитектура хранилища данных на основе Voldemort и Tarantool • Проблемы, с которыми столкнулись и пути их решения • Преимущества и недостатки каждого из решений • Результаты внедрения на примере сервиса отправки сообщений
  • 4. Существующее решение Архитектурно хранилище CP-типа с горизонтальным партиционированием: one-db — BerkeleyDB 4.5 (Си) + Remote Interface (JBoss remoting) Slave 1 Slave 2 Slave N Node 1 Node 2 Node N Master 1 Master 2 Master N Remote interface Remote interface ... Remote interface JBoss remoting JBoss remoting JBoss remoting Партиционирование по младшему байту ключа. 256 возможных партиций Remote clients
  • 5. Недостатки существующего решения • Невысокая производительность < 10K операций в секунду с одной ноды • Низкая отказоустойчивость (SPOF) • Сложное обслуживание (ручная работа по восстановлению) • Высокая стоимость оборудования (В случае интенсивных операций update slave может использоваться только как backup)
  • 6. Цель внедрения распределенной системы хранения данных • Высокая отказоустойчивость (SPOF) • Неограниченная масштабируемость без down time • Максимальная производительность на чтение/запись • Возможность использования дешевого железа • Простота обслуживания (минимум ручной работы, только для восстановления персистентных отказов оборудования)
  • 7. Свойства распределенных систем AP-типа + Высокая доступность (High Availability), отсутствие SPOF + Устойчивость к отказам сегментов сети (Partition tolerance) + Масштабируемость без down time - Eventual Consistency (согласованность в конечном счете) - Неопределенное состояние данных в случае timeout или quorum fail
  • 8. Анализ существующих решений • Cassandra 0.6.4 + Табличная модель данных (на подобие Google Big Table) + Поддерживает Hinted Handoff + Java - Отсутствие механизма разрешения конфликтов (есть только timestamp для колонки) • Voldemort 0.8.1 + Разные backend (default BerkeleyDB) + Механизм отслеживания параллельных изменений (Vector Clock) + Java - Отсутствие Hinted Handoff • Riak + Сопоставим с Voldemort - Erlang
  • 9. Исследование производительности Тесты для кластера 3 ноды с replication factor 3, read/write quorum 2 Сервера SuperMicro 2 CPU(8 cores), RAM 32 GB, 500 GB SATA 7200. Размер данных < 5Kb, объем данных 25G, сценарий: read 50%, write 50% • Cassandra 0.6.4  Read: ~8-9K ops  Write: > 20K ops  Увеличение размеров хранимых данных для разрешения конфликтов • Voldemort 0.8.1 (BerkeleyDB)  Read: ~32K ops  Write: ~7.5K ops • Voldemort 0.8.1 (Tarantool)  Read: ~36K ops  Write: ~9K ops
  • 10. Архитектура на основе Voldemort + Tarantool Node 1 Voldemort clients Voldemort Quorum r=2, w=2 Tarantool Node 2 Voldemort Tarantool ... Node N Cleanup Scheduler Voldemort Quorum r=2, w=3 Tarantool
  • 11. Функционирование Voldemort cluster • Replication factor 3, quorum read: 2, write:2. R+W>N (strong consistency) • Vector clock + Custom conflict resolver • Использование проверок для уменьшения повторных обновлений • Segment locks на каждой ноде для операций модифицирующих данные • Использование soft delete (маркировка) • Нет Hinted Handoff (частично компенсируется процедурой cleanup)
  • 12. Функционирование Cleanup scheduler • Сканирование всех ключей хранимых в Tarantool • Проверка данных в Voldemort на наличие признака soft delete • Восстановление данных по read repair • Для hard delete необходимо перемаркировать с quorum write 3. В случае успешной маркировки возможно физическое удаление
  • 13. Проблемы, с которыми столкнулись • Отсутствие Hinted Handoff (реализовано в версии 0.9) • Ошибка в работе процедуры восстановления ноды кластера: - Заливались данные, которые не принадлежат данной ноде согласно hash ring - Переполнение in-memory storage + Используется собственный fix (должно быть исправлено в версии 0.9) • Особенности процедуры перебалансировки - Нельзя одновременно переносить партиции с репликами друг друга - Для равномерной балансировки требуется предварительный анализ кластерной конфигурации.
  • 14. Нагрузка на примере сервиса обмена сообщениями Отосланных сообщений ~170M в день Операций с диалогами ~30K в секунду (чтений 22K, запись 8К) Сообщения Диалоги
  • 15. Результаты внедрения распределенного хранилища для пользовательских диалогов • Отсутствие SPOF • Масштабируемость без down time • Уменьшение размеров кластера с 18 серверов до 10 (загрузка RAM на 50%) • Время старта кластера ~10 минут • Время полного восстановления ноды с реплик ~30минут • Необходимость ручной работы только в случае down time на нодах с пересечением данных • Увеличение среднего времени операций на ~80% • Наличие небольшого количества повторных изменений ~3∙10-5% (~100 в день)
  • 16. Количество операций, выполняющихся на Voldemort cluster, в 5 минут
  • 17. Количество операций, выполняющихся с пользовательскими диалогами, в 5 минут
  • 18. Среднее время выполнения операций с диалогами
  • 19. СПАСИБО! к.т.н. Роман Антипин Инженер-программист, Одноклассники.ru roman.antipin@odnoklassniki.ru