Product Homepage: click here
Free Trial: click here
When it comes to IT workloads, it is databases that do almost all of the heavy lifting. It is almost unheard of for an application not to have some sort of underlying database dependency. Although database platforms such as Oracle DB and Microsoft’s SQL Server are arguably the most well-known, they are far from being the only viable database platforms. One up-and-coming database that I have been hearing a lot about lately is RavenDB. As such, I decided to check it out to see if it is worthy of consideration.
For those who might not be familiar with RavenDB, RavenDB is a NoSQL database, meaning that it is not a relational database. NoSQL is an ideal choice for workloads that need to be fast, agile, and scalable, and whose data lacks the rigid structure that is typically associated with a relational database.
One of the things that sets RavenDB apart from many of the other NoSQL databases is that it is fully ACID compliant. ACID is an acronym standing for atomicity, consistency, isolation, and durability. An ACID compliant database is fully transactional, meaning that data is validated before it is written to the database, and the write operation adheres to an all or nothing rule. The transaction is either fully completed, or it is rolled back and not executed at all. I don’t want to turn this review into a crash course on ACID compliant databases, but I wanted to at least provide a brief description for those who might not be familiar with the term because ACID compliance is a big deal. It’s somewhat rare to find a NoSQL database that is ACID compliant. ACID compliance is much more commonly associated with expensive, relational database systems.
Ease of use
One of the other things about RavenDB that really caught my attention was its management interface. I don’t want to name names, but many of the databases that are being sold today have really convoluted management interfaces. In some cases, you can’t even fully manage a database without downloading supplementary tools. RavenDB stands in stark contrast to those databases because it includes a very friendly and intuitive management tool. You can see what this tool looks like in the figure below. Incidentally, you get this tool with every edition of RavenDB – even the free one.
As you can see in the screenshot, a variety of relevant statistics are displayed within a very clean-looking dashboard view. For those who might not be fans of the black background, the interface allows you to choose from a few different themes. Personally, I like the light theme, which I have used in the next figure.
As much as I like having the ability to switch themes, the figure above illustrates something that I like even more. RavenDB makes database management absolutely simple. The interface doesn’t hide options for basic functions such as creating or deleting a database. It’s also very obvious which databases are online, and which have and have not been backed up. Even if someone had never even heard of RavenDB before, they would probably have absolutely no trouble creating and managing a series of databases.
Incidentally, RavenDB makes things easy on developers too. The database includes APIs .NET, Java, Node.js and Python. Furthermore, the RavenDB libraries can be accessed using REST. RavenDB also has built-in trigger support that makes it easy for developers to do things like versioning, auditing, or merging documents. The company is also working on a Go client in the final beta stage and a C++ client in the early beta stage.
Performance is one of the most important considerations for a database. If a database performs poorly, then applications that depend on the database will also perform poorly. RavenDB was widely criticized early on for being comparatively slow. However, the company seems to have done a lot of performance tuning in version 4.0, which has resulted in far better performance than what might have been experienced in the past. RavenDB has achieved these performance improvements through new MapReduce queries and dynamic indexing methods.
RavenDB claims that its database can achieve an impressive 150,000 writes per second, and over one million reads per second, on commodity hardware. While I do not have benchmarks to confirm RavenDB’s claims, RavenDB seems fast (by subjective observation) and I have no reason to doubt the company’s performance claims.
As you would probably expect, RavenDB supports the use of clustering. Tasks are automatically load balanced across the cluster. RavenDB is also designed to replicate data among cluster nodes so that the data will remain accessible even in the event of a cluster node failure.
The thing that impressed me about RavenDB’s clustering capabilities is that RavenDB has made it easy to create and manage database clusters. If you look at the figure below, you can see that the dashboard displays the cluster’s URL, core assignment, memory use, OS, and version. The interface also displays the number of core licenses that have already been assigned, as well as the number of licenses remaining.
As you can see in the screenshot, adding additional nodes to the cluster is a matter of simply clicking a button, and then providing the URL for the node that you want to add. Since RavenDB is licensed based on the number of cores that you use, you can choose to use the new node’s available cores, as shown in the next screenshot, or you can manually assign licenses later on.
RavenDB offers three different editions of its database product. The company offers a free, Community edition that does not impose any limits on the number or size of your databases. The Community edition can be used in clusters consisting of up to three nodes (with up to three cores and 6GB of RAM per cluster).
RavenDB Professional sells for $749 per core per year and expands the maximum cluster size to five nodes, 40 cores, and up to 240GB of RAM. Finally, RavenDB offers an unlimited Enterprise Edition for $1,319 per core per year. You can find a full comparison between the three editions at this link.
It has become something of a tradition for me to end my product reviews by assigning the product a star rating, ranging from zero to five stars. I decided to give RavenDB a rating of 4.6, which is a gold star review.
I found RavenDB to be far easier to use than any other database in recent memory. I was truly impressed by the intuitive nature of RavenDB’s management interface. RavenDB seems to have done a great job of striking a delicate balance between ease of use and advanced functionality.
One last thing that may be worth mentioning is that although I found RavenDB to be significantly easier to work with than other databases such as Microsoft’s SQL Server, there is still a bit of a learning curve. With that said, I found the book “Inside RavenDB” by Oren Eini to be helpful during my evaluation. I would recommend the book to anyone who decides that they want to deploy RavenDB.
TechGenix.com Rating 4.6/5