[HN Gopher] Multi-node TimescaleDB is now free ___________________________________________________________________ Multi-node TimescaleDB is now free Author : manigandham Score : 367 points Date : 2020-05-22 15:15 UTC (7 hours ago) (HTM) web link (blog.timescale.com) (TXT) w3m dump (blog.timescale.com) | ttsda wrote: | A few days ago I went to your site to check if the distributed | stuff had arrived, good to see it's here! You're making | incredible software. | petr25102018 wrote: | Why should someone use TimescaleDB over ClickHouse for time- | series/analytics workloads? | valyala wrote: | If you use PostgreSQL, then it feels natural to add TimescaleDB | extension and start storing time series or analytical data | there alongside other relational data. | | If you need effectively storing trillions of rows and | performing real-time OLAP queries over billions of rows, then | it is better to use ClickHouse [1], since it requires 10x-100x | less compute resources (mostly CPU, disk IO and storage space) | than PostgreSQL for such workloads. | | If you need effectively storing and querying big amounts of | time series data, then take a look at VictoriaMetrics [2]. It | is built on ideas from ClickHouse, but it is optimized solely | for time series workloads. It has comparable performance to | ClickHouse, while it is easier to setup and manage comparing to | ClickHouse. And it supports MetricsQL [3] - a query language, | which is much easier to use comparing to SQL when dealing with | time series data. MetricsQL is based on PromQL [4] from | Prometheus. | | [1] https://clickhouse.tech/ | | [2] https://github.com/VictoriaMetrics/VictoriaMetrics | | [3] | https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/Metr... | | [4] https://medium.com/@valyala/promql-tutorial-for- | beginners-9a... | manigandham wrote: | The biggest reason is if you're using Postgres already as an | operational database and want some timeseries/analytical | capabilities. | | Originally Timescale wasn't much more than automatic | partitioning but with the new compression and scale out | features, along with the automatic aggregations and other | utilities, it can actually be pretty good overall performance. | It still won't get you the raw speed of Clickhouse but instead | you get all the functionality of Postgres (extensions, full SQL | support, JSON, etc) and can avoid big ETL jobs. | | Another PG extension is Citus which does scale-out automatic | sharding with distributed nodes but is more generalized than | Timescale for handing non-timeseries use-cases. Microsoft | offers Citus on Azure. | hagen1778 wrote: | That's a good question! Especially considering these | overwhelming benchmarks [1] made via Timescale TSBS [2]. | | [1] https://www.altinity.com/blog/clickhouse-for-time-series | | [2] https://github.com/timescale/tsbs | mfreed wrote: | Those 2018 benchmarks pre-dated many of the features we | released last year, including columnar compression, | continuous/real-time aggregates, etc. | valyala wrote: | Then it would be great posting updated benchmark results on | TimescaleDB blog. | k-rus wrote: | I've heard several points for not choosing ClickHouse and going | to TimescaleDB as an extension of PostgreSQL: | | 1. As it is already mentioned, if metadata (data about | timeseries) are already in PostgreSQL, then it is nice to stay | in the same database engine for querying data with joins of | both metadata and timeseries data, so there is no need to | implement integration of the two source in the application | layer. | | 2. Also related to the first item: advantage of already knowing | PostgreSQL API. ClickHouse has different management API, so it | is necessary to learn. While if you know PostgreSQL, you don't | need to learn new management API and only timeseries specific | API of TimescaleDB. | | 3. ClickHouse doesn't support to update and delete of existing | data in the same way as relation databases. | | Then the final decision still depends on your need. | ksec wrote: | Correct me if I am wrong. | | Timescale DB Core ( if there is such a thing ) is still available | under Apache 2.0. So nothing has changed. You can use it just | like any other open source project with no restriction. | | Timescale DB multi-node, originally not free and only available | in Timescale Cloud. Is now Freely available under the Timescale | License, a source-available license. | | Timescale DB multi-node and its license only forbid you to | provide TimescaleDB " _multi-node_ " itself-as-a-service. And | does not allow running it with _any_ changes that is not | upstreamed. You can still resell any software or services built | _on top_ of Timescale DB multi-node. | | Again, correct me if I am wrong. | akulkarni wrote: | Almost! | | Yes, TimescaleDB "core" - still Apache 2.0 | | TimescaleDB multi-node - was never before released, is now | released for free under the Timescale License, a source- | available license | | There are other capabilities (e.g., gap-filling) that are also | under the Timescale License, in addition to multi-node. | | The Timescale License prevents "TimescaleDB-as-a-service" | usage. | | You can still run software / services on top of Timescale | Licensed software, as long as you are not offering | "TimescaleDB-as-a-service". | | The Timescale License currently prevents running any | modifications in production, but we are actively debating | removing that restriction (as I mention elsewhere). | | Hope this helps. | anonymousDan wrote: | I think this is a good move. But from an enforcement perspective, | how realistic is it to prevent someone like Amazon from offering | a clone service (at least for backend components) and claiming | they wrote it from scratch? Is there any way to force them to | reveal the source for a particular service? | mrlala wrote: | I mean.. you think any major provider like Amazon is going to | just blatantly rip it off and sell it saying "We created this!" | | That's just not going to happen. | hagen1778 wrote: | Free multi-node TSDB solution sound cool! I wonder if someone | tried to use TimescaleDB as remote-storage for some heavy-loaded | Prometheus [1] setups. | | [1] https://prometheus.io/ | mfreed wrote: | Absolutely! | | We wrote one of the first remote backends to Prometheus that | supports both the remote_read/remote_write interface: | https://prometheus.io/docs/operating/integrations/#remote-en... | | Given how much interest we had using TimescaleDB for this, we | recently built and released (in beta) a new "full-stack" of | Prometheus + TimescaleDB + Grafana that comes fully configured | and "just works" out-of-the-box: | | - https://tsdb.co/prom-design-doc | | - https://github.com/timescale/timescale-prometheus | hagen1778 wrote: | This is so nice that design doc is opened for commenting - so | much good thoughts there. Thank you for sharing! | | After reading that I have a two questions: | | 1. While the integration with Prometheus sounds great it | still requires to run pretty complicated system behind it. | The distributed TimescaleDB could require a lot of knowledge | to operate and additionally a connector that could become a | one more point of failure. Have you considered to merge | connector into Timescale to make setup more simple and | robust? | | 2. Significant part of my everyday work is connected with | writing PromQL queries and I often check week/month ranges | while plotting timeseries. And I heard many complains that | remote-read might be very expensive when it touches a lot of | data. Do you consider possibility to support PromQL in | TimescaleDB to avoid remote-read bottleneck? | | Personally, I have a good experience working with Thanos and | VictoriaMetrics because of seamless usage experience - same | queries, same Grafana dashboards, same alert rules. Would | love to see more products that support the same standards for | timeseries data. | | Edited: formatting. | akulkarni wrote: | 1. Even though it is newer, distributed TimescaleDB is | probably more robust and easier to operate (and already | more operationally mature) than other local storage options | for Prometheus metrics, in part thanks to the underlying | maturity of Postgres. | | 2. Yes, supporting PromQL directly (ie not via remote_read) | is already in internal testing. Coming very soon. | | Would really appreciate feedback if/when you get to try it | out yourself. Please feel free to ping me directly: ajay | (at) timescale.com | EvanAnderson wrote: | I really appreciate that the linked article uses the phrasing | "source-available", the lower case "free", and doesn't use the | phrase "open source". Terminology matters a lot. | | For me, a lot of the value in Free software comes from being able | to make modifications to the software (either yourself, or by | hiring others), and generally being in control of your own | "software destiny". | | With that in mind, I think it's important to call attention to | this license's prohibition of running modified versions in | production. This prohibition applies regardless of your | modifications being distributed (and in fact, later in the | license, distribution of modifications is expressly prohibited as | well): | | _Clause 2.1 (d): "A license to prepare, compile, and test | Derivative Works of the TSL Licensed Software Source Code solely | in a Non-Production Environment ..._ | | I've often pined for visibility into the source code of | proprietary software that I use. I suppose this is a "win" for | TimescaleDB in my mind over source-unavailable proprietary | software. In the end, however, this license means it's still just | proprietary software. | akulkarni wrote: | Thanks for drawing attention to Clause 2.1 (d). | | The original intent of that clause was to avoid us needing to | support modified versions that were deployed to production. | (Note: We provide _a lot_ of free support in our 4000+ member | Slack channel [0].) | | But that clause was written 1.5 years ago, and a lot has | changed since then. There's actually an internal debate right | now on whether we need to keep it. So thank you and HN for | spurring this discussion! | | [0] https://slack.timescale.com/ | detaro wrote: | _If_ you intend to change it to allow running open-sourced | changes, you might consider allowing changes submitted to you | privately too, for vulnerability reports. | akulkarni wrote: | Thanks for the input, will bring it back to the team for | discussion. | | (Note: I really appreciate getting this kind of feedback | openly from the community, so thank you :-) | pot8n wrote: | Again, here comes the self-entitled "This is outrageous and it | is a closed source license! Why shouldn't I make money off work | that took blood and tears and millions of dollars of many | people while they, the actual authors struggle to have dinner | at the table from their own work?" comment on HN whenever a | company relicenses their FOSS project. This kind of self- | entitlement makes startups think twice before going open source | in the first place. | | OSI FOSS licenses do not protect neither the author nor the | work. The author can intend the work to be _free_ while others | can simply rebrand it and sell it as a closed source product is | if it were their own while the author themselves cannot | complain or even know. The source-available license is the only | way for the author to keep the work somewhat under control from | competitors and quick buck parasites. | Reelin wrote: | I second this. I'm quite puzzled by the apparent dislike for | open source ideals expressed elsewhere in the comments here. | | Licensing is a complex problem and open source isn't some | magical solution. It isn't the right model for every usecase | out there and that's OK! Pay to play is sometimes the only fair | and workable approach from a business perspective, but that | doesn't make it open source. There's nothing wrong with that | though! | | Using terminology correctly is important. Timescale gets the | terminology right and I appreciate that. (I also think it's | awesome that they're releasing this product for free.) | thesausageking wrote: | What's the difference between Timescale's license ("free to | everyone except cloud providers") and GPLv3? | teraflop wrote: | The differences are pretty substantial. | | The GPL puts no restrictions whatsoever on how you can _use_ | software that falls under it. Timescale 's license, on the | other hand, gives you very limited usage rights. You can use | _unmodified_ versions of the software, but you can 't allow | clients to make schema changes, nor can you use it to provide | any service that is "primarily [a] database storage or | operations product or service". | | In addition, Timescale's license is much more restrictive about | allowing derivative works. The GPL lets you create modified | versions and/or reuse code in other products, no matter how | extensive your changes, as long as the results are also GPL- | licensed. Timescale's license lets you create modified | versions, but you're not allowed to: | | * make any changes that bypass "usage restrictions" | | * use your changes in production | | * distribute your changes in any way, except for assigning all | the rights back to Timescale | GordonS wrote: | > In addition, Timescale's license is much more restrictive | about allowing derivative works. The GPL lets you create | modified versions and/or reuse code in other products, no | matter how extensive your changes, as long as the results are | also GPL-licensed | | I mean, to be fair and add some balance here, a _lot_ of | people find that part of the GPL to be _very_ restrictive. | | There are many organisations who have banned the use of GPL | code altogether because of this, and also because of | ambiguity in the license (e.g. the never ending debate about | static and dynamic linking etc). | ensignavenger wrote: | Changes you make to GPL software only have to be provided | under the GPL if you redistribute the work to others- if you | keep it to yourself, run it yourself, etc, you are not | required to release it as GPL. | EGreg wrote: | So does this mean anyone can join this giant snowball? | | Like IPFS or MaidSAFE or Dat or Bittorrent? | xyst wrote: | If this is just postgresql, why would I use this implementation | over postgresql? | | It also seems like it scales linearly with some decrease in ROI | after 12 nodes. | edoceo wrote: | It's not "just" PG, it's like a mega-extension with data-types | and tuple-layout and a tonne of magic for the data-domain. | | You can, of course, make similar models with plain PG - in the | same way one does GIS without PostGIS. | akulkarni wrote: | "mega-extension" <-- I like that! | heipei wrote: | Does TimescaleDB support automated downsampling using various | functions (min/max/mean/avg) and then during querying | automatically picking the correct downsampled data? This is the | biggest issue that I and others have with InfluxDB, that it | doesn't do that, so the only convenient way to use it is just to | expire all data outside the retention policy. Ticket here: | https://github.com/influxdata/influxdb/issues/7198 | atanasovskib wrote: | I think what you are referring to is the TimescaleDB real-time | aggregates https://docs.timescale.com/latest/using- | timescaledb/continuo... | | It allows you to define aggregations that are automatically | used when quering the raw table if the query matches, and it | also allows you to drow the raw data with a retention policy | but keep the aggregated form | (https://docs.timescale.com/latest/using- | timescaledb/continuo...) | heipei wrote: | OK, but it looks like I still have to define these aggregates | manually. I was really more talking about the standard use- | case that folks used to use Graphite / rrdtool for: Keep | track of real-time high-fidelity metrics while still being | able to query aggressively-downsampled historical data for | comparison, and doing so without having to configure | anything. | mfreed wrote: | Hi @heipei -- one thing to observe is that Graphite & | rrdtool are designed for a specific monitoring use case, | while TimescaleDB is a more general-purpose time-series | database. | | So what that means is that TimescaleDB has mechanisms to | make it really easy to define downsampling (continuous | aggregates, data retention policies), and even have queries | that transparency query _across_ the historical aggregates | and new raw data (real-time aggregates, which parent | pointed to, which isn 't supported by InfluxDB). | | What the database _by itself_ doesn't do is automatically | create certain continuous aggregates on metrics | immediately, because frankly, users' needs vary so much. | | That said, we have built stacks/solutions that leverage | TimescaleDB and do precisely that. For example, we just | released a design doc and beta around our refreshed native | integration with Prometheus, that addresses an extremely | similar use case to Graphite / rrdtool. Because now this is | automated, it defines many of these things out-of-the-box, | so you don't need to configure anything. Check it out and | input welcome! | | https://tsdb.co/prom-design-doc | heipei wrote: | Thanks for the pointer. I truly understand that | TimescaleDB is a general-purpose time-series DB and I | understand that most use-cases are unique in that it | makes sense to make these decisions about what and how to | downsample consciously. However, I feel that there is a | large audience of people who "just" want a database that | they can point their system-metrics collector at | (Telegraf), point their dashboard at (Grafana) and just | hit "go", much like would with something like Datadog, | and have the confidence that they can still scale the | database if its ever necessary. Much like ElasticSearch | provides default mappings (text/keyword/date/number), | this would a great 80-20 solution for the default use- | case of "I want to collect system metrics from my | hundreds of servers and have a few sensible defaults | about granularity, downsampling and data-retention, and | only then will I start to worry about whether that data | will eventually exceed my one-server deployment." | mfreed wrote: | Yep, that's exactly what the "Timescale Observability" | stack is about. Type "helm install", and a full stack is | spun-up and auto-configures to scrape information. You | have graphs up in Grafana within 2 minutes, zero | configuration. | | - See https://github.com/timescale/timescale- | observability | | - Or join the #prometheus channel at | https://slack.timescale.com | tnolet wrote: | Very very interested in this too. Sometimes called automated | roll ups. I know Elasticsearch does this | atanasovskib wrote: | I replied to the parent comment. In short yes, it is | supported (https://docs.timescale.com/latest/using- | timescaledb/continuo...) | jakaroo wrote: | How does the multi-node version handle high availability and | automatic failover? | | Are those included or are they paid add-ons? | k-rus wrote: | You can utilise multinode data replication for high | availability of data, however it is still necessary to use an | external tool for HA of the access node, which distributes data | and queries to data nodes. | mfreed wrote: | Short answer is: The 2.0 release won't natively support | automated failover, although you can build around using PG | tools like physical replication + Patroni. But these | capabilities are certainly things we are working on. | | Per the PR notes: The current implementation | has many more limitations that will be addressed over | time: - HA and replication has to be managed node- | by-node. This will be improved with native | replication. | valyala wrote: | Multi-node TimescaleDB is a great contribution to open source | world! | | BTW, it would be great comparing multi-node TimescaleDB to | VictoriaMetrics cluster [1], which is licensed under vanilla | Apache2 open source license [2]. | | [1] | https://github.com/VictoriaMetrics/VictoriaMetrics/blob/clus... | | [2] | https://github.com/VictoriaMetrics/VictoriaMetrics/blob/clus... | tornato7 wrote: | Awesome. I just hope that one day Amazon supports it on RDS. I do | know that Digital Ocean does! | hbcondo714 wrote: | I was hoping that too but I think Amazon is still working on | their time series database[1]. We registered for their preview | in 2018 and it's still in preview with no access. | | [1]https://aws.amazon.com/timestream/ | mfreed wrote: | An important clarification is that Azure, Digital Ocean, | Rackspace (Object Rocket), Alibaba Cloud -- which all support | managed TimescaleDB today -- only offer the Apache-2 version of | TimescaleDB. | | Many of the more advanced features of TimescaleDB, including | this distributed options, is released under the _Timescale | License_. | | All code under the Timescale License is also source available | and people are free to use, incorporate into their commercial | SaaS services, distribute, etc. with the _primary_ limitation | being if you are offering TimescaleDB as a hosted DBaaS (like | RDS, Azure Postgres, etc.) | | Instead, Timescale Cloud is the place to get TimescaleDB | advanced features as a fully managed DBaaS. | | https://www.timescale.com/products/features | contrahax wrote: | I would recommend looking at Aiven if you want to deploy | Timescale on AWS (we use it to deploy on GCP, which is also | missing the extension in their CloudSQL offering). | gen220 wrote: | I work with a lot of time series tables in Postgres, albeit not | at the scale that this targets. (some millions of rows, | distributed sparsely over time, on which the median insert/update | size is <10, but with some tail-end inserts/updates touching | >200k rows). | | I like concepts behind TimescaleDB, and understand the value it's | adding to vanilla Postgres. We have our own implementation at my | company and it's quite good for our purposes, but it would | certainly struggle at TDB's targeted scale. | | As I understand it (correct me if I'm wrong, this is my | impression from the marketing page), TimescaleDB is "more than an | Extension" to Postgres, because it rewrites some of the Postgres | internals (query parser, etc)? | | If this is true, I'm curious, was it not possible to package the | same results into an extension? What was the decision process | like? Could the concept not be upstreamed into Postgres? I'm | relatively ignorant of this side of the community, so please | forgive me if this question is naive. | | Finally, if it is "more than an extension", does this imply that | TimescaleDB is a fork of Postgres, with all the risks to adoption | that entails? | akulkarni wrote: | TimescaleDB is packaged as a Postgres extension. The "more than | an extension" is meant to highlight that TimescaleDB makes | changes and adds capabilities far beyond what the typical | extension does. | malisper wrote: | > All of these capabilities are being released under the | Timescale License, our source-available license that permits | broad usage, except for where organizations are providing | TimescaleDB-as-a-service. | | Maybe someone can give clarification on this, but the line | between using TimescaleDB to build a product and providing | TimescaleDB-as-a-service seems incredibly blurry. If I have a | product that in some way let's you query time series data, and | that product is powered by a TimescaleDB, would that count as | providing TimescaleDB-as-a-service? | | I used to work for Heap which is an analytics tool. In a way you | can view Heap as just a wrapper around Postgres. We stored event | data in Postgres and provided a UI that allowed you to express | queries (e.g. count the number of logins over the past month). We | would take the query in the UI, compile it into a SQL query, and | run the SQL against Postgres. If Heap was powered by TimescaleDB, | would that violate the Timescale License? In fact, you could | technically view any dashboarding product that queries | TimescaleDB as providing "TimescaleDB-as-a-service". | | I looked at the actual license[0] to see what it says, and it | seems really unclear. The license gives you permission to use | TimescaleDB to develop "Value Added Products or Services" which | it defines as a product that uses TimescaleDB as part of a larger | offering. One of the requirements for a product or service to be | considered "Value Added" is: | | > (ii) such value-added products or services add substantial | value of a different nature to the time-series database storage | and operations afforded by the Timescale Software and are the key | functions upon which such products or services are offered and | marketed | | This seems incredibly vague. What exactly does "substantial value | of a different nature" mean? In the end, tons of products are | just wrappers around DBs. If products like Heap or Datadog were | to be backed by TimescaleDB, would they add "substantial value of | a different nature" on top of it? In the end, Heap and Datadog | are products designed for querying time series data. I could | definitely make a case that they don't provide value of a | different nature from TimescaleDB. This vagueness seems like a | huge risk and without further clarification, makes me want to | stay far away from TimescaleDB. | | [0] | https://github.com/timescale/timescaledb/blob/master/tsl/LIC... | mfreed wrote: | Hi @malisper, we totally appreciate concerns around potential | uncertainty what a "Value Added Service" means. | | In fact, when we were looking at Timescale licensing, we took | careful look at what a lot of other like company licenses did | here (Confluent, Redis, etc), and what later became the | Polyform License. Most of them left this definition pretty | vague -- because frankly, legal language is never as precise | (and perhaps shouldn't be) as what an engineer may like. | | We went a step further, and tried to define this more precisely | about what it means to "offer" TimescaleDB: | (iii) users of such Value Added Products or Services are | prohibited, either contractually or technically, from | defining, redefining, or modifying the database | schema or other structural aspects of database | objects, such as through use of the Timescale Data Definition | Interfaces, in a Timescale Database utilized by such | Value Added Products or Services. | | [def] | https://github.com/timescale/timescaledb/blob/master/tsl/LIC... | | What that means is that if you've defined the Heap schema, you | have built the indexes and tables, and then are offering a SaaS | product on this, you're fine: | | - You are offering a product/marketing SaaS service around | usage/product analytics, not a time-series-database-as-a- | service | | - You are not approaching the market and saying, "Here's how to | get TimescaleDB-as-a-service" (unlike, say, Managed TimescaleDB | running on Rackspace or Digital Ocean), you are saying "Here's | a full Product/Marketing Analytics Solution". | | - You are not giving your users direct/psql access to the raw | database to define their tables/schemas/indexes and otherwise | just treat that service as a hosted TimescaleDB instance. | | I hope that helps! | malisper wrote: | > We went a step further, and tried to define this more | precisely about what it means to "offer" TimescaleDB | | I don't understand how the bit you posted helped make things | more concrete? Section 3.21, the section you referenced lists | three conditions, all of which have to be true for your | product to be considered "Value Added". I agree the third | condition, the one you quoted, is pretty clear. But the | second condition, the one I quoted seems really vague so the | definition of "Value Added" as a whole becomes really vague. | | > What that means is that if you've defined the Heap schema, | you have built the indexes and tables, and then are offering | a SaaS product on this, you're fine. | | FWIW, Heap would automatically create new tables for | customers as they sign up and would also automatically create | new indexes for customers as needed. For that reason alone, | I'm pretty sure Heap would violate the Timescale license. | | I agree that it's pretty difficult to be specific about what | "value added" means. I'm not sure what the right solution is. | I would still want to go over with the Timescale License with | an IP lawyer pretty thoroughly before I were to use | TimescaleDB. | mfreed wrote: | > FWIW, Heap would automatically create new tables for | customers as they sign up and would also automatically | create new indexes for customers as needed. For that reason | alone, I'm pretty sure Heap would violate the Timescale | license. | | Nope! The user doesn't define or control that those tables | and indexes are created. I.e., the user, through the Heap | UI, doesn't say: I want a table with this schema and I want | to create an index on (event_id, timestamp). | shay_ker wrote: | I saw that TimescaleDB is mostly C, like other PG extensions. | Have you all put any thought into using Rust? Just curious about | why or why not. | k-rus wrote: | TimescaleDB uses heavily PostgreSQL API and hooks, which expose | many data structures, macros and functions. My understanding is | that using Rust or even C++ will require to write large FFI and | also maintain it between PG major versions, which are released | every year. Also, just having FFI is unlikely enough, and will | require to write wrappers on top of it to use the best of Rust | and not just another syntax on top of C. | gigatexal wrote: | How does TimescaleDB work as a traditional OLTP db? Can I run | general analytical queries on it and leverage its distributed | nature? Or is it better for single table append only workloads? | atanasovskib wrote: | The Hypertables and Distributed Hypertables can be used to | store any kind of data, but works best as long as it has a | monotonously increasing partitioning key (e.g. time), with high | ingest load, few data modifications (preferable bulked) | | The beauty of TimescaleDB being built on Postgres is you can | have your regular Postgres tables (OLTP schema) and time-series | data (Hypertables) live side by side. Use 1 language (1 | mindset) to query them, join them, work with them as you see | fit. With Distributed Hypertables (what the post is about) you | can now partition your data to live across multiple servers, | and still use your 1 mindset to query all that data. | | edit: With the preferred workload you get the most out of | TimescaleDBs advanced features like compression, continuous | aggregates and data retention policies. You can use the | aggregates to build complex auto-updating materialized views | that are automatically used even when you query the raw tables | also (https://docs.timescale.com/latest/using- | timescaledb/continuo...) | gigatexal wrote: | Continuous aggregates look like a killer feature. | mfreed wrote: | Thanks! You might also find this related feature, real-time | aggregation, really powerful as well. | | We just released it last month: | https://blog.timescale.com/blog/achieving-the-best-of- | both-w... | | "With real-time aggregation, when you query a continuous | aggregate view, rather than just getting the pre-computed | aggregate from the materialized table, the query will | transparently combine this pre-computed aggregate with raw | data from the hypertable that's yet to be materialized. | And, by combining raw and materialized data in this way, | you get accurate and up-to-date results, while still | enjoying the speedups that come from pre-computing a large | portion of the result." | gigatexal wrote: | This sounds like the perfect fit to a write only event log | table we stored in postgres at a previous employer. I pushed | to move it to BigQuery but this sounds like it would have | been fine. | valyala wrote: | There is more cost effective alternative to BigQuery for | storing and analyzing big amounts of logs - LogHouse [1], | which is built on ClickHouse. | | [1] https://github.com/flant/loghouse | mfreed wrote: | Here is a community post on storing logs in TimescaleDB: | | https://www.komu.engineer/blogs/timescaledb/timescaledb- | for-... | jakaroo wrote: | How does the multi-node version work with data compression | compared to the single-node version? | | I like how on a single-node I can utilize data compression and | get a 95% storage saving. | mfreed wrote: | In the current version, you can execute `compress_chunks` on | each of the data nodes and enjoy those same savings (and will | work transparently with queries, as before). | | In subsequent releases, we'll add full support of compression, | e.g., just create a compression policy on the access node and | you are off and running. | jakaroo wrote: | Sounds great. So I just manually execute this | `compress_chunks` command once on each data node and then I | have compression enabled forever on those nodes? | mfreed wrote: | Not yet, I should have been clearer: | | compress_chunk operates on a single chunk, the way to | define "compress all chunks older than 1 week is": | SELECT compress_chunk(i) from show_chunks('conditions', | older_than => INTERVAL '1 week'); | | https://docs.timescale.com/latest/using- | timescaledb/compress... | | So you'd need to setup a cron job that runs that script | every night or something...at least until we release | compression policy support. | rb808 wrote: | Can someone please summarize what it does because I couldn't | figure out from website? It says its "on Postgres", is it a | flavor of PG? or it sits on top of multiple PG instances. | akulkarni wrote: | How's this: | | TimescaleDB is a distributed time-series database that is | packaged as a Postgres extension (a "mega-extension" to quote | someone else on this thread). | | TimescaleDB: | | * Scales to over 10 million of metrics per second [0] | | * Supports native compression, using delta-delta, Gorilla, | Simple-8B RLE, and other best-in-class compression algorithms | (achieving a median 94% compression based on user data) [1] | | * Offers native time-series capabilities, such as data | retention policies, continuous aggregate views, real-time | aggregates, downsampling, data gap-filling, and interpolation | | * Handles high cardinality [2] | | * Outperforms other non-relational databases including InfluxDB | [3], Mongo [4], Cassandra [5] for time-series data | | With TimescaleDB you also get all of the goodness that is built | into Postgres: full SQL, a variety of data types (numerics, | text, arrays, JSON, booleans), ACID semantics, and | operationally mature capabilities including high-availability, | streaming backups, upgrades over time, roles and permissions, | and security. | | [0] https://blog.timescale.com/blog/building-a-distributed- | time-... | | [1] https://blog.timescale.com/blog/building-columnar- | compressio... | | [2] https://blog.timescale.com/blog/what-is-high-cardinality- | how... | | [3] https://blog.timescale.com/blog/timescaledb-vs-influxdb- | for-... | | [4] https://blog.timescale.com/blog/how-to-store-time-series- | dat... | | [5] https://blog.timescale.com/blog/time-series-data- | cassandra-v... | wenc wrote: | It's a PG extension. | hnmullany wrote: | Here's the original intro to Timescale blog post - | https://blog.timescale.com/blog/when-boring-is-awesome-build... | X6S1x6Okd1st wrote: | >67k line PR | | Man I'm glad I don't have to review that | RobAtticus wrote: | To be clear, it was developed in a branch so all the individual | commits have been reviewed beforehand when landing on that | branch. And the branch was rebased throughout the development | cycle. This is just the final PR to merge that branch back into | master :) | xyst wrote: | You don't review it, just approve :) | akulkarni wrote: | Hi, I authored this post, but the credit really goes to the | Timescale database team. | | Multi-node TimescaleDB is the result of a massive amount of | engineering effort over two years, as can be seen in this +67,000 | line PR: https://github.com/timescale/timescaledb/pull/1923 | | We're thrilled to make this free so that more developers can use | it. | gautamdivgi wrote: | I would add your GitHub org in the "community" link of your | site/blog. I was trying to get to the code from there and | couldn't find a link. | | I'll be looking forward to playing around with this. thanks... | akulkarni wrote: | Thanks for the feedback! | tpetry wrote: | Am i the only one who thinks it is really cool that this will | be free but hesitant to use it? | | I have seen so many distributed data storages fail in a | multitude of ways that i just dont trust anyone anymore. After | 2-3 years they may have ironed out most bugs and i can evaluate | again whether i do trust their implementation to store my data | safely. | akulkarni wrote: | This is why we built this on top of Postgres. It allows us to | inherit Postgres reliability. | | While I can't guarantee there won't be bugs ;-), we have | found that building on Postgres has enabled a much higher | level of reliability than other time-series databases. | mfreed wrote: | One thing to recognize that the lowest-level storage guts of | TimescaleDB is Postgres, which really provides a super- | stable, reliable foundation. This obviously doesn't avoid all | distributed bugs, but it's a huge benefit. | | It's also the case that TimescaleDB provides real benefit and | scale even in "single-node" form, which allows for | traditional primary/replica replication (for fault tolerance | / HA / read replicas and scaling), especially when coupled | with our native compression. | | So we have users storing 100s of billions of rows in | hypertables in the non-distributed version of TimescaleDB as | well, including in our fully managed cloud service. | waynesonfire wrote: | that's a strange KPI to tout. | akulkarni wrote: | It's definitely not a KPI. But still representative of the | amount of work that has gone into this! | q3k wrote: | I'm not sure a 67k line PR proves anything more than 'noone | really reviewed this'. | mfreed wrote: | Or that there was a huge development effort going in a | private branch that had PRs and code review for each of the | 226 commits :) | | https://github.com/timescale/timescaledb/pull/1923/commits | eloff wrote: | This is an interesting window into their business model. This | could be a purely an altruistic decision, which businesses | sometimes do, contrary to popular belief. More likely it's a bet | that wider adoption from making the clustered version free will | drive more revenue through their managed database as a service | offering. Which shows that their non-OSI open-source license is | actually leading to more code and features being available free | and (mostly) open-source. As opposed to gating features for | paying customers. | | I think we're too hung up on OSI open source licenses. The | additional restriction in the timescaledb license that you can't | run a paid database as a service offering affects hardly anyone | negatively (AWS). It affects us all positively by providing a | sustainable business model to support additional development and | support of an open-source product we use. Win-win if ever there | was one. I'd like to see more open-source and closed-source | companies consider this model. | ensignavenger wrote: | I think you greatly misunderstand the implications of the | Timescale License. Others have pointed out additional | restrictions, but as to the restriction you mention, if it were | the only additional restriction: | | If I build my product on such software, host it on the official | service, and latter their business model changes to no longer | be a good fit for my business model (or if my model changes), I | am stuck hosting the fork myself- I can't pay some one else to | host it anymore. Now lets say that I am not alone- but there | are several other customers in this situation- we can't band | together to create a fork with a thriving, healthy community, | including hosting options. | | Avoiding vendor lock-in is my number one reason for choosing | Open Source software! If your non-open source "Diet" Open | license license leads to vendor lock-in, it is not much better | to me than any other proprietary license. | ecnahc515 wrote: | I kind of agree. | | The argument of go 100% FOSS or not reminds me of the argument | of free market vs regulation. Yes a free market sounds ideal, | but in practice, a few major players take advantage and | everyone who isn't them is left out in the cold. | | The same applies to FOSS vs Proprietary software. If everyone | did FOSS to the fullest extent, and anyone building products on | FOSS made their product 100% FOSS, then it wouldn't be nearly | as big a deal if Amazon took TimescaleDB and sold it, because | anything they did would be available to everyone else. | | But that isn't how it works. They just wait until a market | establishes itself and swoop in and do something someone else | is already doing successfully, but better by using their | massive resources behind it. Honestly it's a lot like embrace, | extend, extinguish. I'm not saying this to shit on Amazon, I | don't necessarily think it's intentionally malicious, it just | often ends up hurting a lot of organizations building FOSS. | | I think of it this way: A lot of people agree that tech giants | are increasingly becoming more powerful as they expand their | reach, often due to their ability to simply buy or kill the | competition through undercutting with their massive cash | stockpiles accumulated through their primary business. | | For FOSS, it is the same strategy except the competition isn't | being "bought", it's simply being taken (FOSS) and made into | something "better" with their nearly unlimited resources, and | then undercutting the original proprietors. | zrail wrote: | > I think we're too hung up on OSI open source licenses. | | Where "we" is defined as an extremely vocal minority on HN. I | don't think most people take issue with licenses like this | Timescale license or the BSL. | eloff wrote: | Yes, that's probably true. Still vocal minorities tends to | wield outsized power by virtue of being vocal. | Reelin wrote: | I don't think (most) people take issue with source available | licenses per se, but rather attempts to misapply the term | open source to them. The Timescale license is great if it | allows them to provide source code and a free product while | still operating a successful business! That doesn't make it | open source though. (And to their credit, Timescale doesn't | make that claim.) | CameronNemo wrote: | > I think we're too hung up on OSI open source licenses. | | I disagree. The free software criteria were defined as they are | for a reason. AWS and other cloud vendors are taking advantage, | but that is not a good reason to give up on the ideals of the | movement. I would be much more comfortable contributing to | timescaledb if the license had a date at which it expired to | AGPL or some other OSI/DFSG/fourfreedoms license. | eloff wrote: | Ideals for the sake of ideals doesn't resonate with me, in | software or outside of it. Give me a practical reason. | | The expiry clause is interesting, but I'm not sure it matters | in practice. Not many people want to use code several years | out of date instead of the current version just because of | practically no additional freedoms. Except maybe a potential | competitor. I'd be happier to have a reversion to an OSI | license if the product stops being maintained or gets | acquired and shutdown. That's always a risk with young | companies. | Reelin wrote: | > Give me a practical reason. | | Your legal ability to apply patches to the software you run | to better suit your needs, and in extreme cases to fork and | continue development if the maintainers can't or won't | accommodate your usecase. It's kind of the entire point of | the open source movement. | CameronNemo wrote: | > Ideals for the sake of ideals doesn't resonate with me, | in software or outside of it. Give me a practical reason. | | Fair enough. | | I am mainly looking to prevent the timescale corp. from | coasting off of their long past work. In such a scenario, | the several years out of date code would not be that much | different from the current version, because income for | timescale would not have been spent on meaningful | improvements. | | Another benefit is as a check to the timescale corp. in | case they start acting up. In such a case, a large | contributor or user might pick up maintenance of an old | version and start porting it to newer postgresql versions | as leverage. Users of TimescaleDB could be reassured that | timescale will not abuse them through the licensing | situation because there is some backup plan. | xyzzy_plugh wrote: | In principle, yes I agree, but in practice: no! AGPL is a | minefield, it's a shame it is, but it is. The spirit of GPL | (and AGPL) was that you could do whatever you want but you | have to release the source, but they have continually been | handicapped by the evolution of software. Existing licenses | are not appropriate for SaaS businesses, they are either too | liberal or too restrictive. What you're seeing here is the | right move: I can use this for free, for personal use or | business. I can't sell it directly -- why should I be able | to? It's sleazy and encourages closed ecosystems (AWS, GCP, | etc.). | | The spirit of free software is very much alive in this | decision, methinks. | pritambaral wrote: | > The spirit of free software is very much alive in this | decision, methinks. | | From the text of the Timescale License, clause 2.1 (d): "A | license to prepare, compile, and test Derivative Works of | the TSL Licensed Software Source Code solely in a Non- | Production Environment". Further along, in section 2.2, the | following prohibition is laid out: "You agree not to, | except as expressly permitted in Section 2.1(d), prepare | Derivative Works of any TSL Licensed Software" | | That removes the freedom to run your own modifications in | production. Pretty incompatible with the spirit of free | software. | GordonS wrote: | This is only for the parts of the code that are licensed | under the Timescale license (most code is not). | | Personally, I don't have a problem with this, and think | it encourages users to upstream their changes. | pritambaral wrote: | > ... it encourages users to upstream their changes. | | Not really, and not as much. Not really because one | cannot begin using their own changes unless and until the | upstreaming process concludes successfully. Not as much | because, unlike with open-source licenses, one does not | get to keep their copyright. | | One of the important reasons I personally use and support | open-source is the freedom to not only inspect (which the | TSL provides) but to also not have to ask someone else | and wait on them to make any changes I need to the | software I use. The restriction against production use | prevents that. | | One of the important reasons I personally don't mind | contributing to open-source, is the fact that I get to | retain my rights. | | > This is only for the parts of the code that are | licensed under the Timescale license (most code is not). | | This is a moot point because without the parts that are | TSL licensed, we'd not be having this discussion. | kemitchell wrote: | > The spirit of GPL (and AGPL) was that you could do | whatever you want but you have to release the source, but | they have continually been handicapped by the evolution of | software. | | This was largely my assessment, as well. And the motive | behind the work that led to Parity | (https://paritylicense.com). | akulkarni wrote: | (Timescale CEO and post author) | | You are spot on. Before the Timescale License, we were left | with a tough decision: do we open-source a feature so that | everyone can have it for free OR do we close a feature so that | the mega-clouds don't have access to it? | | We didn't like either of those options, which is why we created | the Timescale License, which allows us to offer capabilities | for free (and make the source code available) to everyone | except the cloud providers (ie free for 99.9999% of all users). | | We find that this has resulted in a mutually beneficial outcome | for ourselves and our users. "I think we're too | hung up on OSI open source licenses. The additional restriction | in the timescaledb license that you can't run a paid | database as a service offering affects hardly anyone negatively | (AWS). It affects us all positively by providing a | sustainable business model to support additional development | and support of an open-source product we use. Win-win if ever | there was one. I'd like to see more open-source and | closed-source companies consider this model." | | ^ Really well put. | pritambaral wrote: | > and make the source code available | | It's available to _see_, but not to "prepare, compile, and | test Derivative Works of the TSL Licensed Software Source | Code" in a production environment, as per your license's | clause 2.1 (d). That's a pretty big departure from open- | source; and a bit discouraging for use by non-mega-cloud | business interests too. One of the important reasons I | personally use and support open-source is the freedom to not | only inspect (which the TSL provides) but to also not have to | ask someone else and wait on them to make any changes I need | to the software I use. Any chance the TSL can be modified to | include this freedom too? | lukevp wrote: | Is this really an issue in practice? For libraries (react, | jquery) that can't be used on their own as a product, a lot | are adopting MIT. For a "service" - mongodb, redis, | rabbitmq, Kafka, Postgres, etc. I have never run into an | issue where I would be comfortable modifying something, | rebuilding source and deploying into production. | pritambaral wrote: | > I have never ... | | _You_ may not have, but plenty of us have. Although, it's | not as important when or how many times one has _needed_ | to exercise one's freedoms, as it is to have them. But | yes, plenty of us open-source users and supporters have | exercised this very freedom. In fact, quite a lot of | open-source contributions happen _because_ of this | freedom: someone has an itch, they scratch it, and _then_ | they upstream it. | lukevp wrote: | Is that not possible under this license, to upstream a | change? It sounds like you can't put the change into | production without it first being accepted, but not that | you couldn't contribute in other ways. I get the spirit | of your argument. However, the issue is that companies | are not able to make open-source compatible, permissive | licenses that allow commercial use due to the new reality | that creating a service and supporting a product are the | main moneymakers. The code is not itself valuable to them | but it is valuable as a holistic system because it's an | already built and adopted and production ready | standardization of an idea. | mfreed wrote: | Absolutely possibly to upstream changes. People have, and | we welcome contributions: | | https://github.com/timescale/timescaledb/blob/master/CONT | RIB... | pritambaral wrote: | > Absolutely possibly to upstream changes. | | The problem isn't that changes can be upstreamed. The | problem is that that is a necessary pre-condition before | I can even use them. | | In addition, what I say in my comment[0] beside yours | remains valid. | | 0: https://news.ycombinator.com/item?id=23275370 | pritambaral wrote: | 1. I have to wait until upstream accepts it before I can | use my own change in my own production. | | 2. I have to hope upstream accepts my change at all. | | 3. I have to give up the rights to my change if upstream | accepts it at all. | | High risk of vendor lock-in, and no right-to-repair. | | ---- | | > However, the issue is that companies are not able to | ... | | That's fine. I'm not asking any company to do something. | I stating my reasons why I can't use what the company is | offering. It sounds like what the company wants is to not | license the code, but to sign a contract with me for a | service. Would you sign a contract you don't like? | z3t4 wrote: | I run a bunch of forks in production that the maintainers | didn't want to merge in. Then they made breaking | changes... Software doesn't necessary need to be updated | all the time. Adding more features often make the program | slower and break stuff, the hardest part of dev is to say | no to new features, its much easier to implement new | features then solving though problems. | gregmac wrote: | It's also a hedge against the company/project shutting | down or pivoting in a radically different direction than | you want. | | All the things you listed are foundational pieces of | technology that are incredibly risky+costly to swap out, | so if you needed to, there's an option to continue with a | fork. If the thing is popular enough, there's a good | chance a community-driven effort will pop up, you can | find consultants to work on code for you, or even a new | company will form around it, letting you continue working | on your core product (mostly) uninterrupted. | mfreed wrote: | A slightly different perspective of our | licensing/copyright approach is there isn't confusion | about ownership, so if we were ever to decide on a more | permissive license, we have the clean ability to do so. | | Zero plans, but this also applies if a company like ours | were to ever pivot/shut down: we as copyright holders can | just relicense _all_ the code to be more permissive / | dual licensed / etc, which is not the case for projects | where individuals hold copyright over merged | contributions. (Note the opposite is not true: we can't | "unrelease" versions of the code already released under a | more permissive license, such as how most of our code- | base in Apache 2.) | | In short, I understand your point, but I think there are | actually multiple sides to this issue as well. | pritambaral wrote: | This cuts both ways. MongoDB Inc., back when MongoDB was | AGPL-only, wouldn't accept contributions without | copyright assignment, which allowed them to go | proprietary when they did. | | What you're saying here is that you have the ability to | "give away" things that you own. Sure, but everybody has | that. Even if you did not have all the copyrights to | yourselves, you could relicense your portions and others | could relicense their portions and others still could | just replace the remaining portions with new code. In | fact, this is precisely how OpenSSL recently relicensed | itself completely. | | Sure, what you claim you're adding here is a bit of | convenience, but it's just that. When compared to the | possibility that your company could "pivot/shut down" | _without_ doing anything to the code, it's convenience- | for-you vs. risk-for-your-customers. | amenod wrote: | This. I don't care if I can see the source code if I can't | actually _do_ anything with it. If I can't run my | modifications in production, it doesn't guard me against | vendor lock-in and it doesn't give me the right-to-repair. | So what's the benefit? | | Note that I am not arguing for OSS licences, but something | like the Commons Clause (use freely, even for commercial | use, repair as you wish, just don't sell) seems much more | suitable for such cases imho. It protects the business from | cloud providers, while still offering some basic | protections to the users. This... doesn't. | hinkley wrote: | I do. | | I don't think Java would have gotten anywhere if not for | the fact that most of the source code was available. | Trying to divine information about Windows from the | header files was excruciatingly painful. | | Being able to step into the code and figure out why it | doesn't like 0 in the third argument was a massive boost | to my efficacy as a coder. I could add a guard and then | file a very precise bug report to get the issue fixed. | zmj wrote: | Yep. I have had the same experience since the .NET | ecosystem open-sourced. | mfreed wrote: | We did consider the Commons Clause when investigating our | own licensing approach, but ended up concluding that its | definition of "Sell" were actually _much_ vaguer than we | felt comfortable with: "Sell" ...a | product or service whose value derives, entirely or | substantially, from the functionality of the Software. | | I realize that opinions might differ, though. | akulkarni wrote: | This is a completely valid point. I also appreciate the | "right-to-repair" comment made elsewhere. | | The original intent of this clause was so that we wouldn't | have to support modified versions that were deployed to | production. (As pointed elsewhere, we provide a lot of free | support in Slack [0].) | | But that clause was written 1.5 years ago, and a lot has | changed since then. There's an internal debate right now on | whether we should remove this restriction. | | So thank you for asking this question! | | [0] https://slack.timescale.com/ | brightball wrote: | I imagine the model will be effective because it will help | you to increase adoption, provide an easy path to transition | to your cloud managed version and likely a lot of | support/training opportunities. | | Plus, it makes it easier to just start with Timescale even if | you don't need it because we all like to preoptimize. | jcims wrote: | I'm a huge fan of Splunk but always want to keep my eye open | for alternatives. My use case is mostly security analytics | against event content and patterns, and for that the Splunk | Processing Language is very well suited. | | That said I find it's fairly tedious to do a lot of time- | series analysis and pattern discovery/anomaly detction across | rich event models (think aws cloudtrail events). | | Anything TimescaleDB can help with here? Are there case | studies you can point us to? It feels like there is probably | home for both just in my domain and quite obviously in the | broader context of large enterprise ops/security. | akulkarni wrote: | Yes, we hear Splunk complaints quite often. :) | | Here is a doc on using TimescaleDB as a horizontally- | scalable, easy-to-deploy, operationally-mature data store | for Prometheus data (i.e., metrics), put together by | another of our engineering teams: | | _Building an open-source analytical platform for | Prometheus_ | | https://tsdb.co/prom-design-doc | | I'm also happy to discuss privately if you'd prefer - ajay | (at) timescale.com. | GordonS wrote: | I use TimescaleDB for mass storage and query of security | events (up to 100s of millions) - the speed of queries and | aggregate queries even on a single node is very impressive. | | I haven't done anything with regards to anomaly/trend | detection yet, but it's planned. Not really sure where you | see a database (TimescaleDB) fitting into that though? | jcims wrote: | We're in that scale domain where everything is a pain in | the ass but not obviously outside the scope of commercial | solutions. I just checked and we're averaging ~500k | events per second in the five areas I'm interested in. | | I feel that we could probably use a time-series database | to reflect our streams as 'last observed state' type | collections as well as do the aggregations that we need | to feed back into anomaly detection. | | I'd like to also use something like that to create a | 'heat map service' where you can feed a | property/window/range and get back scalar for color | coding and possibly a slice of values for sparkline type | UI. | | Without getting hands on, though, it's hard to say for | sure. | akulkarni wrote: | @jcims I'm really interested to see if we can help. If | you're open to discussing, please feel free to email me: | ajay (at) timescale.com | gk1 wrote: | What makes it tedious? | athinath wrote: | A couple examples from Timescale users which might be | relevant to your use case: | | ShiftLeft - code analysis and security scanning to catch | vulnerabilities [https://blog.shiftleft.io/time-series-at- | shiftleft-e1f981969...] | | k6 - a load testing tool that scales to 100k concurrent | users, analyzes performance over time, etc. | [https://www.timescale.com/case-studies/k6] | | If you want to talk specific scenarios, you can reach out | alex @ timescale or on Slack - slack.timescale.com. | boulos wrote: | Disclosure: I work on Google Cloud (but am glad to see you | protecting your rights to your software). | | The conversation down thread though raises an interesting | point: why does the license say you can't run modifications | in production (under any circumstances) versus some sort of | "for commercial purposes" clause? It seems to me like it's | infeasible to have actual contributions if someone isn't | allowed to have a patch, carry it forward, and attempt to | upstream it over time. | | I assume the intent / goal of your license is to prevent | people (AWS, Azure, GCP) from taking your code and offering | it as a service. I don't disagree with that. I think it's | also fine to prevent even small companies from saying "and | now we wish to be the TimescaleDB company!". But it seems | strange to _also_ prevent non-commercial usage to run patched | versions. | | Lawyering is hard, but is there a clear reason against | patched non-commercial? | gautamdivgi wrote: | It's a good question. How do we classify non-commercial? Is | a telecom company using timescaledb for internal time | series storage non-commercial although it is directly | supporting a commercial offering (maybe mobile traffic | platforms)? | | I do get the direct commercial inference. What about the | indirect ones? Just about anything in production is | directed towards supporting some sort of commercial | offering. | | Just genuinely curious... | akulkarni wrote: | We took great effort to try to draw a clear line within | the actual Timescale License language [0]. | | Usage is permitted, as long as: the | [end-]customer is prohibited, either contractually or | technically, from defining, redefining, or | modifying the database schema or other structural | aspects of database objects, such as through use of the | Timescale Data Definition Interfaces, in a Timescale | Database utilized by such Value Added Products or | Services. | | In other words, if your service just provides DML access | (read/write/modify), then that is permitted, while DDL | access (modifying/creating schemas) is not permitted. | | And in fact we already have thousands of companies | building commercial applications on top of Timescale | Licensed software (while adhering to the license). | | [0] https://github.com/timescale/timescaledb/blob/master/ | tsl/LIC... | [deleted] | akulkarni wrote: | The original intent of that clause was to help us avoid | needing to support modified versions that were deployed to | production. | | And we tend to offer a lot of free support, e.g., via our | 4000+ member Slack channel [0]. We like making sure | TimescaleDB users are happy. | | But that clause was written 1.5 years ago, and a lot has | changed since then. | | There's actually an internal debate right now on whether we | need to keep it. So thank you and HN for spurring this | discussion! | | [0] https://slack.timescale.com/ | JeremyNT wrote: | Hi there! | | We use and love Timescale, so we've been paying attention to | this feature. We currently use the open source version and | it's very nice. | | Would you mind clarifying a bit, because the blog post | doesn't really explain: how much of TS do you expect to | remain Open Source versus proprietary? Is the idea here that | you will switch the entire project to this new license (i.e., | this means you're killing the open source project), or is the | idea that you'll continue to work on the open source version | (but with the enterprise functionality now available under | the new license)? | | The omission of this really important information in the blog | post makes me suspect that this is, in effect, the end of OSS | Timescale. I'd love to be reading that wrong! If the core | will remain open source, you should consider mentioning that | in the post. | mfreed wrote: | Hi JeremyNT: We've never "changed" any Apache-2 licensed | code to TSL-licensed code. And in fact, we've recently | basically eliminated most of our enterprise features (read: | paid only) and converted them to community features (read: | free under the TSL). | | So I'm curious: Why do you use only the Apache-2 version of | TimescaleDB rather than the Community version? | | https://www.timescale.com/products/features | | (I realize that I'm saying "TSL-licensed" versus | proprietary, because I'm not sure what it means to think of | the code as proprietary when it's all source available on | github, people can contribute, and 99% of companies just | use it for free.) | JeremyNT wrote: | First, thanks for replying. But, I'll note you didn't | answer my question, which is about the future of the | current open source codebase. Knowing that you haven't | changed the license on such code yet is great, but that | doesn't speak to the future direction for that codebase. | | _EDIT: I just saw this reply to another child, which | addresses this concern for the core timescale, I think! | [0]_ | | To be clear, I don't think the license change as | described is a blocker for my org, given their use case. | Indeed, it may be an near term win, as they will likely | be able to take advantage of the new features that you | are placing under this license. | | That said, I always prefer open source code that I can | modify myself. Open source licenses guarantee that the | code can't be "taken away" from me, that I can integrate | a technology without concerns for the sands shifting | under me. If a company goes away, I and others can keep | on working on it, and it can live on even if the original | authors decide to no longer maintain it. | | So, as an example: say Timescale changes the license of | all its code under this new license tomorrow, then | happily adds features and changes some fundamental things | over the next few years, and then is bought by Oracle, | who decides to take it fully proprietary under a new | license that is more restrictive than the TSL license. | This would make a fork unlikely or at least very | difficult to get going! | | [0] https://news.ycombinator.com/item?id=23276614 | mfreed wrote: | Just to clarify, the Timescale License was originally | announced in December 2018. At that time, we didn't | "relicense" any existing Apache-2 code, we just said some | _future_ features will be licensed under the TSL rather | than Apache 2. | | Many people over the past year+ knew that we were working | on a distributed version of TimescaleDB; a common | question was whether the distributed TimescaleDB would be | paid-only (like some other time-series database | alternatives) or whether it would also be free. | | This announcement was meant to say: Yes, multi-node | TimescaleDB is free, not paid. | | So there wasn't any _new_ license announced today; just | that multi-node TimescaleDB would be released under the | TSL rather than as a paid-only option, which many of our | users had assumed. | ensignavenger wrote: | Proprietary usually mean "not Open Source". | | Not JeremyNT, but from my perspective, avoiding vendor | lock-in is my number one reason to favor open source | software. Avoiding vendor lock in is very important to me | when I am evaluating options. | | Just because your business model and my business model | currently align, does not guarantee that they will always | align. I don't want you to be stuck being my vendor if I | am not a good customer for you- and I don't want to be | stuck using you as my vendor if you are no longer able or | willing to provide the product I need. | akulkarni wrote: | Just so that everything is 100% clear, most of our code | base is still Apache 2 licensed (and we have no plans to | change that). | | All that this blog post is (trying) to say is that multi- | node will not be under a paid license, but instead will | be free under the Timescale License. | | Hope this helps. | JeremyNT wrote: | Thanks very much for clarifying. You might want to make a | note of this in the blog post! | akulkarni wrote: | Fair enough, will do! | akulkarni wrote: | Done :-) | jeffdavis wrote: | Did you discuss the license with any free/open source | software organization to get their input? Are other products | adopting similar licenses, and if so, what are the | differences? | | I'm not fundamentally opposed to any deviation in licensing. | But I am much less inclined to use software if the license | hasn't been reviewed/endorsed/used by others widely. | | Also, I'm curious if you considered just addressing the | license to anyone excluding $COMPANY_YOU_ARE_WORRIED_ABOUT. | Not sure what the implications of that would be, but it would | be interesting. Realistically, a startup has to prove itself | in a relatively short period of time, and in that short | period of time there are generally very few competitors | (typically zero or one) that threaten your business model | itself. If you have 10 competitors that actually threaten | your business model, your business has already proven itself | ;-) | akulkarni wrote: | We launched the Timescale License about 1.5 years ago. | | At that point we did engage with multiple folks in | different organizations, but realized that we had a | business to build and didn't have the bandwidth for all the | politicking usually required to establish a standard. | | However, if someone wants to propose a standard around the | principles of the Timescale License, then I would | completely support that discussion. | | Also, so that we are 100% clear: most of our code base | remains licensed under Apache 2. The main thing that this | post is trying to convey is that multi-node will be free | under the Timescale License. | bithavoc wrote: | Can this license be used to, say, create a Datadog-like SaaS | powered by TimescaledDB? | akulkarni wrote: | It depends on the amount of access to TimescaleDB the | services provides. | | If you're really curious, I'd be happy to chat: ajay (at) | timescale.com | mfreed wrote: | In most cases, yes, the license will permit this. | | (There is discussion elsewhere in this threads about | whether you give DDL access to your users, i.e., they | themselves define schemas, tables, indexes, etc. Otherwise, | Datadog is primarily a Value Added Service over just the | database; huge numbers of companies utilize Timescale for | building their SaaS services.) | nojvek wrote: | I admire the `except the cloud providers`. What GCP, Azure | and AWS have done with paid Redis offerings make me curious | what @antirez (Salvator) thinks about it. They're making | billions off Redis while the core contributors get nothing. I | guess they agreed to it by having their work as BSD licence. | | I do think there is a place for royalty based software. Free | for personal and development use. For production use, you pay | a small royalty to have it on the cloud. It's a win win on | both sides. User gets managed offering + support + ability to | look at source code, db/service authors get sustainable | revenue, cloud providers get their usual PaaS cut. | pritambaral wrote: | > make me curious what @antirez (Salvator) thinks about it. | They're making billions off Redis while the core | contributors get nothing. I guess they agreed to it by | having their work as BSD licence. | | Here's what Salvatore has to say (from | http://antirez.com/news/120): | | "About myself, I'll keep writing BSD code for Redis. For | Redis modules I'll develop, such as Disque, I'll pick AGPL | instead, for similar reasons: we live in a "Cloud-poly", so | it's a good idea to go forward with licenses that will | force other SaaS companies to redistribute back their | improvements. However this does not apply to Redis itself. | Redis at this point is a 10 years collective effort, the | base for many other things that we can do together, and | this base must be as available as possible, that is, BSD | licensed." | solidasparagus wrote: | > while the core contributors get nothing | | Running a half-billion dollar company after raising $150M | in funding is not nothing. | imhoguy wrote: | On the other hand it is unlikely Redis would be so popular | if it stared as paid software. | pritambaral wrote: | > The additional restriction in the timescaledb license that | you can't run a paid database as a service offering affects | hardly anyone negatively (AWS). | | That's not the only additional restriction. The Timescale | License does not give you the freedom to run modified versions | of the code in production. Pretty big difference compared to | Open Source. | solidasparagus wrote: | What this doesn't touch on is the reality of selling enterprise | software as an early startup - being open source is a hard | requirement for many buyers. | | > It affects us all positively | | Except for users who want the highest quality hosted Timescale | possible and see this license as an attempt to prevent others | from creating better offerings. The open source companies that | compete with cloud offerings are not exactly struggling. | | Don't get me wrong, I don't have a problem with them using | their position to prevent competition, but when people sell it | as 'best for all the users', it feels disingenuous. | bglusman wrote: | I think I agree with this sentiment with one caveat: (I didn't | read their license in detail, but really for licenses like this | which seems to be the broader topic) | | Today Timescale offers Timescale-as-a-service, so this allows | them a kind of soft-monopoly on being a paid provider for this, | but do these licenses generally contain a provision such that | if they no longer provide that service themselves, whether from | going out of business or a pivot to another product, then | someone else could step in and offer it in the future? Closed | source products have often had a kind of source-code escrow | arrangement so that if they go out of business, you're not | stuck unable to fix your own bugs, but similarly, if part of | the value in adopting it is that the paid service IS available, | knowing that someone else can offer a compatible service if | they disappear might be a nice reassurance for the license to | offer. | massaman_yams wrote: | They're not actually providing it themselves - Aiven actually | runs the backend. Seems like that points to it having some | longevity. | | https://kb.timescale.cloud/en/articles/2752585-timescale- | clo... | kev009 wrote: | I think you are being a bit generous on the causes and effects. | The #1 concern of a product like this is adoption. Not in some | unsustainable subsidized taxi or food delivery type thing, just | that data stores are naturally sticky and come with long term | opportunity as usage grows. If they dominate the time series | use case, and there is good reason to believe they will, | earning revenues will fall out of that in a multitude of ways. | I will believe the license proves prophetic if a major cloud or | minor cloud with deep pockets does a SaaS license. Until then, | this is a pretty standard FOSS+support business model that | became popular in the past decade. | eloff wrote: | I don't think it's FOSS+support, more like a cloud database | _service_ offering. Time will tell I suppose as to which | business model dominates. And one could make the argument the | service is a form of support. | kev009 wrote: | My own experience is the majority of people are using it on | their own cloud instances, on prem, or embedded. It's not | obvious the first-party aaS will catch on right now, just | like the novel license. I don't mean any of this | negatively, it's clearly a well run business by smart | people that are experimenting with revenue models and | trying to achieve the fair outcomes for customers and the | business. | PaulWaldman wrote: | I understand that the Timescale license can't be utilized by | cloud providers, but what about others who need a timeseries | database for their SaaS offering? Is this permitted as long as | you aren't marketing a hosted TimescaleDB solution? | | Edit: wording | akulkarni wrote: | That would be permitted, as long as the service isn't just a | "TimescaleDB-as-a-service." [0] | | For example, if the service allowed users to only make DML | changes (access / modify data) then it is ok, but DDL changes | (creating / modifying database schemas) is not permitted. | | In fact, we already have 100s of SaaS companies using | TimescaleDB as part of their offering. | | [0] https://www.timescale.com/legal/licenses | PaulWaldman wrote: | Thanks akulkarni, this is great! | teraflop wrote: | More specifically, the text of the license says you can't | offer any service that is "primarily a database storage or | operations product", even one that doesn't allow schema | modifications. | | If that wasn't what you intended to prohibit, you should | probably fix the wording of section 3.21(i). | speedgoose wrote: | >All of these capabilities are being released under the Timescale | License, our source-available license that permits broad usage, | except for where organizations are providing TimescaleDB-as-a- | service. | | So it's not open-source because AWS hasn't been nice with | ElasticSearch and they don't want to be in the same situation? | mrkurt wrote: | That sounds like open source to me, I bet they're just being | really conservative about saying "open source" because there's | been so much backlash at MongoDB/Cockroach/etc for similar | restrictions. | | It's restricted OSS because AWS takes things, runs them, and | eats up all the potential revenue. | riquito wrote: | They don't call it open source either, they call it source- | available because open source software can't have | restrictions based on commercial use | pritambaral wrote: | The Timescale License does not give you the freedom to run | modified versions of the code in production. Pretty big | difference compared to Open Source. | eitland wrote: | > That sounds like open source to me, I bet they're just | being really conservative about saying "open source" because | people there's been so much backlash at MongoDB/Cockroach/etc | for similar restrictions. | | Open Source has a very defined meaning. Please read up on the | history of open source and source available licenses before | saying it is all the same. | | We've been defending it against a number of attacks and we | will probably do it again, so please don't get on the wrong | side of history ;-) | | Note: this is not a criticism of Timescale. I can see what | they did and respectfully did not pretend it was Open Source. | Compared to a proprietary license their license opens a llt | of possibilities. | tomnipotent wrote: | > Please read up on the history of open source | | Not this patronizing bullshit again. | | The term "open source" was marketing to take advantage of | Netscape releasing their source code. Since since, everyone | seems keen on trying to usurp its definition for whatever | personal perspective they have that week. | | To the rest of the community outside of the OSI and FSF | (which is 99%+ of the software community), this is a | perfectly acceptable example of "open source" that we're | all that much richer for having. | | The Timescale license checks almost all the boxes of the | OSI definition (and I'm not certain how denying cloud | providers specifically violates any of the language): | | https://opensource.org/docs/osd | eitland wrote: | > this is a perfectly acceptable example of "open source" | | No! You cannot modify and give away the code or even run | your own modifications in production. That is pretty far | from both the letter and the spirit of open source..! | | > that we're all that much richer for having. | | Agree, thanks Timescale members for sharing it! Also I'm | happy that you on the team have decided not to pretend it | is Open Source. | | My beef is only with people who want to pretend that it | is OK to say that software that cannot be modified and | used/distributed is open source. | pritambaral wrote: | > To the rest of the community outside of the OSI and FSF | (which is 99%+ of the software community), this is a | perfectly acceptable example of "open source" | | Please review clause 2.1 (d) and section 2.2. The freedom | to run your own modifications in production is not | granted. This is a big deal, and rightly a deal-breaking | omission for something to be acceptable as either open | source or free (as in freedom). | | > The Timescale license checks almost all the boxes ... | | _Almost_ all, but not all. Some things work only when all | of them work, like freedoms. | mfreed wrote: | Just for clarification: This limitation only applies to | code under the Timescale License, while most of our code | is licensed under the Apache 2. | pritambaral wrote: | Of course, this discussion is not about code that _is_ | open-source. It is about the code that isn't but some | people would like us to believe is -- and I'm quoting my | parent comment here -- "a perfectly acceptable example of | "open source"". | [deleted] | teraflop wrote: | > The Timescale license checks almost all the boxes of | the OSI definition | | By my reading, it fails most of the interesting ones, | particularly points 1, 3, 4, 6, and 9, due to the field- | of-use restrictions and the prohibition on distributing | modified versions. | xyzzy_plugh wrote: | Frankly the pedantry around the definition of Open Source, | which I understand, is incredibly nauseating. Sure, this | isn't Open Source by "the definition", but it's close | enough if you squint. The difference doesn't impact almost | anyone. Are you or someone you love impacted by this | licensing decision? | | Throw in an expiry date, dual licensing (pay to play seems | more than fair) and I'm content. History be damned. | | I'm so sick of it. Just because one group defines it a | certain way doesn't make it gospel. The OSI has no power | over me. | eitland wrote: | > Frankly the pedantry around the definition of Open | Source, which I understand, is incredibly nauseating. | Sure, this isn't Open Source by "the definition", but | it's close enough if you squint. The difference doesn't | impact almost anyone. Are you or someone you love | impacted by this licensing decision? | | If we had accepted this line of reasoning Open Source had | been a synonym for source available by now. | | For those who wasn't there when it happened you just have | to believe us old timers that some companies tried to | pass of all kinds of almost-open-source-but-you-are- | still-trapped deals almost since the term was coined. | | Now even Microsoft have learned but it seems the war | against misinformation isn't over yet. | | > Throw in an expiry date, dual licensing (pay to play | seems more than fair) and I'm content. History be damned. | | Fine. I'm not against everything except open source. and | I'll happily use it but why why why do you have to call | it something that means something else? | | Why not call it source available or something? | Reelin wrote: | > pedantry around the definition of Open Source, which I | understand ... it's close enough if you squint | | Then I think that while you might have read and | understood the definition, you seem to have missed the | broader idea behind it. | | > pay to play seems more than fair | | That's irrelevant. Sure it's fair, but it's fundamentally | _not open source_. | | It's not about gospel or having power over you. It's | about communication and well established meanings. | Calling a fish a bird doesn't make it a bird, and | resisting attempts by others to redefine the language I | use is a _Good Thing_ as far as I 'm concerned. | | (To their credit, Timescale uses the terminology | correctly and I greatly appreciate that. I also think | they picked the right licensing model given how things | seem to work these days.) | xyzzy_plugh wrote: | > you seem to have missed the broader idea behind it. | | Funny, I feel that you might have missed the point as | well. | | > It's about communication and well established meanings. | | Yes, but it's fundamentally impossible to bucket various | licenses into what they do and do not do, and what | obligations or burdens they place upon the end user. What | is Open Source? The OSI includes GPLv3, which is | certainly not "free" for a ton of commercial uses. | | Let's peek at the OSI's FAQ: | | > This history has led to occasional confusion about the | relationship between the two terms. Sometimes people | mistakenly assume that users of the term "open source" do | not intend to communicate a philosophical point of view | via that term, even though many actually do use it that | way. Another mistake, which has occasionally been seen | since about 2008, is to assume that "free software" | refers only to software licensed under copyleft licenses, | since that is how the FSF typically releases software, | while "open source" refers to software released under so- | called permissive (i.e., non-copyleft) licenses. In fact, | both terms refer to software released under both kinds of | license. | | > Neither term binds exclusively to one set of | associations or another, however; it is always question | of context and intended audience. When you sense a | potential misunderstanding, you may wish to reassure your | audience that the terms are essentially interchangeable, | except when being used specifically to discuss the | history or connotations of the terminological difference | itself. Some people also prefer to use the term "free and | open source software" (or FOSS, FLOSS [free, libre and | open source software]) for this reason. | | Okay so, let's recap: A) it's confusing. B) the terms are | often interchangeable but context matters. C) not | everyone agrees. | | At this point, the value of any "Open Source Definition" | is severely diluted for any considerable purpose. Just | because a license meets OSI's definition doesn't mean I | should make any assumptions about what I can or cannot do | with it, so what value does this provide beyond adding | confusion? | | > Can I call my program "Open Source" even if I don't use | an approved license? > Please don't do that. If you call | it "Open Source" without using an approved license, you | will confuse people. This is not merely a theoretical | concern -- we have seen this confusion happen in the | past, and it's part of the reason we have a formal | license approval process. See also our page on license | proliferation for why this is a problem. | | I'd argue the confusion is already present. A license is | a license is a license. OSI is an organization that says | "please don't call your thing Open Source if it doesn't | meet our standards" -- I don't care. Whether or not I | comply with this polite request changes nothing, offers | me no direct benefits. | | To be clear: I see value in OSI, and everything they | provide. They have definitely provided a net benefit to | the world. I do not see value in pedantry around the term | "open source", those words are so plain and ordinary that | gluing any tertiary meaning to them is foolish. It's as | subjective as "good code". | Reelin wrote: | You are either severely misunderstanding or | misrepresenting the FAQ that you quoted. It's simply | clarifying that copy-left and permissive licenses are | both compatible with the meaning of the term open source | (ie they're disjoint subsets). | | Regarding the "please only used approved licenses bit" - | you've again missed the point. There is an effectively | infinite set of possible licenses which satisfy the | meaning of the term "open source" as it is currently | used. The OSI is merely pointing out that it will make | everyone's lives easier if developers try their best to | use one of the licenses that already exists. | | Licensing is a complex topic and not everyone is a lawyer | or can afford to consult one (particularly for hobby and | volunteer projects). If every project out there used a | unique license it would be a complete nightmare. For that | reason, it's better for everyone if at least some minimal | attempt is made to use a well established license | whenever possible. | | > The OSI includes GPLv3, which is certainly not "free" | for a ton of commercial uses. | | Incorrect. Commercial customers are free to use, modify, | and redistribute just like everyone else. They can even | sell a product based on it - they just can't keep any | changes they might make closed source if they do so. | | > the value of any "Open Source Definition" is severely | diluted for any considerable purpose | | Not at all. The meaning is quite clear - I'm either free | to use, modify, and redistribute it or I'm not. That's | it. | | Take a look at some of the approved licenses - for | example AGPL, GPL, MPL, and MIT. In _all_ cases I'm free | to modify and redistribute. In some cases I might be | required to make my changes available, but never am I | barred from making use as I see fit. Source available is | simply not the same thing. | | > I do not see value in pedantry around the term "open | source", those words are so plain and ordinary that | gluing any tertiary meaning to them is foolish. It's as | subjective as "good code". | | The fact that you see it as subjective is the | misunderstanding that I refer to. It is _not_ subjective, | but convincing others that it is can sometimes confer | monetary benefits. This is precisely why such pedantry | exists in great quantity surrounding the topic. | __s wrote: | Yep. I've been putting code out for free (MIT) for over a | decade. I'm an open source developer. But I'll decide | what gatekeeping I participate in for myself thank you | | Maybe we just need to have "little O" open source. Unless | someone's saying "Open Source" don't get in on splitting | these hairs | akulkarni wrote: | "little o" open source is clever. | eeZah7Ux wrote: | I'd rather have "big F" Free Software: something that | ensures that the many efforts I put into development end | up benefiting the end users. | | Right now middlemen are making billions and end users get | vendor lock-in. | tpayet wrote: | I am glad to hear there are more and more people that | accepts those new kind of open source, not the official | definition of the OSI but more like the global idea | behind it | Reelin wrote: | > not the official definition of the OSI but more like | the global idea behind it | | The trouble is that it _isn't_ the "global idea behind | it" - the idea behind open source is the unrestricted | freedom to modify and reuse. Closed source, source | available, and open source are quite distinct from one | another. Terminology sometimes has well established | meaning and that can be very important for effective | communication. | | I actually _like_ proprietary source available software, | but it isn 't the same thing as open source and anyone | claiming otherwise is simply ignorant of the very well | established meaning of that term. Pedantry can be called | for, particularly when a monetary incentive exists to | confuse and deceive. Consider for example that the | definitions of many food products are defined in law and | regulated to protect the consumer from deceptive vendors. | | (To their credit, Timescale gets the terminology right | and I appreciate that. It's people in the HN comments | section that are incorrectly throwing the term open | source about and completely missing the point.) | gk1 wrote: | Yes. ElasticSearch, Confluent, Redis, and Influx learned this | too late. | psankar wrote: | Are there any tools to migrate from elasticsearch to timescale ? | We are considering a switch from our es and are evaluating | options. Timeseries is also one of the contenders. We are not | looking for text search just some nested queries on a timeseries | data. | tylerfontaine wrote: | Disclosure: I work for Timescale, previously worked for Elastic | | Pretty much any ETL tool you like could do this, as long as it | speaks to elasticsearch and postgres. | | Logstash (if you're using the ELK stack) can write to CSV or | other formats as well as do any processing, but it doesn't have | a JDBC output plugin, so you'd have to ingest with something | else. Conversely, fluentd for example can output to Postgres, | but doesn't have an elasticsearch input (at least that I could | find), so you'd have to export from es with something else. | | So it might be a couple of steps, though there are rich clients | for most major programming languages for both elasticsearch and | postgres. If your schema is fairly simple, this might not be | too bad to roll your own. | | That said, the hardest part is likely massaging your data, if | your elasticserch schema is complex. Because you have to | totally denormalize things for es (generally), you might have | to unravel some of that going back into a relational database. | akulkarni wrote: | Not sure, but if you post that question to the TimescaleDB | Slack [0] you might get an answer there. | | [0] https://slack.timescale.com/ ___________________________________________________________________ (page generated 2020-05-22 23:00 UTC)