-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
91 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
--- | ||
title: Client configuration string | ||
description: | ||
How to apply the configuration string used in multiple QuestDB clients. | ||
Demonstrates available options, caveats, and more. | ||
--- | ||
|
||
The QuestDB clients leverage a configuration string to pass common values. | ||
|
||
The presiding method will vary from client-to-client, but the string composition | ||
is consistent. | ||
|
||
Naturally, languages will each have their own approach, and these will be | ||
covered in the clients' documentation. | ||
|
||
This document provides a general overview. | ||
|
||
## Configuration string breakdown | ||
|
||
When using the configuration string, the following options are available: | ||
|
||
### HTTP transport authentication | ||
|
||
- `username` : Username for HTTP basic authentication. | ||
- `password` : Password for HTTP basic authentication. | ||
- `token` : Bearer token for HTTP authentication. | ||
|
||
### TCP transport authentication | ||
|
||
- `username`: Username for TCP authentication. | ||
- `token`: Token for TCP authentication. | ||
|
||
### Auto-flushing | ||
|
||
- `auto_flush` : Global switch for the auto-flushing behavior. Options are `on` | ||
or `off`. Defaults to `on`. | ||
- `auto_flush_rows` : The number of rows that will trigger a flush. This option | ||
is supported for HTTP transport only. Defaults to 75,000. | ||
- `auto_flush_interval` : The time in milliseconds that will trigger a flush. | ||
Defaults to 1000. This option is support for HTTP transport only. | ||
|
||
The TCP transport for a client automatically flushes when its buffer is full. | ||
The TCP transport utilizes a fixed-size buffer, and its maximum size is the same | ||
as the initial size. Thus, the option `init_buf_size` (see below) effectively | ||
controls the auto-flushing behavior of the TCP transport. | ||
|
||
### Buffer | ||
|
||
- `init_buf_size` : The initial size of the buffer in bytes. Default: 65536 | ||
(64KiB) | ||
- `max_buf_size` : The maximum size of the buffer in bytes. Default: 104857600 | ||
(100MiB) This option is support for HTTP transport only. TCP transport uses a | ||
fixed-size buffer and its maximum size is the same as the initial size. | ||
|
||
### HTTP Transport | ||
|
||
- `retry_timeout` : The time in milliseconds to continue retrying after a failed | ||
HTTP request. The interval between retries is an exponential backoff starting | ||
at 10ms and doubling after each failed attempt up to a maximum of 1 second. | ||
Default: 10000 (10 seconds) | ||
- `request_timeout` : The time in milliseconds to wait for a response from the | ||
server. This is in addition to the calculation derived from the | ||
`request_min_throughput` parameter. Default: 10000 (10 seconds) | ||
- `request_min_throughput` : Minimum expected throughput in bytes per second for | ||
HTTP requests. If the throughput is lower than this value, the connection will | ||
time out. This is used to calculate an additional timeout on top of | ||
`request_timeout`. This is useful for large requests. You can set this value | ||
to `0` to disable this logic. | ||
|
||
### TLS encryption | ||
|
||
To enable TLS, select the `https` or `tcps` protocol. | ||
|
||
The following options are available: | ||
|
||
- `tls_roots` : Path to a Java keystore file containing trusted root | ||
certificates. Defaults to the system default trust store. | ||
- `tls_roots_password` : Password for the keystore file. It's always required | ||
when `tls_roots` is set. | ||
- `tls_verify` : Whether to verify the server's certificate. This should only be | ||
used for testing as a last resort and never used in production as it makes the | ||
connection vulnerable to man-in-the-middle attacks. Options are `on` or | ||
`unsafe_off`. Defaults to `on`. | ||
|
||
## Other considerations | ||
|
||
- Please refer to the [ILP overview](/docs/reference/api/ilp/overview) for | ||
details about transactions, error control, delivery guarantees, health check, | ||
or table and column auto-creation. | ||
- The method `flush()` can be called to force sending the internal buffer to a | ||
server, even when the buffer is not full yet. |