Timelaketimelake
DocsBenchmarksRoadmapSpecContribute
Apache 2.0 ·
Roadmap

DoneIn progressPlanned

Tables and storage

Done:1. Iceberg tablesDone:2. CommitsDone:3. Object-store catalogIn progress:4. Time-series table contractIn progress:5. File layout and encodingsIn progress:6. Last-value indexDone:7. One-request table state and version checksDone:8. Table format versions and upgradesDone:9. SettingsPlanned:10. Supplemental timestamps

Writing

Done:11. AppendsDone:12. Late data and dedup on readDone:13. Writes from WebAssemblyPlanned:14. Hot tier and seconds-fresh readsPlanned:15. BackfillIn progress:16. Import and migrationPlanned:17. DeletesPlanned:18. GDPR erasure

Maintenance

Done:19. CompactionIn progress:20. Maintenance runs, retention and expiry

Reading

In progress:21. Timelake readerDone:22. Block cacheDone:23. Filter pushdownDone:24. Pruning with long IN listsDone:25. Newest-first scansDone:26. Scans in series orderDone:27. Materialized rollups

SQL functions

In progress:28. Function libraryDone:29. Time buckets and gap fillingDone:30. Signal aggregatesDone:31. Downsampling with m4

Integrations

Planned:32. REST catalogPlanned:33. DuckDB extensionPlanned:34. Snowflake connectionPlanned:35. Multitenancy

Services

Planned:36. Ingestion and rulesPlanned:37. Data to eventsPlanned:38. Static read modelsPlanned:39. Computed metricsPlanned:40. Agent access with permission setsPlanned:41. Device syncPlanned:42. Edge gatewayPlanned:43. Server mode

Benchmarks

In progress:44. Benchmark harness: timebenchIn progress:45. Industrial IoT benchmarkPlanned:46. Agent benchmark

Background

ArchitectureDeployment and cost modelEmbedded engine: DataFusionLandscape and positioningLicense and open corePurpose and requirementsReleases
TimelaketimelakeThe open time-series lakehouse.
v0 · Apache 2.0 · Contribute · GitHubBuilt on Apache Arrow, Apache DataFusion, Apache Parquet, and Apache Iceberg.
DocsBenchmarksRoadmapSpecContribute

Spec 25 · Reading

Newest-first scans

DoneUpdated 2026-10-19View on GitHub
Versions
0.7.0, unreleased
Roadmap
Fast first queries on object storage
Related
21. Timelake reader, 27. Materialized rollups

Summary

ORDER BY time DESC LIMIT k, and the k newest buckets of a GROUP BY time_bucket(…), read time partitions newest first and stop once older partitions can't hold a row of the answer. "The latest readings before a time" and "the last few buckets" stop scanning the whole table.

Design

  • Setting newest-first (on by default; table and session).
  • Rows (0.7.0, #72): ORDER BY time DESC LIMIT k reads time partitions newest first, in one output partition, and stops once it holds k rows newer than everything left. IIoT, 30 days: the 100 newest readings before a past time 298 → 38 ms; TSBS IoT on local S3: the 10 newest readings 392 → 320 ms.
  • Buckets (2026-10-19): the k newest buckets of GROUP BY time_bucket(…) ORDER BY bucket DESC LIMIT k (one aggregate, no HAVING): older time partitions are skipped once they can't hold a row of those buckets. The scan's partitions run in parallel under the aggregate and share what they've seen; rows not newer than the k-th bucket seen are skipped. TSBS DevOps groupby-orderby-limit 254 → 115 ms. A first version with one output partition was slower (705 ms).

Open questions and issues

  • #72 Query: newest-first pruning for latest-before-T and ORDER BY time DESC LIMIT

History

  • 2026-10-18: rows built and measured (P8, #72)
  • 2026-10-19: buckets; moved from SPEC.md into spec 20, then into this spec when the specs were regrouped one per feature.