Zenly: The Journey for a Database Replacement
When an organization changes their database backend, it is not a simple task and there is usually an interesting story behind it. This was the case with Zenly, a mobile application that lets you know where your friends are in real time. They were using Elasticsearch as their main database to take advantage of its full-text search capabilities. However, Elasticsearch did not perform well for Zenly’s workload, which consists mostly of update operations, and they found it difficult to monitor and locate their data, so they began to look for a database replacement.
Zenly considered Apache Cassandra because they were familiar with it from previous work. They decided against it because Garbage Collection (GC) is a deal breaker for small clusters. When GC starts, it can bring down the service temporarily—not ideal for a live service with high traffic. To get optimal performance and reliability with Apache Cassandra, they would need to build a very large cluster with highly experienced individuals to make sure the environment runs well, which would result in a significantly higher total cost of ownership.
With Scylla, Zenly no longer had to worry about GC bringing down the service and was able to use fewer nodes than with an Apache Cassandra cluster. Since Scylla maximizes hardware to it’s fullest potential, they were able to reduce operational costs with fewer nodes while having greater performance and lower latencies.
Scylla was also able to address Zenly’s monitoring problem because it has an easy-to-use monitoring stack. Scylla Monitoring consists of Grafana and Prometheus. Data is sent to Prometheus from each Scylla node with important metrics such as CPU, disk I/O, network, database statistics, and more. The user can then visualize the metrics with the intuitive Grafana web interface.
To learn more about Zenly’s switch to Scylla, check out their presentation from Scylla Summit 2017:
Want to learn more about Scylla? Check out our download page to run Scylla on AWS, install it locally in a Virtual Machine, or run it in Docker. You can also take Scylla for a test drive. Our Test Drive lets you quickly spin-up a running cluster of Scylla so you can see for yourself how it performs.