Transactional NoSQL Database that’s Blazing Fast
A database without transactions is… well, not much of a database, and as far as transactions are concerned – ACID is the gold standard. ACID document databases are widely accepted as a key player in crunching today’s masses of complex data, and RavenDB has been standing tall for over a decade now in guaranteeing ACID without sacrificing performance. It is commonly used for point of sale applications, trading systems, order fulfillment, inventory tracking, ERP applications and more.
RavenDB is one of the first nonrelational databases to offer ACIDity not just for a single value, but for multiple values throughout your database as well. And as a distributed database, it also offers ACID guarantees throughout your database cluster. Your developers are exempt from handling the numerous scenarios of partial data transfers and the intricacies of data storage, and are free to focus on building robust applications and deliver value to the business.
Just having transactions isn’t enough if it’s at the cost of performance. In today’s environment of Big Data, even the most reliable results are of little use if they come in late. Trading algorithms need to update aggregate figures in real time, processing petabytes of trade data each moment. Health care applications need to rapidly track test results and compare them to millions of similar cases, in order to assist doctors in choosing the best course of action. Point Of Sale (POS) applications need to update inventory totals, regional sales and purchasing needs on the hour. These requirements call for a database capable of handling massive amounts of data in real time, while guaranteeing its integrity for every transaction. And the database must accomplish this while using up as little resources as possible, so teams with aging hardware will be able to run the database as if they had topnotch equipment.
In some cases, data is streamed from small edge points like sensors embedded in machinery, clothing and even the human body, and then relayed to servers for immediate processing. On a Raspberry PI, a $25 machine running on low powered ARM chips and a mere 1 GB of RAM, RavenDB can handle over 13,000 reads per second and over a 1,000 writes per second. This is more than enough for most small to medium applications. For demands higher than that, a single RavenDB server running on a machine of less than $1,000 can handle over 150,000 writes per second and over a million reads per second.
Improving performance while keeping ACID consistency throughout the system has been enough of a challenge to get us really creative. One of our latest improvements is the development of Voron, our custom-made storage engine, designed specifically to maximize RavenDB’s performance and eliminate integration issues.
By developing our own storage engine, we gained full control over RavenDB’s transactions and can now adjust both database and storage engine to gain diverse storing options, perfect reliability and immense speed. Transactional Merger is a great example for the simple and effective way in which Voron lifts RavenDB to a new level of rapidity and reliability. Multiple transactions are bundled into a single transfer, to reduce latency and zoom up performance by orders of magnitude.
Our commitment to impeccable atomicity is maintained by means like safe collection of transmitted data into journal files. Your data files are updated only when transfers are confirmed whole, ensuring easy and full recovery in case of an ungraceful server shutdown or another communication error.
Voron and transactional mergers are just a taste of RavenDB’s accumulated achievements in improving speed and ACID conduct over the years, enabling you to keep the best of what relational databases have to offer while moving forward to conquer today’s world of nonrelational data.