|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Бумбараш bluestreak, есть ли у базы какие-нибудь энтерпрайз или большие пользователи? Кто они? Если их нет, как вы планируете продвигать базу? Просто не знаю, как продвигается opensource продукт. есть ли у неё какая-нибудь специализация, например, на трейдинге, как у kdb, или она general purpose? У нас есть несколько пользователей из финансовой и криптовалютной торговли. В основном QuestDB используется как low latency хранилище в трейдинг системах где размещение заказа должно происходить за меньше чем 15 микросекунд. Мы подвигаем через общение с разработчиками, помогаем им решать задачи в замен на внедрение QuestDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 01:09 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreakВ основном QuestDB используется как low latency хранилище в трейдинг системах где размещение заказа должно происходить за меньше чем 15 микросекунд. Забавный научный факт: за 15 микросекунд свет успевает пролететь чуть больше четырёх километров. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 01:16 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreak Бумбараш bluestreak, есть ли у базы какие-нибудь энтерпрайз или большие пользователи? Кто они? Если их нет, как вы планируете продвигать базу? Просто не знаю, как продвигается opensource продукт. есть ли у неё какая-нибудь специализация, например, на трейдинге, как у kdb, или она general purpose? У нас есть несколько пользователей из финансовой и криптовалютной торговли. В основном QuestDB используется как low latency хранилище в трейдинг системах где размещение заказа должно происходить за меньше чем 15 микросекунд. она как транзакционная база используется в этом сценарии выставления ордеров? То есть какие-то апдейты происходят в самой базе? Просто вроде обычно такие базы, Kdb, etc, используются для аналитики. Или она поставляет аналитику какому-то потребителю, который и выставляет ордер на основе сигнала questdb. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 17:14 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov bluestreakВ основном QuestDB используется как low latency хранилище в трейдинг системах где размещение заказа должно происходить за меньше чем 15 микросекунд. Забавный научный факт: за 15 микросекунд свет успевает пролететь чуть больше четырёх километров. Несколько лет назад один господин кодил DBMS с наносекундным откликом. Чото мне заранее поплохело.... Дайте валерьянки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 17:31 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Бумбараш, QuestDB используется в имплементации движка OUCH, похожего на FIX, только производительнее. В неё сохраняются все входные и исходящие сообщения. Когда нарушается связь между клиентом и торговой системы из QuestDB достаются ответы (execution reports) по номерам последовательностей. QuestDB встроенная в такой ситуации. Дополнительно из QuestDB используются библиотеки доступа к сети, вместо Java NIO, логирования и обмена сообщениями между потоками. В других приложениях QuestDB используется как основание lossless multicast шины сообщений, все те же библиотеки как для ouch движка и ещё библиотека, которая заворачивает epoll/kqueue/select и работает быстрее чем Java/netty и позволяет конфигурировать несимметричное количество пользователей и потоков. Аналитика потом делается из данных которые консолидируются по сети через эту multicast шину. KDB тоже используется как в торговых системах, в конфигурации ticker—plant как система сообщений и генерации алгоритмических заказов, так и для аналитики естественно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 20:57 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreakQuestDB используется как основание lossless multicast шины сообщений, все те же библиотеки как для ouch движка и ещё библиотека, которая заворачивает epoll/kqueue/select и работает быстрее чем Java/netty и позволяет конфигурировать несимметричное количество пользователей и потоков. Так вот откуда в ней возникает синекдоха отвечания... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 22:21 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Нессимметричное число пользователей? Я впервые слышу такую комбинацию слов! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 22:25 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
mayton Нессимметричное число пользователей? Я впервые слышу такую комбинацию слов! Один поток может одновременно общаться с несколькими сокетами. Парсеры протоколов написаны так что они работают с сокетами на уровне скорости процессора а не на уровне модема с другой стороны. Отсюда несеммитричность числа подключений и серверных потоков. Постгрес форкает процесс для каждого accept() и все уважают и не гы—гыкают. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:13 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreakОдин поток может одновременно общаться с несколькими сокетами. Собственно это и есть основная (а точнее единственная) задача epoll/select. bluestreakПарсеры протоколов написаны так что они работают с сокетами на уровне скорости процессора а не на уровне модема с другой стороны. Для 15 микросекунд вам подойдёт только локалхост, да и то со спидхаком, а в его случае бутылочным горлышком как раз является процессор. bluestreakОтсюда несеммитричность числа подключений и серверных потоков. То есть ваше мега-хау-ноу это пул потоков и паттерн producer-consumer в действии. Н-е-о-н-к-а. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:22 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Это не только epoll это еще все парсеры написаны как state—machine и оттестироаны с невменяемым количеством комбинаций когда парсер прерывается из-за инертного сокета и восстанавливается по сигналам epoll. Я здесь говорю о рабочем продукте а не заявке на патент или Нобелевскую премию. Говорить а блин это же epoll это очень упрощённый взгляд на вещи. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:33 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreakпарсеры написаны как state—machine А бывают в живой природе другие? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:41 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, 15 микросекунд это не теоретический полёт света, это разбор протокола, валидация, проверка риска и ограничений, конвертация протоколов, два сохранения, четыре сетевых хопа и поиск в order book. Вот это все между двумя серверами и 300м интерконнектом. Не на локалхосте а на solarflare картах и mellanox layer 3 свич. Все это 10микро 99.99 percentile ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:41 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Бывают, большенство ленивые, чтобы им в рот все сразу мама положила ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2019, 23:42 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Господа. Я придерживаюсь такой точки зрения. Что "дорога ложка к обеду", и "у каждой вещи - свое предназначение". Автор создаёт вещь которая ему нужна. У него - юзкейс такой. И условия. Кстати. Расскажите мне как вы коллеги понимаете термин - таймсерия. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 09:12 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
mayton Расскажите мне как вы коллеги понимаете термин - таймсерия Вот-вот, - поддерживаю. Какой-то жутко оптимизированный сиквенс? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 09:17 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreak Dimitry Sibiryakov, Это не только epoll это еще все парсеры написаны как state—machine и оттестироаны с невменяемым количеством комбинаций когда парсер прерывается из-за инертного сокета и восстанавливается по сигналам epoll. Я здесь говорю о рабочем продукте а не заявке на патент или Нобелевскую премию. Говорить а блин это же epoll это очень упрощённый взгляд на вещи. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 09:36 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
mayton Кстати. Расскажите мне как вы коллеги понимаете термин - таймсерия. Меня вполне устраивает классическое определение https://en.m.wikipedia.org/wiki/Time_series ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 10:55 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Бумбараш mayton Кстати. Расскажите мне как вы коллеги понимаете термин - таймсерия. Меня вполне устраивает классическое определение https://en.m.wikipedia.org/wiki/Time_series +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 11:12 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Бумбараш mayton Кстати. Расскажите мне как вы коллеги понимаете термин - таймсерия. Меня вполне устраивает классическое определение https://en.m.wikipedia.org/wiki/Time_series Меня не устраивает. Мы не сможем судить или оценивать систему которую создал автор до тех пор пока не формализуем API который работает (и работает оптимально) с ней. Протокол этого API будет определять структуру данных в которой должна лежать тайм-серия. Не всегда это массив. Если вы хотите быстро искать точечные значения - то данные надо хранить в деревьях. Диапазоны (короткие) - тоже в деревьях. Более длинные последовательности - в блоках дерева. И очень длинные - в stripes наподобие apache orc. Кстати дисковое хранение тут тоже важно. Если мы полностью полагаемся на memory-mapped от операционки - то это значит что мы полностью доверяем ей механику кеширования которая не всегда оптимальна по алгоритму (дервянный LRU) или по размеру блока 1k? 1M? или по приоритезации? Что вытеснять когда нехватка? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 11:54 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Ну и по обновлениям. Будут ли данные принимать updates? BigData в классическом понимании этого термина предполагает что данные только исторические. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 12:01 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Да, все парсеры вручную :( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 13:16 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
mayton, Спасибо за конструктивные вопросы. Я себе представляю таймсерию как журнал событий, в котором как было бы удобно человеку, данные хранятся в столбик. Как вы понимаете в таком способе представления есть преимущества и недостатки. Из преимуществ: — Данные очень легко добавлять — записываем всегда в конец, отсюда огромная скорость добавления и так же очень недорогая атомичность. — данные всегда выбираются в той же последовательности в которой они добавлены, либо в строго противоположной если нужно. — данные не мутируют, отсюда возможна реализация инкрементальных запросов о которых я уже говорил — новые данные всегда в конце журнала — время хранится в порядке возрастания, отсюда сложность хранения О(1) и временная сложность O(log n). Дерево по сравнению O(log n) хранение и поиск, плюс место на диске Из недостатков: — сложность удаления индивидуальных записей, в случае QuestDB — невозможность, данные удаляютя удаляются через партиции — невозможность физического изменения записей; изменения виртуальные и реализуются через select По поводу доступа, он действительно только через memory mapped file. Здесь предположение что ва сервере субд достаточно памяти. Со своей стороны QuestDB выполняет запись и чтение через отдельные страницы. При записи таблицы используется одна страница, которая двигается вниз по мере поступления данных. При чтении, страницы мапятся лениво, по мере необходимости. Также группы таких страниц помещаются во внутренний LRU кэш. QuestDB старается быть эффективной с памятью. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 13:53 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
bluestreakПо поводу доступа, он действительно только через memory mapped file. То есть Durability отсутствует как класс. Isolation, похоже, тоже. Как и собственно транзакции. То есть это FwMAS с поддержкой сети. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 14:06 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov bluestreakПо поводу доступа, он действительно только через memory mapped file. То есть Durability отсутствует как класс. Isolation, похоже, тоже. Как и собственно транзакции. То есть это FwMAS с поддержкой сети. Это ближе к Hadoop. Один раз сохранил - и 3.14дец. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 14:22 |
|
QuestDB - новая СУБД для хранения time series данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Вы прямо мировой чемпион по прыжкам к умозаключениям? Неленивый человек может найти «commit» в репо ра минуту. Durability будет конфигурируемый — msync() синхронный, асинхронный и отсутствующий. Данные полностью атомичны и все чтения полностью изолированы. Причём размер транзакции не ограничен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 14:32 |
|
|
start [/forum/topic.php?fid=35&msg=39898575&tid=1552167]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 255ms |
total: | 387ms |
0 / 0 |