RavenDB
| RavenDB | |
|---|---|
| Autor | Oren Eini (Ayende Rahien) |
| Desenvolvedor | Hibernating Rhinos |
| Lançamento inicial | 2010 (15–16 anos) |
| Lançamento estável | 4.2
/ maio de 2019 |
| Repositório | |
| Escrito em | C# |
| Sistema operacional | Windows, Linux, MacOS, Docker e Raspberry Pi |
| Disponível em | Inglês |
| Tipo | NoSQL orientado à documentos |
| Licença | AGPLv3 |
| Website | www |
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
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
| 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
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
- 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
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 Apache Lucene. Isso significa que os índices podem suportar buscas em full-text[1][33][12][13][34][35]
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.[7][8][9]
Aplicações
RavenDB e utilizado:
- Na indústria da saúde
- Ponto de venda
Licenciamento
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
- ↑ a b c d e f g h i j k l «RavenDB». Databases of Databases. Consultado em 2 de fevereiro de 2019
- ↑ a b c d «Raven, a Document Database for .NET». www.infoq.com. 2010. Consultado em 2 de fevereiro de 2019
- ↑ a b c d e f «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
- ↑ a b c 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).
- ↑ a b c d e «RavenDB Launches Managed Cloud Service». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ a b «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
- ↑ a b «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
- ↑ a b c d e f g «RavenDB». learning.oreilly.com. Consultado em 2 de fevereiro de 2019
- ↑ a b c d e f g «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
- ↑ a b «NoSQL for .NET: RavenDB 3.0 Takes Flight». visualstudiomagazine.com. 2014. Consultado em 2 de fevereiro de 2019
- ↑ a b «NoSQL: RavenDB 3.0 erhält weitere Storage Engine». www.heise.de. 2014. Consultado em 2 de fevereiro de 2019
- ↑ a b «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
- ↑ a b «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
- ↑ a b «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
- ↑ a b «RavenDB Adds Graph Queries». www.datanami.com. 2019. Consultado em 2 de fevereiro de 2019
- ↑ a b «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
- «Página oficial»
- «Managed RavenDB Cloud Hosting». cloud.ravendb.net
- GitHub
- Ayende Blog
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.