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

37
01 TIKTOKCOACH.RU Высокопроизводительная система без дополнительных затрат HWdTech.DS

Upload: etyumentcev

Post on 22-Jun-2015

410 views

Category:

Software


5 download

DESCRIPTION

Нами был разработана библиотека HWdTech.DS для разработки многопоточных и распределенных приложений на платформе .Net. Эта библиотека использует модель акторов и позволяет существенно снизить требования к квалификации программистов при построении высоконагруженных приложений.

TRANSCRIPT

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

01 TIKTOKCOACH.RU

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

HWdTech.DS

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

02 TIKTOKCOACH.RU

Докладчик

Тюменцев Евгений

Разработка высоконагруженных, многопоточных, кросс-платформенных приложенийРуководство отделом разработки ПО в 40 человекТех. директор ИТ-компании в 70 человек

Управляющий партнер стартапа “Тик-Так Коуч”В свободное время - преподаватель

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

03 TIKTOKCOACH.COM

Многопоточность?Это Вам не это!

Проблема

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

04 TIKTOKCOACH.COM

Нужны спецы

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

05 TIKTOKCOACH.RU

Атомарность

x = y;

x = x + 1;

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

06 TIKTOKCOACH.RU

Скучно и нудно

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

07 TIKTOKCOACH.RU

Есть идея

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

08 TIKTOKCOACH.RU

Вдохновитель

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

09 TIKTOKCOACH.RU

Благодарности

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

10 TIKTOKCOACH.RU

Цель

Как есть

Архитектура

Взаимодействие

Измеримость

Оптимизация

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

11 TIKTOKCOACH.RU

Вычислимость

Вычислимость Машина Тьюринга Машина Поста Λ-исчисление Черча

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

12 TIKTOKCOACH.RU

Как все начиналось?

1970-е Искусственный интеллект Будущее за многопроцессорными

системами Проект 5-е поколение

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

13 TIKTOKCOACH.RU

Акторы

Carl Hewitt, Peter Bishop, Richard Steiger

A Universal Modular ACTORFormalism for Artificial Intelligence

1973 Carl Hewitt

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

14 TIKTOKCOACH.RU

Архитектура

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

15 TIKTOKCOACH.RU

Модель акторов

Актор – вычислительная сущность

• Отправить конечное число сообщений другим акторам

• Создать конечное число акторов• Выбрать поведение для приема следующего

сообщения

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

16 TIKTOKCOACH.RU

В чем разница?Синхронизация Акторы

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

17 TIKTOKCOACH.RU

Fog cutter

Gul A. Agha, Karmani 2011

Распространенная архитектура для вычислительных агентов

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

18 TIKTOKCOACH.RU

Общая схема

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

19 TIKTOKCOACH.RU

Message Bus

• MessageBus.Send(message);

• MessageBus.Join(job);

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

20 TIKTOKCOACH.RU

Jobpublic class EchoJob : IJob{ [ChannelEndpointHandler("Echo")] public void Handle(IMessage message) { MessageBus.TrySendSuccessResponse(message); }}

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

21 TIKTOKCOACH.RU

Синхронная обработка

Внутренний запрос

Формирование ответа

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

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){ // …}

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

23 TIKTOKCOACH.RU

Взаимодействие

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

24 TIKTOKCOACH.RU

ЖЦ данных

Ввод Предварительная обработка

Подготовка к выдаче Показ результатов

Запрос на внесение данных

Запрос на выдачуданных

Ответ на запрос о внесении данных

Ответ на запрос о выдаче данных

Благоприятный момент времени

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

25 TIKTOKCOACH.RU

Борьба за надежность

Если Ваша системаработает только в 1%случаев, то как еепревратить в системусо степенью надежности 99%?

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

26 TIKTOKCOACH.RU

Все просто

P(успеха) = 0.01, => P(1 неудачи) = 0.99

P(n неудач) = P(1 неудачи)^n

459 попыток

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

27 TIKTOKCOACH.RU

Message Map

Job1 Job2 … JobN

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

28 TIKTOKCOACH.RU

Check Point

CP1 Job … CPN

Ответ на входящий

запрос

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

29 TIKTOKCOACH.RU

Измеримость

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

30 TIKTOKCOACH.RU

Карты Шухарта1923 . г AT&T Ламповые усилителисигнала

Количество аварийных бригад итранстпорта?Bell Labs 1924 .г Уолтер Шухарт

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

32 TIKTOKCOACH.RU

Пример карты Шухарта

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

32 TIKTOKCOACH.RU

Document StorageДокумент в виде JSONFull Text SearchFiltersRangesTagsOrders

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

33 TIKTOKCOACH.RU

Scheduler

Последовательности Стратегии обработки ошибок

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

34 TIKTOKCOACH.RU

Библиотека Job’ов

Публикация Загрузка job’ов по требованию

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

35 TIKTOKCOACH.RU

Сервис конфигураций

Конфигурация – json Внести изменения –

применить конфигурацию

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

36 TIKTOKCOACH.RU

Задачи

• Workfow• Зависимости между Job’ами• Упростить написание тестов

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

37 TIKTOKCOACH.RU

Спасибо

Тюменцев Евгений

Звоните: +7 913 150 22 04Пишите: [email protected]Читайте: @tiktokcoach

tiktokcoach.ru