TimescaleDB is an open-source SQL database designed for scalable time-series data. It enables both high ingest rates and real-time analysis queries. It scales by automatically partitioning Hypertable (a single continuous table) into two-dimensional (time and space) proper-sized chunks. Inserts to recent time intervals can be parallelized by placing chunks across cluster or disks based on a specified partition key. Complex queries can be optimized by leveraging metadata of each chunk.[05][06]
- Source Code
- https://github.com/timescale/timescaledb[02]
- @TimescaleDB
- Developer
- Country of Origin
- US
- Start Year
- 2017 [17]
- Project Type
- Commercial
- Derived From
- PostgreSQL
- License
- Apache v2
TimescaleDB is an open-source SQL database designed for scalable time-series data. It enables both high ingest rates and real-time analysis queries. It scales by automatically partitioning Hypertable (a single continuous table) into two-dimensional (time and space) proper-sized chunks. Inserts to recent time intervals can be parallelized by placing chunks across cluster or disks based on a specified partition key. Complex queries can be optimized by leveraging metadata of each chunk.[05][06]
History[05][07]
TimescaleDB is in active development by a team of PhDs. It is implemented as a Postgres extension. A single-node version is open-sourced in April, 2017 and a clustered version is currently in private beta release.
Concurrency Control[09][05]
It supports transactions on a per-server basis. Like PostgreSQL, it uses MVCC and Serializable Snapshot Isolation (SSI). It also supports explicit locking with deadlock detection.
Indexes[11][12][13]
It follows PostgreSQL, which has primary, secondary, derived, partial indexes. PostgreSQL supports B-tree, hash, GiST, SP-GiST, GIN, and BRIN indexes, and default is B-tree.
Isolation Levels[14]
It follows PostgreSQL, which supports Read uncommitted, Read committed, Repeatable read, Serializable. Read Committed is the default. They are implemented with MVCC. Note that PostgreSQL's Read Uncommitted is in fact Read Committed.
Query Interface[16]
Since TimescaleDB is based on Postgres, it supports Postgres' SQL and PL/pgSQL interfaces. They also provide support for PromQL through a Prometheus adapter.
System Architecture[05]
Like Postgres, TimeScale is a shared-everything DBMS. Each table is partitioned across all space and time intervals.
Citations
18 sources- Time-Series PostgreSQL at Petabyte Scale timescale.com
- GitHub - timescale/timescaledb: A time-series database for high-performance real-time analytics packaged as a Postgres extension · GitHub github.com
- Build with Tiger Data | Tiger Data Docs tigerdata.com
- TimescaleDB - Wikipedia wikipedia.org
- https://www.tigerdata.com/papers/timescaledb.pdf tigerdata.com
- https://www.tigerdata.com/docs/introduction tigerdata.com
- https://www.timescale.com/about.html timescale.com
- PostgreSQL: Documentation: 18: 28.5. WAL Configuration postgresql.org
- PostgreSQL: Documentation: 9.6: Concurrency Control postgresql.org
- PostgreSQL: Documentation: 9.6: PostgreSQL 9.6.24 Documentation postgresql.org
- PostgreSQL: Documentation: 18: CREATE INDEX postgresql.org
- PostgreSQL: Documentation: 18: 11.8. Partial Indexes postgresql.org
- PostgreSQL: Documentation: 18: 11.7. Indexes on Expressions postgresql.org
- PostgreSQL: Documentation: 9.6: Transaction Isolation postgresql.org
- https://www.compose.com/articles/postgresql-backups-and-everything-you-need-to-know compose.com
- https://promlabs.com/promql-compliance-test-results-timescaledb promlabs.com
- When Boring is Awesome | Tiger Data timescale.com
- https://github.com/timescale/timescaledb/commit/d3e9d045cbca58a4162d693ff34994d37e470749 github.com