Top Banner
In Memory Data Grids Alexey Kharlamov Development Manager Grid Dynamics, 2009
21

High Load 2009 Imdg Presentation

Dec 05, 2014

Download

Documents

HighLoad2009

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: High Load 2009   Imdg Presentation

In Memory Data Grids

Alexey KharlamovDevelopment ManagerGrid Dynamics, 2009

Page 2: High Load 2009   Imdg Presentation

● Web 2.0: AJAX и стремление к высокой интерактивности● Экспоненциальный рост трафика● Закон Мура умирает

● Рост степени интеграции замедляется

● Увеличение плотности упаковки не ведет к росту производительности

• Ж елез о продолжает деш еветь

О этот новый мир

Page 3: High Load 2009   Imdg Presentation

Что же делать?● Расти вширь — использовать параллельную обработку (scale

out)● Гауссовское распределение — наш спаситель!

● Мы можем делать только 20% работы и получать 80% заработной платы

● Использовать принцип пули● Сделать работу заранее и сохранить ее в памяти

● П амять продолжает деш еветь

Page 4: High Load 2009   Imdg Presentation

Определение● Grid — а что это вообще такое?

● Машины действующие совместно для решения одной задачи

● А In-Memory Data Grid● Данные в памяти надежно хранятся● Всегда доступны и консистентны

● Network Attached Memory

Page 5: High Load 2009   Imdg Presentation

● Ассоциативный массив● Данные делятся на

разделы/партиции● Партиция реплицируются

на несколько узлов

Page 6: High Load 2009   Imdg Presentation

Динамический кластер● ПО Grid-а автоматически управляет узлами● Большое число партиций● Появление нового узла

● Перемещаем часть партиций на новый узел● Выход узла из системы

● Переводим backup-ы в master-а● Формируем backup-ы на живых узлах

● М ожем именять раз мер кластера во время работы

Page 7: High Load 2009   Imdg Presentation

Кеширование базы данных● Когда

● Есть паттерн доступа в кеш● Высокая плотность записи

● Что● Read Through/Write behind● Вытеснение и обновление

● Запрос ы не конс ис тентны с кеш ем и нагружаю т Б Д

Page 8: High Load 2009   Imdg Presentation

Все свое ношу с собой● Когда: безкомпромисный read/write; 20/80● Что

● Загружаем все данные в грид● Запросы в грид, подписываемся на

события● Сеть — узкое место

● Параллельная обработка внутри узлов грида

● Near Cache

Page 9: High Load 2009   Imdg Presentation

Когда использовать● Скорость чтения/записи критична● Запросы к данным постоянны● Ваши данные влазят в 1ТБ● Вы выжали из дисковой подсистемы все что можно● Вам нужно горизонтально масштабироваться в онлайне,

например на public cloud

Page 10: High Load 2009   Imdg Presentation

Когда использовать● НО

● Объем данных в памяти и в БД отличается в разы● Разработка и администрирование распределенной системы

это не шутка● Сеть: критическая точка

– Распределенный запросы плохо масштабируются.– Стрельба дробью — тоже.

Page 11: High Load 2009   Imdg Presentation

Дизайн данных● Самый быстрый доступ по главному ключу● Помещайте родственные данные в одну партицию

● Их можно обрабатывать совместно прямо на узле грида● Сетевой запрос будет обрабатывать только 1 узел

● Балансируйте размер объектов в кеше● Маленькие объекты — много сетевых обращений● Большие объекты — избыточный трафик

Page 12: High Load 2009   Imdg Presentation

Дизайн: Ускорение доступа● Используйте денормализацию данных

● Некоторые данные можно дублировать в нескольких местах● Подсчитайте часто используемые агрегаты заранее

● Минимизируйте обращения по сети● Используйте индексы

● IMDG предоставляет индексы для поиска по полям объектов● Создавайте свои собственные индексы

● Транз акции — КВ ИН ТЭ С С ЕН Ц ИЯ ЗЛА

Page 13: High Load 2009   Imdg Presentation

Транзакций● IMDG — распределенная система: мы должны

использовать 2PC● Уже на 8 узлах скорость падает на 2 порядка

● Существуют сценарии нарушения целостности

● В большинстве систем транзакциями можно пожертвовать

● Либо использовать цепочки идемпотентных операции

Page 14: High Load 2009   Imdg Presentation

Перевод денег: шаг 1● Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,

статус:начат)● Считать счет 1 и проверить, что order_id еще к нему не

применялся● Обновить счет 1, списав деньги и добавив order_id в список

примененных операций● Обновить статус order_id на списано

Page 15: High Load 2009   Imdg Presentation

Перевод денег: шаг 2● Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,

статус:списано)● Считать счет 2 и проверить, что order_id еще к нему не

применялся● Обновить счет 2, начислив деньги и добавив order_id в список

примененных операций● Обновить статус order_id на начисленно

Page 16: High Load 2009   Imdg Presentation

Перевод денег: завершение● Считать ордер на перевод денег (order_id, счет 1, счет 2, сумма,

статус:начисленно)● Считать счет 1 и удалить ссылку на order_id● Считать счет 2 и удалить ссылку на order_id● Обновить статус order_id на обработан● Транзакция завершена

Page 17: High Load 2009   Imdg Presentation

Oracle Coherence

Gigaspaces GemFire Hazelcast Terracotta

Координация P2P Центр. P2P P2P P2P

Запросы Фильтрация SQL ODQL Фильтрация Нет

Лицензия Commercial Com./Free Commercial Free Free

Near Cache Да Да Да Нет Да

Выполнение Да Да Да Нет Нет*

Платформа Java/C/.Net Java/C/.Net Java Java Java

Scale-out Да Нет Да Да Нет*

Page 18: High Load 2009   Imdg Presentation

Заключение● П ри помощи IM DG вы можете

● Радикально уменьшить нагрузку на БД и время отклика● Горизонтально масштабироваться во время выполнения

(например на public cloud)● Вести параллельную обработку данных на кластере● Обрабатывать данные в реальном времени● Обрабатывать тысячи транзакций в секунду

● С делать невоз можное воз можны м!

Page 19: High Load 2009   Imdg Presentation

Материалы● http://blog.griddynamics.com/ ● Сайты вендоров, особенно форумы поддержки● InfoQ: http://www.infoq.com/ ● Cameron Purdy, /dev/null blog: http://www.jroller.com/cpurdy/ ● Nati Shalom: http://natishalom.typepad.com/ ● Brian Oliver: http://brianoliver.wordpress.com/ ● http://www.highscalability.com/

Page 20: High Load 2009   Imdg Presentation

Вопросы ?

Page 21: High Load 2009   Imdg Presentation

Спасибо

Alexey KharlamovDevelopment ManagerGrid Dynamics, 2009