SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
Ангелы	и	демоны	
многопоточного	программирования
Алексей	Федоров,	
Одноклассники
Зачем	вы	здесь?
3
Concurrency
4
Concurrency
5
Чего не будет в презентации
• Определений	из	учебника
- Больше	интересует	сама	концепция
• Сравнения	производительности
• Советов,	как	правильно	писать	код
• Холиваров*
• Серебряных	пуль,	волшебных	фреймворков и	т.п.
*	Нет,	ну	если	кто-то	очень	захочет,	то	можно,	конечно…
6
А что будет-то?
• Пара	простых	многопоточных	примеров
• Куча	связанных	с	ними	проблем
• Варианты	решений
- Которые,	разумеется,	не	работают
- Ну	некоторые	работают
- Иногда
- Наверное…
7
Пререквизиты
Нужно	примерно понимать,	что	такое
• процесс
• поток / нить
• синхронизация
• блокировка
• volatile
Пример.	Банковские	аккаунты
9
10
public void transfer (
Account from, Account to, int amount) {
if (from.get() < amount) {
throw new RuntimeException();
} else {
from.set(from.get() - amount);
to.set(to.get() + amount);
}
}
11
public void transfer (
Account from, Account to, int amount) {
if (from.get() < amount) {
throw new RuntimeException();
} else {
from.set(from.get() - amount);
to.set(to.get() + amount);
}
}
Какие	тут	есть	проблемы	в	многопоточной	среде?
12
Кто такой lock
• lock.lock
- Вход	в	критическую	секцию
- свободно	— взять
- занято	— ждать,	пока	освободится
• lock.unlock
- Выход	из	критической	секции
- освободить
13
public void transfer (
Account from, Account to, int amount) {
lock(bank);
if (from.get() < amount) {
throw new RuntimeException();
} else {
from.set(from.get() - amount);
to.set(to.get() + amount);
}
unlock(bank);
}
14
public void transfer (
Account from, Account to, int amount) {
lock(bank);
if (from.get() < amount) {
throw new RuntimeException();
} else {
from.set(from.get() - amount);
to.set(to.get() + amount);
}
unlock(bank);
}
А	тут	в	чем	проблема?
15
public void transfer (
Account from, Account to, int amount) {
lock(from); lock(to);
if (from.get() < amount) {
throw new RuntimeException();
} else {
from.set(from.get() - amount);
to.set(to.get() + amount);
}
unlock(to); unlock(from);
}
А	тут	в	чем	проблема?
Проблема	обедающих	философов
Dijkstra,	1965
Hoare,	1985
Что	это?
17
• 5	философов	по	кругу
– Тарелка	с	едой	перед	каждым
– Вилки	между	тарелками
• Каждый	может
– Размышлять
– Брать	соседнюю	вилку
– Есть	(строго	двумя	вилками!)
– Класть	одну	вилку
Задача о философах
18
Проблемы с обедающими философами
Пусть	каждый	философ	действует	по	
некоторому	алгоритму
• Могут	ли	все	философы	умереть	с	голоду?
• Можно	ли	составить	такой	алгоритм,	
чтобы	все	философы	гарантированно не	
умерли	с	голоду?
19
Параметры задачи
• Количество	философов
• Есть	ли	возможность	положить	вилку,	не	пожрамши
• Сколько	времени	философ	ест
- Фиксированное	или	случайная	величина
• Сколько	времени	философ	размышляет
• Какие	ещё	инструменты/элементы	есть	в	системе?
• Что	ещё?
20
Простое решение
• Когда	философ	хочет	есть,	он	делает	следующие	шаги:
1. Берёт	левую	от	себя	вилку
2. Берёт	правую	от	себя	вилку
3. Ест
4. Кладёт	одну	вилку
5. Кладёт	другую	вилку
6. Размышляет
• И	так	по	кругу
21
Философы в коде
while (true) {
take(leftFork);
take(rightFork);
eat();
put(rightFork);
put (leftFork);
think();
}
Deadlock
24
Философы в коде
while (true) {
take(leftFork);
take(rightFork);
eat();
put(rightFork);
put (leftFork);
think();
}
25
Философы в коде
while (true) {
take(leftFork);
take(rightFork);
eat();
put(rightFork);
put (leftFork);
think();
}
Теория
27
Ресурсы и взаимоблокировка
Ресурс – объект,	к	которому	предоставляется	доступ
Во	время	работы	процесс	может	брать	(захватывать)	
ресурсы
28
Взаимоблокировка (Deadlock)
Взаимоблокировка – такое	состояние	системы,	при	котором	
два	или	более	процессов	не	могут	продолжать	своё	
выполнение	из-за	отсутствия	необходимых	для	этого	
ресурсов.
Каждый	ждёт	другого,	поэтому	никто	не	может	продолжить
29
Выгружаемые и невыгружаемые ресурсы
• Выгружаемые	ресурсы	— ресурсы,	которые	могут быть	
безболезненно	отобраны	у	процесса,	который	ими	обладает
• Невыгружаемые	ресурсы	— ресурсы,	которые	нельзя
отобрать	у	процесса,	не	вызвав	при	этом	сбой	в	вычислениях
• Мы	будем	говорить,	в	основном,	о	невыгружаемых	ресурсах
30
Операции над невыгружаемыми ресурсами
• Запрос	ресурса
- Берём ресурс	
- или	ждём (встаём	в	«очередь»	ожидания)
• Использование	ресурса
• Освобождение	ресурса
31
Виды блокирующих запросов
• без	таймаута
• с	таймаутом
• с	исключением	(ошибкой)
32
Условия возникновения взаимоблокировок
Коффман,	1971
1. Условие	взаимного	исключения
2. Условие	удержания	и	ожидания
3. Условие	невыгружаемости
4. Условие	циклического	ожидания
33
Условие взаимного исключения
Каждый	ресурс	либо	выделен	в	данный	момент только	
одному процессу,	либо	доступен для	всех.
34
Условие удержания и ожидания
Процессы,	удерживающие	в	данный	момент	ранее	
выделенные	им	ресурсы,	могут запрашивать	новые	
ресурсы.
35
Условие невыгружаемости
Ранее	выделенные	ресурсы	не	могут	быть	принудительно	
отобраны у	процесса.	
Они	должны	быть	явным	образом	высвобождены	тем	
процессом,	который	их	удерживает.
36
Условие циклического ожидания
Должна	существовать	кольцевая	последовательность	из	
двух	и	более	процессов,	каждый	из	которых	ожидает	
высвобождения	ресурса,	удерживаемого	следующим	
членом	последовательности.
37
Моделирование взаимоблокировок
Ресурс	занят Запрос	ресурса
A
P
B
Q
38
Моделирование взаимоблокировок
Ресурс	занят Запрос	ресурса Взаимоблокировка
A
P
B
Q
C
S
D
R
Граф	ожидания	(Holt,	1972)
39
Условия возникновения взаимоблокировок — ещё раз
Коффман,	1971
1. Условие	взаимного	исключения
2. Условие	удержания	и	ожидания
3. Условие	невыгружаемости
4. Условие	циклического	ожидания
40
Найдите Deadlock
C S
F
R A
D
U
T
B
V
E
GW
41
Найдите Deadlock
C S
F
R A
D
U
T
B
V
E
GW
Стратегии	борьбы	с	блокировками
43
Стратегии борьбы с блокировками
• Игнорирование	проблемы
• Обнаружение	и	восстановление
• Динамическое	уклонение
• Предотвращение	за	счёт	подавления	любого	из	
четырёх	условий	Коффмана
44
Кто использует стратегии борьбы?
• Базы	данных
- Блокировки	на	строках,	таблицах,	индексах	и	т.д.
45
Алгоритм Страуса
Bird	Straush,	1974
46
Алгоритм Страуса
Bird	Straush,	1974	до.	н.э.
47
Алгоритм Страуса
(Делаем	вид,	что	проблема	отсутствует)
Это	ОК?
?
48
Алгоритм Страуса
(Делаем	вид,	что	проблема	отсутствует)
• Насколько	часто	возникает	проблема?
• Как	часто	возникают	сбои	в	системе	
по	другим	причинам?
• Насколько	серьёзны	могут	быть	
последствия?
49
Обнаружение взаимоблокировок и
восстановление работоспособности
• Шаги
- Позволить блокировке	произойти
- Пытаться	обнаружить момент	возникновения
- Попробовать	восстановить работоспособность
В	нашем	примере	можно	просто	перезапускать
философов
50
Выход из взаимоблокировки
• Приоритетный захват	ресурсов
- Приоритезировать (все)	процессы
- Отобрать	ресурс	у	менее	приоритетного	процесса
• Откат (см.	след.	слайд)
• Уничтожение	и	перезапуск процессов
51
52
Выход из взаимоблокировки — Откат
• Периодически	создаются	контрольные	точки
• При	обнаружении	блокировки	происходит	откат
• При	откате	часть	работы	(которая	была	выполнена	после	
прохождения	последней	контрольной	точки)	теряется
• Пример:	MS	SQL	Server
- При	взаимной	блокировке	двумя	транзакциями	друг	
друга	выбирается	одна	из	них	(«жертва»),	которую	
сервер	откатывает.
53
Уклонение от взаимоблокировки
• Алгоритм	банкира	(Дейкстра,	1965)
• В	основе	— идея	о	траекториях
54
• Алгоритм	банкира	(Дейкстра,	1965)
• В	основе	— идея	о	траекториях
I,	scheduler
55
Предотвращение взаимоблокировки
• Атака	условия	взаимного	исключения
• Атака	условия	ожидания	и	удержания
• Атака	условия	циклического	ожидания
• Атака	условия	невыгружаемости
56
Атака условия взаимного исключения
• Возможна	редко	— часто	программа	становится	
некорректной
• Идея	— убирать	ненужные	блокировки
- Делать	нужно	осторожно,	чтобы	функциональность	
не	страдала
- Заменять	на	другие	механизмы типа	CAS
57
Атака условия ожидания и удержания
• Запрашивать	ВСЕ	необходимые	ресурсы	не	в	
процессе	работы,	а	до	начала	работы
- Но	не	всегда	ресурсы	известны	заранее
• Вначале	временно	высвободить все	удерживаемые	
ресурсы
- атомарно?
58
Атака условия циклического ожидания
C
S
D
R
59
Атака условия циклического ожидания
• Нумерация	ресурсов!
- Захватывать	ресурсы	только	в	порядке	возрастания	номеров
1
2 3
4
5
1
2
3
4
5
C
S
D
R
60
Вернемся к философам
1
2 3
4
5
61
Пронумеруем философов и вилки
3
1
2 3
4
5
1
2 4
5
Это	работает
63
Пронумеровали вилки
• Ура!	Количество	съеденного	постоянно	растет!
- Значит	ли	это,	что	никто	из	философов	не	голодает?
64
291200
1
2 3
4
5
170 2028000
10800
10
65
Голодание (Starvation)
• Голодание — ситуация,	в	которой	поток,	от	которого	
ожидается	прогресс,	(практически)	стоит	на	месте.
66
Голодание (Starvation)
• Голодание — ситуация,	в	которой	поток,	от	которого	
ожидается	прогресс,	(практически)	стоит	на	месте.
• Заблуждение
- Голодание	может	осуществиться,	только	если	потоки	
с	более	высоким	приоритетом	постоянно	берут	
ресурсы,	которые	нужны	низкоприоритетному
67
Атака условия невыгружаемости
• Разрешить	выгружать!
68
Livelock
69
Livelock
• Система	занята	какой-то	работой
• При	этом	прогресса	нет
70
Распределенные блокировки
DR
71
Распределенные блокировки
D
?
72
73
Решение
• Думать	головой
• Не	использовать	блокировки	там,	где	не	нужно
• Брать	как	можно	позже
• Отпускать	как	можно	раньше
• Использовать	системы	без	блокировок	(CAS	etc.)
• Но	с	ними	есть	свои	проблемы
74
Решение
• Думать	головой
• Не	использовать	блокировки	там,	где	не	нужно
• Брать	как	можно	позже
• Отпускать	как	можно	раньше
• Использовать	системы	без	блокировок	(CAS	etc.)
• Но	с	ними	есть	свои	проблемы
• В	распределенной	системе	с	несколькими	дата	–
центрами	блокировки	— это	огромная	проблема
Литература
76
Литература
Вопросы	и	ответы
Спасибо	за	внимание!
@23derevo
alexey.fyodorov@corp.mail.ru

