If you prefer video, you can find the same information here:
In keeping up with the world of data, it can be frustrating to get an understanding of what a product or feature really means to the developers who may end up using it. Because of this, I want to give a quick, high-level explanation of Speedb and what it means to developers. At the very least, hopefully you will finish this article knowing whether or not you’d like to dive deeper into the technology.
So… what is Speedb?
Speedb is an embedded key-value storage engine.
Okay, I’ve condensed it to one sentence, but what does it mean? Let’s break it down, but backwards.
- A Storage Engine is simply an engine that manages the storage and retrieval of data. It gets the data and puts it somewhere, whether it’s in-memory, on disk, or in a Mongo or MySQL database, for example.
- Key Value Stores (sometimes referred to as KVSs) are a brilliant concept of simplifying data down to two things: the unique key and the value which contains the data. This key value pair is then stored on disc or in memory and is extremely fast and efficient especially in dealing with a high volume of data. Social media apps, data streaming, cache and metadata management, and gaming data are all use cases that highly benefit from this technology.
- The word Embedded means it runs within your application as a library, so wherever your application is and wherever your application goes, Speedb is there. This close proximity reduces latency, makes deployment easier, and reduces costs by eliminating the need to have separate servers.
You may have heard of some of the key value stores out there like Redis, Cassandra, and DynamoDB, but at Speedb we are most interested in RocksDB. In fact, Speedb is built on RocksDB (we’re a fork of RocksDB) and even further than that you can drop us in to replace RocksDB in any application where it already exists. This is very important and powerful because RocksDB is used in some very popular applications like Kafka Streams, Apache Flink, Samza, and Redis Flash.
How is Speedb different?
Now that you know what we are, you’re probably wondering how we’re different from the others.
Speedb has focused on strengthening the capabilities of RocksDB while adding our own valuable features to enhance implementations in the 4 following ways:
- Performance - helping the application to run faster, using less resources through features like our Paired Bloom Filter.
- Stability - lower volatility by better handling performance spikes as seen in our Delayed Dynamic Writes, for example.
- Memory Management - more efficient usage of memory with our Proactive Memory Flushes and other capabilities.
- Developer Experience - improved ease of debugging and operations using features like the Live Configuration Change capability.
By focusing on these aspects, we’ve been able to reduce a lot of the risk, cost, and anxiety that can come with deploying high-velocity big data applications.
So, now what?
As promised, I’ve given a high-level overview of who we are, but you may have loads of questions about the details. The good news is we have several places you can go to learn more and ask questions:
- Join our community. We have an active community in our Discord to get answers and information. Importantly, we also have a strong desire to foster the RocksDB community. So whether your question is about RocksDB or Speedb or anything related to anything in this article, please join us.
- Check out our github repo. The dev community is at the heart of Speedb and we want developers to contribute to Speedb through pull requests, feature requests, issue submissions, etc. We want to collaborate with you toward the same goal of creating a powerful technology that will make your projects successful.
- Check out our website and documentation for more details on how to get started and follow us on LinkedIn, Twitter, and Youtube. We run a regular webinar series on topics related to KVS and data technologies, so make sure to keep up with the latest news, events, and content.
Hopefully, this was helpful. If you have any questions, please find me in our community or reach out to me at firstname.lastname@example.org !