RavenDB
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 | )
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 |
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,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,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,0 3,1 3,2 3,3 3,4 3,5 «RavenDB System Properties». db-engines.com. Consultado em 2 de fevereiro de 2019
- ↑ «Other Vendors to Consider for Operational DBMSs». www.gartner.com. 2018. Consultado em 2 de fevereiro de 2019
- ↑ «Hibernating Rhino». hibernatingrhinos.com. Consultado em 2 de fevereiro de 2019
- ↑ 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,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,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,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
- ↑ «RavenDB goes live!». ayende.com. 2010. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB 2.0 RTM». ayende.com. 2013. Consultado em 2 de fevereiro de 2019
- ↑ 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,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
- ↑ «RavenDB 2.5 Release Candidate is out». ayende.com. 2013. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB 3.0 RTM». ayende.com. 2014. Consultado em 2 de fevereiro de 2019
- ↑ 16,0 16,1 «NoSQL for .NET: RavenDB 3.0 Takes Flight». visualstudiomagazine.com. 2014. Consultado em 2 de fevereiro de 2019
- ↑ 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,0 18,1 «RavenDB 3.5 RTM released». ayende.com. 2016. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB 4.0 is out». ayende.com. 2018. Consultado em 2 de fevereiro de 2019
- ↑ «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,0 21,1 «RavenDB 4.1 Release Candidate is out». ayende.com. 2018. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB 4.2 has been released». ayende.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ 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
- ↑ «The Design of RavenDB 4.0: The Implications of the Blittable Format». dzone.com. 2016. Consultado em 2 de fevereiro de 2019
- ↑ «Review: NoSQL database RavenDB». techgenix.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ «Hidden Windows Gems: Extensible Storage Engine». ayende.com. 2008. Consultado em 2 de fevereiro de 2019
- ↑ 27,0 27,1 «RavenDB Adds Graph Queries». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ 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
- ↑ «NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application». docs.microsoft.com. 2011. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB: Driving DX through DB infrastructure management». ciostory.com. Consultado em 2 de fevereiro de 2019
- ↑ «Graph API». ravendb.net. Consultado em 2 de fevereiro de 2019
- ↑ «Data Modeling with Indexes in RavenDB». www.codeproject.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ «RavenDB vs SQL Server». www.integrace.nl. 2012. Consultado em 2 de fevereiro de 2019
- ↑ Stevic, Milorad P. "Managing documents with NoSQL in service oriented architecture." Online Journal of Applied Knowledge Management (OJAKM) 1.2 (2013): 105-115.
- ↑ «Data Points - What the Heck Are Document Databases?». docs.microsoft.com. 2011. Consultado em 2 de fevereiro de 2019
Ligações externas[editar]
- Sítio oficial
- «Managed RavenDB Cloud Hosting». cloud.ravendb.net
- GitHub
- Ayende Blog
Erro Lua em Módulo:Categorização_AD_e_AB_de_outras_wikis na linha 173: attempt to index field 'wikibase' (a nil value).