“I am usually quite conservative when it comes to choosing new technologies for Sentinel. Timescale was an exception...
...Timescale makes it possible for us to continue scaling using Postgres, and we expect to be able to continue using this technology stack for a long time. Timescale's current developments are in-line with some of the scaling challenges we anticipate in the future and this gives us confidence that we can rely on their database expertise as these challenges arise.”- Pedro Kostelec, CTO
Sentinel Marine Solutions develops and manufactures software and hardware for monitoring and controlling modern boat systems. They offer solutions for boat and fleet owners, as well as original equipment manufacturers (OEMs). Sentinel’s technology is designed to simplify boat maintenance, prevent unexpected damage, and provide a means for owners to connect and interact with their boats.
Sentinel’s sophisticated monitoring system is able to collect data on metrics such as real-time location, remaining range and state of charge, travel distance, fuel levels, and much more. Through their fleet management and business operations, they expect to surpass 5TB of data over time. Sentinel requires a scalable solution that enables them to view fleet-specific information alongside customer and business data.
The fleet of boats Sentinel manages has grown rapidly since 2017. As a result, they started experiencing degraded performance when writing sensor data into their database, PostgreSQL. Additionally, their customers started encountering slow loading times when trying to access historical data.
As a temporary solution, Sentinel improved some performance issues by tuning PostgreSQL’s configuration parameters and adjusting their application code. However, they knew it was only a matter of time until the issues became severe again and they needed to find a permanent solution.
They started researching new approaches to managing their time-series data and one of the most promising solutions seemed to be table partitioning. However, after testing trigger-based partitioning solution on production loads, they found that it failed to meet their performance expectations. For example, the triggers introduced too much overhead when inserting data, and creating partitions in advance or automatically was yet another thing to manage.
Shortly after, Sentinel’s team learned about TimescaleDB and thought it could solve their exact problem. TimescaleDB uses similar mechanisms (partitioning/chunking) to what Sentinel was trying to manually introduce in vanilla PostgreSQL. TimescaleDB’s architecture is composed of hypertables which are actually an abstraction of many individual tables called chunks. Internally, TimescaleDB automatically creates chunks by partitioning the hypertable’s data into one or multiple dimensions.
Since TimescaleDB solves the technical challenges Sentinel was facing and attempting to solve on their own, their team is able to focus the bulk of their efforts on delivering better value for their customers.
Sentinel deployed TimescaleDB in to production with version 0.9 in 2017. Following their initial deployment, the team has upgraded TimescaleDB several times to benefit from performance improvements and new features. Throughout this time, Sentinel has also seen tremendous gains in developer productivity, thanks to the PostgreSQL foundation of TimescaleDB.
Since TimescaleDB is built as an extension to PostgreSQL, it was very easy for the Sentinel team to get up and running. Additionally, because TimescaleDB supports full SQL, Sentinel’s team was able to continue using SQL-based analytical queries which eliminated the need for them to learn a new query language.
The Sentinel backend is a Django application that makes heavy use of PostgreSQL’s PostGIS extension for storing and processing geospatial data. Because TimescaleDB is based on PostgreSQL, the Sentinel team didn’t have to throw out any of their existing code.
The Sentinel backend is a Django application that makes heavy use of PostgreSQL’s PostGIS extension for storing and processing geospatial data.
Because TimescaleDB is based on PostgreSQL, the Sentinel team didn’t have to throw out any of their existing code.
As part of their fleet management solution, Sentinel enables their customers to see their account and fleet information alongside their fleet management metrics. By selecting TimescaleDB, Sentinel can JOIN their relational data (customer and business information), time-series data (fleet management), and geospatial data (fleet location) all within a single system. This eliminates the need to store data in various places and reduces the operational complexities associated with managing multiple databases.
Additionally, the combination of fast data processing made possible by TimescaleDB, and the power of PostGIS spatial functions, help them to quickly test and iterate on new ideas, and then bring them to production.
TimescaleDB enables Sentinel’s team to be more productive by using SQL-based analytical queries and evolve their architecture around Postgres. Sentinel depends on TimescaleDB’s built-in functions to give them the performance needed to deliver first-class data intensive interfaces and services to their users. Finally, TimescaleDB’s flexible and scalable architecture enables Sentinel to combine relational business data with time-series data, so they can deliver unique customer value and insight.