Update on InfluxDB Clustering, High-Availability and Monetization
Paul Dix /
Use Cases, Company
Mar 10, 2016
Update: Since I wrote this post we’ve delivered on the things I’ve promised.
- We have continued to improve our open source platform with 88 new features and 133 bug fixes to InfluxDB. This includes performance enhancements and all new query functionality like Holt-Winters, moving averages, and killing long running queries.
- We created influx-relay as a pure open source option for high-availability setups.
- We released managed clusters of InfluxDB on InfluxDB Cloud on April 19th.
- On September 8th we made an on-premise InfluxDB Enterprise offering.
“How does InfluxData make money?” That’s a question I’ve been asked many times over the course of developing the InfluxDB project and building the company, InfluxData, around it. Currently, we have our cloud offering, a managed hosted platform for InfluxDB, and we offer support with an SLA plus professional services.
Over the last few months we’ve had conversations with other open source vendors and looked at the different models of open source monetization. From our discussions, we’ve heard that support alone isn’t a viable model to ensure that we can continue keeping everything open source. It appears that despite continued significant contributions to the open source projects customers eventually drop support as their infrastructures mature and they look to reduce operating costs.
We also looked at building closed source tools for production tasks like administration and monitoring. We found that these tools largely don’t monetize well and are vulnerable to other monitoring vendors and hosting companies. Hosting providers are a particularly acute existential threat as they could provide a fully managed solution of our open source software, eliminating the need for any customer to buy production tooling, support or our cloud offering. We saw this play out over the last 6 months with AWS’ launch of Managed ElasticSearch on their platform. Time will tell how Elastic responds from a product perspective, but no doubt Amazon will continue to improve and aggressively monetize their service offering.
While we’re committed to open source, we also can’t ignore the realities of business. We need to be able to pay developers to continue to drive the InfluxDB project forward. As a result, we’ve decided to build future clustering functionality as closed source software. Future versions of the open source InfluxDB will focus on providing the best experience and performance as a standalone server. Clustering and high availability functionality will be available as part of our Influx Enterprise offering, which will be available in the coming months.
I know this will come as a surprise to some of our users and fans. We’ve been developing InfluxDB in the open for the last 2.5 years and have had multiple iterations of clustering in that time. However, we felt that the best possible path forward for both the InfluxDB community and the company that supports it was to commercialize earlier and more aggressively to ensure that we can continue to make great contributions to the open source InfluxDB. For those that were expecting our most advanced clustering as free open source software, I’m sorry to disappoint you.
Next week we’ll be cutting the first release candidate for the 0.11.0 release. While this release includes significant improvements in the query engine and the clustering code base, it will be the last open source version that includes clustering. In April, we’ll release 0.12.0, which will be fully open source and have great new features, but it will be focused on the standalone InfluxDB server. Both of these will be drop in replacements for the current stable 0.10.3 release.
For our users looking for free open source options, we’ll be releasing the open source InfluxDB Relay project along with a landing page how to achieve high availability using pure open source and subscription options with the 0.12.0 releases and beyond. From that point forward our clustering efforts will be focused on the closed source Influx Enterprise offering.
Our goal with this split was to create a clear line where we have pure open source software available for free and closed source software for sale. Our intent is to serve most of our user base through open source while monetizing the smaller percentage of enterprises and users operating at more significant scales.
This isn’t a decision we take lightly. We looked at our current user base and of the thousands of organizations and users of InfluxDB around the world, less than ½ of a percent are running active clusters. This is to be expected given that we’ve been telling the community that clustering was not production-ready and meant for testing purposes only.
However, there are still thousands of organizations around the world using InfluxDB and getting real value out of it without clustering. The value we create in the open source offering will only increase over the coming months and years with each release as we deliver enhancements to open source code in the TSM storage engine, our new query engine, and expanded query functionality.
The question of whether we were putting out crippleware did come up. A few people I talked to thought that clustering was “table stakes” for any open source database. Looking at our current user base I don’t think that’s the case. Certainly, there are other databases like Cassandra and Riak that offer free open source clustering, but those databases have little use outside the distributed, clustered context.
InfluxDB is compelling as a standalone server for the time series use case even without clustering. We have users that are running on single servers ingesting more than 1 billion values per day and we expect to increase that ingest throughput on the open source platform over time. Today there are thousands running standalone InfluxDB servers in production. Looking at the features we have coming up we expect that number to increase significantly.
Here’s a preview of some of what will be developed directly in the open source InfluxDB over the next 6 months:
- Improved query engine with significant performance gains and fixes for many memory killing queries (OOM bugs)
- Many more query functions like moving average, time based joins, histograms, transformations across series and more
- Query management and functionality to kill long running or misbehaving queries
- Billions of ephemeral series supported on a single server. This is an index for measurements and tags that is on-disk and in-memory
- Geospatial queries
We will continue to develop the standalone InfluxDB code in the open under an MIT license as we have for the last two years. Our goal of building the best open source time series database in the world remains the same.
For our current and future customers, we’ll be offering clustering and high availability through Influx Cloud, our managed hosting offering, and Influx Enterprise, our on-premise offering, in the coming months. For on-premise, our intent is to offer a highly available clustering offering, which will include developer support.
Influx Enterprise and the clustering it offers will be deployed through our Influx Cloud offering before we offer it as an on premise binary. This will give us the ability to quickly iterate on the clustering offering and do multiple deployments a day in an environment that we have control over. For our cloud customers this means they’ll get the quickest fixes for any issues while our future on-premise customers will get a binary battle hardened through production use.
If you have comments, questions or concerns don’t hesitate to email me personally at [email protected]. We’re committed to the longevity of this project and having compelling free, open source software that we continue to improve.