RavenDB

RavenDB
software
Logo
Logo
SviluppatoreHibernating Rhinos
Data prima versioneMaggio 2010
Ultima versione5.0 (Luglio 2020)
Sistema operativoMicrosoft Windows
LinguaggioC++
LicenzaAGPL v3.0
(licenza libera)
Sito webravendb.net
hibernatingrhinos.com

RavenDB è un database orientato ai documenti completamente ACID e open-source; scritto in C# e sviluppato da Hibernating Rhinos Ltd. È multi piattaforma, supportata Windows, Linux e MacOS. RavenDB memorizza i dati sotto forma di documenti JSON, e può essere installato con support per i cluster distribuiti con replica master-master.

Storia

Originariamente chiamato “Rhino DivanDB”, RavenDB inizia come un progetto di Oren Eini (alias Ayende Rahien) nel 2008 ed è sviluppato da Hibernating Rhinos Ltd. La società sostiene che è stato il primo database orientato ai documenti ad essere eseguito in modo nativo col framework .NET. È stato uno fra i primi database orientati ai documenti a fornire garanzie di tipo ACID.

Nel 2019 Hibernating Rhinos ha cominciato ad offrire RavenDB come un servizio cloud chiamato RavenDB Cloud.

Storia delle versioni

VersioneDataFunzionalità aggiunte (elenco parziale)Supportato?
1.0Maggio 2010No
2.0Gennaio 2013ReplicaNo
2.5Giugno 2013Proiezioni; Query basate su facetNo
3.0Novembre 2014Java API; Motore di persistenza VoronNo
3.5Ottobre 2016ClusteringSì
4.0Febbraio 2018Supporto multi piattaforma; disponibile con una licenza gratuitaNo
4.1Agosto 2018No
4.2Maggio 2019Supporto per le Graph querySì
5.0Luglio 2020Serie temporali; Compressione dei dati usando l’algoritmo zstdSì

Architettura del sistema

I dati sono memorizzati come documenti senza schema in formato JSON. A livello di archiviazione, i documenti sono scritti in un formato binario chiamato “blittable”. I documenti sono raggruppati in collection, ogni documento appartiene solo ed unicamente a una collection.

I database possono essere distribuiti su un cluster di server (chiamati ‘nodi’) usando replica multi-master. Alcune operazioni a livello di cluster richiedono il consenso della maggioranza dei nodi, il consenso è determinato usando un’implementazione dell’algoritmo Raft chiamata Rachis. Le attività sono distribuite ai diversi nodi in modo bilanciato.

Originariamente RavenDB usava il motore di archiviazione Esent. Nella Versione 3.0 è stato sostituito con un nuovo motore di archiviazione, open source, chiamato Voron.

Il database client è disponibile per C#, C++, Java, Node.js, Python, Ruby e Go.

Caratteristiche principali

Indici e query

Le query sono espresse in LINQ o con un linguaggio di query personalizzato chiamato RQL (acronimo di Raven Query Language) che ha una sintassi simile a SQL.

Estensioni del documento

I documenti possono essere estesi con altri tipi di dati meno adatti a JSON. Queste estensioni possono essere lette, modificate e memorizzate indipendentemente dal documento stesso.

RavenDB Cloud

RavenDB Cloud è un database distribuito-as-a-service, lanciato nel 2019 su AWS, Azure e Google Compute Platform (GCP). Il servizio esegue attività amministrative come la manutenzione dell’hardware e gestisce la sicurezza per gli utenti. Garantisce la condivisione delle CPU fra i diversi nodi in un cluster per evitare throttling.

Licenza

RavenDB è open source sotto licenza di AGPL v3.0. È disponibile con una licenza gratuita e una licenza commerciale.

