Case Research: Sequoia Capital — Why We Moved from Elasticsearch to Rockset


Sequoia Capital is a enterprise capital agency that invests in a broad vary of shopper and enterprise start-ups. To maintain up with all the information round potential funding alternatives, they created a set of inner information functions a number of years in the past to raised assist their funding groups. Extra not too long ago, they transitioned their inner apps from Elasticsearch to Rockset. We spoke with Sequoia’s head of engineering, Jake Quist, and VP of knowledge science, Hem Wadhar, about their causes for doing so.

Inform us concerning the inner instruments you construct and handle at Sequoia

Sequoia makes use of a mix of inner and exterior information to tell our decision-making course of. We have now funding professionals and information scientists, and we wish our customers to have the ability to get the information they want for his or her work.

Over time, we’ve constructed a lot of inner apps to floor information to our customers. From a handful of customers early on, we now have half our agency utilizing our apps in some kind. Half of our apps require transactional consistency, in order that they use Postgres or DynamoDB. The opposite half—about 15 instruments—use Rockset for search and analytics. We had initially constructed them on Elasticsearch however migrated to Rockset a yr in the past. We additionally use Retool for the front-end for our apps.

Why did you progress search and analytics from Elasticsearch to Rockset?

There are two foremost causes we most popular Rockset to Elasticsearch for the analytical apps we have been constructing: the power to make use of SQL and shorter indexing instances.

Rockset lets us write SQL towards our information. SQL is a greater match for what we’re doing in bringing collectively a number of information units to create a map of the start-up universe during which we function. The power to do relational algebra in Rockset is de facto useful.

SQL permits extra individuals to work together with the information. Our engineers and information scientists are rather more productive writing queries in SQL. Every thing was that a lot tougher when utilizing Elasticsearch DSL. Previous to shifting to Rockset, we prevented Elasticsearch DSL syntax if we may, typically performing duties in Spark as a substitute. We’re consistently iterating on our queries, and we’re in a position to decide correctness extra shortly due to our familiarity with SQL. When issues do break, it’s simpler to test what broke if we’re utilizing SQL.

We use information from many various sources in our evaluation. We commonly obtain information information from our distributors that we have to ingest from S3. Elasticsearch and Rockset each index the information to speed up question efficiency, however the indexing time is way shorter with Rockset. This permits us to question the latest model of the information as shortly as doable, with out compromising on efficiency.

What alternate options did you take into account?

Given the challenges with Elasticsearch, there’s a very good probability we might have moved off Elasticsearch anyway, even when Rockset weren’t an choice. Previously, we’ve thought of utilizing Postgres as a substitute, however we might have needed to be extra selective concerning the information we put into Postgres, doubtlessly limiting the information units we convey into our apps. Snowflake and Amazon Athena have been different SQL choices, and we do use Snowflake at Sequoia, however Rockset is approach quicker for powering apps.

We’ve additionally experimented with different NoSQL databases, however SQL is simply a lot simpler to make use of. All of the NoSQL alternate options required studying one thing completely different from SQL. In the end, there’s a variety of worth in with the ability to question utilizing SQL however not having to specify the schema, and Rockset provides us that means.

What did you obtain by making the swap from Elasticsearch to Rockset?

Our group doesn’t use Elasticsearch anymore. We’ve moved our inner apps over to Rockset for search and analytics.


moving-from-elasticsearch-to-rockset

We bought the power to do joins. Elasticsearch doesn’t assist joins, so we have been consistently denormalizing our information to get round this. It might probably take every week to arrange a Spark job to denormalize every information set, and due to the information we cope with, we might expertise important area amplification as a consequence of denormalization. Information that may occupy 1 TB in Elasticsearch now takes up 10 GB in Rockset, roughly a 100x distinction from not having to denormalize with the intention to be part of information.

We shortened the time it takes to index our information. With Elasticsearch, it could take 4-5 hours to index our largest information set. We’re doing that in 15-Half-hour with Rockset. We’re making information usable extra shortly now, and we now not have to expend effort monitoring longer-running ingestion on Elasticsearch.

We will transfer and iterate quicker with Rockset. Our information mannequin is continually in flux, and we don’t anticipate it should ever get to a gradual state, so it’s vital to have the ability to iterate shortly on our queries and apps. The schema exploration functionality in Rockset is de facto useful in understanding the construction of the information we obtain. Constructing and debugging queries utilizing SQL in Rockset is trivial for us. We might typically take 15-Half-hour to assemble the equal queries in Elasticsearch, and it could nonetheless not be 100% sure that we’d appropriately specified the question we meant. Transferring to Rockset permits us to be extra environment friendly as a consequence of our familiarity with SQL. Rockset’s Question Lambdas (named, parameterized SQL queries saved in Rockset that may be executed from a devoted REST endpoint) function a useful abstraction layer on which we construct our inner apps.

We now not have to handle and keep a cluster. We beforehand used an Elasticsearch managed cloud service, nevertheless it nonetheless wanted a variety of wonderful tuning from our engineers and would possibly go down for a few hours each month. Rockset is a upkeep delight. We don’t have to consider it and might merely deal with constructing our apps on high of it.

General, we’ve improved the underlying information infrastructure for our apps with this transition from Elasticsearch to Rockset. The variety of apps we construct and the information we make use of in our evaluation will proceed to develop, and we’re wanting ahead to extra Rockset options and integrations to assist us on the best way.



Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles