Since announcing our first release candidate in September, Timescale’s engineering team has merged over 50 PRs to harden the database, improving stability and ease-of-use.
Today, we are thrilled to announce that TimescaleDB 1.0 is now production ready.
First introduced several weeks ago in an initial release candidate, TimescaleDB 1.0 is the result of more than two years of dedicated effort. Our engineering team, which started with a core of my former PhD students and postdocs out of Princeton University, now encompasses a team of highly experienced engineers across the U.S. and Europe.
While TimescaleDB itself has been production ready for several months now, with its official 1.0 release TimescaleDB is now the first enterprise-ready time-series database to support full SQL and scale. This release builds upon the open source momentum that we have seen so far, with over 1M downloads and production deployments at Comcast, Cray, Cree (and more).
Thanking our team and our contributors
To get to 1.0, our engineering team has worked diligently over the past several weeks to merge over 50 PRs to harden the database, improving stability and ease-of-use.
Our journey to TimescaleDB 1.0 also would not have been possible without a long list of supporters, who have contributed both code, reports, and feedback. These include GitHub users: @did-g, @kev009, @mx781, @HeikoOnnebrink, @znbang, @timolson, @alanhamlett, @oldgreen, @jesperpedersen, @skebanga, @p-alik, @mx781, @EvanCarroll, @Ngalstyan4 @hjsuh18, @fvannee, @fmacelw, @soccerdroid, @mfuterko, @linba708, @phlsmk, @virakothari, @mmouterde, @mfuterko, @gumshoes, @manigandham, @wallies, @cjrh, @thaxy, @bertmelis, @The-Alchemist, @chaintng, @jgrandstrom, @saosebastiao, @jbylund, @Anthares, @oldgreen, @maksm90, @Rashid987, @haohallo, @LonghronShen, @devereaux, @carlospeon, @simPod, @ryan-shaw, @camperterson, @jwdeitch, @vjpr, @sztanpet, @shaneodonnell, @jgraichen, @nathansgreen, @jonmd, @jwdeitch, @ziXet, @djk447, @qlandman, @min-mwei, @raycheung, @meotimdihia, @noyez, @andrew-blake, and @yadid.
Installing TimescaleDB 1.0If you’re ready to get started, you can download and install TimescaleDB here (installation instructions). Once you’re ready for production and are looking for deployment assistance and production-level SLAs, we also offer enterprise support.If you ever have any questions, please don’t hesitate to send us an email or join our 1500+ member-strong Slack community.Also, our engineering team is rapidly growing, both in our NYC and Stockholm offices and with other remote engineers spread across the US and Europe. If these are the types of technical challenges that excite you, then we’d love to hear from you.
What’s new in 1.0 since RC-1
Broad usability improvements
Time-series manipulation: Our 1.0 release has a number of usability improvements to time-series manipulation functions. These include an explicit arbitrary datetime with which to start time bucketing for common aggregation functions (e.g., September 1), as well as aligning weeks starting from Monday to respect the ISO standard.
Elastically scaling hypertables across multiple disks: Additionally, we’ve added cleaner management of multiple tablespaces to allow hypertables to elastically grow across many disks. And we’ve made better information available about the state of hypertables, their dimensions, and their chunks when creating and managing data.
Better Windows, FreeBSD, NetBSD support: When it comes to usability, it’s important to have robust cross-operating system availability. This release added improvements for supporting Windows, FreeBSD, and NetBSD.
The foundation for background job automation and scheduling
One of the biggest features recently shipped, and hardened through our 1.0 release process, is the foundation for a database scheduling framework that manages background jobs.
Building and shipping this scheduling framework took several months of dedicated effort. One of the main challenges was that PostgreSQL, which underlies TimescaleDB, is architected to support multiple logical databases running within a single instance of PostgreSQL (with each database able to have its own installed extension). Because TimescaleDB is implemented as an extension (and thus, a single PostgreSQL instance can have multiple, different versions of TimescaleDB running), we had to ensure that this scheduling framework and job launcher would operate correctly even in this multi-versioned environment.
Upcoming releases of TimescaleDB will take advantage of this foundation with more automation around key ease-of-use capabilities like automatic data aggregation, retention, and archiving. They will also include automated data management techniques for improving query performance, such as non-blocking reclustering and reindexing of older data.
Increased database hardening and testing
Robustness and resilience in an enterprise-ready database is the top priority. This has always been an area where TimescaleDB has outshined other time-series databases, especially ones that were built from scratch, and is something that we continually focus on. This latest update more elegantly handles edge cases related to schema and tablespace modifications, provides cleaner permissions for backup/recovery in templated databases, and includes additional test coverage.
Building the open-source monitoring stack: Native support for Grafana and Prometheus
While not strictly part of this release, in parallel to making 1.0 production-ready we shipped a native query editor and support for TimescaleDB within Grafana. We also added capabilities for deploying TimescaleDB as the long-term store behind a Prometheus HA deployment. These improvements expand our ecosystem of compatible tools, which thanks to PostgreSQL is the largest of any time-series database. This ecosystem includes tools such as Tableau, Kafka, Apache Spark, Zabbix, PostGIS, PowerBI, ORMs, and many more.
Native Grafana visual query editor for TimescaleDB and PostgreSQL: Starting with Grafana v5.3, there is a new visual query editor for the PostgreSQL/TimescaleDB datasource, so that users don’t have to write SQL to access their data. Both the query editor and the underlying PostgreSQL datasource are contributions made by TimescaleDB engineers to the open-source Grafana community.
(More on how to use Grafana + TimescaleDB for time-series exploration on Grafana’s blog here.)
New capabilities for deploying TimescaleDB with Prometheus High-Availability (HA): A few months ago, we wrote a detailed tutorial on how to use TimescaleDB behind Prometheus for: scalable, durable long-term data storage; joining DevOps data with business data; query power and flexibility with SQL; operational ease including the ability to update and/or delete records; and better operational insights.
More recently, we released new capabilities to help with managing a high-availability Prometheus deployment. One of the main challenges in these deployments is synchronizing data, and in particular avoiding duplicated metrics, when there is a failover. To address this challenge, we introduced leader election mechanism, using some of the concurrency control features native to PostgreSQL. If you are using Prometheus in an HA setting, I would encourage you to take a look at our tutorial and the underlying prometheus-postgresql-adapter.
Only the beginning…
But this 1.0 release is only the beginning for Timescale, and we continue to bring easier, more powerful time-series analytics and insights to users.So look forward to more announcements over the coming year. In the meantime, you can get started by downloading and installing TimescaleDB 1.0, inquiring about our enterprise-grade support and assistance, or joining our 1500+ member-strong Slack community. And if you are interested in helping us build the next great open-source company, come talk with us.
Like this post? Please recommend and/or share. Want to stay updated with all things Timescale? Sign up for our mailing list below.