Note

  1. 1 2 3 Other Vendors to Consider for Operational DBMSs, su www.gartner.com, 2018. URL consultato il 4 gennaio 2021.
  2. 1 2 3 RavenDB goes live!, su ayende.com, 2010. URL consultato il 4 gennaio 2021.
  3. 1 2 RavenDB 5.0 has been released, su ravendb.net, 2020. URL consultato il 4 gennaio 2021.
  4. 1 2 3 RavenDB: Driving DX through DB infrastructure management, su ciostory.com. URL consultato il 4 gennaio 2021 (archiviato dall'url originale l'11 ottobre 2020).
  5. 1 2 NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar, su www.heise.de, 2018. URL consultato il 4 gennaio 2021.
  6. 1 2 3 4 5 6 7 8 9 10 11 12 13 RavenDB, su Databases of Databases. URL consultato il 4 gennaio 2021.
  7. 1 2 3 4 Raven, a Document Database for .NET, su www.infoq.com, 2010. URL consultato il 4 gennaio 2021.
  8. 1 2 3 4 5 6 7 RavenDB System Properties, su db-engines.com. URL consultato il 4 gennaio 2021.
  9. 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).
  10. 1 2 3 Ayende's DivanDB (also, is esent the most widely used database engine?), su blogs.msdn.microsoft.com, 2008. URL consultato il 4 gennaio 2021.
  11. 1 2 Hidden Windows Gems: Extensible Storage Engine, su ayende.com, 2008. URL consultato il 4 gennaio 2021.
  12. ↑ Hibernating Rhino, su hibernatingrhinos.com. URL consultato il 4 gennaio 2021.
  13. ↑ RavenDB Development: Finally, A Solid Document-based Database for Windows?, su www.whoishostingthis.com, 2019. URL consultato il 4 gennaio 2021 (archiviato dall'url originale l'8 ottobre 2020).
  14. 1 2 NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application, su docs.microsoft.com, 2011. URL consultato il 4 gennaio 2021.
  15. 1 2 Why Raven DB?, su dzone.com, 2010. URL consultato il 4 gennaio 2021.
  16. 1 2 RavenDB vs SQL Server, su www.integrace.nl, 2012. URL consultato il 4 gennaio 2021 (archiviato dall'url originale l'8 ottobre 2020).
  17. ↑ Managed RavenDB Cloud Hosting, su cloud.ravendb.net. URL consultato il 4 gennaio 2021.
  18. 1 2 3 4 5 RavenDB Launches Managed Cloud Service, su www.datanami.com, 2019. URL consultato il 4 gennaio 2021.
  19. 1 2 SD Times news digest: Google robots.text parser open sourced, Bonitasoft’s cloud and low-code capabilities, and OWASP ZAP 2.8, su sdtimes.com, 2019. URL consultato il 4 gennaio 2021.
  20. 1 2 New capabilities in database infrastructure service ensure high availability in Cloud-only scenarios, su it.toolbox.com, 2019. URL consultato il 4 gennaio 2021.
  21. ↑ RavenDB 2.0 RTM, su ayende.com, 2013. URL consultato il 4 gennaio 2021.
  22. 1 2 3 4 5 6 RavenDB[collegamento interrotto], su learning.oreilly.com. URL consultato il 4 gennaio 2021.
  23. 1 2 3 4 5 6 7 A document database for the .NET platform, su learning.oreilly.com. URL consultato il 4 gennaio 2021 (archiviato dall'url originale il 2 novembre 2020).
  24. ↑ RavenDB 2.5 Release Candidate is out, su ayende.com, 2013. URL consultato il 4 gennaio 2021.
  25. ↑ RavenDB 3.0 RTM, su ayende.com, 2014. URL consultato il 4 gennaio 2021.
  26. 1 2 NoSQL for .NET: RavenDB 3.0 Takes Flight, su visualstudiomagazine.com, 2014. URL consultato il 4 gennaio 2021.
  27. 1 2 NoSQL: RavenDB 3.0 erhält weitere Storage Engine, su www.heise.de, 2014. URL consultato il 4 gennaio 2021.
  28. 1 2 RavenDB 3.5 RTM released, su ayende.com, 2016. URL consultato il 4 gennaio 2021.
  29. ↑ RavenDB 4.0 is out, su ayende.com, 2018. URL consultato il 4 gennaio 2021.
  30. 1 2 RavenDB 4.1 Release Candidate is out, su ayende.com, 2018. URL consultato il 4 gennaio 2021.
  31. ↑ RavenDB 4.2 has been released, su ayende.com, 2019. URL consultato il 4 gennaio 2021.
  32. 1 2 RavenDB Adds Time Series Query Support, su i-programmer.info. URL consultato il 4 gennaio 2021.
  33. 1 2 RavenDB 5 Improves Distributed Time-Series, Document Compression, and Indexing, su infoq.com, 2020. URL consultato il 4 gennaio 2021.
  34. ↑ The Design of RavenDB 4.0: The Implications of the Blittable Format, su dzone.com, 2016. URL consultato il 4 gennaio 2021.
  35. ↑ Review: NoSQL database RavenDB, su techgenix.com, 2019. URL consultato il 4 gennaio 2021.
  36. ↑ RavenDB Adds Graph Queries, su www.datanami.com, 2019. URL consultato il 4 gennaio 2021.
  37. ↑ SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware’s acquisition of Bitnami, su sdtimes.com, 2019. URL consultato il 4 gennaio 2021.
  38. ↑ Graph API, su ravendb.net. URL consultato il 4 gennaio 2021.
  39. ↑ Data Modeling with Indexes in RavenDB, su www.codeproject.com, 2019. URL consultato il 4 gennaio 2021.
  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?, su docs.microsoft.com, 2011. URL consultato il 4 gennaio 2021.
  42. ↑ RavenDB Adds New Enhancements to Its Cloud-Based Database Service, su bigdata-madesimple.com. URL consultato il 4 gennaio 2021 (archiviato dall'url originale l'8 ottobre 2020).

Voci correlate

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica