RedisGraph offered a great mix of maturity, feature completeness, interoperability with the languages that we use, price, and performance.
Company ThinkData Works
ThinkData Works makes data access easy. The Toronto-based data technology company’s flagship product, Namara, an end-to-end data management platform, provides the tools for every stage of the data lifecycle.
As ThinkData started working on an enterprise version of Namara, it began building the application using a microservice architecture to combat scaling and performance concerns, and needed a new high-availability setup. The solution needed to be able to answer complex queries around data access extremely fast in real time.
After deciding that a graph database was the best solution, the team adopted Redis Enterprise and RedisGraph to manage service-resource access.
ThinkData has seen immense performance improvements since adopting RedisGraph, including a 62% decrease in total request time for functions such as text-query catalog searching. Plus, using a managed service like Redis Enterprise with RedisGraph enabled in the database freed the ThinkData team to focus on R&D.
“With our architecture plan, many graph queries go through the graph database for any given request, so we are particularly happy with the throughput that we received from RedisGraph compared to a couple of competitors.”
—Brendan Stennett, CTO, ThinkData Works
By leveraging the performance characteristics of the graph engine in RedisGraph for ThinkData’s highly connected data, the team has seen immense performance improvements on its platform. Since each service in the ecosystem is responsible for its own primary storage, shared graph access allows service-to-service read operations to take place without introducing additional network overhead.
When measuring open catalog query performance between the legacy and enterprise platforms—retrieving all datasets a user is able to view—RedisGraph can retrieve information in less than half the amount of time as the legacy platform takes. The total request time for the enterprise platform is roughly 380ms, a 43% decrease from the legacy platform’s request time of 678ms.
Similarly for text-query catalogue searching, RedisGraph is able to retrieve the results in 93ms, part of a total enterprise response time of 320ms. For comparison, the legacy database takes 851ms to resolve the same request. RedisGraph delivers a 62% performance boost!
“With our architecture plan, many graph queries go through the graph database for any given request, so we are particularly happy with the throughput that we received from RedisGraph compared to a couple of competitors,” Stennett says.
The team also appreciates the benefits of using a managed service like Redis Enterprise with RedisGraph enabled in the database. Because few on-call issues arise, ThinkData can field a considerably smaller-than-usual DevOps team—freeing up additional resources to focus on R&D, Stennett says.
He also emphasizes the ease and trust his team developed working with the Redis Labs support team. “The Redis support team’s ability to respond quickly to some issues that came up in early development really allowed us to trust working with Redis Labs, in the sense that we’ll get that support feedback when needed,” he says.
An added bonus of picking RedisGraph was getting access to RedisInsight, which helped get ThinkData’s team of developers excited to work on RedisGraph. “Oftentimes developers have never worked on a graph database, or don’t even know what a graph database is,” Stennett says. RedisInsight’s ability to “help them visualize these early concepts while developing really, really goes a long way in getting them productive.”
The ThinkData team plans on moving its existing data model to the graph database, while continuing to improve its recovery tooling to minimize downtime and performance impact. The team is also looking to take advantage of new RedisGraph features and improvements as they become available. ThinkData uses the RediSearch functionality that RedisGraph provides, but it is also looking into using other data structures offered in Redis Enterprise.