SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Распределённые кэши,
блеск и нищета
Алексей Рагозин
jug.ru
Июнь 2014
Проблема выбора
Базворды
• Key value
• Distributed Hash Table
• In-memory
• Horizontal scalability
• Redundant storage
3 tier architecture
Data tier
Business logic tier
Presentation tier
Cache
Storage
Хранилище
Основная задача
‐ долговременноехранение
Худшее,чтоможетслучиться
‐ потеряданных
Время жизни данных
‐ годы
Операционная модель
‐ “база данных”
Распределённый кэш
Основная задача
‐ высокая доступность сервиса
‐ малоевремядоступакданным
Худшее,чтоможетслучиться
‐ возврат неактуальных данных
Время жизни данных
‐ до перезапуска
Операционная модель
‐ “модуль приложения”
Кэши и хранилища
Распределённость кэша
Ёмкость
до единиц TiB
Времядоступа
сетевые задержки + 0.5 ms
Request per Second
линейная масштабируемость
по серверам и по ядрам
Когерентность данных
Проблема гидрации
java.util.HashMap
 100GiB – легко
 1M RPS – легко
Хранение данных
в памяти одного
процесса зачастую
на порядок
эффективнее
распределенного
Может быть полезно, иногда
Killer feature !!!
Кэш и бизнес логика
Кэш API должен органично стыковаться с
языком бизнес логики
 Один язык
 “Толстая” библиотека
 Rich API
 Client side features: L1 caching, etc
 Хранение Java объектов
 Yet another serialization for Java
Кэш и сквозное чтение
 Сквозное чтение – read through
 Сквозная запись – write through
 Отложенная запись – write behind
PRO: Кэш–логическийинтерфейскхранилищу
CON: Нюансы интеграции
Cluster shared memory
Решение проблемы “shared state” для
“share nothing” кластеров
 Быстрый доступ (In-memory)
 Когерентность данных
 “Атомарные” операции
Redis
Пример “shared state” сервиса для PHP
и других типичных web технологий
Уроки, которые я выучил при работе с Oracle
Coherence и другими распределёнными
хранилищами.
Под грифом IMHO
Распределённость …
Технологии для диссертаций
 Paxos
 Consistent hashing
Технологии для enterprise решений
 Партицирование
 Ведущий – ведомый (протокол консенсуса нужен
только для выбора ведущего)
Key / Value модель
Key / Value модель требует денормализации!
 Минимизация числа запросов
 Проблемы с referral integrity между
таблицами
 Проблемы атомарности изменений
Кэш – это индекс
Кэш — вспомогательная структура данных,
позволяющая сократить время выполнения
запросов к хранилищу данных.
Модель данных кэша должна выбираться
исходя из запросов, время выполнения
которых вы хотите сократить!
Распределённые очереди
Неделайтеизкэша распределённуюочередь
Неделайте!
Не делайте!
Есливамнужнаочередь,возьмитеочередь
Опыт работы с Coherence
Решения делятся на те, которые
Просто работают
 web sessions, мало нагруженные кэши, …
Просто работают, при правильном дизайне
 all in-memory, proactive caching
Постоянно доставляют проблемы
 Тесная интеграция с БД, “распределённая” бизнес
логика
Coherence + DB = …
Распределённый кэш
 Быстрые операции
 Высокая конкурентной
 Наивная потоковая модель
 java.util.Map контракт
База данных
 Широкий разбросc времён выполнения операций
 Вариативная производительность
 JDBC
Coherence + DB = …
Problem
Learn
Tune
Something
changes
Cache and
database
disharmonized
All in-memory, proactive caching
Данные грузятся в кэш заранее
 Источник данных исчезает с критического пути
 Проблема загрузки данных
 Проблема частичного восстановления данных
 Проблема синхронизации данных с источником
 Не панацея
 In-memory не значит супер быстро
 Есть запросы, которые могут убить кэш
Другие антипаттерны
Распределённыйкэш–невычислительныйгрид
 Архитектура потоков не рассчитана на тяжёлые
вычисления
Злоупотребления размером данных
 Key и Value должны быть разумного размера
 Батчи должены быть разумного размера
IO операции в потоке обработки данных
 Например обращение к соседнему
