Ashish Agarwal Director of Engineering at Tendril
TL;DR: Energy providers, product manufacturers and consumer channel partners across the globe use Tendril’s solutions to foster deeper consumer relationships, differentiate their offerings, lower their cost of operations, and drive increased value over the lifetime of the consumer.
They collect 15 minute meter reading from smart meters and currently consume 5 TB of time-series data per month; they forecast growing this to 20TB per month over the next 12 months.
The majority of Tendril’s stack is virtualized via CloudStack, but they run Cassandra nodes on bare metal for performance. Their drives are spinning disks, but plan on switching to SSDs if disk performance proves unacceptable. They are running Cassandra across two data centers with failover capability.
What does Tendril do?
Tendril is changing the way the world uses energy with its groundbreaking consumer engagement applications and services. Energy providers, product manufacturers and consumer channel partners across the globe use Tendril’s solutions to foster deeper consumer relationships, differentiate their offerings, lower their cost of operations, and drive increased value over the lifetime of the consumer. The company’s flagship application suite, Tendril Energize™ delivers the insight, choice and control utilities and consumers need to meet their energy management goals. Additionally, Tendril’s solutions are based on an open platform with a rich set of APIs, thus unlocking innovation for our Utility customers through 3rd-party development.
How are you using Apache Cassandra?
In order to provide insights into energy usage, we collect 15 minute meter reading from smart meters. Tendril currently consumes roughly 5 TB of time-series data per month, and we expect this to grow to roughly 20 TB per month over the next 12 months. Our use case is write-heavy, so we needed a data store that was optimized for writes. Given our needs and data demands, Cassandra was the perfect choice for a data store.
What was the motivation for using Cassandra and what other technologies was it evaluated against?
The following criteria were considered during our evaluation of data stores solutions:
1. Write Performance: Low-latency write performance was our most critical criteria due to the high data volumes that we receive and the extremely low window we have to store and acknowledge the receipt.
2. Availability: We required the ability to perform periodic maintenance of the cluster nodes without requiring any user-perceived downtime.
3. Horizontal scalability: In order to address current and future demands, and do so in a cost-effective way, we required a solution that could scale horizontally.
4. No single-point-of-failure (SPOF): Due to our uptime requirements and SLAs with our energy provider customers, we required a data store that did not contain any single-points-of-failure.
5. Java: Our primary development language on the platform side of our solution is Java, so picking a Java-based Open Source solution was very attractive to us in order to best leverage our existing development expertise.
Can you share some insight on what your deployment looks like?
Most of our stack is virtualized via CloudStack, but we run Cassandra nodes on bare metal to get maximum performance. With this configuration, we are able to get acceptable performance through traditional hard drives, but will consider SSD’s if disk performance starts to prove unacceptable. We are running Cassandra across two data centers with failover capability.
What’s your favorite part about Apache Cassandra?
There are many things that we like about Cassandra. Given our write volumes, low-latency write performance is huge for us. Cassandra’s HA capabilities, with no single-point-of-failure, is very attractive. Cassandra’s ability to easily scale horizontally is also important for us. It allows us to seamlessly grow our Cassandra clusters as we grow our customer base. Also, the addition of CQL has made Cassandra much easier to use and has opened up additional use-cases for Cassandra inside our shop.
What would you like to see out of Apache Cassandra in future versions?
Two things that might help the Cassandra developer community are: better IDE integration and better tools to visualize data. Additionally, CQL has come a long way to make Cassandra easy to use. We would like to see support for additional relational constructs continue to be added to further extend the use-cases where Cassandra can be applied.
What’s your experience with the Apache Cassandra community?
One advantage of an active Open Source project like Cassandra is an active developer community. We have been able to take advantage of active discussions in many of the relevant forums and mailing lists. DataStax also has done a great job of providing technical documentation, tools & tips to the developers.
Anything else that you’d like to add?
Thank you so much for taking the time to talk to us! We look forward to continue using Cassandra as our data store.