VLink  2.0.0
A high-performance communication middleware
vlink::BagWriter::Config Struct Referencefinal

Recording behaviour, split policy and resource budgets. More...

#include <bag_writer.h>

Collaboration diagram for vlink::BagWriter::Config:

Public Member Functions

 Config ()
 

Public Attributes

std::string tag_name
 Optional tag stored in the bag header. More...
 
CompressType compress {CompressType::kCompressNone}
 Compression codec selector. More...
 
bool wal_mode {false}
 Enable SQLite WAL for crash resilience. More...
 
bool enable_limit {false}
 When true, evict oldest rows at the row/byte limit. More...
 
bool split_name_by_time {false}
 Append a timestamp suffix to split filenames. More...
 
bool sync_mode {false}
 Disable periodic cache-flush timer for VDB writes. More...
 
bool optimize_on_exit {false}
 Run VACUUM/OPTIMIZE while closing the file. More...
 
int64_t max_row_count {5'000'000'000LL}
 SQLite row cap; either evicts or fails new writes. More...
 
int64_t max_bytes_size {1024LL * 1024LL * 1024LL * 512LL}
 SQLite byte cap; either evicts or fails new writes. More...
 
int64_t split_by_size {1024LL * 1024LL * 1024LL * 1LL}
 Split threshold in bytes (0 disables). More...
 
int64_t split_by_time {0}
 Split interval in milliseconds (0 disables). More...
 
int64_t begin_time {0}
 Anchor (ms) used by time-based splits. More...
 
int64_t cache_size {1024LL * 1024LL * 4}
 VDB commit chunk / MCAP chunk size in bytes. More...
 
int64_t compress_start_size {128}
 Minimum payload size eligible for compression. More...
 
int64_t compress_level {3}
 Codec-specific compression level. More...
 
int64_t max_task_depth {20000}
 Maximum pending writes in the loop queue. More...
 
int64_t max_memory_size {1024LL * 1024LL * 1024LL * 2LL}
 Maximum in-memory cache size in bytes. More...
 
int64_t start_timestamp {0}
 Override for the wall-clock start timestamp (ms). More...
 
std::unordered_set< std::string > ignore_compress_urls
 URLs whose payloads must never be compressed. More...
 

Detailed Description

Recording behaviour, split policy and resource budgets.

Sizes are expressed in bytes and durations in milliseconds unless explicitly stated.

Constructor & Destructor Documentation

◆ Config()

vlink::BagWriter::Config::Config ( )
inline

Member Data Documentation

◆ begin_time

int64_t vlink::BagWriter::Config::begin_time {0}

Anchor (ms) used by time-based splits.

◆ cache_size

int64_t vlink::BagWriter::Config::cache_size {1024LL * 1024LL * 4}

VDB commit chunk / MCAP chunk size in bytes.

◆ compress

CompressType vlink::BagWriter::Config::compress {CompressType::kCompressNone}

Compression codec selector.

◆ compress_level

int64_t vlink::BagWriter::Config::compress_level {3}

Codec-specific compression level.

◆ compress_start_size

int64_t vlink::BagWriter::Config::compress_start_size {128}

Minimum payload size eligible for compression.

◆ enable_limit

bool vlink::BagWriter::Config::enable_limit {false}

When true, evict oldest rows at the row/byte limit.

◆ ignore_compress_urls

std::unordered_set<std::string> vlink::BagWriter::Config::ignore_compress_urls

URLs whose payloads must never be compressed.

◆ max_bytes_size

int64_t vlink::BagWriter::Config::max_bytes_size {1024LL * 1024LL * 1024LL * 512LL}

SQLite byte cap; either evicts or fails new writes.

◆ max_memory_size

int64_t vlink::BagWriter::Config::max_memory_size {1024LL * 1024LL * 1024LL * 2LL}

Maximum in-memory cache size in bytes.

◆ max_row_count

int64_t vlink::BagWriter::Config::max_row_count {5'000'000'000LL}

SQLite row cap; either evicts or fails new writes.

◆ max_task_depth

int64_t vlink::BagWriter::Config::max_task_depth {20000}

Maximum pending writes in the loop queue.

◆ optimize_on_exit

bool vlink::BagWriter::Config::optimize_on_exit {false}

Run VACUUM/OPTIMIZE while closing the file.

◆ split_by_size

int64_t vlink::BagWriter::Config::split_by_size {1024LL * 1024LL * 1024LL * 1LL}

Split threshold in bytes (0 disables).

◆ split_by_time

int64_t vlink::BagWriter::Config::split_by_time {0}

Split interval in milliseconds (0 disables).

◆ split_name_by_time

bool vlink::BagWriter::Config::split_name_by_time {false}

Append a timestamp suffix to split filenames.

◆ start_timestamp

int64_t vlink::BagWriter::Config::start_timestamp {0}

Override for the wall-clock start timestamp (ms).

◆ sync_mode

bool vlink::BagWriter::Config::sync_mode {false}

Disable periodic cache-flush timer for VDB writes.

◆ tag_name

std::string vlink::BagWriter::Config::tag_name

Optional tag stored in the bag header.

◆ wal_mode

bool vlink::BagWriter::Config::wal_mode {false}

Enable SQLite WAL for crash resilience.


The documentation for this struct was generated from the following file: