Usage¶
Open and Append Records¶
from sdsavior import SDSavior
rb = SDSavior("data.ring", "data.meta", 8 * 1024 * 1024)
rb.open()
try:
rb.append({"event": "boot"})
rb.append({"event": "sample", "value": 123})
finally:
rb.close()
Context-manager usage is recommended:
with SDSavior("data.ring", "data.meta", 8 * 1024 * 1024) as rb:
rb.append({"ok": True})
Read Records¶
for seq, ts_ns, obj in rb.iter_records():
print(seq, ts_ns, obj)
Filter by sequence:
for seq, ts_ns, obj in rb.iter_records(from_seq=200):
...
Export JSONL¶
with SDSavior("data.ring", "data.meta", 8 * 1024 * 1024) as rb:
rb.export_jsonl("out/export.jsonl")
Durability Controls¶
fsync_meta=True(default): metadata isfsync'd after writes.fsync_data=False(default): data pages are notfsync'd on every append.recover_scan_limit_bytes=None(default): scan up to capacity during recovery.
Use fsync_data=True when stronger durability is required and throughput tradeoffs are acceptable.