RavenDB

RavenDB
AutorOren Eini (Ayende Rahien)
DesenvolvedorHibernating Rhinos
Lançamento inicial2010 (15–16 anos)
Lançamento estável
4.2 / maio de 2019; há 7 anos (2019-05)
Repositório
Escrito emC#
Sistema
operacional
Windows, Linux, MacOS, Docker e Raspberry Pi
Disponível emInglês
TipoNoSQL orientado à documentos
LicençaAGPLv3
Websitewww.ravendb.net

RavenDB é um banco de dados NoSQL orientado à documentos, open-source, escrito em C# e com suporte total a operações ACID. Desenvolvido pela Hibernating Rhinos Ltd ele é multi-plataforma, funcionando em Windows, Linux e MacOS. RavenDB armazena dados como documentos JSON e pode operar em clusters distribuídos com replicação master-master.

História

Originalmente com o nome de “Rhino DivanDB”, RavenDB começou como um projeto em 2008 sob a liderança de Oren Eini (também conhecido como Ayende Rahien) e é desenvolvido pela Hibernating Rhinos Lta. Segundo a companhia, trata-se do primeiro banco de dados baseado em documentos que funciona nativamente em .NET. Trata-se também de um dos primeiros bancos, desse tipo, a suportar ACID.

Em 2019, Hibernating Rhinos passou a ofertar o RavenDB como um serviço em nuvem cloud service chamado RavenDB Cloud.

Histórico de Versões

VersãoDataPrincipais Caracteristicas Adicionadas
1.0Maio de 2010
2.0Janeiro de 2013Suporte a replicação
2.5Junho de 2013Projeções e consultas baseadas em Facets
3.0Novembro de 2014Java API; Mecanismo de armazenamento Voron
3.5Outubro de 2016Suporte a execução em Clusters
4.0Fevereiro de 2018Tornou-se multi-plataforma; disponível em licença livre
4.1Agosto de 2018Suporte completo a transações em Cluster
4.2Maio de 2019Suporte a grafos

Arquitetura do Sistema

Os dados são armazenados em documentos com esquema livre (schema-less) em formato JSON. Em nível mais baixo, no mecanismo de armazenamento, os documentos são mantidos em formato binário chamado Blittable. Documentos são agrupados em coleções e cada documento pertence a apenas uma coleção.

Os bancos de dados podem ser distribuídos em clusters de servidores (também chamados de nós) usando replicação multi-master. Algumas operações, entretanto, requerem consenso da maioria dos nós. Esse consenso é obtido usando uma implementação do protocolo Raft, chamada Rachis.Todas as tarefas são distribuídas, de maneira balanceada, entre os diferentes nós.

Da versão 1 at é a versão 3.5 havia suporte nativo para sharding. A partir da versão 4.x não há mais.

RavenDB usava, originalmente, Esent como mecanismo de armazenamento. Entretanto, a partir da versão 3, passou a utilizar também um mecanismo de armazenamento, otimizado para RavenDB, chamado Voron.

Atualmente, há suporte para clients escritos em C#, C++, Java, Node.js, Python, Ruby e Go.

Características Principais

Indexação e consultas

Consultas podem ser escritas em LINQ (para .NET) ou com uma linguagem customizada chamada RQL (Raven Query Language), com sintaxe similar a SQL.

RavenDB Cloud

RavenDB Cloud é um banco de dados gerenciado como serviço em nuvem (database-as-a-service) lançado em 2019, suportando AWS, Azure and GCP. O serviço executa toda a administração, como a manutenção do hardware e segurança para o usuário. Além disso, há compartilhamento de recursos de CPU entre diferentes nós para impedir throttling.

Aplicações

RavenDB e utilizado:

Licenciamento

RavenDB é open-source sob a licença AGPLv3. Está disponível em licença livre, com restrições e também uma licença comercial.

Referências

  1. 1 2 3 4 5 6 7 8 9 10 11 12 «RavenDB». Databases of Databases. Consultado em 2 de fevereiro de 2019
  2. 1 2 3 4 «Raven, a Document Database for .NET». www.infoq.com. 2010. Consultado em 2 de fevereiro de 2019
  3. 1 2 3 4 5 6 «RavenDB System Properties». db-engines.com. Consultado em 2 de fevereiro de 2019
  4. ↑ «Other Vendors to Consider for Operational DBMSs». www.gartner.com. 2018. Consultado em 2 de fevereiro de 2019
  5. ↑ «Hibernating Rhino». hibernatingrhinos.com. Consultado em 2 de fevereiro de 2019
  6. 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).
  7. 1 2 3 4 5 «RavenDB Launches Managed Cloud Service». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019
  8. 1 2 «SD Times news digest: Google robots.text parser open sourced, Bonitasoft's cloud and low-code capabilities, and OWASP ZAP 2.8». sdtimes.com. 2019. Consultado em 2 de fevereiro de 2019
  9. 1 2 «New capabilities in database infrastructure service ensure high availability in Cloud-only scenarios». it.toolbox.com. 2019. Consultado em 2 de fevereiro de 2019
  10. ↑ «RavenDB goes live!». ayende.com. 2010. Consultado em 2 de fevereiro de 2019
  11. ↑ «RavenDB 2.0 RTM». ayende.com. 2013. Consultado em 2 de fevereiro de 2019
  12. 1 2 3 4 5 6 7 «RavenDB». learning.oreilly.com. Consultado em 2 de fevereiro de 2019
  13. 1 2 3 4 5 6 7 «A document database for the .NET platform». learning.oreilly.com. Consultado em 2 de fevereiro de 2019
  14. ↑ «RavenDB 2.5 Release Candidate is out». ayende.com. 2013. Consultado em 2 de fevereiro de 2019
  15. ↑ «RavenDB 3.0 RTM». ayende.com. 2014. Consultado em 2 de fevereiro de 2019
  16. 1 2 «NoSQL for .NET: RavenDB 3.0 Takes Flight». visualstudiomagazine.com. 2014. Consultado em 2 de fevereiro de 2019
  17. 1 2 «NoSQL: RavenDB 3.0 erhält weitere Storage Engine». www.heise.de. 2014. Consultado em 2 de fevereiro de 2019
  18. 1 2 «RavenDB 3.5 RTM released». ayende.com. 2016. Consultado em 2 de fevereiro de 2019
  19. ↑ «RavenDB 4.0 is out». ayende.com. 2018. Consultado em 2 de fevereiro de 2019
  20. ↑ «NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar». www.heise.de. 2018. Consultado em 2 de fevereiro de 2019
  21. 1 2 «RavenDB 4.1 Release Candidate is out». ayende.com. 2018. Consultado em 2 de fevereiro de 2019
  22. ↑ «RavenDB 4.2 has been released». ayende.com. 2019. Consultado em 2 de fevereiro de 2019
  23. 1 2 «Ayende's DivanDB (also, is esent the most widely used database engine?)». blogs.msdn.microsoft.com. 2008. Consultado em 2 de fevereiro de 2019
  24. ↑ «The Design of RavenDB 4.0: The Implications of the Blittable Format». dzone.com. 2016. Consultado em 2 de fevereiro de 2019
  25. ↑ «Review: NoSQL database RavenDB». techgenix.com. 2019. Consultado em 2 de fevereiro de 2019 [ligação inativa]
  26. ↑ «Hidden Windows Gems: Extensible Storage Engine». ayende.com. 2008. Consultado em 2 de fevereiro de 2019
  27. 1 2 «RavenDB Adds Graph Queries». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019
  28. 1 2 «SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware's acquisition of Bitnami». sdtimes.com. 2019. Consultado em 2 de fevereiro de 2019
  29. ↑ «NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application». docs.microsoft.com. 2011. Consultado em 2 de fevereiro de 2019
  30. ↑ «RavenDB: Driving DX through DB infrastructure management». ciostory.com. Consultado em 2 de fevereiro de 2019 [ligação inativa]
  31. ↑ «Graph API». ravendb.net. Consultado em 2 de fevereiro de 2019
  32. ↑ «Data Modeling with Indexes in RavenDB». www.codeproject.com. 2019. Consultado em 2 de fevereiro de 2019
  33. ↑ «RavenDB vs SQL Server». www.integrace.nl. 2012. Consultado em 2 de fevereiro de 2019
  34. ↑ Stevic, Milorad P. "Managing documents with NoSQL in service oriented architecture." Online Journal of Applied Knowledge Management (OJAKM) 1.2 (2013): 105-115.
  35. ↑ «Data Points - What the Heck Are Document Databases?». docs.microsoft.com. 2011. Consultado em 2 de fevereiro de 2019

Ligações externas