Executando verificação de segurança...
23

Pitch: MelkDB: A primeira versão do meu banco de dados foi lançada! 🎉

Se você leu o artigo "Resolvi desenvolver a ideia de um banco de dados e o resultado me supreendeu", sabe de qual projeto estou falando. Recomendo a leitura antes de prosseguir com este artigo caso você não tenha noção do que eu estou falando aqui.


Acabei de lançar a versão 0.1.0 do meu banco de dados MelkDB, um banco de dados modelo key-value rápido e com baixíssimo consumo de memória. Neste artigo, vou te mostrar um pouco sobre o banco de dados e o motivo da sua criação.

MelkDB: Um banco de dados veloz e otimizado

MelkDB é um banco de dados modelo key-value desenvolvido totalmente em Python. Com seu funcionamento bem documentado, O MelkDB é fácil de usar e pode ser instalado facilmente em sistemas operacionais baseados em Linux e no Windows. Alguns dos pontos principais do projeto são:

  1. Obtenha os dados rapidamente: Desenvolvido para ser extremamente veloz na escrita e leitura de dados, o MelkDB possui um método eficiente para realizar a busca de itens, além de ter um código bem otimizado.
  2. Mantenha seus dados seguros: O MelkDB oferece a opção de criptografia de dados usando AES-256, protegendo seus dados e mantendo a velocidade ao adicionar e obter itens.
  3. Baixo consumo de memória: Apenas os dados solicitados pelo usuário são carregados na memória, evitando o alto consumo de memória ao realizar operações no banco de dados.

Veja um simples exemplo de uso do banco de dados:

from melkdb import MelkDB

db = MelkDB('cache')

db.add("latest_news", "Conteúdo das últimas notícias")
print(db.get("latest_news"))

🤔 Qual problema ele resolve?

Você já precisou carregar uma grande lista de dados na memória para fazer uma busca? Se sim, sabe que carregar todos os dados na memória não é nada eficiente, pois dependendo do tamanho do arquivo aberto, o consumo de memória pode aumentar no nível de travar todo o computador.

Mas há uma solucão para isso: os generators do Python! Utilizando essa funcionalidade do Python, você pode ler linha por linha de um arquivo, carregando apenas um de cada vez, consumindo muito menos memória ao realizar uma busca. Apesar de funcionar muito bem, existe um problema que incomoda muito: a velocidade! 😨

O MelkDB foi desenvolvido para resolver esse problema. A estrutura de dados do MelkDB permite realizar uma busca rápida da chave, carregando apenas o valor que foi solicitado, e consegui tudo isso sem utilizar loops e generators.

⚡ A velocidade do MelkDB

Em testes realizados utilizando um computador com processador Intel Celeron Dual Core de 2.16GHz e um SSD, obtemos seguintes dados sobre a velocidade de escrita e leitura:

Criptografia?N° de dadosTempo para adicionarTempo para obter
Não10.0002.6 segundos1 segundo
Sim10.0006.6 segundos5.5 segundos

Você pode realizar o seu próprio teste de velocidade utilizando o script speedtest.py


Essa foi uma breve introdução sobre o meu projeto de banco de dados desenvolvido totalmente em Python. O que você achou? Quais pontos você acha que deve melhorar? Deixe seu comentário com sugestões e ajude o projeto a evoluir.

Esta é a primeira versão lançada do banco de dados, correções e novas funcionalidades virão em versões futuras. Achou o projeto interessante? Apoie o MelkDB no Github, seja com contribuições, sugestões ou deixando sua estrela como incentivo!

Obrigado por ler até aqui.
by @jaedsonpys

2

Parabéns pelo projeto, cara! Estive acompanhando desde o post anterior e ficou bem bacana! Estou impressionado de verdade!

Sua ideia acabou me inspirando a arriscar o desenvolvimento de um motor de banco de dados também, mas ao invés de usar o esquema de key-value, estou trabalhando com o esquema de colunas tradicional (Estilo SQL) e fornecendo acesso continuamente por meio de um servidor, para poder ser acessível por qualquer outro projeto ou linguagem por meio de drivers ou API.

3
1

Claro mano! Quando pelo menos o CRUD dele estiver funcionando 100% e a minha ideia de estrutura estiver bem definida, eu faço um pitch aqui pra galera poder acompanhar!