SlideShare a Scribd company logo
1 of 17
Download to read offline
Система для выявления манипуляций
в условиях высокочастотной биржевой
торговли
Иосиф Иткин, Антон Ситников
Exactpro Systems
Чем мы занимаемся
• Критикуем хорошие
программы написанные
умными людьми
• Создаем своих монстров для
проверки высоконагруженных
трейдинговых систем
Как делать деньги
There are three ways to make a living in this business: be first,
be smarter, or cheat
Что бы такого сделать плохого
• Манипуляция ценами
• Переигрывание объемами
• Уход от налогов
• Финансирование зла
• Инсайдерская торговля
• Проскальзывание перед клиентом
• Многое другое…
Что бы такого сделать плохого
• Манипуляция ценами
• Переигрывание объемами
• Уход от налогов
• Финансирование зла
• Инсайдерская торговля
• Проскальзывание перед клиентом
• Многое другое…

Часто легитимная активность выглядит как
злоупотребление, и наоборот
Функциональность системы
• Поток сообщений
• Незаметность
• Агрегация данных
• Гибкая настройка правил
• Помощь в обследовании
места преступления и
сборе доказательств
• Хранение данных
Система для мониторинга Шша
• Перехват сетевых пакетов
• Разобрать и сложить все сообщения в MySQL
• Сделать логику проверок на SQL запросах
• Хороший инструмент для тестирования
• Но тянет не более 30 млн. сообщений в день
Холодный ветер с дождем
• Возникло желание усилить ее хотя бы десятикратно
• Получилась боевая системуа похожая на Market Surveillance
• Теперь мы используем ее как модель для проверки ее собратьев
Красивое название
• Возникло желание усилить ее хотя бы десятикратно
• Получилась боевая системуа похожая на Market Surveillance
• Теперь мы используем ее как модель для проверки ее собратьев
Complex Event Processing и Akka
• Surveillance-система является подмножеством CEP
• Surveillance-система должна иметь состояние (книжка)
• Коммерческие решения слишком дороги
• Esper не позволяет хранить состояние
• Akka – средство для написания событийных систем
•
•
•
•

высокая производительность
распределенность
удобная модель параллельной обработки
работает на JVM
Система хранения
• Много операций добавления, мало операций чтения
• SQL базы данных плохо масштабируются и не позволяют
сохранять большой поток данных
• NoSQL базы данных как Riak, Cassandra, Voldemort требуют
создание большого кластера для достижения 100k msg/sec
• БД движки (Kyoto Cabinet, Krati, LevelDB). Быстрые. Позволяют
написать систему хранения, максимально адаптированную для
задачи. LevelDB быстрее
10010
11101
11010

Конверторы

JSON

События

Мультиплексор/демультиплексор потоков

Книжки

Сценарии

Protobuf

Потоки событий

Web
сервер

Web-Интерфейс

Источники данных

Архитектура Dolphin
Сохранение событий
• Уникальный идентификатор события (ИД источника + номер)
• За кодирование/декодирование отвечает источник
• Возможность сохранения иерархических событий
• LevelDB – движок, передача по сети – ZeroMQ
• Распределение нагрузки по нескольким узлам по ИД события
• «Послал и забыл» - каждый узел может определить пропущенное
сообщение и запросить его у дублирующего
Сохранение потоков событий
• Поток событий = индекс
• ИД события в потоке – ИД потока + порядковый номер
• Ключ в LevelDB – ИД потока + порядковый номер ( + время)
• Одна запись в LevelDB включает несколько логических записей
• Распределение нагрузки по нескольким узлам
Web-интерфейс и потоки событий
• Система создает и записывает множество
дополнительных потоков (индексов), например
• все события, связанные с одним ордером
• все ордера, размещенные участником рынка

• Сервер web-интерфейса запрашивает потоки из
хранилища и представляет их пользователю
Web-интерфейс
Dolphin
• Play framework на
стороне сервера
• Sencha Ext JS на
стороне клиента
• Динамические
обновления: JSON +
WebSocket/Comet
Вопросы и ответы

Спасибо!

http://exactpro.com http://tmpaconf.org
http://linkedin.com/in/iosifitkin

More Related Content

Similar to Иосиф Иткин, Антон Ситников (Exactpro Systems)

Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?Expolink
 
Анатомия внешней атаки
Анатомия внешней атакиАнатомия внешней атаки
Анатомия внешней атакиAleksey Lukatskiy
 
Методы современных кибепреступников
Методы современных кибепреступниковМетоды современных кибепреступников
Методы современных кибепреступниковCisco Russia
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...Ontico
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Как взломать телеком и остаться в живых
Как взломать телеком и остаться в живыхКак взломать телеком и остаться в живых
Как взломать телеком и остаться в живыхqqlan
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...Ontico
 
Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Игорь Мызгин
 
AIST 2013 - Data Analysis in Highload Trading Systems
AIST 2013 - Data Analysis in Highload Trading SystemsAIST 2013 - Data Analysis in Highload Trading Systems
AIST 2013 - Data Analysis in Highload Trading SystemsIosif Itkin
 
Обнаружение атак - из конца 90-х в 2018-й
Обнаружение атак - из конца 90-х в 2018-йОбнаружение атак - из конца 90-х в 2018-й
Обнаружение атак - из конца 90-х в 2018-йAleksey Lukatskiy
 
Корреляция в SIEM системах
Корреляция в SIEM системахКорреляция в SIEM системах
Корреляция в SIEM системахOlesya Shelestova
 
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие граблиРИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие граблиТарасов Константин
 
Как взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей ГордейчикКак взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей ГордейчикPositive Hack Days
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 

Similar to Иосиф Иткин, Антон Ситников (Exactpro Systems) (20)

Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
 
Анатомия внешней атаки
Анатомия внешней атакиАнатомия внешней атаки
Анатомия внешней атаки
 
Методы современных кибепреступников
Методы современных кибепреступниковМетоды современных кибепреступников
Методы современных кибепреступников
 
Rusiem 2017_обзор
Rusiem 2017_обзорRusiem 2017_обзор
Rusiem 2017_обзор
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
RuSIEM
RuSIEMRuSIEM
RuSIEM
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Как взломать телеком и остаться в живых
Как взломать телеком и остаться в живыхКак взломать телеком и остаться в живых
Как взломать телеком и остаться в живых
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
 
SIEM для ИТ
SIEM для ИТSIEM для ИТ
SIEM для ИТ
 
Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...Использование облачной платформы OpenStack для реализации механизмов обработк...
Использование облачной платформы OpenStack для реализации механизмов обработк...
 
AIST 2013 - Data Analysis in Highload Trading Systems
AIST 2013 - Data Analysis in Highload Trading SystemsAIST 2013 - Data Analysis in Highload Trading Systems
AIST 2013 - Data Analysis in Highload Trading Systems
 
Обнаружение атак - из конца 90-х в 2018-й
Обнаружение атак - из конца 90-х в 2018-йОбнаружение атак - из конца 90-х в 2018-й
Обнаружение атак - из конца 90-х в 2018-й
 
Корреляция в SIEM системах
Корреляция в SIEM системахКорреляция в SIEM системах
Корреляция в SIEM системах
 
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие граблиРИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
 
Как взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей ГордейчикКак взломать телеком и остаться в живых. Сергей Гордейчик
Как взломать телеком и остаться в живых. Сергей Гордейчик
 
Crypto piramids27 04-2018fingenbort
Crypto piramids27 04-2018fingenbortCrypto piramids27 04-2018fingenbort
Crypto piramids27 04-2018fingenbort
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...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
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя 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...
 

Иосиф Иткин, Антон Ситников (Exactpro Systems)

  • 1. Система для выявления манипуляций в условиях высокочастотной биржевой торговли Иосиф Иткин, Антон Ситников Exactpro Systems
  • 2. Чем мы занимаемся • Критикуем хорошие программы написанные умными людьми • Создаем своих монстров для проверки высоконагруженных трейдинговых систем
  • 3. Как делать деньги There are three ways to make a living in this business: be first, be smarter, or cheat
  • 4. Что бы такого сделать плохого • Манипуляция ценами • Переигрывание объемами • Уход от налогов • Финансирование зла • Инсайдерская торговля • Проскальзывание перед клиентом • Многое другое…
  • 5. Что бы такого сделать плохого • Манипуляция ценами • Переигрывание объемами • Уход от налогов • Финансирование зла • Инсайдерская торговля • Проскальзывание перед клиентом • Многое другое… Часто легитимная активность выглядит как злоупотребление, и наоборот
  • 6. Функциональность системы • Поток сообщений • Незаметность • Агрегация данных • Гибкая настройка правил • Помощь в обследовании места преступления и сборе доказательств • Хранение данных
  • 7. Система для мониторинга Шша • Перехват сетевых пакетов • Разобрать и сложить все сообщения в MySQL • Сделать логику проверок на SQL запросах • Хороший инструмент для тестирования • Но тянет не более 30 млн. сообщений в день
  • 8. Холодный ветер с дождем • Возникло желание усилить ее хотя бы десятикратно • Получилась боевая системуа похожая на Market Surveillance • Теперь мы используем ее как модель для проверки ее собратьев
  • 9. Красивое название • Возникло желание усилить ее хотя бы десятикратно • Получилась боевая системуа похожая на Market Surveillance • Теперь мы используем ее как модель для проверки ее собратьев
  • 10. Complex Event Processing и Akka • Surveillance-система является подмножеством CEP • Surveillance-система должна иметь состояние (книжка) • Коммерческие решения слишком дороги • Esper не позволяет хранить состояние • Akka – средство для написания событийных систем • • • • высокая производительность распределенность удобная модель параллельной обработки работает на JVM
  • 11. Система хранения • Много операций добавления, мало операций чтения • SQL базы данных плохо масштабируются и не позволяют сохранять большой поток данных • NoSQL базы данных как Riak, Cassandra, Voldemort требуют создание большого кластера для достижения 100k msg/sec • БД движки (Kyoto Cabinet, Krati, LevelDB). Быстрые. Позволяют написать систему хранения, максимально адаптированную для задачи. LevelDB быстрее
  • 13. Сохранение событий • Уникальный идентификатор события (ИД источника + номер) • За кодирование/декодирование отвечает источник • Возможность сохранения иерархических событий • LevelDB – движок, передача по сети – ZeroMQ • Распределение нагрузки по нескольким узлам по ИД события • «Послал и забыл» - каждый узел может определить пропущенное сообщение и запросить его у дублирующего
  • 14. Сохранение потоков событий • Поток событий = индекс • ИД события в потоке – ИД потока + порядковый номер • Ключ в LevelDB – ИД потока + порядковый номер ( + время) • Одна запись в LevelDB включает несколько логических записей • Распределение нагрузки по нескольким узлам
  • 15. Web-интерфейс и потоки событий • Система создает и записывает множество дополнительных потоков (индексов), например • все события, связанные с одним ордером • все ордера, размещенные участником рынка • Сервер web-интерфейса запрашивает потоки из хранилища и представляет их пользователю
  • 16. Web-интерфейс Dolphin • Play framework на стороне сервера • Sencha Ext JS на стороне клиента • Динамические обновления: JSON + WebSocket/Comet
  • 17. Вопросы и ответы Спасибо! http://exactpro.com http://tmpaconf.org http://linkedin.com/in/iosifitkin