quarta-feira, 26 de novembro de 2014

Dentro Aurora: como disruptiva é MySQL clone da Amazon?


Internet Security Threat Report 2014


Na sua recente re: Invent conferência em Atlanta, a Amazon anunciou o seu novo motor de banco de dados de Aurora, taxando-o de um motor de banco de dados da classe comercial ao custo de código aberto. "É pelo menos tão disponível, durável e como as edições Enterprise do proprietário comercial motores de banco de dados e SANs high-end com tolerância a falhas", disse sênior AWS VP Andy Jassy, ​​"e é um décimo do custo."


Então o que faz Aurora carrapato? O motor de banco de dados é compatível com o código aberto MySQL, ea maioria dos smarts estão no armazenamento, de acordo com o gerente geral Anurag Gupta, que descreveu o novo serviço em detalhes em um re: Invent sessão. Quando você usa o novo serviço, atualmente em pré-visualização limitada, você alugar uma máquina virtual (VM) instância em que os SQL e motor transação é executado. Caching também vive nesta instância, embora ele roda em um processo separado, de modo que você pode reiniciar o mecanismo de banco de dados sem perder o cache. Logging e armazenamento são manipulados por uma camada externa que é executado no serviço de armazenamento da Amazon.







Esta abordagem significa que failover para uma réplica, se você manter várias instâncias, é quase imediata, uma vez que todas as réplicas usar as mesmas camadas de registro e armazenamento. Da mesma forma, não há atraso insignificante entre a atualização da instância primária e ler os dados de volta de uma réplica de leitura. Gupta citado 7.27ms réplica lag em atualizações 13.8K por segundo. Logicamente, não é realmente uma réplica de todo, uma vez que a camada de armazenagem é o mesmo; mas os dados já é replicado seis vezes em três "zonas de disponibilidade", um local isolado dentro de uma região da Amazônia. Os dados são divididos em pequenos segmentos de 10 Gb, então recriar um segmento após uma falha é uma operação rápida, e você pode perder até duas cópias, sem afetar as operações de gravação, e até três cópias sem afetar as operações de leitura.


Aurora usa uma técnica chamada Log estruturado de armazenamento, o que significa que o log é integrado ao sistema de arquivos; pode haver várias versões de qualquer dado específico, mas consultando o log, o sistema sabe que é atual. O armazenamento é SSD-suportado pelo desempenho. A inserção de dados em MySQL requer seis gravações, diz Gupta, enquanto que em Aurora que exige apenas dois, porque só o log é atualizado.


Amazon claims 5x read performance for Aurora vs MySQL

Amazon afirma 5x o desempenho de leitura para Aurora vs MySQL



O resultado é um melhor desempenho contra o MySQL, medidos pelo padrão SysBench ferramenta de benchmark, e comparando as mesmas operações com o serviço MySQL, da Amazon, de acordo com números apresentados por Gupta. O resumo rápido é o desempenho de gravação de 3x e 5x o desempenho de leitura, mas isso vai variar de acordo com fatores como o número de conexões simultâneas, o número de mesas, e da complexidade dos procedimentos.


Aurora é compatível com o MySQL 5.6, utilizando o motor InnoDB, e suporta bancos de dados de até 64TB. Não há recursos foram adicionados com exceção de três declarações para simulação fracasso. Há um para simular um acidente, outro para falha de disco, e outra para falha de rede, por exemplo:


ALTER SYSTEM SIMULATE percent_failure DISK failure_type IN [DISK index | NODE index] FOR INTERVAL interval


Não há licenciamento diferente de preços da Amazon habitual pay-as-you-go para RDS (Serviços de banco de dados relacional), que para Aurora começa em US $ 0,29 por hora para uma VM com 2 CPUs virtuais e 15.25GB RAM. Além disso, você paga US $ 0,10 por GB / mês para o armazenamento, e US $ 0,20 por milhão de pedidos.


RDS MySQL é um pouco mais barato, especialmente no que está atualmente disponível em menor-spec VMs, mas Amazon dizer que qualquer custo extra para Aurora será mais do que compensada pelo melhor desempenho. Dito de outra forma, você iria gastar mais em recursos de computação para RDS MySQL para obter um desempenho equivalente, se isso é possível em tudo. Na extremidade baixa, MySQL pode sempre ser uma escolha mais econômica. Um dos fatores é que Aurora conta com rede melhorada, que governa atualmente fora VMs menores que funcionam bem com o MySQL.


E sobre o desempenho Aurora contra máquinas de banco de dados comerciais como o Oracle ou SQL Server? Amazon não vai dizer, citando restrições nos acordos de licenciamento para estes produtos que proíbem a publicação de benchmarks. Vendedores justificar esta alegando que benchmarks pode ser enganoso, especialmente se o set-up não está devidamente otimizado.


Aurora tem uma vantagem teórica, porém, na medida em que é construída especificamente para a infra-estrutura de armazenamento AWS, enquanto outros bancos de dados que irá tratar de armazenamento como um sistema de arquivos tradicional.


É também por isso que não há possibilidade de instalação de Aurora em seu próprio centro de dados. Os desenvolvedores devem usar MySQL como uma alternativa, se eles precisam de uma instalação local para teste e desenvolvimento.



Nenhum comentário:

Postar um comentário