Skip to content

Timeseries: discover time buckets through listing segments - #507

Merged
cadonna merged 1 commit into
opendata-oss:mainfrom
cadonna:timeseries_bucket_discovery
Jul 13, 2026
Merged

Timeseries: discover time buckets through listing segments #507
cadonna merged 1 commit into
opendata-oss:mainfrom
cadonna:timeseries_bucket_discovery

Conversation

@cadonna

@cadonna cadonna commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Discovers time buckets through listing segments instead of consulting the BucketList record. The BucketList record is removed from TimeSeries.

Test Plan

unit tests

Checklist

  • Tests added/updated
  • cargo fmt and cargo clippy pass
  • Documentation updated (if applicable)

SlateDB 0.14 tracks per-segment LSM state (RFC-0024) and requires a
matching segment extractor when opening a DbReader, so buckets can be
discovered from the segment list instead of a dedicated record.

- Wire TimeseriesSegmentExtractor into the timeseries Db and DbReader
  builders. Bucket discovery now projects DbStatus::list_segments()
  (manifest plus unflushed memtable segments) through parse_bucket
  instead of reading the BucketList record. Visibility timing is
  unchanged: a bucket becomes queryable at its first delta apply,
  exactly when the BucketList merge used to land. StorageSnapshot
  captures the writer's segment list at creation time, since
  DbSnapshot exposes no DbStatus.
- Remove the BucketList machinery end to end: the serde record type
  (0x01 now reserved), the merge-operator arm, the flusher announce
  phase and its lookup metric, the cache-warmer key warm, and the
  coalesce-on-open pass.
- Rename parse_bucket_record_type to parse_time_bucket_and_record_type
  and drop the unused write_bucket_scoped_prefix helper.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cadonna
cadonna force-pushed the timeseries_bucket_discovery branch from c79466e to da4b262 Compare July 13, 2026 20:30
@cadonna
cadonna merged commit 65ba205 into opendata-oss:main Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant