Em sua conferência re:Invent, a unidade de computação em nuvem AWS da Amazon anunciou hoje a Amazon aurora dsqlum novo banco de dados SQL distribuído sem servidor que promete alta disponibilidade (99,999% para disponibilidade multirregião), grande consistência, compatibilidade com PostgreSQL e, segundo a empresa, “leituras e gravações 4x mais rápidas em comparação com outros bancos de dados SQL distribuídos populares”.
A AWS afirma que o Aurora DSQL oferecerá latência significativamente menor do que o Google Spanner, seu concorrente mais próximo.
Curiosamente, a AWS enfatiza que não há fragmentação de banco de dados aqui para dimensionar o serviço e que você pode dimensionar leituras e gravações de forma independente. A empresa destaca ainda que o Aurora DSQL oferecerá grande consistência, garantindo que caso os usuários optem por uma abordagem multirregional, todas as regiões sempre exibirão os mesmos dados ao mesmo tempo.
A AWS observa que, para garantir resiliência, o Aurora DSQL usa uma arquitetura ativo-ativo, o que significa que sempre há um servidor em espera pronto para assumir o controle, garantindo “que o aplicativo de um cliente esteja sempre disponível, permitindo que um aplicativo leia e grave em qualquer Aurora DSQL”. ponto final.” Por se tratar de um serviço totalmente gerenciado, a AWS cuida de todas as atualizações de segurança e gerencia a infraestrutura geral.
Para que tudo isso acontecesse, a equipe da AWS diz que teve que “reinventar o processamento de transações de banco de dados relacional”. Normalmente, garantir uma consistência forte em várias regiões e sincronizar esses servidores distribuídos globalmente com o que a AWS descreve como “precisão de microssegundos” é uma tarefa bastante difícil de alcançar. A AWS diz que pode fazer isso porque dissociou o processamento de transações do armazenamento. Os métodos tradicionais, explica a empresa, seriam dificultados pela necessidade de repassar informações diversas vezes. O Aurora, no entanto, só verifica cada transação quando chega a hora de confirmar as alterações e, quando a confirmação ocorre, ele paraleliza essas gravações entre regiões.
Uma reviravolta inteligente aqui: para garantir que cada região veja os commits na ordem correta, o Aurora DSQL usa o Amazon Time Sync Service, que adiciona relógios de referência muito precisos a cada instância do EC2 e os sincroniza usando os relógios atômicos dos satélites GPS.
Ter esse horário exato ajuda a resolver uma série de problemas de consistência de dados e acelera o processamento. E embora usar uma abordagem baseada no tempo possa parecer óbvio, você precisa de relógios muito precisos (e bem sincronizados) para fazer isso. Sincronizar relógios, e fazê-lo em escala global, é um problema surpreendentemente difícil. É por isso que os bancos de dados tradicionalmente não conseguem usar o tempo dessa maneira. Startups como Mecanismo de relógio especialize-se nisso. Durante muito tempo isso não foi possível, mas agora que estes sistemas estão disponíveis, permitem inovações como esta em bases de dados.