RavenDB

RavenDB
UtvecklareHibernating Rhinos
Först släppt2010
Senaste utgåva5.0
(24 juli 2020; för 6 år sedan (2020-07-24))
Skriven iC#
UtvecklingsstatusAktiv
OperativsystemMultiplattform: Windows, Linux, MacOS, Docker, Raspberry Pi
LicensAGPL v3.0
Webbplatsravendb.net
hibernatingrhinos.com

RavenDB är en med öppen källkod fullt ACID dokumentorienterad databas skriven i C# och utvecklad av Hibernating Rhinos Ltd. Den är plattformsoberoende, och har stöd för Windows, Linux och MacOS. RavenDB lagrar data som JSON-dokument, och kan distribueras i distribuerade kluster med master-master-replikering.

Historia

RavenDB hette ursprungligen "Rhino DivanDB", och började som ett projekt av Oren Eini (alias Ayende Rahien) 2008 och är utvecklat av Hibernating Rhinos Ltd. Företaget hävdar att det var den första dokumentdatabasen som kunde köras inbyggt i .NET-ramverket. Den var också tidigt för ute med att erbjuda ACID-garantier.

2019 började Hibernating Rhinos erbjuda RavenDB som en molntjänst som heter RavenDB Cloud.

Versionshistorik

VersionDatumFunktioner som lagts till (delvis lista)Kompatibel?
1,0Maj 2010Nej
2,0Januari 2013ReplikeringNej
2,5Juni 2013Prognoser; facet frågorNej
3,0November 2014Java API; Voron lagringsmotorNej
3,5Oktober 2016KlustringJa
4,0Februari 2018Blev plattformsoberoende; tillgänglig med en fri licensNej
4,1Augusti 2018Klusterövergripande transaktionerNej
4,2Maj 2019Support för Graf-baserade frågorJa
5,0Juli 2020Tidsserier; Datakomprimering med hjälp av Zstd-algoritmenJa

Systemarkitektur

Data lagras i databasen som schemalösa dokument i JSON-format. På lagringsnivån sparas dokumenten i ett binärt format som kallas "blittable". Dokument grupperas i samlingar och varje dokument tillhör alltid en samling.

Databaser kan distribueras på ett distribuerat kluster av servrar (som kallas 'noder') med hjälp av multi-master replikering. Vissa operationer på klusternivå kräver konsensus av en majoritet av noder; konsensus bestäms med hjälp av en implementering av Raft algoritmen kallad Rachis. Uppgifter fördelas till de olika noderna på ett balanserat sätt.

RavenDB använde ursprungligen Esent-lagringsmotorn. Version 3.0 ersatte denna med en ny öppen-källkod baserad lagringsmotor som kallas Voron.

Klienter finns för C#, C++, Java, Node.js, Python, Ruby och Go.

Huvudfunktioner

Indexering och frågor

Frågor uttrycks i LINQ eller med ett anpassat frågespråk som kallas RQL (står för Raven Query Language) som har syntax som liknar SQL.

Dokumenttillägg

Dokument kan utökas med andra datatyper mindre lämpade för JSON. Dessa tillägg kan läsas in, ändras och lagras oberoende av själva dokumentet.

RavenDB-moln

RavenDB Cloud är en databas-som-en-tjänst som lanserades 2019 på AWS, Azure och GCP. Tjänsten utför administrationsuppgifter som maskinvaruunderhåll och säkerhet för användare. Den har delning av CPU-resurser mellan de olika noderna i ett kluster för att undvika begränsningar.

Licens

RavenDB är öppen källkod under en AGPLv3-licens. Den finns med en fri licens och en kommersiell licens.

