SlideShare a Scribd company logo
1 of 49
Download to read offline
New Generation Data Protection
Powered by Acronis AnyData Technology
Распространенные ошибки
применения баз данных
Аверин Сергей, Acronis
©2016 2
в цифрах
5 миллионов
Более 5 млн обычных людей
доверяют компании 

хранить свои личные данные
500 000
Число корпоративных
заказчиков из разных
отраслей экономики
30 000
Обширная экосистема 

из 30 000 бизнес-партнеров, 

среди которых 300 — ОЕМ-партнеры
150 стран
Продукты компании
переведены на 18 языков,
пользуются ими 

в 150 странах мира
750 человек
750 сотрудников, 23 офиса по всему
миру, среди сотрудников 

компании более 350 инженеров
высшего класса
45 наград
Авторитетные издания не раз
признавали продукты компании
лучшими на рынке
Домашние

пользователи
Корпоративные

клиенты
Партнеры
География Сотрудники Признание
8 советов

про базы данных
1) Масштабирование
©2016 5
Масштабирование
1) С первых дней тратим кучу сил и времени на «готовность»
к highload, большому масштабированию
2) Тратим большие ресурсы без быстрой отдачи
3) Сложные вопросы не рассматриваются по причине того,
что мало опыта или проблемы еще не понятны
©2016 6
Масштабирование
Что имеем Что рассчитываем получить
©2016 7
Масштабирование
Способ масштабирования
©2016 8
Масштабирование
1) “Серебряной пули” масштабирования нет
2) Проблемы будут уникальными для вашего проекта
3) Понадобится творческое решение
4) И многое придется переделывать
©2016 9
Масштабирование
1) Для стартапа главными ценностями являются 

быстрый старт и дешевизна изменений
2) Начните с простых, быстрых 

и несложных решений «по рецепту»
3) Клиенты → опыт → понимание, какая архитектура нужна
К. О. предупреждает: истиной для 100%
случаев не является
2) Отказоустойчивость
©2016 11
Отказоустойчивость
1) При проектировании архитектуры проблемы нижних 

уровней во внимание не принимаются
2) Железо, человеческий фактор, внешние риски и т. д.
3) Взаимосвязанность сбоев
4) В рамках одного сервера на практике не бывает
©2016 12
Отказоустойчивость
Как это сделано «у больших», на примере
пользовательских данных:
Выделенные БД-серверы
▪ проверенного вендора
▪ резервирование по питанию
▪ RAID 1+0
©2016 13
Отказоустойчивость
Как это сделано «у больших», на примере
пользовательских данных:
Софт
▪ фаервол
▪ Percona Server
▪ разные права доступа
▪ chroot-окружение
©2016 14
Отказоустойчивость
Как это сделано «у больших», на примере
пользовательских данных:
Архитектура
▪ запись в транзакции, на один сервер
▪ синхронизация с другим ДЦ

через общую очередь
3) БД c запасом на вырост
©2016 16
БД c запасом на вырост
1) Выбирается БД без большого запаса фич,

которые могут понадобиться в будущем
2) Ни один стартап не становился огромным в один день
3) Узкоспециализированные БД → теряется гибкость
4) NoSQL → нет возможности делать сложные вещи 

худо-бедно, но ценой малых затрат на кодирование
4) БД – хранилище событий
©2016 18
БД — хранилище событий
Распространенные use case’ы:
▪ события, порожденные транзакциями
▪ события, которые должны надежно доставляться
▪ события, которые можно потерять
Использование БД как хранилища событий 

чаще всего оправдано только ленью
©2016 19
БД — хранилище событий
Cпециализированный движок — 

RabbitMQ, Kestrel, Scribe, Logstash и даже Redis:
▪ скорость
▪ простота
▪ фичи
▪ масштабируемость
©2016 20
БД — хранилище событий
При больших объемах советую Scribe:
✓ своя обертка с агрегацией данных, вставкой в БД
✓ меньше сетевых соединений
✓ передаем данные между ДЦ
✓ гибкие настройки
✓ при сбоях сохраняет данные локально
✓ очень быстрый
©2016 21
Старые песни

о главном
5) Поиск
©2016 23
Поиск
✓ Либо быстро, просто, плохо
✓ Либо используем бесплатный движок — 

Sphinx, Solr, Lucene/ElasticSearch
©2016 24
Поиск
99% случаев — быстро, просто, плохо:
SELECT `id`, `body` FROM `entries` 

WHERE `body` LIKE '%one%'
SELECT `id`, `body` FROM `entries`
WHERE `body` RLIKE '[[:<:]]one[[:>:]]'
www.slideshare.net/billkarwin/practical-full-text-search-with-my-sql
©2016 25
Поиск
99% случаев — быстро, просто, плохо:
Some people, when confronted with a problem, think

“I know, I’ll use regular expressions.”
Now they have two problems.
Jamie Zawinsky
©2016 26
Поиск
99% случаев — быстро, просто, плохо:
▪ потом используем MySQL FULLTEXT Index
▪ для простых решений прекрасно 

работает обратный индекс
▪ Но с полноценным поиском по тексту проблема в том,
что просто плохо ищет =)
▪ а также: мало фич, медленно, хуже масштабируется
©2016 27
Поиск
99% случаев — быстро, просто, плохо:
▪ а для каких-то задач просто неприменимо
www.percona.com/files/presentations/opensql2008_sphinx.pdf
Тест Percona:
Индекс по всем статьям Википедии.

2,5 млн записей, 15 Гб текста на одном сервере
Sphinx: 20 минут
MySQL: админ уснул через 6 часов, так и не дождавшись
©2016 28
Поиск
Используйте специализированный софт:
▪ проще в разработке
▪ быстрее
▪ больше возможностей
▪ масштабируется
▪ а главное, лучше ищет
6) Сильная consistency
©2016 30
Сильная consistency
✓ Не всегда нужна в вебе
✓ Часто сложно достижима
✓ Особенно, когда данные в один сервер не помещаются
и надо что-то придумывать
©2016 31
Сильная consistency
✓ Eventual consistency рулит
✓ Можно писать в базу выборочно или писать
агрегированные данные, не нагружая БД
✓ Денормализация может дать большой прирост
производительности
✓ Важно знать меру, и что мы теряем,

а что получаем
©2016 32
Сильная consistency
Чтобы не получилось так:
SQL DB = ‘A consistent
transactional datastore with schema
guarantees that uses relational
algebra to access normalized
tables.’
©2016 33
Сильная consistency
Чтобы не получилось так:
+ добавляем slave — репликация
+ мемкеш
+ добавляем еще slave’ов — репликация репликации
+ шардинг
+ один столбец на таблицу, храним 

в нем сериализованный объект
©2016 34
Сильная consistency
Чтобы не получилось так:
SQL DB = ‘A consistent transactional datastore
with schema guarantees that uses relational
algebra to access normalized tables.’
Много данных, кривые руки
= datastore with access to data, лучше и не скажешь
www.youtube.com/watch?v=zAbFRiyT3LU
7) Используйте хорошо
изученные инструменты
©2016 36
Используйте хорошо

✓ Неизвестность → опасность
✓ Выше скорость разработки
✓ Не поддавайтесь просто так на моду NoSQL
©2016 37
Используйте хорошо

“Психологическая” популярность NoSQL:
▪ marketing hype
▪ мало знаний в области SQL: ACID, CAP, 3 НФ, транзакции
▪ пытается сделать вид, 

что БД-специалист не нужен
©2016 38
Используйте хорошо

“Психологическая” популярность NoSQL:
Идеальная БД для программиста
▪ хранит объекты классов приложения (сериализация)
▪ работает быстро (чтобы можно было похвастаться друзьям)
▪ обо всем остальном заботится сама
©2016 39
Используйте хорошо

“Психологическая” популярность NoSQL:
Выбор БД
▪ техн. менеджмент спускает вопрос “на тормозах”, 

хотя это его задача
▪ БД выбирает тот самый программист
▪ Выбираете NoSQL — понимайте, почему вы это делаете
К. О. предупреждает: так бывает далеко не всегда
©2016 40
Используйте хорошо

NoSQL:
– запись в один поток
– memory-mapped files, IO scheduling не для БД
– один индекс на запрос
– не очень гибкий шардинг
– производительность тюнится только на уровне ОС
– нет атомарности на уровне одного запроса
– иногда скудный мониторинг, статистика
©2016 41
Используйте хорошо

NoSQL:
− зачастую приходится писать кучу довольно 

скучного кода на уровне приложения
+ чаще всего быстрее SQL-баз
+ проще развертывать, особенно шардинг
+ нет схемы, ALTER TABLE забыто, как страшный сон
©2016 42
Используйте хорошо

SQL:
− медленнее
− сложнее
(−) много каверзных настроек
− в редких случаях непредсказуемо работает
(−) позволяет писать медленные/плохие запросы
©2016 43
Используйте хорошо

SQL:
+ более популярно, язык у всех на 80% совпадает
+ хорошо изучено, стабильно
+ оптимизировано хранение данных
+ куча рычагов оптимизации
+ constraint'ы, триггеры, хранимые процедуры
+ ACID
+ B-Tree, R-Tree, GIN, GIST, hash-индексы
©2016 44
Используйте хорошо

SQL:
(+) Join'ы, которые зло, но иногда выручают
+ очень навороченный оптимизатор запросов
+ параллельное исполнение (под)запросов
+ многоуровневое кеширование
+ статистика, мониторинг
+ можно писать сложные запросы,

не перенося логику в код приложения
8) Как не завалить SQL БД
©2016 46
Как не завалить SQL БД
▪ Не использовать JOIN’ы
▪ Не делать таблицы > 10 000 000 записей
▪ Не делать кучу индексов
▪ Не делать часто исполняемых сложных запросов
▪ Кешировать редко меняющиеся данные
▪ Не использовать БД как хранилище файлов
▪ Не использовать хранимые процедуры
©2016 47
EVERYBODY LIES
Выводов нет, думайте
своей головой!
©2016 48
Вопросы?
Аверин Сергей

twitter.com/ryba_xek

s@averin.ru

averin.ru/slides/
facebook.com/ryba.xek
acronis.com
blog.acronis.com
twitter.com/acronis
facebook.com/acronis
New Generation Data Protection
Powered by Acronis AnyData Technology

More Related Content

What's hot

Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Ontico
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)Ontico
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Николай Лавлинский
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Ontico
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
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
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахOntico
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...Anastasia Rostova
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Ontico
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Ontico
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Ontico
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Andrew Avdeev
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Ontico
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)Ontico
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
 

What's hot (20)

Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
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...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 

Viewers also liked

Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...Tanya Denisyuk
 
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"Tanya Denisyuk
 
Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»Tanya Denisyuk
 
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...Tanya Denisyuk
 
Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "Tanya Denisyuk
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Tanya Denisyuk
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Tanya Denisyuk
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Tanya Denisyuk
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Tanya Denisyuk
 
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"Tanya Denisyuk
 
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Tanya Denisyuk
 
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Tanya Denisyuk
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Tanya Denisyuk
 
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...Tanya Denisyuk
 
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»Tanya Denisyuk
 

Viewers also liked (15)

Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
Артем Гавриченков "The Dark Side of Things: Distributed Denial of Service Att...
 
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
 
Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»Алексей Залесов-«Управление контейнерами в облаках»
Алексей Залесов-«Управление контейнерами в облаках»
 
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
Александр Краковецкий "Разработка интеллектуальных ботов с помощью Microsoft ...
 
Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "Алексей Лесовский "Тюнинг Linux для баз данных. "
Алексей Лесовский "Тюнинг Linux для баз данных. "
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
 
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
 
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»
 
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
 
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
Левон Авакян-«Эволюция кланов в Wargaming. От веб страницы на танковом портал...
 
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
 

Similar to Сергей Аверин "Распространенные ошибки применения баз данных"

Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Badoo Development
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаЭкосистемные Проекты Фрии
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceEYevseyeva
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusVladd Ev
 
CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.Clouds NN
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusOntico
 
Checklistfinal perconaconf
Checklistfinal perconaconfChecklistfinal perconaconf
Checklistfinal perconaconfDeveloperua
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Yandex
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.Serguei Gitinsky
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 

Similar to Сергей Аверин "Распространенные ошибки применения баз данных" (20)

Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 Rus
 
Checklistfinal perconaconf
Checklistfinal perconaconfChecklistfinal perconaconf
Checklistfinal perconaconf
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 

More from Tanya Denisyuk

Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...Tanya Denisyuk
 
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...Tanya Denisyuk
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Tanya Denisyuk
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk
 
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»Tanya Denisyuk
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахTanya Denisyuk
 
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWSДенис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWSTanya Denisyuk
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеTanya Denisyuk
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQTanya Denisyuk
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineTanya Denisyuk
 

More from Tanya Denisyuk (13)

Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
Павел Вейник-«Программирование и лингвистика: как понять язык и как извлечь з...
 
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
Михаил Серченя-«Построение отказоустойчивой масштабируемой среды для WEB и бе...
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
 
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
Дмитрий Дурасов-«Технологии контейнеризации в Windows Server 2016»
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
 
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWSДенис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
Денис Баталов, Принципы построения высоконагруженных сайтов на платформе АWS
 
Кирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практикеКирилл Алешин, Ламбда Архитектура на практике
Кирилл Алешин, Ламбда Архитектура на практике
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
 

