01 TIKTOKCOACH.RU
Высокопроизводительная
система без дополнительных
затрат
HWdTech.DS
02 TIKTOKCOACH.RU
Докладчик
Тюменцев Евгений
Разработка высоконагруженных, многопоточных, кросс-
платформенных приложений
Руководство отделом разработки ПО в 40 человек
Тех. директор ИТ-компании в 70 человек
Управляющий партнер стартапа “Тик-Так Коуч”
В свободное время - преподаватель
03 TIKTOKCOACH.COM
Многопоточность?
Это Вам не это!
Проблема
04 TIKTOKCOACH.COM
Нужны спецы
05 TIKTOKCOACH.RU
Атомарность
x = y;
x = x + 1;
06 TIKTOKCOACH.RU
Скучно и нудно
07 TIKTOKCOACH.RU
Есть идея
08 TIKTOKCOACH.RU
Вдохновитель
09 TIKTOKCOACH.RU
Благодарности
10 TIKTOKCOACH.RU
Цель
Как есть
Архитектура
Взаимодействие
Измеримость
Оптимизация
11 TIKTOKCOACH.RU
Вычислимость
Вычислимость
 Машина Тьюринга
 Машина Поста
 Λ-исчисление Черча
12 TIKTOKCOACH.RU
Как все начиналось?
1970-е
 Искусственный интеллект
 Будущее за многопроцессорными
системами
 Проект 5-е поколение
13 TIKTOKCOACH.RU
Акторы
Carl Hewitt,
Peter Bishop,
Richard Steiger
A Universal Modular
ACTOR
Formalism for Artificial
Intelligence
1973 Carl Hewitt
14 TIKTOKCOACH.RU
Архитектура
15 TIKTOKCOACH.RU
Модель акторов
Актор – вычислительная сущность
• Отправить конечное число сообщений
другим акторам
• Создать конечное число акторов
• Выбрать поведение для приема следующего
сообщения
16 TIKTOKCOACH.RU
В чем разница?
Синхронизация Акторы
17 TIKTOKCOACH.RU
Fog cutter
Gul A. Agha, Karmani 2011
Распространенная
архитектура для
вычислительных агентов
18 TIKTOKCOACH.RU
Общая схема
19 TIKTOKCOACH.RU
Message Bus
• MessageBus.Send(message);
• MessageBus.Join(job);
20 TIKTOKCOACH.RU
Job
public class EchoJob : IJob
{
[ChannelEndpointHandler("Echo")]
public void Handle(IMessage message)
{
MessageBus.TrySendSuccessResponse(message);
}
}
21 TIKTOKCOACH.RU
Синхронная обработка
Внутренний
запрос
Формирование
ответа
22 TIKTOKCOACH.RU
Асинхронная обработка
[ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType="Messages.Loader.Load")]
public void LoadMessageHandler(IMessage message)
{
// …
MessageBus.Send(
MessagesFactory.Instance.CreateMessage(“Messages.Config.Get”,ChannelsLoaderLocal)
);
}
[ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType = "Messages.Config.GetResponse")]
public void ConfigGetResponseHandler(IMessage response)
{
// …
}
23 TIKTOKCOACH.RU
Взаимодействие
24 TIKTOKCOACH.RU
ЖЦ данных
Ввод
Предварительная
обработка
Подготовка к
выдаче
Показ результатов
Запрос на
внесение
данных
Запрос на
выдачу
данных
Ответ на
запрос о
внесении
данных
Ответ на
запрос о
выдаче
данных
Благоприятный
момент времени
25 TIKTOKCOACH.RU
Борьба за надежность
Если Ваша система
работает только в 1%
случаев, то как ее
превратить в систему
со степенью
надежности 99%?
26 TIKTOKCOACH.RU
Все просто
P(успеха) = 0.01, => P(1 неудачи) = 0.99
P(n неудач) = P(1 неудачи)^n
459 попыток
27 TIKTOKCOACH.RU
Message Map
Job1 Job2 … JobN
28 TIKTOKCOACH.RU
Check Point
CP1 Job … CPN
Ответ на
входящий
запрос
29 TIKTOKCOACH.RU
Измеримость
30 TIKTOKCOACH.RU
Карты Шухарта
1923 г. AT&T
Ламповые усилители
сигнала
Количество аварийных
бригад и транстпорта?
Bell Labs 1924 г.
Уолтер Шухарт
32 TIKTOKCOACH.RU
Пример карты Шухарта
32 TIKTOKCOACH.RU
Document Storage
 Документ в виде JSON
 Full Text Search
 Filters
 Ranges
 Tags
 Orders
33 TIKTOKCOACH.RU
Scheduler
 Последовательности
 Стратегии обработки ошибок
34 TIKTOKCOACH.RU
Библиотека Job’ов
 Публикация
 Загрузка job’ов по требованию
35 TIKTOKCOACH.RU
Сервис конфигураций
 Конфигурация – json
 Внести изменения –
применить конфигурацию
36 TIKTOKCOACH.RU
Задачи
• Workfow
• Зависимости между Job’ами
• Упростить написание тестов
37 TIKTOKCOACH.RU
Спасибо
Тюменцев Евгений
Звоните: +7 913 150 22 04
Пишите: etyumentcev@tiktokcoach.ru
Читайте: @tiktokcoach
tiktokcoach.ru

More Related Content

PPTX
04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...
PPTX
Платформа SmartActors
PPTX
Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016
PPTX
2013-04-06 02 Евгений Тюменцев. Message-oriented middlware
PDF
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
POTX
Разработка надежных параллельных, распределенных приложений: быстро и дешево
PPTX
Как 7 студентов и филолог делали сложный проект
PPTX
Как 7 студентов и филолог делали сложный проект
04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...
Платформа SmartActors
Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016
2013-04-06 02 Евгений Тюменцев. Message-oriented middlware
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Как 7 студентов и филолог делали сложный проект
Как 7 студентов и филолог делали сложный проект

Similar to высокопроизводиетльные системы без доп затрат (12)

PDF
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
PDF
Качественный код? Миф!
PDF
ооп
POTX
Как жить в согласии с SOLID?
PDF
Как жить в согласии с SOLID?
PPT
управление требованиями
PDF
2014-02-01 01 Евгений Тюменцев. Качественный код - миф
PDF
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
PDF
Smart guide rus_v2
PPT
MAC_ICT_Firo2011
PPTX
Введение в Akka
PPTX
Организация эффективной работы команды при разработке и поддержке сложной инф...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
Качественный код? Миф!
ооп
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
управление требованиями
2014-02-01 01 Евгений Тюменцев. Качественный код - миф
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
Smart guide rus_v2
MAC_ICT_Firo2011
Введение в Akka
Организация эффективной работы команды при разработке и поддержке сложной инф...
Ad

More from etyumentcev (20)

PPTX
Программирование глазами математика
PPTX
Большие данные: как могут навредить и ка могут помочь?
PPTX
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
PPTX
матлогика для программистов
PPT
Математическое обоснование S.O.L.I.D принципов
PPTX
разработка серверов и серверных приложений лекция №4
PPTX
разработка серверов и серверных приложений лекция №3
PPTX
разработка серверов и серверных приложений лекция №2
PPTX
разработка серверов и серверных приложений лекция №1
PPTX
зачем нужны системы управления проектами
PPTX
введение в Sql
PPTX
почему буксует тайм менеджмент
PPTX
ук 03.011.01 2011
PPTX
ук 03.010.01 2011
PDF
ук 03.009.01 2011
PDF
ук 03.007.02 2011
PDF
ук 03.006.02 2011
PDF
ук 03.005.03 2011
PDF
ук 03.003.01 2011
PDF
ук 03.001.02 2011
Программирование глазами математика
Большие данные: как могут навредить и ка могут помочь?
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
матлогика для программистов
Математическое обоснование S.O.L.I.D принципов
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №1
зачем нужны системы управления проектами
введение в Sql
почему буксует тайм менеджмент
ук 03.011.01 2011
ук 03.010.01 2011
ук 03.009.01 2011
ук 03.007.02 2011
ук 03.006.02 2011
ук 03.005.03 2011
ук 03.003.01 2011
ук 03.001.02 2011
Ad

высокопроизводиетльные системы без доп затрат