Embora comumente usada em repositórios git, a ramificação nunca foi uma boa opção para bancos de dados, de acordo com Nikita Shamgunov, cofundador e CEO da Neon, um provedor multicloud de PostgreSQL sem servidor.
A ramificação está disponível com o Neon, embora tenha surgido através de muito trabalho duro, disse ele, e tenha evoluído de um recurso de infraestrutura para uma ferramenta de fluxo de trabalho do desenvolvedor.
“Na arquitetura que o Postgres tem hoje… ramificação é apenas um recurso difícil de se ter”, disse ele. “É necessária uma arquitetura de próxima geração, arquitetura de armazenamento, para permitir a ramificação, porque o principal recurso da ramificação é a cópia na gravação. Isso é o que o git tem, por exemplo, quando você cria um branch, você basicamente move alguns ponteiros. E isso lhe dá uma cópia isolada e completa dos seus dados em uma filial separada.”
Requer uma forte integração do sistema de arquivos e do mecanismo de banco de dados.
“Os sistemas de arquivos que temos hoje não se importam com o que é executado em cima, certo? Eles não sabem que este é um banco de dados rodando sobre o sistema de arquivos, ou algum outro aplicativo rodando sobre o sistema de arquivos, e preserva toda a semântica transacional quando você cria uma ramificação, tornando-a indetectável para os sistemas que atualmente em produção. E além desse armazenamento, isso é algo muito difícil de fazer.”
Cópia dos dados em um sandbox
Faturado como uma alternativa de código aberto ao AWS Aurora Postgres, Neon separa computação e armazenamento. Ele reescreveu completamente o armazenamento, tornando possível a ramificação em seu Postgres como plataforma de serviço.
Como a API entre o nível mais baixo do Postgres e o sistema de arquivos era relativamente pequena, o Neon intercepta e redireciona chamadas de leitura e gravação de um sistema de arquivos local para fazer quaisquer chamadas RPC em seu armazenamento nativo da nuvem. Sua camada de armazenamento, que foi desenvolvida sob medida para Postgres, redistribui dados em um cluster de nós, oferecendo capacidade quase ilimitada e economia com a movimentação de dados raramente usados para camadas de baixo custo.
Embora virtualmente seja uma cópia dos dados, fisicamente é cópia na gravação, o que não duplica o armazenamento necessário, mas é usado como um método de alteração de ponteiros para os dados.
“Fisicamente, é apenas um ponteiro… ponteiros apontando para a mesma página. E à medida que as páginas são modificadas, só então criamos páginas físicas adicionais. Então é assim que a cópia na gravação é construída. E como isso fica no subsistema de armazenamento, não é trivial, é impossível construí-lo dentro do próprio Postgres. Ele roda sobre o sistema de arquivos, sobre o qual o Postgres não tem influência”, explicou Shamgunov.
A ramificação fornece ao usuário uma cópia completa dos dados de produção, mas é um ambiente sandbox onde os usuários podem experimentar sem afetar a ramificação principal.
Você pode criar uma ramificação que inclua todos os dados até o horário atual ou anterior. O Neon retém um histórico de sete dias de ramificações de um projeto como registros write-ahead-log (WAL), permitindo um recurso de restauração pontual.
“É uma maneira incrivelmente segura de desenvolver software. Isso lhe dá uma confiança semelhante (ao git) para mexer em seu branch o quanto quiser, porque você sempre pode redefini-lo no branch de produção, no branch principal. Assim que o recurso estiver concluído, você poderá avançar para o ramo principal”, disse ele.
Ele permite que os usuários:
Faça backup instantaneamente do banco de dados.
Execute testes em ramificações específicas de teste descartáveis.
Experimente com segurança migrações automatizadas de banco de dados em produção.
Execute análises ou cargas de trabalho de machine learning isoladamente.
Ou, se você decidir abandonar tudo o que fez, não custará nada porque não tem servidor. Sem servidor significa que os desenvolvedores não precisam se preocupar em dimensionar corretamente os recursos de seus aplicativos, eles apenas adicionam uma string de conexão ao banco de dados. E com preços baseados no consumo, o Neon pode reduzir até zero.
A empresa disponibiliza gratuitamente um projeto em seu serviço de nuvem, com até 10 filiais, 3 gigabytes de armazenamento em cada filial e uma instância de computação compartilhada com 1 gigabyte de RAM.
Em dezembro, anunciou Branch Reset, que permite manter sua filial atualizada com os esquemas e dados mais recentes da filial principal. Funciona de forma muito semelhante git reset-hard parent em fluxos de trabalho git. Ele vem com a ressalva de que pode substituir algum trabalho em sua filial.
Ele também introduziu o recurso IP Allow para usuários do Neon Pro Plan, adicionando outra camada de segurança aos dados. Ele permite que os usuários restrinjam o acesso a uma filial apenas aos endereços IP especificados. Você cria uma lista de permissões de IP que é aplicada a todas as filiais por padrão ou pode aplicá-la somente à ramificação principal do seu projeto.
Trabalho vetorial também
Embora tenha mais de 35 anos, o Postgres continua popular. É o banco de dados mais usado pelos desenvolvedores, de acordo com a pesquisa de desenvolvedores Stack Overflow 2023, que descobriu que o banco de dados Postgres preferido por 45,5% dos desenvolvedores em vez do MySQL, com 41%. Está classificado como No. 4 no DB-Engines, porém, enquanto o MySQL é o número 4. 2.
Shamgunov, que anteriormente foi cofundador da plataforma de análise de dados em tempo real SingleStore (MemSQL), lançou o Neon em 2022 junto com os veteranos do Postgres Heikki Linnakangas e Stas Kelvich. O provedor de nuvem Vercel anunciou uma parceria com a Neon em maio, que, juntamente com um acordo semelhante com o ambiente de desenvolvimento integrado online Replit, está impulsionando o crescimento da Neon.
Ela anunciou uma rodada de financiamento da série B de US$ 46 milhões em agosto, elevando seu financiamento total para US$ 104 milhões.
A empresa também está ativamente envolvida no desenvolvimento da extensão de pesquisa de similaridade Postgres pgvector. Linnakangas, por exemplo, fez várias contribuições aos projetos para melhorar o desempenho, disse Shamgunov. Como fornecedora do Postgres, a empresa considera que não há necessidade de um banco de dados vetorial separado.
Ao mesmo tempo, assim como a plataforma postgres edge pgEdge, o Neon está indo além do que o pgvector oferece, usando um conjunto adicional de algoritmos com sua própria extensão de vetor chamada pg_embedding para ajudar a melhorar ainda mais a precisão. Ele fornece pesquisa de similaridade vetorial usando Postgres e o algoritmo Hierarchical Navigable Small Worlds para aproximar a pesquisa do vizinho mais próximo.
Também possui replicação lógica em beta.
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER
Susan Hall é a editora patrocinadora do The New Stack. Seu trabalho é ajudar os patrocinadores a obter o maior número possível de leitores para o conteúdo que contribuem. Ela escreve para The New Stack desde seus primeiros dias, bem como para sites…
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.