Live data from Hacker News

Building a distributed time-series database on PostgreSQL

blog.timescale.com

1–10 of 98 posts

Re: Building a distributed time-series database on PostgreSQL

#2
Are you afraid the Postgres tuple-at-a-time iterator architecture is going to be limiting for your long term performance optimizations?

Presumably the custom operators you’ve implemented in your query plan can push projection and predicates down to a more efficient architecture without so many indirect function calls / branches / etc, but once you get up past that, aren’t you back in iterator land?

Re: Building a distributed time-series database on PostgreSQL

#6
post #3

What are some use cases for a time-series database?

Pretty much anything that is naturally generating time series data, and when your queries are going to be about things-over-time in relationship to each other.

Think automotive monitoring (external or internal), algorithmic trading, retail monitoring, aviation, etc.

Re: Building a distributed time-series database on PostgreSQL

#7
post #2

Are you afraid the Postgres tuple-at-a-time iterator architecture is going to be limiting for your long term performance optimizations? Presumably the custom operators you’ve implemented in your query plan can push projection and predicates down to a more efficient architecture without so many indirect function calls / branches / etc, but once you get up past that, aren’t you back in iterator land?

We actually haven't been running against any limits here. One thing to keep in mind is that postgres remote-fetch operations aren't tuple-at-a-time, so this shouldn't be a bottleneck for our multi-node operations.

Re: Building a distributed time-series database on PostgreSQL

#8
post #2

Are you afraid the Postgres tuple-at-a-time iterator architecture is going to be limiting for your long term performance optimizations? Presumably the custom operators you’ve implemented in your query plan can push projection and predicates down to a more efficient architecture without so many indirect function calls / branches / etc, but once you get up past that, aren’t you back in iterator land?

We actually haven't been running against any limits here. One thing to keep in mind is that postgres remote-fetch operations aren't tuple-at-a-time, so this shouldn't be a bottleneck for our multi-node operations.

Have you done any analysis of your per-core scan rates for simple aggregations like sum/count + group by with a reasonably large cardinality key? Or has anyone published a benchmark you trust on queries of that variety?

An example would be TPC-H Q1, which is a little weak on the group by cardinality, but is good for testing raw aggregation performance.

Re: Building a distributed time-series database on PostgreSQL

#9
Timescale has improved greatly since first released and is pretty solid on a single-node.

Wish they would tone down the hype in the blog posts though, a shard/chunk/partition are all the same. How you define the splits is completely arbitrary and every database uses its own algorithm, including multiple levels.

Post reply on HN