Add mdformat pre-commit hook
This commit is contained in:
10
config.md
10
config.md
@@ -101,18 +101,22 @@ WeaselDB uses the `toml11` library for configuration parsing with robust error h
|
||||
These configuration parameters directly affect server and API behavior:
|
||||
|
||||
**Server Performance:**
|
||||
|
||||
- **`io_threads`**: Controls parallelism for both accepting new connections and I/O processing. Should typically match CPU core count for optimal performance
|
||||
- **`event_batch_size`**: Larger batches reduce syscall overhead but may increase latency under light load
|
||||
- **`max_connections`**: Prevents resource exhaustion by limiting concurrent connections
|
||||
|
||||
**Request Handling:**
|
||||
|
||||
- **`max_request_size_bytes`**: Determines when `/v1/commit` returns `413 Content Too Large`
|
||||
- **`min_request_id_length`**: Validates `request_id` fields in `/v1/commit` requests for sufficient entropy
|
||||
|
||||
**Request ID Management:**
|
||||
|
||||
- **`request_id_retention_*`**: Affects availability of data for `/v1/status` queries and likelihood of `log_truncated` responses
|
||||
|
||||
**Subscription Streaming:**
|
||||
|
||||
- **`max_buffer_size_bytes`**: Controls when `/v1/subscribe` connections are terminated due to slow consumption
|
||||
- **`keepalive_interval_seconds`**: Frequency of keepalive comments in `/v1/subscribe` streams
|
||||
|
||||
@@ -121,6 +125,7 @@ These configuration parameters directly affect server and API behavior:
|
||||
The configuration system includes comprehensive validation with specific bounds checking:
|
||||
|
||||
### Server Configuration Limits
|
||||
|
||||
- **`port`**: Must be between 1 and 65535
|
||||
- **`max_request_size_bytes`**: Must be > 0 and ≤ 100MB
|
||||
- **`io_threads`**: Must be between 1 and 1000
|
||||
@@ -128,26 +133,31 @@ The configuration system includes comprehensive validation with specific bounds
|
||||
- **`max_connections`**: Must be between 0 and 100000 (0 = unlimited)
|
||||
|
||||
### Commit Configuration Limits
|
||||
|
||||
- **`min_request_id_length`**: Must be between 8 and 256 characters
|
||||
- **`request_id_retention_hours`**: Must be between 1 and 8760 hours (1 year)
|
||||
- **`request_id_retention_versions`**: Must be > 0
|
||||
|
||||
### Subscription Configuration Limits
|
||||
|
||||
- **`max_buffer_size_bytes`**: Must be > 0 and ≤ 1GB
|
||||
- **`keepalive_interval_seconds`**: Must be between 1 and 3600 seconds (1 hour)
|
||||
|
||||
### Cross-Validation
|
||||
|
||||
- Warns if `max_request_size_bytes` > `max_buffer_size_bytes` (potential buffering issues)
|
||||
|
||||
## Configuration Management
|
||||
|
||||
### Code Integration
|
||||
|
||||
- **Configuration Structure**: Defined in `src/config.hpp` with structured types
|
||||
- **Parser Implementation**: Located in `src/config.cpp` using template-based parsing
|
||||
- **Default Values**: Embedded as struct defaults for compile-time initialization
|
||||
- **Runtime Usage**: Configuration passed to server components during initialization
|
||||
|
||||
### Development Guidelines
|
||||
|
||||
- **New Parameters**: Add to appropriate struct in `src/config.hpp`
|
||||
- **Validation**: Include bounds checking in `ConfigParser::validate_config()`
|
||||
- **Documentation**: Update this file when adding new configuration options
|
||||
|
||||
Reference in New Issue
Block a user