KDB Tickerplant Setup / Architecture с механизмом сопоставления ставок - PullRequest
0 голосов
/ 12 июня 2018

У меня работает стандартная установка тикерплана (процесс имитации данных выдвигается на тикерплан, тикерплан подписывается RDB, сбрасывает EoD на HDB, шлюз обрабатывает RDB и HDB и т. Д.).

Теперь я хочу заменить процесс проверки данных механизмом сопоставления ставок.Для этого процесса необходим доступ в реальном времени к таким таблицам, как котировки, ордера, сделки и дополнительные таблицы пользовательских / учетных данных.

Мои вопросы теперь следующие:

  • Iхотите поместить таблицы, необходимые для участника торгов, в RDB и заполнить их через .u.upd через тикерплан.Это правильный подход?Или я должен хранить таблицы локально для процесса bidmatcher?
  • Безопасно ли запрашивать в RDB данные из системы сопоставления ставок (синхронно)?
  • Если я помещаю таблицы в RDB и заполняю их через тикер, то как я могу управлять upserts?.u.upd только вставляет, и я не могу найти пример реализации, которая upsert или delete -совместима.

1 Ответ

0 голосов
/ 12 июня 2018

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

Использование синхронных запросов к RDB будет работать, поскольку это только внутридневные данные, но если вы храните огромные объемы данных в день, вы можете заметить, что RDB временно блокируется при выполнении вашего запроса.Альтернативой может быть использование асинхронных запросов, таким образом он не блокируется на дескрипторе, так как ожидает возврата результата.

Если данные передаются на тикерплан, тогда внутри него должна быть определена схема, которая будетзатем читайте в свой RDB, чтобы схема была там же.Если вы используете таблицу с ключами в качестве записи, то в качестве первого столбца после того, как столбец с ключами ожидается, что тикерплан будет представлять собой временной столбец, произойдет сбой.В типичной настройке kdb + tick функция .u.upd использует 16=type first first x;, который проверяет столбец после ключевого столбца, если запись является таблицей с ключами, то происходит сбой, когда она достигает (enlist(count first x)#a),x в той же функции.Чтобы обойти это, вам нужно будет изменить функцию обновления, чтобы включить проверку «type first x = 99h».Таким образом, он может ответвляться и обрабатывать загрузку соответствующим образом для ваших данных.

...