TimescaleDB: Fast And Scalable Timeseries with Ajay Kulkarni and Mike Freedman - Episode 18
Feb 11, 2018
auto_awesome
Ajay Kulkarni and Mike Freedman, co-founders of TimescaleDB, discuss the origins and challenges of building a scalable time series database. They explain how TimescaleDB handles out-of-order data and infrequent sensor connections. They also share insights into marketing and business aspects, including the decision to release the code base as open source, future plans for the enterprise version, and the support and investment structure for the open source business model.
Timescale DB is a scalable time series database built on top of PostgreSQL, designed to efficiently manage and analyze large volumes of time series data.
Timescale DB complements existing solutions and is the only time series database built on a relational database, offering full SQL support and compatibility with existing tools and workflows.
The development of native scale-out capabilities for Postgres is in progress to increase total capacity and make scaling transparent and easier for time series data.
Deep dives
Introduction and Background
Ajay Kulkarni and Mike Friedman are introduced as the co-founders of Timescale DB, a scalable time series database built on top of PostgreSQL. They explain that Timescale DB was initially developed to help manage machine data and time series data generated by businesses. The founders discuss their roots in the IoT platform industry and their dissatisfaction with existing time series databases, which led them to create Timescale DB.
Advantages of Time Series Databases
Time series data is larger and more complex than traditional transactional data. Timescale DB solves the challenge of managing time series data by leveraging the scalability and reliability of PostgreSQL. This allows users to store, query, and analyze large volumes of time series data efficiently. The founders highlight the advantages of Timescale DB, such as its support for full SQL queries, integration with the PostgreSQL ecosystem, and its reliability. They also discuss the ability to scale storage elastically, making it a suitable option for both small devices and large installations.
Use Cases and Competition
Timescale DB can be used in various use cases, including IoT, finance, metrics monitoring, and geospatial data. The founders emphasize that Timescale DB complements existing solutions rather than replace them. They position Timescale DB as the only time series database built on a relational database, providing the benefits of full SQL support and a mature ecosystem. They mention that Timescale DB has attracted users from other time series databases due to its reliability and compatibility with existing tools and workflows.
Building Native Scale Out and Support with Postgres
One important feature that the podcast discusses is the development of native scale out capabilities for Postgres. This would allow for multiple primaries that increase total capacity, with built-in support for scalability. The goal is to make this scaling process transparent and easier compared to using third-party extensions. This improvement aligns with the broader vision of tackling the specific challenges of time series data and providing a specialized database. While some have wondered about combining Time Scale and Citus for horizontal partitioning, the podcast reveals that there have been no tests or knowledge about their compatibility. It is suggested that using both may involve deploying them on different machines and utilizing a foreign data wrapper to query across the two databases.
Solving Time Series Problems with Simplicity and Performance
The podcast emphasizes the focus on making the management and analysis of time series data easy, efficient, and reliable. The use of a hyper table abstraction allows for a logical view that simplifies interactions with the data, regardless of its size or location. Time Scale automatically handles data storage, partitioning, and chunk creation, eliminating the need for manual intervention. The abstraction also ensures the transparent propagation of constraints and indexes across the underlying chunks. Additionally, the podcast highlights the optimization of indexes to improve insert performance by keeping them localized to each partition or chunk, avoiding the performance degradation that excessive indexing can cause. Ease of use, scalability, and adherence to full SQL standards are all prioritized in Time Scale's development and marketing efforts.
As communications between machines become more commonplace the need to store the generated data in a time-oriented manner increases. The market for timeseries data stores has many contenders, but they are not all built to solve the same problems or to scale in the same manner. In this episode the founders of TimescaleDB, Ajay Kulkarni and Mike Freedman, discuss how Timescale was started, the problems that it solves, and how it works under the covers. They also explain how you can start using it in your infrastructure and their plans for the future.
Preamble
Hello and welcome to the Data Engineering Podcast, the show about modern data infrastructure
When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at dataengineeringpodcast.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your data pipelines or trying out the tools you hear about on the show.
Go to dataengineeringpodcast.com to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
You can help support the show by checking out the Patreon page which is linked from the site.
To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
Your host is Tobias Macey and today I’m interviewing Ajay Kulkarni and Mike Freedman about Timescale DB, a scalable timeseries database built on top of PostGreSQL
Interview
Introduction
How did you get involved in the area of data management?
Can you start by explaining what Timescale is and how the project got started?
The landscape of time series databases is extensive and oftentimes difficult to navigate. How do you view your position in that market and what makes Timescale stand out from the other options?
In your blog post that explains the design decisions for how Timescale is implemented you call out the fact that the inserted data is largely append only which simplifies the index management. How does Timescale handle out of order timestamps, such as from infrequently connected sensors or mobile devices?
How is Timescale implemented and how has the internal architecture evolved since you first started working on it?
What impact has the 10.0 release of PostGreSQL had on the design of the project?
Is timescale compatible with systems such as Amazon RDS or Google Cloud SQL?
For someone who wants to start using Timescale what is involved in deploying and maintaining it?
What are the axes for scaling Timescale and what are the points where that scalability breaks down?
Are you aware of anyone who has deployed it on top of Citus for scaling horizontally across instances?
What has been the most challenging aspect of building and marketing Timescale?
When is Timescale the wrong tool to use for time series data?
One of the use cases that you call out on your website is for systems metrics and monitoring. How does Timescale fit into that ecosystem and can it be used along with tools such as Graphite or Prometheus?
What are some of the most interesting uses of Timescale that you have seen?
Which came first, Timescale the business or Timescale the database, and what is your strategy for ensuring that the open source project and the company around it both maintain their health?
What features or improvements do you have planned for future releases of Timescale?