RavenDB explained

RavenDB
Logo Size:250px
Author:Oren Eini (aka Ayende Rahien)
Developer:Hibernating Rhinos
Latest Release Version:5.3
Programming Language:C#
Engine:Voron
Operating System:Windows, Linux, Mac OS, Docker and Raspberry Pi
Language:English
Genre:Document-oriented database
License:AGPLv3
Website:

RavenDB is an open-source document-oriented database written in C#, developed by Hibernating Rhinos Ltd.[1] [2] [3] [4] [5] It is cross-platform, supported on Windows, Linux, and Mac OS.[1] [6] RavenDB stores data as JSON documents and can be deployed in distributed clusters with master-master replication.

History

Originally named "Rhino DivanDB",[1] [7] RavenDB began in 2008 as a project by Oren Eini (aka Ayende Rahien)[8] and is developed by Hibernating Rhinos Ltd.[3] The company claims it was the first document database to run natively in the .NET Framework.[9] [10] [2] [11] It was an early document database to offer ACID guarantees.[11] [12]

In 2019, Hibernating Rhinos began offering RavenDB as a cloud service named RavenDB Cloud.

Version history

VersionDateFeatures added (partial list)
1.0May 2010[13]
2.0January 2013[14] Replication[15] [16]
2.5June 2013[17] Projections; facet querying
3.0November 2014[18] Java API
Voron storage engine[19] [20]
3.5October 2016[21] Clustering
4.0February 2018[22] Became cross-platform; available with a free license[23]
4.1August 2018[24] Cluster-wide transactions[25]
4.2May 2019[26] Graph querying
5.0July 2020[27] Time series
[28] Data compression using the Zstd algorithm[29]
5.1November 2020Indexing attachments; Hub/Sink replication with filtering
5.2June 2021OLAP ETL; Custom Analyzers
5.3November 2021Concurrent Data Subscriptions; Microsoft Power BI support

System architecture

Data is stored as schemaless documents in JSON format.[1] [7] [2] [30] [15] [16] [5] Documents are grouped into collections, with each document having exactly one collection.[31]

Databases can be deployed on a distributed cluster of servers (called ‘nodes’) using multi-master replication.[1] [32] Some operations at the cluster level require a consensus of a majority of nodes; consensus is determined using an implementation of the Raft algorithm called Rachis.[1] Tasks are distributed to the different nodes in a balanced way.[1] [33]

Versions 1.0 through 3.5 supported sharding, but versions 4.x do not.[1] [2] [32] [15] [16]

RavenDB originally used the ESENT storage engine.[7] [34] [16] Version 3.0 replaced it with a new open-source storage engine called Voron.[19] [20]

Clients are supported for C#, C++, Java, NodeJS, Python, Ruby, and Go.[32]

Main features

Indexes and querying

Queries are expressed in LINQ or with a custom query language named RQL (stands for Raven Query Language) with syntax similar to SQL.[1] [2] [32]

Document extensions

Documents can be extended with other data types less suited to JSON. These extensions can be loaded, modified, and stored independently of the document itself.[30]

RavenDB Cloud

RavenDB Cloud is a managed database-as-a-service launched in 2019 on AWS, Azure, and GCP. The service performs administration tasks such as hardware maintenance and security for users. It features the sharing of CPU resources among the different nodes in a cluster to avoid throttling.[25] [42] [43]

Embedded instance

RavenDB can also be run as an embedded instance, a great option for smaller applications and proof of concepts, for instance.

From their Server: Running an Embedded Instance[44] page: "RavenDB makes it very easy to be embedded within your application, with RavenDB Embedded package you can integrate your RavenDB server with a few easy steps."

Licensing

RavenDB is open source under an AGPLv3 license.[1] It is available with a commercial license and a free license for open source projects, but it must be applied for.[45]

External links

