BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

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.

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
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT