banco de dados em nuvens

Upload: lucas-vegi

Post on 08-Jul-2015

4.114 views

Category:

Documents


0 download

DESCRIPTION

Apresentação focada em listar possibilidades de pesquisa na área de banco de dados em nuvens.São abordados tópicos importantes, problemas em aberto, principais tecnologias existentes, principais pesquisadores, conferências e revistas da área.

TRANSCRIPT

Universidade Federal de Viosa Departamento de Informtica Mestrado em Cincia da Computao INF 600 - Tcnicas de Pesquisa em Cincia da Computao Seminrio de rea

Banco de Dados em Nuvens

Lucas Francisco da Matta Vegi 68654 Orientador: Jugurta Lisboa Filho

Contedo Programtico1. Introduo 1.1 Computao em Nuvem 1.2 Caractersticas Essenciais 1.3 Modelos de Servio 1.4 Modelos de Implantao

9. Fontes de financiamento de pesquisa

10. Referncias Bibliogrficas

8. Journals

Dvidas?

2. Gerenciamento de Dados em Nuvem 2.1 Vantagens para o usurio 2.2 Escalabilidade e Desempenho 2.3 Requisitos 2.4 Transaes 2.5 Tolerncia a Falhas e Distribuio de Dados 2.6 Modelos de Dados

7. Conferncias

6. Pesquisadores

5. Relao com a indstria e transferncia de tecnologia3. SGBDs em Nuvem 3.1 Dynamo 3.2 BigTable 3.3 Cassandra 3.4 Outros SGBDs

4. Caminhos para a rea nos prximos 10 anos2

2

1. Introduo>> 1.1 Computao em Nuvem

Computao em nuvem um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais congurveis (por exemplo, redes, servidores, armazenamento, aplicaes e servios) que podem ser rapidamente adquiridos e liberados com mnimo esforo gerencial ou interao com o provedor de servios (Mell and Grance, 2009)

3

1. Introduo>> 1.1 Computao em Nuvem

Infra-estrutura: Milhares de mquinas fsicas conectados em rede; Mquinas de baixo custo; Mesmas configuraes de software; Variaes nas capacidades de hardware;

Nmeros varivel de mquinas virtuais por mquinas fsica;

Fonte: (SOUZA, 2010)

4

1. Introduo>> 1.1 Computao em Nuvem

Evoluo/Juno dos conceitos: Utility Computing; Grid Computing;

Usurios no precisam fazer backups;

5

1. Introduo>> 1.2 Caractersticas Essenciais Self-service sob demanda: Adquirir recursos computacionais sem necessitar de interao humana;

Amplo acesso: Independe de plataforma

Pooling de recursos: Diferentes recursos dinamicamente atribudos sob demanda; Usurio desconhece localizao fsica do recurso alocado;

Elasticidade rpida: Recursos infinitos; Adquiridos a qualquer momento em qualquer quantidade;

Servio medido: Uso de recursos monitorado e controlado; Oferece transparncia para provedor e usurio;

6

1. Introduo>> 1.3 Modelos de Servio Software como um servio (SaaS): Acessados por dispositivos (Thin client) via Browser; Ex: Google Docs, DropBox...etc;

Plataforma como um servio (PaaS): Ambiente de desenvolvimento em nuvem (Linguagens de Programao, S.O, hospedagem); Ex: Google App Engine; Microsoft Azure...etc.

Infra-estrutura como servio (IaaS): Infra-estrutura computacional baseada em tcnicas de virtualizao de recursos de computao; Ex: Amazon Elastic Cloud Computing (EC2), Eucalyptus;Fonte: (SOUZA, 2010)

7

1. Introduo>> 1.4 Modelos de Implantao Se comportam como encapsulamento, controlando acesso e disponibilidade: Nuvem privada: utilizada exclusivamente por uma empresa; Nuvem pblica: disponibilizada para o pblico em geral; Nuvem Comunidade: organizaes com interesses em comum; Nuvem Hbrida: composta por duas ou mais nuvens de tipos diferentes conectadas entre si;

8

2. Gerenciamento de Dados em Nuvem >> 2.1 Vantagens para o usurio 1. Previsibilidade e custos mais baixo: QoS; Cargas de trabalho reais;

2. Complexidade tcnica reduzida: Delegao de Tunning; Administrao do banco terceirizada;

3. Elasticidade e Escalabilidade: Recursos infinitos;9

2. Gerenciamento de Dados em Nuvem >> 2.2 Escalabilidade e Desempenho Escalabilidade Vertical: melhora-se a capacidade do hardware;

Escalabilidade Horizontal: adiciona-se mais mquinas soluo atual;

(2) (1)Fonte: (FERREIRA, 2010)

(3)

10

2. Gerenciamento de Dados em Nuvem >> 2.2 Escalabilidade e Desempenho Replicao (Duplicao de Informao): Master-Slave: Cada escrita em banco resulta em N x escritas onde N o nmero de Slaves; Melhora somente a capacidade de leitura;

Multi-Master: Melhora capacidade de escrita;

Sharding (Diviso de Informao): Dividi os dados em mltiplas tabelas do banco; Escalar tanto as leituras como as escritas;

Fonte: (DIANA, 2010)

11

2. Gerenciamento de Dados em Nuvem >> 2.2 Escalabilidade e Desempenho Bancos de dados em nuvem utilizam as tcnicas para escalar automaticamente de forma transparente para os desenvolvedores; Escalar o banco de forma elstica (recursos infinitos) um problema de otimizao: Grande quantidade de usurios; Cargas de trabalho dinmica; Mltiplos sistemas de banco de dados; Grandes centros de dados;

Em relao ao desempenho, SGBDs em nuvem devem lidar com problemas e tempo de resposta. Hardwares heterogneos; Diviso inteligente da carga de trabalho; 12

2. Gerenciamento de Dados em Nuvem >> 2.3 Requisitos

Online Transaction Processing / Processamento de transaes em tempo-real EX: sistema de transaes bancrias que registra todas as operaes efetuadas em um banco

13

2. Gerenciamento de Dados em Nuvem >> 2.4 Transaes No trivial por ser um ambiente distribudo: Dados replicados; Fragmentados em locais geograficamente distantes;