Más contenido relacionado

La actualidad más candente

Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Ontico
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на productionNikolay Sivko
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantomyaevents
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...it-people
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаNikolay Sivko
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДNikolay Samokhvalov
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновOntico
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015Alex Chistyakov
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Ontico
 
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Ontico
 
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...Ontico
 

La actualidad más candente (20)

Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantom
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Uawebchallenge.yandex.tank
Uawebchallenge.yandex.tankUawebchallenge.yandex.tank
Uawebchallenge.yandex.tank
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Мониторинг качества работы вашего проекта
Мониторинг качества работы вашего проектаМониторинг качества работы вашего проекта
Мониторинг качества работы вашего проекта
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБД
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
 
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
 
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
 

Destacado

Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)Ontico
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
 
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...Ontico
 
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)Ontico
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)Ontico
 
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)Ontico
 
Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Ontico
 
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Ontico
 
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...Ontico
 
Практика применения Pinba в Badoo / Денис Карасик (Badoo)
Практика применения Pinba в Badoo / Денис Карасик (Badoo)Практика применения Pinba в Badoo / Денис Карасик (Badoo)
Практика применения Pinba в Badoo / Денис Карасик (Badoo)Ontico
 
Angular 2 interview questions and answers
Angular 2 interview questions and answersAngular 2 interview questions and answers
Angular 2 interview questions and answersAnil Singh
 
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Ontico
 
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)Ontico
 
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...Ontico
 
Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)Ontico
 