Notes and References

  1. Web site: RavenDB . Database of Databases . en . 10 October 2020 .
  2. Web site: Raven, a Document Database for .NET . 2010 . www.infoq.com . en . 10 October 2020.
  3. Web site: Other Vendors to Consider for Operational DBMSs . 2018 . www.gartner.com . en . 10 October 2020.
  4. Web site: Hibernating Rhinos . hibernatingrhinos.com . en . 10 October 2020.
  5. Kaur, Harpreet, and Kamal Jeet Kaur. "A Review: Study of Document oriented databases and their Security." International Journal of Advanced Research in Computer Science 4.8 (2013).
  6. Web site: Wallen . Jack . 2021-01-06 . How to create a new database with RavenDB . 2022-11-22 . TechRepublic . en-US.
  7. Web site: Ayende's DivanDB (also, is ESENT the most widely used database engine?) . 2008 . blogs.msdn.microsoft.com . en . 10 October 2020.
  8. Web site: Interview with Oren Eini of RavenDB on database management, analytics & security . 2019 . bigdata-madesimple.com . en . 10 October 2020 . 8 October 2020 . https://web.archive.org/web/20201008141436/https://bigdata-madesimple.com/interview-with-oren-eini-of-ravendb-on-database-management-analytics-security/ . dead .
  9. Web site: RavenDB Development: Finally, A Solid Document-based Database for Windows? . 2019 . www.whoishostingthis.com . en . 10 October 2020 . 8 October 2020 . https://web.archive.org/web/20201008090120/https://www.whoishostingthis.com/resources/ravendb/ . dead .
  10. Web site: NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application . 2011 . docs.microsoft.com . en . 10 October 2020.
  11. Web site: Why Raven DB? . 2010 . dzone.com . en . 10 October 2020.
  12. Web site: RavenDB vs SQL Server . www.integrace.nl . nl . 10 October 2020.
  13. Web site: RavenDB goes live! . 2010 . ayende.com . en . 10 October 2020.
  14. Web site: RavenDB 2.0 RTM . 2013 . ayende.com . en . 10 October 2020.
  15. Web site: RavenDB: A document database for the .NET platform . learning.oreilly.com . en . 10 October 2020 .
  16. Web site: RavenDB: A document database for the .NET platform . learning.oreilly.com . en . 10 October 2020 . 2 November 2020 . https://web.archive.org/web/20201102211752/https://www.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html . dead .
  17. Web site: RavenDB 2.5 Release Candidate is out . 2013 . ayende.com . en . 10 October 2020.
  18. Web site: RavenDB 3.0 RTM! . 2014 . ayende.com . en . 10 October 2020.
  19. Web site: NoSQL for .NET: RavenDB 3.0 Takes Flight . 2014 . visualstudiomagazine.com . en . 10 October 2020.
  20. Web site: NoSQL: RavenDB 3.0 erhält weitere Storage Engine . www.heise.de . en . 10 October 2020.
  21. Web site: RavenDB 3.5 RTM released . 2016 . ayende.com . en . 10 October 2020.
  22. Web site: RavenDB 4.0 is out . 2018 . ayende.com . en . 10 October 2020.
  23. Web site: NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar . 2018 . www.heise.de . en . 10 October 2020.
  24. Web site: RavenDB 4.1 Release Candidate is out . 2018 . ayende.com . en . 10 October 2020.
  25. Web site: RavenDB Launches Managed Cloud Service . 2019 . www.datanami.com . en . 10 October 2020.
  26. Web site: RavenDB 4.2 has been released! . 2019 . ayende.com . en . 10 October 2020.
  27. Web site: RavenDB 5.0 has been released! . 2020-07-24 . ravendb.net . en . 10 October 2020.
  28. Web site: RavenDB Adds Time Series Query Support . 16 July 2020 . i-programmer.info . en . 10 October 2020.
  29. Web site: RavenDB 5 Improves Distributed Time-Series, Document Compression, and Indexing . Aug 3, 2020 . infoq.com . en . 10 October 2020.
  30. Web site: A document database for the .NET platform . learning.oreilly.com . en . 10 October 2020 . 2 November 2020 . https://web.archive.org/web/20201102211752/https://www.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html . dead .
  31. Web site: The Design of RavenDB 4.0: The Implications of the Blittable Format . 2016 . dzone.com . en . 10 October 2020.
  32. Web site: RavenDB System Properties . db-engines.com . en . 10 October 2020.
  33. Web site: Review: NoSQL database RavenDB . 2019 . techgenix.com . en . 10 October 2020.
  34. Web site: Hidden Windows Gems: Extensible Storage Engine . 2008 . ayende.com . en . 10 October 2020.
  35. Web site: RavenDB Adds Graph Queries . 2019 . www.datanami.com . en . 10 October 2020.
  36. Web site: SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware's acquisition of Bitnami . 2019 . sdtimes.com . en . 10 October 2020.
  37. Web site: RavenDB: Driving DX through DB infrastructure management . ciostory.com . en . 10 October 2020 . 11 October 2020 . https://web.archive.org/web/20201011205901/https://ciostory.com/technology/ravendb-driving-dx-through-db-infrastructure-management/ . dead .
  38. Web site: RavenDB Features . ravendb.net . en . 10 October 2020.
  39. Web site: Data Modeling with Indexes in RavenDB . 2019 . www.codeproject.com . en . 10 October 2020.
  40. Stevic, Milorad P. "Managing documents with NoSQL in service oriented architecture." Online Journal of Applied Knowledge Management (OJAKM) 1.2 (2013): 105-115.
  41. Web site: Data Points - What the Heck Are Document Databases? . 2011 . docs.microsoft.com . en . 10 October 2020.
  42. Web site: SD Times news digest: Google robots.text parser open sourced, Bonitasoft's cloud and low-code capabilities, and OWASP ZAP 2.8 . 2019 . sdtimes.com . en . 10 October 2020.
  43. Web site: RavenDB Adds New Enhancements to Its Cloud-Based Database Service . 2019 . it.toolbox.com . en . 10 October 2020.
  44. Web site: Server: Running an Embedded Instance . 25 April 2022 . Ravendb.net.
  45. Book: Tannir, Khaled . RavenDB 2.x beginner's guide . 2013-09-04 . Packt Publishing Ltd . 978-1-78328-380-4 . en.