Teorema CAP (Brewer's theorem, 2000) Consistency (Consistncia): Cada cliente tem sempre a mesma viso dos dados; Availability (Disponibilidade): todos os clientes podem sempre ler e escrever; Partition Tolerance (Tolerncia a parties): o sistema funciona de forma correta em vrias parties de rede fsica;14

2. Gerenciamento de Dados em Nuvem >> 2.4 Transaes ACID x BASE Atomicidade Basically Available Consistncia Soft state Isolamento Eventually consistent Durabilidade

Tipos de Consistncia Forte; Fraca; Eventual; Janela de Inconsistncia

15

2. Gerenciamento de Dados em Nuvem >> 2.5 Tolerncias a Falhas e Distribuio de Dados Infra-estrutura composta por hardware de baixo custo; Com certeza iro falhar em algum momento; Tcnicas que auxiliam na distribuio e replicao de dados tratam tais falhas: Aumento de disponibilidade; Melhor distribuio de carga;

Exemplo de tcnica: Distributed hash table: Pares (chave, valor)

16

2. Gerenciamento de Dados em Nuvem >> 2.6 Modelos de Dados

1. Bancos de Dados Chave-valor2. Bancos de Dados Orientados a Colunas

3. Bancos de Dados Orientados a Documentos4. Bancos de Dados de Grafos

17

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.1 Bancos de Dados Chave-valor

Entradas so armazenadas como pares (chave-valor) em Distributed hash table; No possui esquema; Chaves so arbitrrias; Valores so BLOBs (Binary Large OBject): Imagens, udio, vdeo...

No h relacionamentos explcitos; APIs de acesso simples: get(key); set(key, value);

18

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.2 Bancos de Dados Orientados a Colunas

Mais fcil recuperar todos os dados de um empregado especfico.

Ex: O Google recupera informaes e meta-informaes sobre vrios sites em uma nica consulta mais rapidamente, ao invs de recuperar toda informao sobre somente um nico site.

Mais fcil recuperar informaes como Todos os nomes de empregados.Fonte: (BERINGER, 2009)

19

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.3 Bancos de Dados Orientados a Documentos

Armazena os dados em colees de pares chave-valor Chaves so ObjectId Valores so Documentos: JSON (JavaScript Object Notation) ; XML; No possui esquema; Desnormalizado;

20

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.3 Bancos de Dados Orientados a Documentos

Exemplo com MongoDBname : Joo", address : { city : Viosa", state : MG" }

> u1 = {

}; > u2 = {name : Lucas", address : { city : Muria", state : MG" }

};> db.users.save(u1); > db.users.save(u2); > db.users.find( {address.state : MG"} ) .forEach( function(x){ print(tojson(x)); } ); {"name" : Jugurta" , address: {city : Viosa, state : MG } , "_id" : ObjectId("497cf60751712cf7758fbdbb")} {"name" : Lucas" , address: {City : Muria, state : MG } , "_id" : ObjectId("497cf61651712cf7758fbdbc")}

21

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.4 Bancos de Dados de Grafos

Armazenam vrtices e arestas: Vrtices = Entidades Arestas = Relacionamentos

Basicamente um banco de Dados Chave-Valor com Relacionamentos;

Fonte: (BERINGER, 2009)

22

2. Gerenciamento de Dados em Nuvem>> 2.6 Modelos de Dados >> 2.6.4 Bancos de Dados de Grafos

Exemplo com InfoGrid://Usando InfoGrid MeshObject customer = createMeshObject(); // create first node, called MeshObject in InfoGrid MeshObject order = createMeshObject(); // create second node customer.relate( order ); //Usando Java //Usando Java class Customer { ... Customer customer = new Customer(); private List ordersOfThisCustomer = new ArrayList(); Order order = new Order(); } customer.addOrder( order ); class Order { ... order.setCustomer( customer ) private Customer customerPlacingThisOrder; } //Usando InfoGrid customer.traverseToNeighbors().getSingleMember(); // returns the single Order object order.traverseToNeighbors().getSingleMember(); // returns the single Customer object customer.unrelate( order ); // now we delete the edge

customer.traverseToNeighbors().getSingleMember(); // returns null order.traverseToNeighbors().getSingleMember(); // returns null //Usando Java customer.removeOrder( order ); order.setCustomer( null )

23

3. SGBDs em Nuvens >> 3.1 Dynamo um banco de dados chave-valor; Valores so BLOBs de at 5GB;

Garante escalabilidade e disponibilidade: Consistncia eventual

Garantias:

Atomicidade e Isolamento: No suporta operaes sobremltiplos objetos; Durabilidade: Escrita Replicada;

24

3. SGBDs em Nuvens >> 3.2 BigTable um banco de dados orientado a colunas; Possui consistncia forte! No da suporte a realizao de Joins entre tabelas; Tem garantia fraca a atomicidade; Tabelas tridimensionais;

25

3. SGBDs em Nuvens >> 3.3 CassandraBigTable Dynamo

Fonte: (Evans, 2010)

26

3. SGBDs em Nuvens >> 3.4 Outros SGBDs Relational Cloud (MIT) Amazon Relational Database Services PNUTS (Yahoo!) Microsoft SQL Azure

CouchDB (Apache) SimpleDB (Amazon) Voldemort (LinkedIN) Hbase (Apache)

....27

4. Caminhos para a rea nos prximos 10 anos Padronizao de uma linguagem de consulta robusta que tenha caractersticas dos sistemas tradicionais; Buscar alternativas para integrao de tcnicas de criptografia com SGBDs em nuvem que diminuam a latncia das consultas;

Lidar de maneira mais balanceada com o Teorema CAP oferecendo simultaneamente: Alta escalabilidade; Alta disponibilidade; Alta consistncia;

28

5. Relao com a indstria e transferncia de tecnologia A maior parte das pesquisas de SGBDs em nuvem partem da prpria indstria.

Empresas envolvidas: Microsoft Google Amazon Yahoo! Facebook LinkedIN Twitter Apache Rackspace Hosting

29

6. Pesquisadores

Brian Frank Cooper (PNUTS) Atualmente engenheiro de software Google Foi principal cientista do Yahoo! Research 62 Publicaes e 242 citaes (fonte: Portal ACM)

Raghu Ramakrishnan (PNUTS) Um dos principais pesquisadores do Yahoo! Research Foi professor de Cincias da Computao da Universidade de Wisconsin-Madison 169 Publicaes e 3603 citaes (fonte: Portal ACM)

Fay Chang (BigTable) Engenheiro do Google 12 Publicaes e 317 citaes (fonte: Portal ACM)

30

6. PesquisadoresDaniel J Abadi (Column-Oriented DB) Assistant Professor of Computer Science in Yale University 21 Publicaes e 510 citaes (fonte: Portal ACM)

Amr El El Abbadi Professor of Computer Science at the University of California at Santa Barbara Research interests are in the fields of fault-tolerant distributed systems and databases 219 Publicaes e 1261 citaes (fonte: Portal ACM)

Divyakant Agrawal Professor of Computer Science at the University of California at Santa Barbara His research expertise is in the areas of database systems, distributed computing, data warehousing, and large-scale information systems 222 Publicaes e 1444 citaes (fonte: Portal ACM) 31

7. Conferncias Simpsio Brasileiro de Banco de Dados (SBBD) Qualis: B3

ACM Symposium on Cloud Computing (SOCC) ACM SOCC ser realizado em conjunto com as Conferncias ACM SIGMOD e ACM SOSP, em anos alternados. Iniciou com o ACM SIGMOD em 2010. (10 e 11 de Junho de 2010)

IEEE International Conference on Data Engineering (ICDE) Qualis: A2

ACM International Conference on Management of Data (SIGMOD) Qualis: A1

32

8. Journals ACM Transactions on Database Systems Qualis: A1 ISSN: 0362-5915

International Journal of Cloud Computing (IJCC) ISSN: 2043-9997 (online) ISSN: 2043-9989 (print)

Journal of Database Management Qualis: B2 ISSN: 1063-8016 (printed) ISSN: 1533-8010 (electronic)

IEEE Transactions on Knowledge and Data Engineering Qualis: A1 ISSN: 1041-4347

IEEE Bulletin of the Technical Committee on Data Engineering Publicao trimestral Desde 1977

Distributed and Parallel Databases Qualis: B1 ISSN: 0926-8782 (print version) ISSN: 1573-7578 (electronic version)

JOURNAL OF INFORMATION AND DATA MANAGEMENT (JIDM) ISSN: 2178-7107 3 vezes por ano Publicao oficial da SBC com foco em Banco de Dados

33

9. Fontes de financiamento de pesquisa Empresas privadas (Ex: Google, Amazon, Microsoft, Facebook, Linkedin...etc) CAPES (Coordenao de Aperfeioamento de Pessoal de Nvel Superior) CNPq (Conselho Nacional de Desenvolvimento Cientfico e Tecnolgico) FAPEMIG (Fundao de Amparo Pesquisa do Estado de Minas Gerais)

34

10. Referncias Bibliogrficas SOUZA, F. R. C; MOREIRA, L. O; MACDO, J. A. F; MACHADO; J. C. (2010). Gerenciamento de Dados em Nuvem: Conceitos, Sistemas e Desafios. Disponvel em: . Acessado em 30 out. 2010. SOUZA, F. R. C.; MOREIRA, L. O; MACHADO, J. C. (2010). Computao em Nuvem: Conceitos, Tecnologias, Aplicaes e Desafios. Disponvel em: . Acessado em 30 out. 2010. Abadi, D. J. (2009). Data management in the cloud: Limitations and opportunities. IEEE Data Eng. Bull., 32:3-12 Aboulnaga, A., Salem, K., Soror, A. A., Minhas, U. F., Kokosielis, P.,and Kamath, S. (2009). Deploying database appliances in the cloud. IEEE Data Eng. Bull., 32(1):13-20 Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D. A., Burrows, M., Chandra, T., Fikes, A., and Gruber, R. E. (2006). Bigtable: a distributed storage system for structured data. In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7 (Seattle, WA, November 06 - 08, 2006). Operating Systems Design and Implementation. USENIX Association, Berkeley, CA, 15-15. Evans, E. (2010). Cassandra Explained. Disponvel em: . Acessado em: 30 out. 2010. Mell, P. and Grance, T. (2009). Draft NIST Working Definition of Cloud Computing. National Institute of Standards and Technology. http://csrc.nist.gov/groups/SNS/cloud-computing. FERREIA, E. (2010). Introduo ao NoSQL parte I. Disponvel em: . Acessado em 30 out. 2010.

35

10. Referncias Bibliogrficas DIANA, M. (2010). Introduo aos Bancos de Dados No-Relacionais. Disponvel em: . Acessado em 30 out. 2010. BERINGER, F. (2009). Musings on NoSQL. Disponvel em: . Acessado em 30 out. 2010.

36

Dvidas

37