Сергей Аверин "Распространенные ошибки применения баз данных"

  • 1. New Generation Data Protection Powered by Acronis AnyData Technology Распространенные ошибки применения баз данных Аверин Сергей, Acronis
  • 2. ©2016 2 в цифрах 5 миллионов Более 5 млн обычных людей доверяют компании 
 хранить свои личные данные 500 000 Число корпоративных заказчиков из разных отраслей экономики 30 000 Обширная экосистема 
 из 30 000 бизнес-партнеров, 
 среди которых 300 — ОЕМ-партнеры 150 стран Продукты компании переведены на 18 языков, пользуются ими 
 в 150 странах мира 750 человек 750 сотрудников, 23 офиса по всему миру, среди сотрудников 
 компании более 350 инженеров высшего класса 45 наград Авторитетные издания не раз признавали продукты компании лучшими на рынке Домашние
 пользователи Корпоративные
 клиенты Партнеры География Сотрудники Признание
  • 5. ©2016 5 Масштабирование 1) С первых дней тратим кучу сил и времени на «готовность» к highload, большому масштабированию 2) Тратим большие ресурсы без быстрой отдачи 3) Сложные вопросы не рассматриваются по причине того, что мало опыта или проблемы еще не понятны
  • 6. ©2016 6 Масштабирование Что имеем Что рассчитываем получить
  • 8. ©2016 8 Масштабирование 1) “Серебряной пули” масштабирования нет 2) Проблемы будут уникальными для вашего проекта 3) Понадобится творческое решение 4) И многое придется переделывать
  • 9. ©2016 9 Масштабирование 1) Для стартапа главными ценностями являются 
 быстрый старт и дешевизна изменений 2) Начните с простых, быстрых 
 и несложных решений «по рецепту» 3) Клиенты → опыт → понимание, какая архитектура нужна К. О. предупреждает: истиной для 100% случаев не является
  • 11. ©2016 11 Отказоустойчивость 1) При проектировании архитектуры проблемы нижних 
 уровней во внимание не принимаются 2) Железо, человеческий фактор, внешние риски и т. д. 3) Взаимосвязанность сбоев 4) В рамках одного сервера на практике не бывает
  • 12. ©2016 12 Отказоустойчивость Как это сделано «у больших», на примере пользовательских данных: Выделенные БД-серверы ▪ проверенного вендора ▪ резервирование по питанию ▪ RAID 1+0
  • 13. ©2016 13 Отказоустойчивость Как это сделано «у больших», на примере пользовательских данных: Софт ▪ фаервол ▪ Percona Server ▪ разные права доступа ▪ chroot-окружение
  • 14. ©2016 14 Отказоустойчивость Как это сделано «у больших», на примере пользовательских данных: Архитектура ▪ запись в транзакции, на один сервер ▪ синхронизация с другим ДЦ
 через общую очередь
  • 15. 3) БД c запасом на вырост
  • 16. ©2016 16 БД c запасом на вырост 1) Выбирается БД без большого запаса фич,
 которые могут понадобиться в будущем 2) Ни один стартап не становился огромным в один день 3) Узкоспециализированные БД → теряется гибкость 4) NoSQL → нет возможности делать сложные вещи 
 худо-бедно, но ценой малых затрат на кодирование
  • 17. 4) БД – хранилище событий
  • 18. ©2016 18 БД — хранилище событий Распространенные use case’ы: ▪ события, порожденные транзакциями ▪ события, которые должны надежно доставляться ▪ события, которые можно потерять Использование БД как хранилища событий 
 чаще всего оправдано только ленью
  • 19. ©2016 19 БД — хранилище событий Cпециализированный движок — 
 RabbitMQ, Kestrel, Scribe, Logstash и даже Redis: ▪ скорость ▪ простота ▪ фичи ▪ масштабируемость
  • 20. ©2016 20 БД — хранилище событий При больших объемах советую Scribe: ✓ своя обертка с агрегацией данных, вставкой в БД ✓ меньше сетевых соединений ✓ передаем данные между ДЦ ✓ гибкие настройки ✓ при сбоях сохраняет данные локально ✓ очень быстрый
  • 23. ©2016 23 Поиск ✓ Либо быстро, просто, плохо ✓ Либо используем бесплатный движок — 
 Sphinx, Solr, Lucene/ElasticSearch
  • 24. ©2016 24 Поиск 99% случаев — быстро, просто, плохо: SELECT `id`, `body` FROM `entries` 
 WHERE `body` LIKE '%one%' SELECT `id`, `body` FROM `entries` WHERE `body` RLIKE '[[:<:]]one[[:>:]]' www.slideshare.net/billkarwin/practical-full-text-search-with-my-sql
  • 25. ©2016 25 Поиск 99% случаев — быстро, просто, плохо: Some people, when confronted with a problem, think
 “I know, I’ll use regular expressions.” Now they have two problems. Jamie Zawinsky
  • 26. ©2016 26 Поиск 99% случаев — быстро, просто, плохо: ▪ потом используем MySQL FULLTEXT Index ▪ для простых решений прекрасно 
 работает обратный индекс ▪ Но с полноценным поиском по тексту проблема в том, что просто плохо ищет =) ▪ а также: мало фич, медленно, хуже масштабируется
  • 27. ©2016 27 Поиск 99% случаев — быстро, просто, плохо: ▪ а для каких-то задач просто неприменимо www.percona.com/files/presentations/opensql2008_sphinx.pdf Тест Percona: Индекс по всем статьям Википедии.
 2,5 млн записей, 15 Гб текста на одном сервере Sphinx: 20 минут MySQL: админ уснул через 6 часов, так и не дождавшись
  • 28. ©2016 28 Поиск Используйте специализированный софт: ▪ проще в разработке ▪ быстрее ▪ больше возможностей ▪ масштабируется ▪ а главное, лучше ищет
  • 30. ©2016 30 Сильная consistency ✓ Не всегда нужна в вебе ✓ Часто сложно достижима ✓ Особенно, когда данные в один сервер не помещаются и надо что-то придумывать
  • 31. ©2016 31 Сильная consistency ✓ Eventual consistency рулит ✓ Можно писать в базу выборочно или писать агрегированные данные, не нагружая БД ✓ Денормализация может дать большой прирост производительности ✓ Важно знать меру, и что мы теряем,
 а что получаем
  • 32. ©2016 32 Сильная consistency Чтобы не получилось так: SQL DB = ‘A consistent transactional datastore with schema guarantees that uses relational algebra to access normalized tables.’
  • 33. ©2016 33 Сильная consistency Чтобы не получилось так: + добавляем slave — репликация + мемкеш + добавляем еще slave’ов — репликация репликации + шардинг + один столбец на таблицу, храним 
 в нем сериализованный объект
  • 34. ©2016 34 Сильная consistency Чтобы не получилось так: SQL DB = ‘A consistent transactional datastore with schema guarantees that uses relational algebra to access normalized tables.’ Много данных, кривые руки = datastore with access to data, лучше и не скажешь www.youtube.com/watch?v=zAbFRiyT3LU
  • 36. ©2016 36 Используйте хорошо
 ✓ Неизвестность → опасность ✓ Выше скорость разработки ✓ Не поддавайтесь просто так на моду NoSQL
  • 37. ©2016 37 Используйте хорошо
 “Психологическая” популярность NoSQL: ▪ marketing hype ▪ мало знаний в области SQL: ACID, CAP, 3 НФ, транзакции ▪ пытается сделать вид, 
 что БД-специалист не нужен
  • 38. ©2016 38 Используйте хорошо
 “Психологическая” популярность NoSQL: Идеальная БД для программиста ▪ хранит объекты классов приложения (сериализация) ▪ работает быстро (чтобы можно было похвастаться друзьям) ▪ обо всем остальном заботится сама
  • 39. ©2016 39 Используйте хорошо
 “Психологическая” популярность NoSQL: Выбор БД ▪ техн. менеджмент спускает вопрос “на тормозах”, 
 хотя это его задача ▪ БД выбирает тот самый программист ▪ Выбираете NoSQL — понимайте, почему вы это делаете К. О. предупреждает: так бывает далеко не всегда
  • 40. ©2016 40 Используйте хорошо
 NoSQL: – запись в один поток – memory-mapped files, IO scheduling не для БД – один индекс на запрос – не очень гибкий шардинг – производительность тюнится только на уровне ОС – нет атомарности на уровне одного запроса – иногда скудный мониторинг, статистика
  • 41. ©2016 41 Используйте хорошо
 NoSQL: − зачастую приходится писать кучу довольно 
 скучного кода на уровне приложения + чаще всего быстрее SQL-баз + проще развертывать, особенно шардинг + нет схемы, ALTER TABLE забыто, как страшный сон
  • 42. ©2016 42 Используйте хорошо
 SQL: − медленнее − сложнее (−) много каверзных настроек − в редких случаях непредсказуемо работает (−) позволяет писать медленные/плохие запросы
  • 43. ©2016 43 Используйте хорошо
 SQL: + более популярно, язык у всех на 80% совпадает + хорошо изучено, стабильно + оптимизировано хранение данных + куча рычагов оптимизации + constraint'ы, триггеры, хранимые процедуры + ACID + B-Tree, R-Tree, GIN, GIST, hash-индексы
  • 44. ©2016 44 Используйте хорошо
 SQL: (+) Join'ы, которые зло, но иногда выручают + очень навороченный оптимизатор запросов + параллельное исполнение (под)запросов + многоуровневое кеширование + статистика, мониторинг + можно писать сложные запросы,
 не перенося логику в код приложения
  • 45. 8) Как не завалить SQL БД
  • 46. ©2016 46 Как не завалить SQL БД ▪ Не использовать JOIN’ы ▪ Не делать таблицы > 10 000 000 записей ▪ Не делать кучу индексов ▪ Не делать часто исполняемых сложных запросов ▪ Кешировать редко меняющиеся данные ▪ Не использовать БД как хранилище файлов ▪ Не использовать хранимые процедуры
  • 47. ©2016 47 EVERYBODY LIES Выводов нет, думайте своей головой!