«Секретные» технологии инвестиционных банков /...

Post on 06-Jan-2017

736 Views

Category:

Engineering

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

“Секретные” технологии инвестиционных банковАлексей Рагозин

В ходе данного доклада никаких секретов, включая коммерческие и торговые секреты, раскрыто не будет.Доклад основан на материалах доступных из открытых источников.

“Секретные” технологииАналитическая БД в оперативной памяти

kX kDBСистема обмена сообщениями

Informatica Ultra MessagingComplex Event Processing

Внутренняя разработка

kX kdb+

Аналитическая БД в оперативной памяти

Анализ глубины рынка

Рынок информирует подписчиков о заявках / сделках в виде потока событий.

Анализ глубины рынка

Источник - http://www.nanex.net/aqck2/4176.html

Анализ глубины рынка

Быстрая динамика входных данных

Анализ исторического окна Большое количество арифметики

kX kdb+

Может хранить данные на дискеИнтерпретатор языка QQ – функциональный язык, ориентирован на работу с массивамиОсновная обработка данных в памяти

Язык Q

sql-qselect[3;>price] from bids where sym=s,size>0

kX kdb+Особенности Интерпретируемый язык Логическая однопоточность

Отдельные операции могут распараллеливаться

Интерпретатор < 500 KiB Манипуляция массивами Глубокая оптимизация под

архитектуру процессора

Применение kdb+Аналитика Анализ рынка Анализ истории сделок

Применение kdb+Аналитика Анализ рынка Анализ истории сделок

Анализ логов Оптимизация взаимодействия

системАнализ сетевого трафика Оптимизация сетевых задержек

Дополнительная информация Официальный сайт

http://kx.com/ Доклад про использование kdb+ в Deutsche

Bankhttp://2013.secr.ru/invited-speakers/andrey-babanin

Альтернативы J аналог языка K (предтече Q)

https://en.wikipedia.org/wiki/J_%28programming_language%29

Informatica Ultra Messaging

Система обмена сообщениями

Классика MOMStore & Forward

Брокер

Источник

Сообщение

Подтверждение

Сообщение

Сообщение

Подтверждение

Потребитель 1

Потребитель N

Классика MOMРаспределённая транзакция

Гарантия: однократная доставка

База данных БрокерБизнеслогика

Сообщение

ЗаписьПодтверждение

Двух фазный коммит

Альтернатива 2PCСквозная нумерация сообщенийБрокер хранит окно сообщений Потребитель может запросить

сообщения с любого номераПотребитель хранит номер последнего обработанного сообщенияРаспределённая транзакция не требуется

Reliable multicast

Сообщение N

Сообщение N

Сообщение N

Источник

Потребитель 1

Потребитель N

ReplayServer

Reliable multicast

Гарантия: доставка хотя бы раз

Сообщение N

Сообщение N

Сообщение N

Источник

Потребитель 1

Потребитель N

ReplayServer

Informatica Ultra Messaging Частично базируется на PGM

Pragmatic General Multicasthttps://en.wikipedia.org/wiki/Pragmatic_General_Multicast

Несколько реализаций транспорта

UDP multicast – минимальная задержка

UDP unicastTCP

Реализация дискового eplay server

Informatica Ultra MessagingКлючевые преимуществаСквозная нумерация сообщений Транзакционные гарантии

Малая задержка Прямая передача от источника

получателю Мультикаст

ОтказоустойчивостьНадёжность – вопрос выбораЛокальная сеть - надёжна

Дублирование оборудованияСервера / Процессы могут падатьРезервный датацентр – холодный

Исключительная ситуацияПолуавтоматическая процедура

ОтказоустойчивостьПотребитель 1

Потребитель N

ОсновнойДатацентр

РезервныйДатацентр

MessageStore

MessageStore

MessageStore

MessageStore

MessageStore

MessageStore

Источник

Подтверждение иерархическим кворумом

ОтказоустойчивостьЛокальный кворум обеспечивает гарантию работы при выходе из строя одного хранилища.Восстановления потребителя происходит из всех хранилищХранилища могут иметь “дырки”“Дырки” сами не восстанавливаются

Open Source АналогиApache Kafka Publish/Subscribe messaging Распределенный журнал сообщений Коммуникации через брокера

Apache Bookkeeper/HedWig Распределённый журнал Основан на Zookeeper Коммуникации через брокера

ZeroMQ Реализация PGM Нет инфраструктуры восстановления

Архитектура Фронт-энда для

Трейдинга

Complex Event Processing

Фронт-энд для Трейдинга

http://2014.secr.ru/program/submitted-presentations/rapid-development-gui-for-large-data-volumes-with-cqrs

Контролер

Шина обмена сообщениями ШлюзШлюз

Кэш

Фронт-энд для ТрейдингаEvent-Driven

Даже статические данные меняютсяМного источников исходных данных

Транзакционные данные Справочники (статические данные) Котировки

Таблицы на входе, таблицы на выходе

Основная визуализация - таблицы Исходные данные - таблицы

Фронт-энд для ТрейдингаРеляционная алгебра как универсальный инструмент работы с данными

Нет доменных объектов (есть схема)Формирования UI по метаданнымУдобный энричмент данныхБыстрая разработка

Нужна непрерывная обработка запросовContinuous Query

Continuous Event Processing Event Driven Соединение данных из разных источников

Включая реляционные джойны Агрегация данных

Инкрементальные алгоритмы

Чего не хватает традиционным CEP? В традиционных CEP – преобразования

статичны. Для UI нужна возможность строить запросы на

лету.

CEP Движок для Фронт-энда Внутренняя разработка Обработка данных в памяти Инкрементальная обработка

событий Фильтрация / Джойны / Агрегация

Быстрая инициализация новых запросов

Переиспользование эквивалентных операторов между запросами

Поисковые индексы

СпасибоАлексей Рагозин

alexey.ragozin@gmail.comhttp://blog.ragozin.info

top related