You can edit almost every page by Creating an account. Otherwise, see the FAQ.

RavenDB

Fonte: EverybodyWiki Bios & Wiki

RavenDB
Ravendb-logo.png
Autor Oren Eini (Ayende Rahien)
Desenvolvedor Hibernating Rhinos
Lançamento 2010 (13–14 anos)
Versão estável 4.2 (maio de 2019; há 5 anos)
Idioma(s) Inglês
Linguagem C#
Sistema operacional Windows, Linux, MacOS, Docker e Raspberry Pi
Gênero(s) NoSQL orientado à documentos
Licença AGPLv3
Página oficial www.ravendb.net

Erro Lua em Módulo:Categorização_AD_e_AB_de_outras_wikis na linha 173: attempt to index field 'wikibase' (a nil value).

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.[1][2][3][4][5][6] RavenDB armazena dados como documentos JSON e pode operar em clusters distribuídos com replicação master-master.

História[editar]

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.[7][8][9]

Histórico de Versões[editar]

Versão Data Principais Caracteristicas Adicionadas
1.0 Maio de 2010[10]
2.0 Janeiro de 2013[11] Suporte a replicação[12][13]
2.5 Junho de 2013[14] Projeções e consultas baseadas em Facets[12]
3.0 Novembro de 2014[15] Java API; Mecanismo de armazenamento Voron[16][17]
3.5 Outubro de 2016[18] Suporte a execução em Clusters[18]
4.0 Fevereiro de 2018[19] Tornou-se multi-plataforma; disponível em licença livre[20]
4.1 Agosto de 2018[21] Suporte completo a transações em Cluster[7][21]
4.2 Maio de 2019[22] Suporte a grafos[7]
  • Verde: Suporta
  • Vermelho: No suporta

Arquitetura do Sistema[editar]

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

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

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.[1][2][3][12][13]

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

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

Características Principais[editar]

  • Suporte completo a transações ACID no Cluster - Transações ACID podem ser executadas no escopo do Cluster (além de transações em um único nó). A transação somente será persistida se for confirmada por consenso em todos os nós. Caso isso não seja possível, a operação será desfeita.[1][7]
  • Contadores distribuídos[27][28]

Indexação e consultas[editar]

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

  • Indexação dinâmica, no RavenDB todas as consultas utilizam índices. Caso não existir um índice que satisfaça uma consulta, ele é criado automaticamente pelo RavenDB.[1][29][30][12][13][6]
  • Consultas de Grafos – documentos podem ser tratados como vértices em um grafo (graph), e o campo ID do documento tratado como as arestas. Isso possibilita a criação de consultas recursivas.[27][28][31]
  • Projeções – índices podem ser configurados para realizar cálculos, agregações e outras operações complexas, incluindo execução de código Javascript no lado do servidor.[1][3][32]
  • Pesquisas com Full-text – em nível mais baixo, os dados são indexados usando Lucene.net. Isso significa que os índices podem suportar buscas em full-text[1][33][12][13][34][35]

RavenDB Cloud[editar]

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.[7][8][9]

Aplicações[editar]

RavenDB e utilizado:

  • Na indústria da saúde
  • Ponto de venda

Licenciamento[editar]

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

Referências

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 «RavenDB». Databases of Databases. Consultado em 2 de fevereiro de 2019 
  2. 2,0 2,1 2,2 2,3 «Raven, a Document Database for .NET». www.infoq.com. 2010. Consultado em 2 de fevereiro de 2019 
  3. 3,0 3,1 3,2 3,3 3,4 3,5 «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. 6,0 6,1 6,2 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. 7,0 7,1 7,2 7,3 7,4 «RavenDB Launches Managed Cloud Service». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019 
  8. 8,0 8,1 «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. 9,0 9,1 «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. 12,0 12,1 12,2 12,3 12,4 12,5 12,6 «RavenDB». learning.oreilly.com. Consultado em 2 de fevereiro de 2019 
  13. 13,0 13,1 13,2 13,3 13,4 13,5 13,6 «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. 16,0 16,1 «NoSQL for .NET: RavenDB 3.0 Takes Flight». visualstudiomagazine.com. 2014. Consultado em 2 de fevereiro de 2019 
  17. 17,0 17,1 «NoSQL: RavenDB 3.0 erhält weitere Storage Engine». www.heise.de. 2014. Consultado em 2 de fevereiro de 2019 
  18. 18,0 18,1 «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. 21,0 21,1 «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. 23,0 23,1 «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 
  26. «Hidden Windows Gems: Extensible Storage Engine». ayende.com. 2008. Consultado em 2 de fevereiro de 2019 
  27. 27,0 27,1 «RavenDB Adds Graph Queries». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019 
  28. 28,0 28,1 «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 
  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[editar]

Erro Lua em Módulo:Categorização_AD_e_AB_de_outras_wikis na linha 173: attempt to index field 'wikibase' (a nil value).



    Read or create/edit this page in another language[editar]