Prof. Daniela Barreiro Claro
Volume de dados muito grande Principais problemas em relacao aos SGBD Relacionais é conciliar o tipo de modelo com a demanda da escalabilidade. Exemplo -Facebook Um crescimento do numero de usuarios -> queda de desempenho Daí seria necessário fazer um upgrade no servidor ou aumentar o número de servidores Se o numero de usuarios continuasse a crescer, estas soluções ainda nao seriam suficientes, pois o problema passaria a ser no acesso a estas bases de dados
Solução: Escalabilidade Vertical aumentar o poder do servidor, ou seja, aumentar memoria, processador e armazenamento. Outra solução: Escalabilidade Horizontal Aumentar o numero de maquinas Na medida que estas solucoes vao sendo necessarias, uma serie de configuracoes e alteraçoes na aplicação deve ser efetivada para que tudo funcione na nova arquitetura distribuída
Necessidade de flexibilizar os bancos de dados relacionais NOSQL - Not Only SQL Foi proposto inicialmente em 1998 Varios investimentos de grandes empresas BigTable Google investe desde 2004 Baseado na filosofia de alto desempenho, escalabilidade e disponibilidade Cassandra desenvolvido pelo Facebook; em 2010 passou a ser utilizado pelo Twitter Dynamo - Amazon
Escalabilidade Horizontal BDR não escalam facilmente No NOSQL há ausencia de bloqueios, o que dá maior facilidade e eficiencia(nao é afetada pela aumento da concorrencia) Ausencia de Esquema (schema-free) Ausencia parcial ou total de esquema Isso facilita a alta escalabilidade e alta disponibilidade Mas nao ha garantia na integridade dos dados Suporte nativo a replicacao Com isso o tempo gasto para recuperar informaçoes é reduzido
Consistencia Eventual Nem sempre a consistencia de dados é mantida Tem embasamento no teorema CAP (Consistency, Availability e Partition tolerance) Em um dado momento só é possível garantir duas destas propriedades Nestes casos, a consistencia ACID não é respeitada simultaneamente Conjunto de Projetos denominado BASE
Map/reduce Permite a manipulação de enormes volumes de dados ao longo de nós de uma rede Fase map problemas são particionados em pequenos problemas distribuidos ao longo da rede Fase Reduce problemas sao resolvidos em cada nó filho e o resultado é passado para o pai até chegar a raiz do problema. MVCC Multiversion concurrency control Oferece suporte as transacoes paralelas Nao faz uso de locks para controle de concorrencia Transacoes de escrita e leitura sao feitas simultaneamente
Chave-valor BD Orientado a Documentos Orientado a colunas Orientado a grafos
Chave única e um indicador de determinado dado Este modelo é caracterizado pela sua facilidade ao ser implementado Permite que os dados sejam acessados rapidamente através da chave Aumenta também a disponibilidade do acesso aos dados Exemplo: Dynamo, utilizado pela Amazon
Armazena coleções e documentos Há um agrupamento de documentos onde cada um destes documentos tem-se um conjunto de campos É possivel que haja atualizacão no documento com a adiçao de novos campos. Exemplos: CouchDB, utiliza o formato JSON MongoDB utiliza C++
Maior complexidade que valor-chave Criado para processar uma grande quantidade de dados distribuídos em diversas máquinas Os dados sao indexados por uma tripla: colluna, linha e timestamp As colunas sao organizadas por familias de colunas Exemplo BigTable, utilizado pelo Google Cassandra, utilizado pelo Facebook
Este modelo possui tres componentes básicos Nós (vértices do grafo), relacionamentos(arestas) e as propriedades Eh visto como um multigrafo rotulado e direcionado Muito util para consultas demasiadamente complexas Possui bom desempenho Exemplo: Neo4J
Esquemas que podem escalar com altos volumes de transacoes migra os dados funcionais em diferentes servidores de banco de dados Isso requer que as restriçoes saiam da base e vão para as aplicacoes Erick Brewer criou a prerrogativa que: WS nao podem garantir todas as tres propriedades de uma vez Consistency Availability Partition Tolerance
Consistencia Cliente percebe que um conjunto de operaçoes ocorreu de uma só vez Availability Toda operacao deve terminar em uma resposta esperada Partition Tolerance Operacoes vao completar, mesmo se componentes individuais estejam indisponíveis Uma aplicacao Web pode suportar no maximo 2 destas propriedades
Basically available, Soft state, Eventually consistency Enquanto que ACID é pessimista e força uma consistencia no final de cada operaçao, BASE é otimista e aceita que o BD fique em um estado de consistencia frouxo. Isso permite que se obtenha niveis de escalabilidade não obtidos em ACID A disponibilidade de BASE é obtida suportando falhas parciais sem falhar o sistema todo
É um modelo para peocessar e gerar grandes conjuntos de dados Funçao MAP Processa o par key/value para gerar o conjunto de key/value intermediario Funcao REDUCE Juncao de todos os valores intermediários associados a mesma chave intermediária Hadoop É uma implementacao do MAP/Reduce open source