xxx no sequel

Download xxx no sequel

Post on 22-Nov-2014

182 views

Category:

Business

0 download

Embed Size (px)

DESCRIPTION

oijsaoda suhdao

TRANSCRIPT

  • 1. DCC- Faculdade de Cincias da Universidade do Porto SQL e NoSQL Escalabilidade em Data Stores Rui Costa Teresa Costa 060316042 050316021
  • 2. Contedo 1. Introduo ..................................................................................................................... 2 2. Diferentes Tipos de Base de Dados ............................................................................... 2 2.1 Bases de Dados SQL e NoSQL .................................................................................... 2 2.2 Teorema de CAP ........................................................................................................ 3 2.2.1 Consistncia........................................................................................................... 3 2.2.2 Disponibilidade ...................................................................................................... 4 2.2.3 Tolerncia a Falhas ................................................................................................ 4 2.3 Terminologia ............................................................................................................. 4 3. Categorias das Data Stores............................................................................................ 5 3.1 Key-Value Stores ........................................................................................................... 5 3.1.1 Projecto Voldemort ...................................................................................................... 5 3.1.2 Memcached, Membrain e Membase ........................................................................... 6 3.1.3 Yahoo Sherpa ............................................................................................................... 6 3.2 Document Store ............................................................................................................ 6 3.2.1 SimpleDB ...................................................................................................................... 7 3.2.2 MongoDB...................................................................................................................... 7 3.3 Extensible Data Records ............................................................................................... 8 3.3.1 HBase............................................................................................................................ 9 3.3.2 Cassandra ..................................................................................................................... 9 3.4 Sistemas Relacionais Escalveis .................................................................................. 10 3.4.1 MySQL Cluster ............................................................................................................ 10 3.4.2 ScaleBase .................................................................................................................... 10 4. Anlise dos Sistemas ................................................................................................... 11 4.1 Comparao entre Sistemas.................................................................................... 11 4.2 SQL vs. NoSQL Conflito de Opinies ..................................................................... 12 4.3 Benchmaking ........................................................................................................... 12 5. Concluso .................................................................................................................... 15 6. Bibliografia .................................................................................................................. 17 Page 1
  • 3. 1. Introduo Com advento da Web 2.0 surgiram aplicaes que necessitam de sistemas que consigam lidar com milhares de utilizadores e escalar milhes de updates e leituras a base de dados. Este volume de operaes contrasta com o design das bases de dados e data warehouses tradicionais. Para responder a esta necessidade necessrio desenvolver novos sistemas e mecanismos que consigam escalar estas aplicaes por diversos servidores. Nos ltimos anos verificou-se o desenvolvimento de novos sistemas, desenhados para proporcionar uma boa escalabilidade horizontal, permitindo operaes de leitura/escrita distribudas pelos diversos servidores. Estes novos sistemas vm contrastar com as bases de dados tradicionais que tm pouca ou nenhuma capacidade para essa escalabilidade horizontal. Nesta monografia apresentamos e comparamos alguns desses novos sistemas de bases de dados distribudas. 2. Diferentes Tipos de Base de Dados 2.1 Bases de Dados SQL e NoSQL Os novos sistemas so designados de NoSQL data stores. Esta definio tanto diz respeito a Not Only SQL como a Not Relational. Como tal, vamos fixar algumas caractersticas referentes aos sistemas NoSQL que vamos referir neste trabalho. (1) 1. Capacidade de escalar horizontalmente operaes simples pelos diversos servidores; 2. Capacidade de replicar e distribuir informao por diversos servidores; 3. Interface de call level simples, contrastando com o SQL binding; 4. Um modelo de concorrncia mais fraco que o modelo ACID; 5. Uso eficiente para ndices distribudos e RAM para o armazenamento de informao; 6. Capacidade de adicionar dinamicamente novos atributos aos registos de dados. A principal key feature destes sistemas a escalabilidade horizontal baseada no shared nothing, replicando e particionando os dados pelos servidores. Esta ideologia permite suportar um grande volume de operaes simples de leitura/escrita, por segundo. Para a implementao destes sistemas, a ideia desistir das restries do ACID de forma a obter maior performance e escalabilidade. Contudo, os sistemas que vamos apresentar, variam na forma em que desistem dessas restries. Por exemplo, a maior parte dos sistemas denominam-se de eventualmente consistentes. Page 2
  • 4. 2.2 Teorema de CAP O teorema de CAP (2), tambm conhecido como Teorema de Brewer afirma que impossvel, num sistema de computao distribuda, ter simultaneamente as seguintes propriedades: Consistncia Disponibilidade; Tolerncia a falhas. Estes trs requisitos influenciam o desenho e instalao de sistemas de base de dados distribudas. Deste teorema e de uma profunda anlise resultou uma revoluo da arquitectura dos sistemas distribudos de dados em grande escala. ento importante definir o que so cada uma destas propriedades. Reconhecer quais dos requisitos do teorema de CAP so importantes para o nosso sistema o primeiro passo para construir com sucesso um sistema distribudo, escalvel e com alta disponibilidade. Figura 1 - Diagrama representativo da interligao das propriedades do Teorema de CAP e as diversas data stores. 2.2.1 Consistncia a caracterstica que descreve como e se o estado de um sistema fica consistente aps uma operao. Num sistema distribudo de dados significa que uma vez escrito um registo, este fica imediatamente disponvel e pronto para ser utilizado. Uma base de dados distribuda consistncia classificada como fortemente consistente ou como tendo fraca consistncia. Os sistemas com uma forte consistncia, implementam as caractersticas ACID (Atomicidade, Consistncia, Isolamento e Durabilidade), sendo estas implementadas na maior parte das bases de dados relacionais. Na outra extremidade, de fraca consistncia, temos as bases de dados BASE (Basic Availability, Soft-State, Eventual Consistency). A consistncia fraca fornecida de forma de consistncia eventual. Isto significa que a base de dados pode atingir um estado consistente. Nestas incluem-se, normalmente, as bases de dados em que os dados so replicados. Aqui apenas existe a garantia que a verso mais Page 3
  • 5. recente de um registo est consistente num n, sendo que as verses mais antigas deste registo podem ainda existir noutros ns, mas eventualmente todos os ns iro ter a ltima verso. 2.2.2 Disponibilidade Esta caracterstica refere-se concepo e implementao de um sistema de modo a que seja assegurado que este permanece activo durante um determinado perodo de tempo. Ou seja, significa que o sistema tolerante a falhas de software e/ou hardware e que se encontra igualmente disponvel durante a actualizao destes. Disponibilidade no apenas um proteco contra falhas, mas tambm uma forma de obter um balanceamento de carga e operaes concorrentes, nomeadamente para operaes de leitura. Uma das formas mais comuns de fazer a implementao desta caracterstica numa base de dados relacional recorrendo replicao master-master. Desta forma, a falha ou actualizao de um n no implica a indisponibilidade do sistema. 2.2.3 Tolerncia a Falhas Esta caracterstica refere-se capacidade de um sistema continuar a operar na presena de uma falha de rede. 2.3 Terminologia Antes de descrevermos os diversos sistemas necessrio clarificar alguns termos que sero utilizados neste trabalho (1). Por operaes simples entendemos key lookups, leitura ou escrita de um registo ou de uma pequena quantidade de registos. Tendo em conta o estado actual das aplicaes, onde milhes de utilizadores lem e escrevem informao, a escalabilidade destas pequenas operaes tornou-se muito importante. J foi referido anteriormente o termo escalabilidade horizontal. Este termo refere-se capacidade de distribuir a informao e