Referenser

  1. 1 2 3 ”Other Vendors to Consider for Operational DBMSs”. 2018. https://www.gartner.com/en/documents/3892294/other-vendors-to-consider-for-operational-dbmss.
  2. 1 2 ”RavenDB goes live!”. 2010. https://ayende.com/blog/4507/ravendb-goes-live.
  3. 1 2 ”RavenDB 5.0 has been released”. 2020. https://ravendb.net/articles/ravendb-5-0-has-been-released.
  4. 1 2 3 4 5 6 7 8 9 10 11 12 13 ”RavenDB”. https://dbdb.io/.
  5. 1 2 3 4 ”Raven, a Document Database for .NET”. 2010. https://www.infoq.com/news/2010/05/Raven/.
  6. 1 2 3 4 5 6 7 ”RavenDB System Properties”. https://db-engines.com/en/system/RavenDB.
  7. 1 2 3 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).
  8. 1 2 3 ”Ayende's DivanDB (also, is esent the most widely used database engine?)”. 2008. https://blogs.msdn.microsoft.com/laurionb/2008/12/23/ayendes-divandb-also-is-esent-the-most-widely-used-database-engine/.
  9. 1 2 ”Hidden Windows Gems: Extensible Storage Engine”. 2008. https://ayende.com/blog/3769/hidden-windows-gems-extensible-storage-engine.
  10. ↑ ”Hibernating Rhino”. https://hibernatingrhinos.com/.
  11. ↑ ”RavenDB Development: Finally, A Solid Document-based Database for Windows?”. 2019. Arkiverad från originalet den 2020-10-08. https://web.archive.org/web/20201008090120/https://www.whoishostingthis.com/resources/ravendb/. Läst 16 mars 2021. ”Arkiverade kopian”. Arkiverad från originalet den 8 oktober 2020. https://web.archive.org/web/20201008090120/https://www.whoishostingthis.com/resources/ravendb/. Läst 16 mars 2021.
  12. 1 2 ”NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application”. 2011. https://docs.microsoft.com/en-us/archive/msdn-magazine/2011/november/nosql-document-database-embedding-ravendb-into-an-asp-net-mvc-3-application.
  13. 1 2 ”Why Raven DB?”. 2010. https://dzone.com/articles/why-raven-db.
  14. 1 2 ”RavenDB vs SQL Server”. 2012. Arkiverad från originalet den 2020-10-08. https://web.archive.org/web/20201008214658/https://www.integrace.nl/nl/News/307/RavenDB. Läst 16 mars 2021.
  15. ↑ ”Managed RavenDB Cloud Hosting”. https://cloud.ravendb.net/.
  16. 1 2 3 4 5 ”RavenDB Launches Managed Cloud Service”. 2019. https://www.datanami.com/2019/07/02/ravendb-launches-managed-cloud-service/.
  17. 1 2 ”SD Times news digest: Google robots.text parser open sourced, Bonitasoft’s cloud and low-code capabilities, and OWASP ZAP 2.8”. 2019. https://sdtimes.com/goog/sd-times-news-digest-google-robots-text-parser-open-sourced-bonitasofts-cloud-and-low-code-capabilities-and-owasp-zap-2-8/.
  18. 1 2 ”New capabilities in database infrastructure service ensure high availability in Cloud-only scenarios”. 2019. https://it.toolbox.com/blogs/shrutiumathe/ravendb-adds-new-enhancements-to-its-cloud-based-database-service-ensuring-high-availability-in-cloud-110419.
  19. ↑ ”RavenDB 2.0 RTM”. 2013. https://ayende.com/blog/160642/ravendb-2-0-rtm.
  20. 1 2 3 4 5 6 ”RavenDB”. https://learning.oreilly.com/library/view/ravendb-2x-beginners/9781783283798/ch01s04.html.[död länk]
  21. 1 2 3 4 5 6 ”A document database for the .NET platform”. Arkiverad från originalet den 2020-11-02. https://web.archive.org/web/20201102211752/https://learning.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html. Läst 16 mars 2021. ”Arkiverade kopian”. Arkiverad från originalet den 2 november 2020. https://web.archive.org/web/20201102211752/https://learning.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html. Läst 16 mars 2021.
  22. ↑ ”RavenDB 2.5 Release Candidate is out”. 2013. https://ayende.com/blog/162498/ravendb-2-5-release-candidate-is-out.
  23. ↑ ”RavenDB 3.0 RTM”. 2014. https://ayende.com/blog/169313/ravendb-3-0-rtm.
  24. 1 2 ”NoSQL for .NET: RavenDB 3.0 Takes Flight”. 2014. https://visualstudiomagazine.com/articles/2014/12/02/ravendb-3-for-dotnet.aspx.
  25. 1 2 ”NoSQL: RavenDB 3.0 erhält weitere Storage Engine”. 2014. https://www.heise.de/developer/meldung/NoSQL-RavenDB-3-0-erhaelt-weitere-Storage-Engine-2480210.html.
  26. 1 2 ”RavenDB 3.5 RTM released”. 2016. https://ayende.com/blog/175937/ravendb-3-5-rtm-released.
  27. ↑ ”RavenDB 4.0 is out”. 2018. https://ayende.com/blog/181857-A/ravendb-4-0-is-out.
  28. ↑ ”NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar”. 2018. https://www.heise.de/developer/meldung/NoSQL-RavenDB-4-0-jetzt-fuer-Windows-Linux-macOS-und-Docker-verfuegbar-3971913.html.
  29. 1 2 ”RavenDB 4.1 Release Candidate is out”. 2018. https://ayende.com/blog/184194-A/ravendb-4-1-release-candidate-is-out.
  30. ↑ ”RavenDB 4.2 has been released”. 2019. https://ayende.com/blog/187361-A/ravendb-4-2-has-been-released.
  31. 1 2 ”RavenDB Adds Time Series Query Support”. https://www.i-programmer.info/news/84-database/13846-ravendb-adds-time-series-query-support.html.
  32. 1 2 ”RavenDB 5 Improves Distributed Time-Series, Document Compression, and Indexing”. 2020. https://www.infoq.com/news/2020/08/ravendb-5-release-document-db/.
  33. ↑ ”The Design of RavenDB 4.0: The Implications of the Blittable Format”. 2016. https://dzone.com/articles/the-design-of-ravendb-40-the-implications-of-the-b.
  34. ↑ ”Review: NoSQL database RavenDB”. 2019. Arkiverad från originalet den 2020-02-03. https://web.archive.org/web/20200203075939/http://techgenix.com/review-nosql-database-ravendb/. Läst 16 mars 2021.
  35. 1 2 ”RavenDB: Driving DX through DB infrastructure management”. Arkiverad från originalet den 2020-10-11. https://web.archive.org/web/20201011205901/https://ciostory.com/technology/ravendb-driving-dx-through-db-infrastructure-management/. Läst 16 mars 2021. ”Arkiverade kopian”. Arkiverad från originalet den 11 oktober 2020. https://web.archive.org/web/20201011205901/https://ciostory.com/technology/ravendb-driving-dx-through-db-infrastructure-management/. Läst 16 mars 2021.
  36. ↑ ”RavenDB Adds Graph Queries”. 2019. https://www.datanami.com/2019/05/15/ravendb-adds-graph-queries/.
  37. ↑ ”SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware’s acquisition of Bitnami”. 2019. https://sdtimes.com/softwaredev/sd-times-news-digest-new-relic-one-whitesource-for-developers-ravendb4-2-and-vmware-acquisition-of-bitnami/.
  38. ↑ ”Graph API”. https://ravendb.net/features/querying/graph-api.
  39. ↑ ”Data Modeling with Indexes in RavenDB”. 2019. https://www.codeproject.com/Articles/1348454/Data-Modeling-with-Indexes-in-RavenDB.
  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. ↑ ”Data Points - What the Heck Are Document Databases?”. 2011. https://docs.microsoft.com/en-us/archive/msdn-magazine/2011/november/data-points-what-the-heck-are-document-databases.
  42. ↑ ”A document database for the .NET platform”. Arkiverad från originalet den 2020-11-02. https://web.archive.org/web/20201102211752/https://learning.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html. Läst 16 mars 2021. ”Arkiverade kopian”. Arkiverad från originalet den 2 november 2020. https://web.archive.org/web/20201102211752/https://learning.oreilly.com/library/view/ravendb-high-performance/9781782166986/ch01s05.html. Läst 16 mars 2021.
  43. ↑ ”RavenDB Adds New Enhancements to Its Cloud-Based Database Service”. Arkiverad från originalet den 2020-10-08. https://web.archive.org/web/20201008141436/https://bigdata-madesimple.com/interview-with-oren-eini-of-ravendb-on-database-management-analytics-security/. Läst 16 mars 2021. ”Arkiverade kopian”. Arkiverad från originalet den 8 oktober 2020. https://web.archive.org/web/20201008141436/https://bigdata-madesimple.com/interview-with-oren-eini-of-ravendb-on-database-management-analytics-security/. Läst 16 mars 2021.

Externa länkar