Destacado (17)

Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...
Коэволюция enterprise и open-source / Илья Космодемьянский (PostgreSQL-Consul...
 
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)
Автоматическая рубрикация текстов / Злата Обуховская (Рамблер)
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)
 
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
 
Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)
 
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
 
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
 
Практика применения Pinba в Badoo / Денис Карасик (Badoo)
Практика применения Pinba в Badoo / Денис Карасик (Badoo)Практика применения Pinba в Badoo / Денис Карасик (Badoo)
Практика применения Pinba в Badoo / Денис Карасик (Badoo)
 
Angular 2 interview questions and answers
Angular 2 interview questions and answersAngular 2 interview questions and answers
Angular 2 interview questions and answers
 
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
 
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)
Миф об Agile как это работает в реальности / Анатолий Стояновский (ТАСС)
 
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...
Успеть за 100 миллисекунд контекстная реклама на Sphinx / Дмитрий Хасанов (Av...
 
Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)Архитектура поиска в Avito / Андрей Смирнов (Avito)
Архитектура поиска в Avito / Андрей Смирнов (Avito)
 

Similar a Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассники)

Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых ПотоковAlexey Fyodorov
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаДелимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаSQALab
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipesAlexey Ermakov
 
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаIt talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаMarina Peregud
 
Как мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППККак мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППКRina Uzhevko
 
