BT

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
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

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.