2. Roteiro
Contexto do OnAir
Contexto técnico
Problema arquitetural
Solução implantada
Resultados obtidos
Trabalhos em andamento
Conclusões
3. Contexto
OnAir é um sistema de busca de informações
multimídia, como o Youtube.
A busca é realizada por palavras-chaves e pelo
conteúdo falado, acessando diretamente o trecho.
Utiliza conceitos da Web Semântica que permitem
expandir uma consulta.
Baseado na tese de mestrado de Christian Paz
Trillo do IME - USP.
Criado como produto pela empresa Infomobile
através de programas de subvenção para inovação
tecnológica.
4. Contexto técnico
Processamento do vídeo
− Criação das estruturas de recuperação - índices
− Criação das estruturas para Web Semântica
Expansão da consulta
− Utilização das estruturas de Web Semântica
Busca de resultados
− Cálculo de relevância para os resultados
5. Problema arquitetural
As estruturas de recuperação estavam armazenadas
em um banco de dados. Se esse servidor falhasse, o
sistema todo ficava indisponível.
As estruturas de Web Semântica são coleções
gigantes de informações. Armazenadas em memória,
perdia-se a escalabilidade. Armazenadas em um banco
de dados remoto perdia-se o desempenho do sistema.
A relevância de um vídeo é calculado utilizando
fórmulas e algumas estruturas intermediárias. O
armazenamento dessa informação em memória,
causava a perda de escalabilidade do sistema para
centenas de usuários.
6. Solução implantada
Requerimentos:
− Escalável para milhares de usuários.
− Curto tempo de resposta.
− Evitar pontos únicos de falha.
− De fácil administração caso seja um ambiente
distribuído.
− Que possibilite acessos a diferentes porções de
dados de forma distribuída sem prejudicar o
desempenho do sistema.
7. Solução implantada
O projeto Cassandra (cassandra.apache.org) provê todas
as funcionalidades necessárias para atender os
requerimentos de escalabilidade, desempenho e alta
disponibilidade, além de fornecer uma fácil
administração da nuvem criada pelos computadores.
Cassandra trabalha com o mapeamento “chave → valor”
parecida a uma estrutura de hash distribuída. Nessa
estrutura, a recuperação de um valor acontece em
tempo quase constante, independente da quantidade
de chaves armazenadas.
8. Solução implantada
No OnAir, o Cassandra foi utilizado especificamente para:
Armazenar e procurar na nuvem os índices de uma
determinada palavra. Esse índice era assim inserido
na estrutura de recuperação (on demand).
Armazenar e procurar na nuvem os relacionamentos
semânticos de uma palavra.
Armazenar e procurar na nuvem valores de fórmulas
intermediárias, que já foram realizadas, para calcular a
relevância de um vídeo.
9. Resultados
Os resultados obtidos da utilização do Cassandra,
quando sujeito a estresse de mil clientes, permitiram:
Melhorias no tempo de resposta da consulta (de 3
minutos a 2 segundos).
Melhorias no tempo de resposta da expansão da
consulta (de 1 minuto a 1 segundo).
Melhorias na utilização de recursos do servidor (foram
retiradas da memória estruturas e valores).
Melhoria na tolerância a falhas: quando algumas
máquinas da nuvem são desconectadas, a
disponibilidade das informações se mantém.
10. Trabalhos em Andamento
Cassandra com suporte à transações.
Cassandra com suporte à segurança.
Criação de espaços de busca dinâmicos.
11. Conclusões
Cassandra ajudou a melhorar o desempenho, a
escalabilidade e tolerância a falhas do sistema.
Evitou o uso de um servidor de banco de dados,
evitando pontos único de falha e simplificando a
implementação do sistema.
Assim como outras ferramentas noSQL, existe o
problema do mapeamento OO (objeto → valor).
Para questões relacionadas à transações
distribuídas, Cassandra não é uma opção.