You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(nodedb): use system-time axis for bitemporal retention
Bitemporal partitions now evaluate retention staleness against
`max_system_ts` (the maximum `_ts_system` value written to the
partition) rather than `max_ts` (event-time). This prevents
late-arriving backfill rows from being prematurely expired when their
event-time predates the retention cutoff but their write-time does not.
Non-bitemporal partitions are unaffected: `max_system_ts` defaults to 0
and the existing `max_ts` path is taken.
Changes:
- Add `max_system_ts` field to `PartitionMeta` (serde default = 0 for
backward-compatible deserialization)
- Populate `max_system_ts` on memtable drain by scanning the
`_ts_system` column; propagate through segment writer, O3 merge, and
partition merge
- Add `is_bitemporal()` / `ts_system_idx()` helpers to `ColumnarSchema`
and `ColumnarMemtableSchema`
- Thread `bitemporal: bool` into `find_expired` and the compaction /
retention-scan paths in the executor
- Skip upsert-tombstone in columnar write for bitemporal collections so
every version of a PK is preserved for `AS OF` queries
0 commit comments