BT
x Por favor preencha a pesquisa do InfoQ !

LinkedIn abre o código do seu banco de dados distribuído SenseiDB

por Kostis Kapelonis , traduzido por Adalberto Zanata em 27 Mar 2012 |

O grupo de Engenharia do LinkedIn lançou e tornou open source o SenseiDB, um banco de dados distribuído e semiestruturado. O SenseiDB é a tecnologia que está por trás da infraestrutura de pesquisas do LinkedIn e dá sustentação à sua página principal, ao LinkedIn Signals e a outros recursos de pesquisa do portal, como as buscas de pessoas e empresas. O SenseiDB foi desenvolvido internamente para atender a necessidades da empresa, e agora teve seu código aberto, passando a integrar ao projeto "guarda-chuva" LinkedIn SNA, focado em buscas, rede de contatos e análise.

O SenseiDB é um banco de dados NoSQL, focado em altas taxas de atualização e consultas semiestruturadas complexas. Os usuários já familiarizados com o Lucene e o Solr da Apache reconhecerão vários dos conceitos subjacentes ao SenseiDB. O SenseiDB é implantado em clusters de vários nós (nodes), sendo que cada nó pode conter N fragmentos de dados. Os nós são gerenciados através do Apache Zookeeper, que mantém a configuração existente e transmite alterações (por exemplo, modificações de topologia) para todo o grupo de nós. Cada cluster do SenseiDB também requer um esquema para definir o modelo de dados que será usado.

A obtenção de dados para alimentar um cluster SenseiDB é feita apenas através de gateways (não há um método "INSERT"); cada cluster é ligado a um único gateway. Este é um dos pontos críticos de entendimento desta tecnologia, já que o SenseiDB não trata a atomicidade e o isolamento. Estas características são garantidas externamente, no nível do gateway, que deve garantir que o fluxo de dados se comporta da maneira esperada. Os gateways já integrados são:

Os desenvolvedores também podem implementar gateways personalizados. Para exemplificar esta implementação, é fornecido um gateway de exemplo que obtém seus dados a partir de atualizações feitas no Twitter.

Tendo o fluxo de dados de entrada em funcionamento e já alimentando os dados do cluster, o SenseiDB permite que sejam realizadas consultas "fragmentadas" (faceted), de acordo com o esquema definido. Para esta finalidade, é oferecida uma API REST, inspirada na DSL de consultas do ElasticSearch, que pode ser acessada por qualquer cliente HTTP. O SenseiDB vem acompanhado de componentes em Java e Python, que encapsulam essa API. Em breve também será disponibilizada uma versão dos componentes em Ruby.

O SenseiDB oferece ainda a BQL (Linguagem de Consulta e Navegação) como um método alternativo de consulta. A BQL é uma linguagem similar ao SQL (contendo apenas instruções SELECT), que facilita a consulta a um banco SenseiDB. Um console gráfico para web é fornecido como parte da instalação do cluster, permitindo inspecionar e depurar consultas BQL.

Para informações mais detalhadas sobre o SesnseiDB, consulte a documentação geral, os Javadocs e o Wiki do projeto. O código-fonte está hospedado no GitHub.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.