Russia Development CentreDeutsche BankDeutsche BankGroup Technology & OperationsРаспределённый кэшили key-value хранилище,...
Russia Development CentreDeutsche BankПроблема выбора
Russia Development CentreDeutsche BankПроблема выбора
Russia Development CentreDeutsche BankБольшое количество альтернатив• Coherence • Hazelcast • GemFire • Infinispan • EHCac...
Russia Development CentreDeutsche BankТипичный feature set Линейная масштабируемость Распределённая хеш таблица Отказоу...
Russia Development CentreDeutsche BankKey-Value хранилище Основная задача- долго временное хранение Худшее, что может сл...
Russia Development CentreDeutsche BankРеляционная Key/Value Объектная ДокументнаяЕдиница хранения record key/value pair en...
Russia Development CentreDeutsche BankМодели данныхМодель данных распределённого кэша Наиболее близка в документ-ориентир...
Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш об...
Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш об...
Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш об...
Russia Development CentreDeutsche BankЧто если кэш используется разными приложениями?Операционная модельCaching serviceApp...
Russia Development CentreDeutsche BankSmart CacheИнфраструктура распределённого кэша – JavaДанные – POJOПрикладная логи...
Russia Development CentreDeutsche BankSmart CacheИнфраструктура распределённого кэша – JavaДанные – POJOПрикладная логи...
Russia Development CentreDeutsche BankКонцепция “временного хранилища” Кэш и БД работают независимоСхемы “кеширования”
Russia Development CentreDeutsche BankКонцепция “временного хранилища” Кэш как точка обмена трафиком междуприложениями в ...
Russia Development CentreDeutsche BankКонцепция “иерархии памяти” Кэш – фасад доступа к данным Классичекие стратегии Ск...
Russia Development CentreDeutsche BankКонсолидированноепредставлениепартицированныхисточников данныхВариации на темуApplic...
Russia Development CentreDeutsche BankОбеспечение даннымивычислительного кластераПроблемы Тысячи потребителей Синхронный...
Russia Development CentreDeutsche BankNoSQL хранилище Eventual consistency Гибридное хранение• диск + память Persistent...
Russia Development CentreDeutsche BankNoSQL хранилище Eventual consistency Гибридное хранение• диск + память Persistent...
Russia Development CentreDeutsche BankПолнотекстовый поисковый индекс в качестве кэша Эффективное индексирование для опре...
Russia Development CentreDeutsche BankА какую задачу решает кэш в вашей архитектуре? Оптимизация тяжёлых запросов Масшта...
Russia Development CentreDeutsche BankNoSQL хранилище Пропускная способность Объём Линейное масштабированиеВыбор хранил...
Russia Development CentreDeutsche BankНе думайте про кэш, как про кэшКэш, в архитектуре приложения,– это специализированны...
Russia Development CentreDeutsche BankВсе технологии имеют сильные и слабые стороны Комбинируйте сильные!Операционные мом...
Russia Development CentreDeutsche BankDeutsche BankGroup Technology & OperationsСпасибоАлексей Рагозин, Deutsche Bankalexe...
Upcoming SlideShare
Loading in …5
×

Распределённый кэш или хранилище данных. Что выбрать?

3,908 views

Published on

