© 2009 Grid Dynamics Scaling Mission Critical Systems Алексей Рагозин Oracle Day, 2009
Проблема биллинговой системы Доступ к данным узкое место Пути решения Oracle TimesTen Oracle Coherence EFD Sun Oracle Exadata Storage Server Решение на базе Oracle Coherence November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 2
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 3
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 4 События, приводящие к изменению баланса абонента Оказание услуг Начисление средств Доступ к балансу Тарификация Списание Начисление Запросы от сети Запросы от CRM Проблемы Нагрузка на чтение Нагрузка на запись Транзакционность
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 5 Данные Текущий баланс Связи между счётчиками (правила) Балансы абонентов могут быть взаимосвязаны (групповые бонусы и т.п.) Требования (20 миллионов абонентов) Число объектов (счётчиков) ~ 10 9 Операций в секунду ~ 1000 Время на операцию не более 50ms Процедура списания
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 6 Оперативная памятьFlash память Высокий IOPS Время доступа < 1ms Вариант 1 Реляционную СУБД + накопители на flash памяти (EFD) Вариант 2 Интегрированное решение Sun Oracle Exadata Storage Server Хранение данных на магнитном диске Ограничение по числу операций в секунду (IOPS) Время доступа порядка 10ms
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 7
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 8 Хранение данных в памяти Распределение нагрузки Асинхронная репликация в БД Горизонтальная масштабируемость Денормализация схемы данных
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 9 Масштабирование по данным Число абонентов (миллионы) Масштабирование по серверам Число серверов Характеристики серверов тестового стенда CPU 2.5 GHz 4 ядра 2 сокета RAM 32 GB Списаний в секунду
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 10 Малое время отклика Хранение данных в оперативной памяти Эффективное сетевое взаимодействие ( точка - точка ) Coherence может встраиваться в приложение ( исключается лишний интерфейс ) Обработка данных по месту хранения снижение нагрузки на сеть Обеспечение надёжности Каждый блок данных имеет две реплики на разных серверах Очередь репликации в БД также реплицируется Раннее обнаружение выхода серверов из состава кластера с автоматическим переразмещением реплик Использование Coherence как платформы для распределённых приложений Управление распределённым исполнением Балансировка нагрузки Координация кластера Восстановление после сбоев Управление составом кластера
November 12, 2009© 2009 Grid Dynamics Scaling Mission Critical Systems 11 Алексей Рагозин Руководитель направления Oracle Coherence