распределённому кэшу
Учите мат. часть
Какой MTU настроен в вашей OS?
Какой MTU настроен в вашем свитче?
Мониторителивыошибкисетевыхинтерфейсов?
Какой у вас JDBC пул?
Используете ли вы отдельный read-only пул?
Используется ли у вас FIFO очередь JDBC пуле?
Распределённые кэши,
перспективы и спекуляции
Под грифом IMHO
Попытки стандартизации
• JSR 107: JCACHE – Java Temporary Caching API
• JSR 347: Data Grids for the Java™ Platform
Нужно ли это?
В облаках побеждает железо
На плохо настроенном железе,
любой софт работает плохо
Вертикально интегрированная аппаратно
программная платформа, позволяет
 обеспечить производительность
 дифференцировать продукт от конкурентов
Cache is a feature
Кэш – галочка сервера приложений
 Часть business logic tier
 Насаждение правильных паттернов
Спекуляции о будущем
 Развитие Open source – Hazelcast и прочие
 Уменьшение хайфа
 Вытеснение кэшей из областей лежащих за
пределамиуровнябизнеслогикиNoSQLрешениями
 Новые стандарты серверов приложений?
Thank you
Alexey Ragozin
alexey.ragozin@gmail.com
http://blog.ragozin.info
- my articles
http://code.google.com/p/gridkit
http://github.com/gridkit
- my open source code
http://aragozin.timepad.ru
- community events in Moscow

Contenu connexe

Tendances

Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Ontico
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
Technopark
 
Кирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практикеКирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практике
IT Share
 

Tendances (20)

Highload: проблемы и решения
Highload: проблемы и решенияHighload: проблемы и решения
Highload: проблемы и решения
 
Александр Шуйсков (NAUMEN): перспективы развития Database as a Service
Александр Шуйсков (NAUMEN): перспективы развития Database as a ServiceАлександр Шуйсков (NAUMEN): перспективы развития Database as a Service
Александр Шуйсков (NAUMEN): перспективы развития Database as a Service
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практике
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
 
Кирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практикеКирилл Алешин - Big Data и Lambda архитектура на практике
Кирилл Алешин - Big Data и Lambda архитектура на практике
 
Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Борьба с GС паузами в JVM
Борьба с GС паузами в JVMБорьба с GС паузами в JVM
Борьба с GС паузами в JVM
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
NoSQL - взрыв возможностей
NoSQL - взрыв возможностейNoSQL - взрыв возможностей
NoSQL - взрыв возможностей
 
Daa sforit+infrastructure rbs_case
Daa sforit+infrastructure rbs_caseDaa sforit+infrastructure rbs_case
Daa sforit+infrastructure rbs_case
 
2016 06 VMEx - intro (russian)
2016 06 VMEx - intro (russian)2016 06 VMEx - intro (russian)
2016 06 VMEx - intro (russian)
 
MONT Решения Micro Focus для резервного копирования
MONT Решения Micro Focus для резервного копированияMONT Решения Micro Focus для резервного копирования
MONT Решения Micro Focus для резервного копирования
 
Дедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОДДедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОД
 

Similaire à Блеск и нищета распределённых кэшей

Rybak Big Projects New
Rybak Big Projects NewRybak Big Projects New
Rybak Big Projects New
Ontico
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
Andrey Akulov
 
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
Andrey Korshikov
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
Media Gorod
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 

Similaire à Блеск и нищета распределённых кэшей (20)

11 - Hadoop. NoSQL
11 - Hadoop. NoSQL11 - Hadoop. NoSQL
11 - Hadoop. NoSQL
 
Nrdbms
NrdbmsNrdbms
Nrdbms
 
Rybak Big Projects New
Rybak Big Projects NewRybak Big Projects New
Rybak Big Projects New
 
Практика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему HadoopПрактика миграции реляционных баз данных в экосистему Hadoop
Практика миграции реляционных баз данных в экосистему Hadoop
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
 
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
SQL Server Analysis Services 2014: табличная модель - альтернатива кубам?
 
Software craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисыSoftware craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисы
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
 
UFADevCom'13#1 Шерыхалин Олег
UFADevCom'13#1 Шерыхалин ОлегUFADevCom'13#1 Шерыхалин Олег
UFADevCom'13#1 Шерыхалин Олег
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
Спасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного ХецнераСпасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного Хецнера
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 

Plus de aragozin

Nanocloud cloud scale jvm
Nanocloud   cloud scale jvmNanocloud   cloud scale jvm
Nanocloud cloud scale jvm
aragozin
 

Plus de aragozin (20)

