You are on page 1of 6

Review: NoSQL database

RavenDB
By: Brien M. Posey
March 2019

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.
RavenDB provides relevant statistics through a very intuitive dashboard view.

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.

You can change the management interface's color set by picking a new theme.

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
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.

Clustering Support
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.

This is what RavenDB's cluster management interface looks like.


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.

This is the only information that you have to provide when you add a node to RavenDB.

Pricing
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

The Verdict
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 Rating 4.6/5

DOWNLOAD
RAVENDB

This product review was originally published on TechGenix.com.


Copyright © 2019 TechGenix Ltd.

About the Author


Brien Posey is a freelance technology author and speaker with over two decades of IT
experience. Prior to going freelance, Brien was a CIO for a national chain of hospitals and
healthcare facilities. He has also served as a network engineer for the United States
Department of Defense at Fort Knox. In addition, Brien has worked as a network
administrator for some of the largest insurance companies in America. To date, Brien has
received Microsoft’s MVP award numerous times in categories including Windows Server,
IIS, Exchange Server, and File Systems / Storage.

Contact RavenDB
+1-817-886-2916 info@ravendb.net

You might also like