Achieve 100,000 writes per second, and over one million reads on commodity hardware. We developed Voron, our own custom-made storage engine tailored just to soup up RavenDB’s performance.
Our GUI makes the RavenDB user experience enjoyable for developers and non-developers alike. It’s part of any license, including your free community version.
RavenDB is the first non-relational database to achieve ACID across the entire database. Maintain the best of SQL while boosting your capacity to the next level.
Married to your legacy SQL solution? RavenDB works well with relational databases, giving you the opportunity to add a NoSQL layer to your existing architecture without any disruptions.
RavenDB runs on Windows, Linux, macOS, Windows Tablet, and Raspberry Pi platforms.
Break free of the single server bottleneck. Set up a distributed data cluster in minutes. Replicate your database in real time so you can be everywhere at once, and always available to your users.
RavenDB is easy to install, simple to secure, and quick to learn. Our query language is 85% SQL. Using our training resources, you can become an expert in a few days.
Spend more time coding, and less time on the phone with support. We exposed a lot of internals in approachable way to help you self-solve problems and reduce overhead. When you do need help, our support engineers are the best in the business.
Your community license includes the Management Studio GUI, 3 cores, a distributed data cluster of 3 nodes, 6GB of RAM, and easy compatibility with cloud services like AWS, Azure, and more.
Focus on doing queries, while RavenDB creates the indexes for you.
Take a peek on what is going on internally.
Harness the full potential of indexing.
Setup document revision creation and purging policies.
Define document expiration dates and schedule cleanup intervals.
Link binary data to your documents with ease.
Retrieve documents in a handy and reliable way for processing.
Expand beyond one node in a matter of minutes. Achieve high availability, load balancing, and failover with just a few clicks.
With RavenDB clustering is easy and much more approachable.
You can configure it in a matter of minutes without any expert knowledge using our GUI management studio and benefit from high-availability, load balancing and automatic failover without any additional setup.
The RavenDB clustering is build on top of two layers, first, the cluster layer, is managed by a consensus protocol called Raft and in CAP theorem it is CP (consistent and partition tolerant). The second layer, the database layer, is on the other hand AP (it is always available, even if there is a partition, and it's eventually consistent) and is handled by a gossip protocol between the databases on different nodes, forming multi-master mesh and replicating data between each other.
RavenDB utilize the different layers for different purposes. At the cluster layer, the consensus protocol ensures that operators have the peace of mind of knowing that their commands are accepted and followed and at the database layer you know that RavenDB will never lose writes and will always keep your data safe.
Schedule tasks among the cluster and let the other nodes take over the work if needed.
In a world of clusters, scheduling a backup, and ETL job or any other ongoing process on one particular node is not acceptable. If that node is down for any reason, the show must still go on. This is why RavenDB introduced a notion of cluster-wide tasks, assigned to a node, but owned by the cluster. In the case of a failure of the assigned node, the RavenDB cluster will reassign the work to another node, ensuring liveliness and continuity of operations.
The following tasks can be created:
With cluster-wide tasks or as we are calling them 'Ongoing Tasks' you have a guarantee that only one cluster node is processing that job and with the high availability in place (Enterprise-only feature) you have assurance that the task will automatically switch to a new node if the old one is down.
Ensure your data is safe and sound, residing on a given number of nodes.
A cluster can assign a database to all the nodes in the cluster, or to just some of them. In a five node cluster, most databases will only reside on two or three of the nodes, for example, since duplicating all information times five is usually excessive even for the most paranoid of souls. Instead, you'll typically spread the databases with a replication factor of two or three on the various nodes. If a node goes down (hardware failure, for example), the cluster will note that and if it fails to come back up quickly enough, will take steps to ensure that the number of live active replicas of the database is maintained.
The cluster will do that by adding another node in the cluster for the database, resulting in another copy of the data and ensuring that the configured number of replicas is maintained. When the failed node is brought up again, the cluster will determine whatever to keep the data on the old node or to use the new topology. Your operations team don't have to be on their toes at all times, RavenDB is constantly monitoring and acting on your behalf, within the boundaries that were set by the administrators.
Trust our experience and sleep tight.
Running a production database cluster can be a daunting task. There are a lot of knobs to turn and cause and effect may not always be obvious, especially when you have co-dependent settings and options. Far from being a opaque system, RavenDB works very hard to externalize and make visible all the details about the system that your operations team need and is often deployed in a self managing option.
Features such as automatic failover, dynamic distribution of tasks and databases, multi master writes means that your operations team can sleep in peace, knowing that if anything happens, they can get to it in the morning. RavenDB also continuously run diagnostics and self checks, each member of the cluster verifying each of the other to ensure the health of the entire system. If anything troubling shows up, RavenDB will alert the administrator, usually with a suggested fix.
Tested in production for the past decade, RavenDB is a mature product, well capable of handling its own affairs with only minimal guidance on day to day issues.
Manage authentication and authorization via X.509 certificates. Secure your connectivity with SSL and TLS 1.2.
The safety of your data is always our top priority. We strive to make sure that anything your users share with you on the assumption of privacy will remain private. This does not only mean protecting your data on the disk drive (read more about this in Encryption feature), but also in transferring it securely over the wire. To achieve this, we introduced the ability to utilize the HTTPS with SSL/TLS 1.2 protocols using X.509 certificates which grants you enterprise-level security for your data during transfers over the network.
The certificates are also used to grant specific privileges to certificate holders allowing them to access only subsets of all databases on the server, or to execute operations that are allowed to one of the predefined roles (security clearances). All of this is configurable in a convenient way using our Management Studio GUI.
Keep your data protected.
Our encryption techniques are among the best on the market.
RavenDB comes with built-in encryption support that utilizes the modern ChaCha20-Poly1305 algorithm from a well-known and battle-tested encryption library called 'libsodium' giving you the best of both words: security and performance in one go.
Monitor what is going on in your Server in the blink of an eye using our built-in Server Dashboard.
The database server should not be a mystery. We invested a lot of effort to expose as much valuable information as possible. We created a Server Dashboard, part of your free Community License, to enable you to monitor in real-time aggregate crucial information like CPU usage, memory consumption, state of the databases, server traffic, storage information and much more. Now it’s easier for you to gage the behavior of your server, and take necessary resolutions if needed.
Connect Zabbix or your favorite monitoring tool via our built-in SNMP support.
When you have dozens of servers to maintain, you can hook-up one tool to monitor them all. RavenDB comes with built-in support for SNMPv2 and SNMPv3, and exposes over 50 unique OIDs for you to take advantage of.
Turn on logging on-the-fly, and view them in the Studio. No need to restart the Server!
Schedule automatic backups to different external destinations.
RavenDB enables you to schedule full and/or incremental automatic backups, choose if those backups should be binary (slower creation, quicker restore) or JSON (quicker creation, slower restore), and choose at least one of the following destinations:
Use our built-in console commands to control your Server.