Java on Linux for devs and ops
Java on Linux for devs and opsJava on Linux for devs and ops
Java on Linux for devs and ops
 
I know why your Java is slow
I know why your Java is slowI know why your Java is slow
I know why your Java is slow
 
Java profiling Do It Yourself (jug.msk.ru 2016)
Java profiling Do It Yourself (jug.msk.ru 2016)Java profiling Do It Yourself (jug.msk.ru 2016)
Java profiling Do It Yourself (jug.msk.ru 2016)
 
Java black box profiling JUG.EKB 2016
Java black box profiling JUG.EKB 2016Java black box profiling JUG.EKB 2016
Java black box profiling JUG.EKB 2016
 
Распределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на JavaРаспределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на Java
 
What every Java developer should know about network?
What every Java developer should know about network?What every Java developer should know about network?
What every Java developer should know about network?
 
Java profiling Do It Yourself
Java profiling Do It YourselfJava profiling Do It Yourself
Java profiling Do It Yourself
 
DIY Java Profiler
DIY Java ProfilerDIY Java Profiler
DIY Java Profiler
 
Java black box profiling
Java black box profilingJava black box profiling
Java black box profiling
 
JIT compilation in modern platforms – challenges and solutions
JIT compilation in modern platforms – challenges and solutionsJIT compilation in modern platforms – challenges and solutions
JIT compilation in modern platforms – challenges and solutions
 
Casual mass parallel computing
Casual mass parallel computingCasual mass parallel computing
Casual mass parallel computing
 
Nanocloud cloud scale jvm
Nanocloud   cloud scale jvmNanocloud   cloud scale jvm
Nanocloud cloud scale jvm
 
Java GC tuning and monitoring (by Alexander Ashitkin)
Java GC tuning and monitoring (by Alexander Ashitkin)Java GC tuning and monitoring (by Alexander Ashitkin)
Java GC tuning and monitoring (by Alexander Ashitkin)
 
Garbage collection in JVM
Garbage collection in JVMGarbage collection in JVM
Garbage collection in JVM
 
Virtualizing Java in Java (jug.ru)
Virtualizing Java in Java (jug.ru)Virtualizing Java in Java (jug.ru)
Virtualizing Java in Java (jug.ru)
 
Filtering 100M objects in Coherence cache. What can go wrong?
Filtering 100M objects in Coherence cache. What can go wrong?Filtering 100M objects in Coherence cache. What can go wrong?
Filtering 100M objects in Coherence cache. What can go wrong?
 
Cборка мусора в Java без пауз (HighLoad++ 2013)
Cборка мусора в Java без пауз  (HighLoad++ 2013)Cборка мусора в Java без пауз  (HighLoad++ 2013)
Cборка мусора в Java без пауз (HighLoad++ 2013)
 
JIT-компиляция в виртуальной машине Java (HighLoad++ 2013)
JIT-компиляция в виртуальной машине Java (HighLoad++ 2013)JIT-компиляция в виртуальной машине Java (HighLoad++ 2013)
JIT-компиляция в виртуальной машине Java (HighLoad++ 2013)
 
Performance Test Driven Development (CEE SERC 2013 Moscow)
Performance Test Driven Development (CEE SERC 2013 Moscow)Performance Test Driven Development (CEE SERC 2013 Moscow)
Performance Test Driven Development (CEE SERC 2013 Moscow)
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 

Dernier

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 

Dernier (9)

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 

