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 ScyllaDB, 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 ScyllaDB maximizes hardware to it’s fullest potential, they were able to reduce operational costs with fewer nodes while having greater performance and lower latencies.
ScyllaDB was also able to address Zenly’s monitoring problem because it has an easy-to-use monitoring stack. ScyllaDB Monitoring consists of Grafana and Prometheus. Data is sent to Prometheus from each ScyllaDB 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 ScyllaDB, check out their presentation from ScyllaDB Summit 2017:
Want to learn more about ScyllaDB? Check out our download page to run ScyllaDB on AWS, install it locally in a Virtual Machine, or run it in Docker. You can also take ScyllaDB for a test drive. Our Test Drive lets you quickly spin-up a running cluster of ScyllaDB so you can see for yourself how it performs.