Слайды с JavaOne 2013 Москва

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,908
On SlideShare
0
From Embeds
0
Number of Embeds
1,478
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Распределённый кэш или хранилище данных. Что выбрать?

  1. 1. Russia Development CentreDeutsche BankDeutsche BankGroup Technology & OperationsРаспределённый кэшили key-value хранилище,что выбрать?Алексей Рагозин, Deutsche Bank
  2. 2. Russia Development CentreDeutsche BankПроблема выбора
  3. 3. Russia Development CentreDeutsche BankПроблема выбора
  4. 4. Russia Development CentreDeutsche BankБольшое количество альтернатив• Coherence • Hazelcast • GemFire • Infinispan • EHCache …Попытки стандартизации• JSR 107: JCACHE – Java Temporary Caching API• JSR 347: Data Grids for the Java™ Platform“In memory data grid” – альтернативный терминРаспределённый кэши в Java
  5. 5. Russia Development CentreDeutsche BankТипичный feature set Линейная масштабируемость Распределённая хеш таблица Отказоустойчивость (резервные копии данных) Хранение данных на дискеТребует выделенной инфраструктурыКэши и хранилища
  6. 6. Russia Development CentreDeutsche BankKey-Value хранилище Основная задача- долго временное хранение Худшее, что может случиться- потеря данных Время жизни данных- годы Операционная модель- база данныхКэши и хранилищаРаспределённый кэш Основная задача- бесперебойность сервиса Худшее, что может случиться- возврат неактуальных данных Время жизни данных- до перезапуска Операционная модель- часть приложения
  7. 7. Russia Development CentreDeutsche BankРеляционная Key/Value Объектная ДокументнаяЕдиница хранения record key/value pair entities/relations documentОтношения нет нет да нетРабота с “полями” да нет да даОсобенности 1st NR* - Обход графа -Модели данных* Данные переменной длинны (BLOB, CLOB) обычно физически не хранятся в таблице
  8. 8. Russia Development CentreDeutsche BankМодели данныхМодель данных распределённого кэша Наиболее близка в документ-ориентированной модели Единица хранения – Java объект / POJO (маленький граф) Нет связей между единицами хранения Data affinity (следствие использование DHT)
  9. 9. Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш обычно имеет выделенную инфраструктуру Кэш ориентирован на работу с даннымКоманда приложения – использует БД как сервис Логика и структура кэша ориентированная на приложение Данные в кэше имеют короткий срок жизни Кэш требует доступ к классам приложенияОперационная модель
  10. 10. Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш обычно имеет выделенную инфраструктуру Кэш ориентирован на работу с даннымКоманда приложения – использует БД как сервис Логика и структура кэша ориентированная на приложение Данные в кэше имеют короткий срок жизни Кэш требует доступ к классам приложенияОперационная модельКэш должен развиватьсякак часть приложения
  11. 11. Russia Development CentreDeutsche BankКто должен владеть кэшем?DBA команда – отвечает за долго временное хранилище Кэш обычно имеет выделенную инфраструктуру Кэш ориентирован на работу с даннымКоманда приложения – использует БД как сервис Логика и структура кэша ориентированная на приложение Данные в кэше имеют короткий срок жизни Кэш требует доступ к классам приложенияОперационная модельКэш должен развиватьсякак часть приложенияNoSQL хранилищаCassandra,OracleNoSQL,Hbase*…
  12. 12. Russia Development CentreDeutsche BankЧто если кэш используется разными приложениями?Операционная модельCaching serviceApplication A Application B
  13. 13. Russia Development CentreDeutsche BankSmart CacheИнфраструктура распределённого кэша – JavaДанные – POJOПрикладная логика JAVAМы может выполнять часть прикладной логики на инфраструктурераспределенного кэша Локальный доступ к данным, in-place обработка Map/Reduce обработка на кэше (пример – select distinct) Триггеры (пример – хранение истории обновлений)Синергия Java
  14. 14. Russia Development CentreDeutsche BankSmart CacheИнфраструктура распределённого кэша – JavaДанные – POJOПрикладная логика JAVAМы может выполнять часть прикладной логики на инфраструктурераспределенного кэша Локальный доступ к данным, in-place обработка Map/Reduce обработка на кэше (пример – select distinct) Триггеры (пример – хранение истории обновлений)Синергия Java
  15. 15. Russia Development CentreDeutsche BankКонцепция “временного хранилища” Кэш и БД работают независимоСхемы “кеширования”
  16. 16. Russia Development CentreDeutsche BankКонцепция “временного хранилища” Кэш как точка обмена трафиком междуприложениями в распределённой системе“cluster shared memory”Схемы “кеширования”Application ACacheApplication CApplication BApplication D
  17. 17. Russia Development CentreDeutsche BankКонцепция “иерархии памяти” Кэш – фасад доступа к данным Классичекие стратегии Сквозное чтение Сквозная запись Отложенная записьСхемы “кеширования”ApplicationStorageCache
  18. 18. Russia Development CentreDeutsche BankКонсолидированноепредставлениепартицированныхисточников данныхВариации на темуApplicationCacheDB A DB B DB C
  19. 19. Russia Development CentreDeutsche BankОбеспечение даннымивычислительного кластераПроблемы Тысячи потребителей Синхронный стартВариации на темуCacheDatabase
  20. 20. Russia Development CentreDeutsche BankNoSQL хранилище Eventual consistency Гибридное хранение• диск + память Persistent+ тёплый старт кэша Необходим маршалинг данных Нетподдержки “иерархии памяти”Выбор кэшаРаспределённый кэш Consistency first philosophyлучше потерять данные чемвернуть устаревшие Фокус на хранение в памяти• бесперебойность сервиса Transient• есть решения для сохранения /восстановления из снепшотов
  21. 21. Russia Development CentreDeutsche BankNoSQL хранилище Eventual consistency Гибридное хранение• диск + память Persistent+ тёплый старт кэша Необходим маршалинг данных Нетподдержки “иерархии памяти”Выбор кэшаРаспределённый кэш Consistency first philosophyлучше потерять данные чемвернуть устаревшие Фокус на хранение в памяти• бесперебойность сервиса Transient• есть решения для сохранения /восстановления из снапшотов
  22. 22. Russia Development CentreDeutsche BankПолнотекстовый поисковый индекс в качестве кэша Эффективное индексирование для определённого типа запросов Дорогое изменение данныхЭффективное узкоспециализированное решение Статические данные (не слишком динамические данные) Специфические запросы к даннымВыбор кэша
  23. 23. Russia Development CentreDeutsche BankА какую задачу решает кэш в вашей архитектуре? Оптимизация тяжёлых запросов Масштабирование по числу клиентов Масштабирование по числу запросов Уменьшение времени доступа к даннымВыбор кэша
  24. 24. Russia Development CentreDeutsche BankNoSQL хранилище Пропускная способность Объём Линейное масштабированиеВыбор хранилищаRDBMS Зрелая инфраструктура Резервное копированиеотказоустойчивость не отменяетнеобходимость резервного копирования Репликация• репликация между хранилищами• например PROD - UAT
  25. 25. Russia Development CentreDeutsche BankНе думайте про кэш, как про кэшКэш, в архитектуре приложения,– это специализированный индекс Агрессивная денормализация Дублирование данных Использование поисковых индексовОрганизация кэша
  26. 26. Russia Development CentreDeutsche BankВсе технологии имеют сильные и слабые стороны Комбинируйте сильные!Операционные моментычасто оказываются важнее технических Всегда есть самое слабое звено Поставьте себя на место инженера поддержки Опыт рождается из ошибокИтоги
  27. 27. Russia Development CentreDeutsche BankDeutsche BankGroup Technology & OperationsСпасибоАлексей Рагозин, Deutsche Bankalexey.ragozin@gmail.comhttp://blog.ragozin.info

×