Performance & Consistency
Since 2009, we have been mastering the art of maximizing performance while maintaining ACID consistency. The pioneer NoSQL ACID Database, we have developed new methods for everything to give you the performance you need, and the stability required of today’s applications.
NoSQL MapReduce: Running Tallies for Rapid Retrieval
Wouldn’t it be great if the answers to all your questions were waiting for you the moment you asked them? That’s what our NoSQL MapReduce aggregates are all about. Saving you time.
RavenDB will aggregate a MapReduce query the “old-fashioned” way combing through everything to organize it according to your request, just once. With every new data write, if it is something that should be counted as part of the aggregate, RavenDB will include it in the updated total.
So, if you perform a MapReduce asking ‘how much in sales did we do from Europe? How many from America? How many from Asia?’ RavenDB will go over all your sales orders and make the tallies just once. Then, when you make a $150 sale in New York, as it gets written, it will also be updated to the aggregate total for US sales. The next time you ask, the answer will be waiting for you. There will be no need to recomb the database.
This process performs 10 times faster.
RavenDB NoSQL MapReduce is part of the database. You don’t need to addon Hadoop. This is great for complex architectures like microservices which seek to minimize complexity and for development teams that want to maximize their productivity by learning just one technology for their database.
Closing the Gaps
ACID consistency normally creates performance gaps. A database will typically process a transaction in two steps: Step 1 is to make the operation transactional by adding to it the ACID guarantees, and step 2 is to persist the now ACID transaction.
During step 1, the system waits. That’s like sleeping 12 hours a day, how productive is that? RavenDB will process operations by persisting a transaction to disk while preparing the following operation to hold ACID guarantees. Voron will perform steps 1 and 2 simultaneously. This closes the gaps, maxes out your resource utilization letting you work on older and smaller machines more efficiently, and increases performance by orders of magnitude.