sexta-feira, 4 de abril de 2014

Nós não queremos que seus bancos de dados de porcaria, diz Twitter: Nós temos o nosso próprio


Acesso de alto desempenho para armazenamento de arquivos


Twitter está crescendo e, como um adulto, está começando a desejar garantias consistentes sobre seus dados, em vez de disponibilidade imediata.


Pelo menos essa é a ênfase dada pela empresa em seu novo software de gerenciamento de dados "Manhattan", um sistema de armazenamento de rocha que foi revelado em um post de blog na quarta-feira .







O que não é mencionado é que o Twitter está desenvolvendo algo que chama de índices secundários, o registo pode revelar. Este é um recurso potencialmente poderosa dentro de Manhattan que vai dar os seus empregados uma maior flexibilidade sobre como eles pesquisar vastas reservas da rede social de dados, armando a companhia aberta, com uma outra arma para seus empreendimentos comerciais.


Primeiro, aqui está um resumo do que o Twitter disse ao mundo esta semana.


"Ao longo dos últimos anos, nós nos encontramos na necessidade de um sistema de armazenamento que poderia servir milhões de consultas por segundo, com latência extremamente baixa em um ambiente de tempo real. Disponibilidade e velocidade do sistema tornou-se o maior fator importante. Não só Será que ele precisa ser rápido, é necessário para ser escalável em várias regiões ao redor do mundo ", escreveu o Twitter em seu site.


Manhattan é um software construído por engenheiros da rede social para lidar com os cerca de 6.000 os tweets que inundação em seu sistema a cada segundo. Apesar de 6000 os tweets não é que a quantidade de dados, as mensagens possuem uma grande quantidade de complexidade, como Manhattan também precisa lidar com a malha de respostas e retweets por tweet - um problema complicado quando uma celebridade, com milhões de seguidores faz uma observação e é imediatamente inundado com respostas.


Com esta tecnologia, o que pode eventualmente tornar-se open source, o Twitter tem sido capaz de afastar-se de um sistema antes que usou Cassandra para eventual consistência e ferramentas adicionais para forte consistência a um único sistema, desmedido que faz as duas coisas. Manhattan está em produção há mais de um ano, nós entendemos.


Os desenvolvedores podem selecionar a consistência dos dados durante a leitura ou gravação de Manhattan, permitindo-lhes criar novos serviços com diferentes compromissos entre disponibilidade (a rapidez com que algo pode ser acessado) e consistência (como certo que você é um dos resultados de uma consulta).


Devido a isso, os programadores do Twitter pode acessar um "serviço Consistência Forte", que usa um algoritmo de consenso emparelhado com um log replicado para se certificar de que os eventos em ordem alcançar repetições.


Até agora, o Twitter oferece LOCAL_CAS (forte consistência dentro de um único centro de dados) e GLOBAL_CAS (forte consistência em várias instalações). Estes terão "diferentes vantagens e desvantagens quando se trata de latência e modelagem de dados para o aplicativo," Twitter observou em um post de blog em Manhattan.


Temos que ir mais fundo


Os dados do sistema são armazenadas em três diferentes sistemas: seadb é um formato de arquivo somente leitura, sstable é uma árvore estruturada merge-log para heavy-write workloads e btree é um sistema de luz de gravação pesada leitura e. O sistema de Manhattan "núcleo" e depois decide se colocar informações em discos giratórios, memória, ou memória flash em estado sólido (SSDs).


Manhattan pode combinar dados de entrada para o formato mais adequado. A saída de cargas de trabalho do Hadoop, por exemplo, pode ser alimentado em Manhattan a partir de um sistema de arquivos Hadoop, eo software irá transformar essa informação em arquivos seadb "para que, em seguida, podem ser importados para o cluster para uma rápida servindo de SSDs ou memória", Twitter explica.


O banco de dados suporta multi-locação e contém o seu próprio serviço de limitação de taxa de parar de desenvolvedores do Twitter inundar o sistema com solicitações. Estes sistemas são envolvidos em um front-end que, Twitter diz, dá o seu acesso engenheiros para um sistema de armazenamento de "self-service".


"Os engenheiros podem provisão que suas necessidades de aplicação (tamanho de armazenamento, consultas por segundo, etc) e começar a usar o armazenamento em segundos, sem ter que esperar por hardware a ser instalado ou para esquemas a serem criadas," Twitter escreveu, descrevendo o sistema.


Twitter tem planos de publicar um Livro Branco que define a tecnologia no futuro, e pode até mesmo publicar o banco de dados em código aberto. Este último pode demorar um pouco, porém, como um ex-engenheiro do Twitter, disse em um post em um fórum de mensagens online: "Tem um monte de peças móveis e integrações internas, no entanto, por isso tem que haver uma tonelada de trabalho para fazer aberto. "


O futuro? Índices secundários


Quanto mais desenvolvimento, a empresa está trabalhando para implementar índices secundários, nós descobrimos.


Índices secundários permitem que os desenvolvedores adicionar um conjunto adicional de teclas de intervalo para o índice de um banco de dados, de forma dramática acelerando o modo como os desenvolvedores podem navegar e fazer perguntas de grandes quantidades de dados.


Principal do Amazon Web Services DynamoDB produto, por exemplo, implementa essa tecnologia em um local, e mundial (centro multi-dados) de formato.


Ao adicionar índices secundários em Manhattan, o Twitter vai dar aos seus desenvolvedores a capacidade de escrever consultas mais sofisticadas contra seus grandes conjuntos de dados, os índices que serão armazenados na memória.


Isso significa, por exemplo, que o braço comercial do Twitter poderia construir um sistema de anúncios rápido que poderia apresentar anúncios em quase em tempo real para as pessoas de acordo com uma infinidade de diferentes fatores, a um custo menor e maior nível de flexibilidade do que antes.


Sistemas como índices secundários serão cruciais para a implantação de mais avançado, granular, as opções de exibição de publicidade, e são, portanto, uma ferramenta fundamental no arsenal comercial do Twitter.


Há desafios, no entanto: índices secundários serão inicialmente construído para oferecer consistência apenas localmente dentro de um centro de dados, porque a geração de índices secundários globais é computacionalmente impraticável. ®



Nenhum comentário:

Postar um comentário