Performance Testing Methodology for Enterprise Solutions
Performance Testing Methodology for Enterprise SolutionsPerformance Testing Methodology for Enterprise Solutions
Performance Testing Methodology for Enterprise SolutionsEgor Eremeev
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинYandex
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceNikita Makarov
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Aleksey Bragin
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
тестирование
тестированиетестирование
тестированиеYandex
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)Alexander Gornik
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilationNikita Lipsky
 
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь ТумкинУниверсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь ТумкинCisco Russia
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратораNikolay Sivko
 

Similar a Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассники) (20)

Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых Потоков
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяцаДелимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
Делимся опытом: как мы оптимизировали тестирование крупного проекта за 3 месяца
 
Philosophers
PhilosophersPhilosophers
Philosophers
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipes
 
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина ШалапановаIt talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
It talk №23: "Если не Scrum, то что?", Екатерина Шалапанова
 
Как мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППККак мы тестировали ситуационный центр Центральной ППК
Как мы тестировали ситуационный центр Центральной ППК
 
Black box testing
Black box testingBlack box testing
Black box testing
 
Performance Testing Methodology for Enterprise Solutions
Performance Testing Methodology for Enterprise SolutionsPerformance Testing Methodology for Enterprise Solutions
Performance Testing Methodology for Enterprise Solutions
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир Бородин
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirience
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
 
Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
тестирование
тестированиетестирование
тестирование
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilation
 
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь ТумкинУниверсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратора
 

Más de Ontico

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Ontico
 

Más de Ontico (20)

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассники)