Stockdb - БД на эрланге для трейдинговых тиков

Aug 29, 2012 15:48

Хочу немного рассказать про нашу базу данных stockdb которую пришлось написать для хранения биржевых данных ( Read more... )

stockdb, erlang

Leave a comment

Comments 53

dr_hyder August 29 2012, 12:32:00 UTC
А опенсорс зачем? Я не то чтобы против, просто выглядит оно вполне коммерческим.

Reply

levgem August 29 2012, 12:34:50 UTC
Ну посмотрим. Если кто-то захочет воспользоваться, ему потребуются допилы.

Reply


jakobz August 29 2012, 12:47:38 UTC
Там у вас только цена/объем? Или еще bid/ask там всякие, время операции и т.п.?

Как это потом применяется? Нужен ли random-доступ? Просто, например, если графики потом чертить - можно, скажем, к 5-ти минуткам эти еще min/max/среднее там добавлять, например. Что-то такое нужно, или это raw-база для истории и по этому потом уже другие какие-то агрегированные данные строятся?

Вообще мне такие штуки очень нравятся. Я в своем кровавом энтерпрайзе очень скучаю по таким вот решениям - у нас же все говно в SQL-базы тащат не думая вообще головой предварительно.

Reply

levgem August 29 2012, 12:51:55 UTC
Bid/ask понятно что есть: просто они известной глубины и укладываются аккуратно последовательно.

Время да, есть.

рандомный доступ почти никогда не нужен, нужно получить пачку котировок от и до. Это прекрасно реализуется с помощью индекса.

Свечку для пятиминутки строить - это планируем.

Я бы с радостью затащил это в SQL, но он ведь не справится =)

Reply

jakobz August 29 2012, 13:24:34 UTC
Ясно, спасибо. Похоже на штуковину с хорошими перспективами.

Reply

levgem August 29 2012, 13:27:59 UTC
посмотрим.

Reply


sgdreamer7 August 29 2012, 13:10:12 UTC
Я так понял что на каждый день и инструмент отводится отдельный файл? А как организованы файлы в файловой системе? Как на счет ограничений на количество файлов в одной директории (inode в темминах ext3/Linux)?

Reply

levgem August 29 2012, 13:13:27 UTC
В данный момент это для нас не проблема, но решать будем элементарно: раскидывать по именам и датам.

Reply

sgdreamer7 August 29 2012, 13:22:15 UTC
А как быстро находить файл по имени инструмента и дате?
Я подобную проблему решал так: по имени бумаги вычисляем хэш на 32 бита - переводим в шестнадцатиричные символы вида ABCDEF01 и дальше структура каталогов трех уровней вложенности вида /ABC/DEF/ABCDEF01.dat, а список бумаг в отдельном файле в виде Bin=term_to_binary(GBTree), где GBTree - дерево модуля gb_trees.

Reply

jakobz August 29 2012, 13:43:49 UTC
Как-то даже странно слышать что в ext3 какие-то ограничения и имена файлов не кладутся в b-tree. В NTFS с этим все ок.

Reply


gliv August 29 2012, 14:45:32 UTC
Как-то странно видеть "умножение цены на 100 и приведение к инту".
Хоть в америке, хоть у нас куча есть бумаг с гораздо меньшим шагом изменения цены, чем 0.01. Тот же ВТБ имеет 5 цифр после запятой.
http://www.micex.ru/marketdata/quotes?secid=VTBR

Текущая цена 0,05493 - как ты ее в int приведешь?

Reply

levgem August 29 2012, 14:48:03 UTC
Очевидно, это настраивается.

Reply

kranov August 29 2012, 15:07:10 UTC
я тоже сразу подумал об этом и вспомнил историю про "9 608 127 360 000 000 000 (Девять квинтиллионов шестьсот восемь квадриллионов cто двадцать семь триллионов триста шестьдесят миллиардов) штук номинальной стоимостью 1/ 4 003 386 400 рублей каждая"

Reply

levgem August 29 2012, 15:10:58 UTC
Да, ВТБ - это ахтунг!

Reply


gliv August 29 2012, 14:46:09 UTC
о, мой коммент со ссылкой как спам отметился. Прикольно.

Reply


Leave a comment

Up