roq-journal¶
$ mamba install \
--channel https://roq-trading.com/conda/stable \
roq-journal
$ mamba install \
--channel https://roq-trading.com/conda/unstable \
roq-journal
roq-journal
¶
$ roq-journal [FLAGS]
Description¶
roq-journal
supports distributed persistence of order requests and updates.
Listens for multicast
OrderAck
andOrderUpdate
messages.Appends messages to a journal on the local filesystem.
Inserts messages into relevant database tables.
Acknowledges receipt by sending a UDP message to the original sender of the received message.
Replays the local journal after restart.
Any number of roq-journal
instances can be deployed to lower the round-trip latency and to reduce the risk of data loss.
The local journal can be synchronized before or after acknowledging receipt, or not at all.
Note
roq-journal
was designed to support low-latency persistence of client order-id mappings
(routing_id
).
This is specifically required to support the OrderCancelRequest <F>
and
OrderCancelReplaceRequest <G>
FIX messages.
Flags¶
$ roq-journal --help
--name
Service name
--cache_dir
(roq-cache
)Cache directory (path)
--cache_retain_for
(48h
)Retain cache files for this period
--cache_datasync
(false
)Enable filesystem sync?
--cache_datasync_before_respond
(false
)Issue filesystem sync before responding? (depends on –cache_datasync)
--multicast_port
Multicast port
--multicast_address
Multicast address
--local_interface
Local interface
--buffer_size
(2048
)Buffer size
--database_uri
(http://localhost:8123
)Database URI
--database_username
Database username
--database_password
Database password
--database_name
Database name
--database_create_if_not_exists
(true
)Create database?
--database_request_timeout
(5s
)Database request timeout
--database_ping_freq
(30s
)Database ping frequency
--database_ping_path
(/ping
)Database ping path
--database_encode_buffer_size
(16777216
)Encode buffer size (bytes)
--database_decode_buffer_size
(1048576
)Decode buffer size (bytes)
--database_retain_for
(720h
)Retain orders for this period
--database_purge_freq
Purge orders frequency
--database_retry_freq
(2s
)Request retry frequency
--loop_cpu_affinity
(-1
)CPU affinity for the main dispatch thread
--loop_sleep
(500ns
)Sleep period for the main dispatch thread
--loop_timer_freq
(2500ns
)Timer frequency
--service_listen_address
Listen address
--service_url_prefix
URL prefix
--service_session_timeout
(5s
)Session time-out period
roq-journal-admin
¶
$ roq-journal-admin [FLAGS] COMMAND
Description¶
roq-journal-admin
is a database maintenance tool
Create database and tables.
Purge unused request and order history.
Repair the database following a failed purge request.
Flags¶
$ roq-journal-admin --help
--database_uri
(http://localhost:8123
)Database URI
--database_username
Database username
--database_password
Database password
--database_name
Database name
Commands¶
CREATE
Create the database (if not exists).
Create the tables (if not exists).
PURGE
Remove final orders from the
order_ack
andorder_update
tables.Retain latest request version from the
order_ack
table.Retain latest order version from the
order_update
table.
Warning
Although attempts are made to deal with errors and roll-backs, this is an error-prone operation due to ClickHouse not supporting transactions. ALWAYS make sure you create a BACKUP before running this command!
REPAIR
Attempt to repair the database following a failed
PURGE
request.
Warning
There are edge-cases where it is not possible to repair the database.