Блеск и нищета распределённых кэшей

  • 1. Распределённые кэши, блеск и нищета Алексей Рагозин jug.ru Июнь 2014
  • 3. Базворды • Key value • Distributed Hash Table • In-memory • Horizontal scalability • Redundant storage
  • 4. 3 tier architecture Data tier Business logic tier Presentation tier Cache Storage
  • 5. Хранилище Основная задача ‐ долговременноехранение Худшее,чтоможетслучиться ‐ потеряданных Время жизни данных ‐ годы Операционная модель ‐ “база данных” Распределённый кэш Основная задача ‐ высокая доступность сервиса ‐ малоевремядоступакданным Худшее,чтоможетслучиться ‐ возврат неактуальных данных Время жизни данных ‐ до перезапуска Операционная модель ‐ “модуль приложения” Кэши и хранилища
  • 6. Распределённость кэша Ёмкость до единиц TiB Времядоступа сетевые задержки + 0.5 ms Request per Second линейная масштабируемость по серверам и по ядрам Когерентность данных Проблема гидрации java.util.HashMap  100GiB – легко  1M RPS – легко Хранение данных в памяти одного процесса зачастую на порядок эффективнее распределенного Может быть полезно, иногда Killer feature !!!
  • 7. Кэш и бизнес логика Кэш API должен органично стыковаться с языком бизнес логики  Один язык  “Толстая” библиотека  Rich API  Client side features: L1 caching, etc  Хранение Java объектов  Yet another serialization for Java
  • 8. Кэш и сквозное чтение  Сквозное чтение – read through  Сквозная запись – write through  Отложенная запись – write behind PRO: Кэш–логическийинтерфейскхранилищу CON: Нюансы интеграции
  • 9. Cluster shared memory Решение проблемы “shared state” для “share nothing” кластеров  Быстрый доступ (In-memory)  Когерентность данных  “Атомарные” операции Redis Пример “shared state” сервиса для PHP и других типичных web технологий
  • 10. Уроки, которые я выучил при работе с Oracle Coherence и другими распределёнными хранилищами. Под грифом IMHO
  • 11. Распределённость … Технологии для диссертаций  Paxos  Consistent hashing Технологии для enterprise решений  Партицирование  Ведущий – ведомый (протокол консенсуса нужен только для выбора ведущего)
  • 12. Key / Value модель Key / Value модель требует денормализации!  Минимизация числа запросов  Проблемы с referral integrity между таблицами  Проблемы атомарности изменений
  • 13. Кэш – это индекс Кэш — вспомогательная структура данных, позволяющая сократить время выполнения запросов к хранилищу данных. Модель данных кэша должна выбираться исходя из запросов, время выполнения которых вы хотите сократить!
  • 15. Опыт работы с Coherence Решения делятся на те, которые Просто работают  web sessions, мало нагруженные кэши, … Просто работают, при правильном дизайне  all in-memory, proactive caching Постоянно доставляют проблемы  Тесная интеграция с БД, “распределённая” бизнес логика
  • 16. Coherence + DB = … Распределённый кэш  Быстрые операции  Высокая конкурентной  Наивная потоковая модель  java.util.Map контракт База данных  Широкий разбросc времён выполнения операций  Вариативная производительность  JDBC
  • 17. Coherence + DB = … Problem Learn Tune Something changes Cache and database disharmonized
  • 18. All in-memory, proactive caching Данные грузятся в кэш заранее  Источник данных исчезает с критического пути  Проблема загрузки данных  Проблема частичного восстановления данных  Проблема синхронизации данных с источником  Не панацея  In-memory не значит супер быстро  Есть запросы, которые могут убить кэш
  • 19. Другие антипаттерны Распределённыйкэш–невычислительныйгрид  Архитектура потоков не рассчитана на тяжёлые вычисления Злоупотребления размером данных  Key и Value должны быть разумного размера  Батчи должены быть разумного размера IO операции в потоке обработки данных  Например обращение к соседнему распределённому кэшу
  • 20. Учите мат. часть Какой MTU настроен в вашей OS? Какой MTU настроен в вашем свитче? Мониторителивыошибкисетевыхинтерфейсов? Какой у вас JDBC пул? Используете ли вы отдельный read-only пул? Используется ли у вас FIFO очередь JDBC пуле?
  • 21. Распределённые кэши, перспективы и спекуляции Под грифом IMHO
  • 22. Попытки стандартизации • JSR 107: JCACHE – Java Temporary Caching API • JSR 347: Data Grids for the Java™ Platform Нужно ли это?
  • 23. В облаках побеждает железо На плохо настроенном железе, любой софт работает плохо Вертикально интегрированная аппаратно программная платформа, позволяет  обеспечить производительность  дифференцировать продукт от конкурентов
  • 24. Cache is a feature Кэш – галочка сервера приложений  Часть business logic tier  Насаждение правильных паттернов
  • 25. Спекуляции о будущем  Развитие Open source – Hazelcast и прочие  Уменьшение хайфа  Вытеснение кэшей из областей лежащих за пределамиуровнябизнеслогикиNoSQLрешениями  Новые стандарты серверов приложений?
  • 26. Thank you Alexey Ragozin alexey.ragozin@gmail.com http://blog.ragozin.info - my articles http://code.google.com/p/gridkit http://github.com/gridkit - my open source code http://aragozin.timepad.ru - community events in Moscow