Um Repositório Chave-Valor com Garantia de Localidade de Dados. Patrick A. Bungama Wendel M. de Oliveira Flávio R. C. Sousa Carmem S.

Documentos relacionados
Curso: Redes de Computadores

Programação de Sistemas Distribuídos e Concorrência

Uma Proposta para Migração de Páginas Linux

11/8/2010. Tópicos. Organização e Indexação de Dados em Memória Secundária

3 Plano de Execução de Consultas

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Sistemas Distribuídos

Introdução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)

Sistemas Distribuídos Capítulo 2 - Aula 2

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Curso de Sistemas Distribuídos

Bruno Antunes da Silva UFSCar - Sorocaba

Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambientes de Computação em Nuvem baseados em Containers

Caracterização de Sistemas Distribuídos

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Arquitetura de sistemas distribuídos

Sistema de Informação Geográfica

Requisitos de Ambiente para Central SAVER OmniLink

características compartilhamento de recursos sem necessidade de um elemento centralizador ciclos de CPU, armazenamento, banda...

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas Distribuídos

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

DDL). O resultado da compilação dos parâmetros DDLs é

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Sistemas Distribuídos Capítulo 5 - Aula 8

o que é p2p? sistemas onde todos os nós são equivalentes em funcionalidade e no papel desempenhado ...

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Teste como Serviço (TaaS) na Computação em Nuvem

Utilizando linguagens de programação orientadas a objetos para codificar programas adaptativos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Organização de Arquivos

MATA60 BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados. Prof. Daniela Barreiro Claro

Um Protótipo de Servidor Multimídia com Mecanismos de QoS

Programação Paralela OO. projeto ProActive www-sop.inria.fr/oasis/proactive/home.html

SGBD. Definição. Funções básicas


Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Sistemas Operacionais. Adão de Melo Neto

Memória. Memória Cache

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

SISTEMAS DISTRIBUÍDOS

Modelos de Dados Temporais

GT-ATER: Aceleração do Transporte de Dados com o Emprego de Redes de Circuitos Dinâmicos. RA2 - Relatório de acompanhamento trimestral

Sistemas Operacionais: O quê? Por quê? Quando?

Sistemas de Bancos de Dados Distribuídos

Sistemas de Bancos de Dados Distribuídos

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Capítulo 11 Sistemas de Arquivos

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

Sistemas de arquivos

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

Implementação de sistema de arquivos

SISTEMAS DISTRIBUÍDOS

Introdução. O que é um Banco de Dados (BD)?

Sistemas Multiprogramáveis/Multitarefa

Gerenciamento de memória

Introdução a Sistemas Operacionais. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto

A NOVA EXPERIÊNCIA ANALÍTICA

Copyright , Bacula Systems S.A. All rights reserved. Copyright , Bacula Systems S.A. All rights reserved.

Sistemas Operacionais Aula 3

LIC. Organização e Estrutura Básica Computacional. Prof. Marcelo Costa Oliveira 2006, Marcelo Costa oliveira

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Resolução dos exercícios da lista BD01

MODELAGEM DE DADOS UNIDADE 1 Visão Geral. Luiz Leão

Sistemas de Gerência de Bancos de Dados. 7 - Outras Arquiteturas para SGBDs SGBDs Paralelos

DISCO MAGNÉTICO Cabeçote Trilha

UNIVERSIDADE ESTADUAL DO PARÁ UEPA LISTA DE EXERCÍCIOS DE INTRODUÇÃO A COMPUTAÇÃO. 2. O que diferencia os computadores de 1ª geração dos da 2ª.

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Uma conversa que não pára: o Pinguim, o Morcego e o Elefante

Estrutura do Sistema Operacional

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA

Modelo de Von Neumann: conceito do programa armazenado

Grupo de Usuários Java do Noroeste Paulista. Introdução à tecnologia Java

UNIVERSIDADE FEDERAL DO CEARÁ CAMPUS QUIXADÁ TECNÓLOGO EM REDES DE COMPUTADORES REJANE VASCONCELOS LOPES

Introdução aos Sistemas Operacionais. Subsistema de Arquivos

Administração Sistemas Operacionais de Rede

Definindo melhor alguns conceitos

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

Avaliação de Desempenho

Livro texto: Capítulo 1

Unidade 1 Introdução

Sumário. 1 Caracterização de Sistemas Distribuídos 1. 2 Modelos de Sistema Redes de Computadores e Interligação em Rede 81

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

Marilda Ferrari Mendes Giafarov Sidinei Donisete Marin

Gerência da Memória. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Linked Data Management. Capítulo 9: Experiences with Virtuoso Cluster RDF Column Store

Definição e Melhoria de Processo na Produção de Software Web

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

Transcrição:

Um Repositório Chave-Valor com Garantia de Localidade de Dados Patrick A. Bungama Wendel M. de Oliveira Flávio R. C. Sousa Carmem S. Hara

Agenda Motivação Desafios ALOCS Princípios de funcionamento Experimentos Conclusão

Motivação Produção de grandes volumes de dados Soluções tradicionais limitadas Soluções atuais Escalabilidade, Replicação Arquitetura estratificada Integração de módulo de armazenamento escalável Características de soluções escaláveis Interface simples, escalabilidade horizontal, índices distribuídos e ajuste dinâmico de distribuição de carga

Abordagens de armazenamento distribuído Distributed Hash Table (DHT) Ótima escalabilidade Hash function Sistema de Arquivos Distribuído Arquivo Localização baseada em metadados Gargalo potencial Especificação de servidor onde armazenar dados

Características desejáveis de um backend de armazenamento distribuído para SGBDs Controle de localidade de dados Aproximação de dados de suas aplicações Abordagem Interface simples Armazenamento baseado em SAD

Desafios Modelo de dados e metadados, Sistema de gerenciamento de metadados e Sistema de arquivo distribuído

Modelo de dados Chave-Valor: Operações simples Armazenamento de grandes quantidades de dados Empacotamento de diversos tipos de dados Eficiente, flexível e escalável

Sistema de arquivos distribuídos Características: Transparência, Tolerância a falha, Escalabilidade, Replicação de arquivos, Controle de concorrência Arquiteturas: Cliente-Servidor, centralizada (NFS) Cluster, servidor mestre (GFS) Simétrica, descentralizada (P2P) Assimétrica, gerenciadores de metadados dedicados (Lustre) Paralela, blocos de dados (PVFS)

Metadados Informações de localidade de dados Gerenciamento de metadados Distribuído Sistema de gerenciamento de metadados

Alocs Repositório chave-valor Controle de localidade de dados Interface simples Metadados Backend de armazenamento de SGBDs

ALOCS - Modelo de dados Modelo de armazenamento: SAD Diretório Diretório Diretório Diretório Bucket Bucket Bucket Bucket Bucket Bucket Bucket Bucket Servidor 1 Localidade: servidor/diretório/bucket Metadado: servidorx/diretorioy/bucketz Cada bucket é armazenado com o intervalo de chaves Servidor 2

ALOCS - Exemplo de armazenamento de uma base relacional Modelo de armazenamento Clientes Codigo Nome DataNascimento 1 Joao 1/6/1975 2 Amra 10/7/2015 3 Zahia 2/05/2016 4 Marlos 18/6/1985 5 Marcio 27/12/1998 6 Luciane 26/02/1988 7...... Diretório

ALOCS - Exemplo de armazenamento de uma base relacional Modelo de armazenamento Clientes Codigo Nome DataNascimento 1 Joao 1/6/1975 2 Amra 10/7/2015 3 Zahia 2/05/2016 4 Marlos 18/6/1985 5 Marcio 27/12/1998 6 Luciane 26/02/1988 7...... Bucket

ALOCS - Exemplo de armazenamento de uma base relacional Modelo de armazenamento Clientes Codigo Nome DataNascimento 1 Joao 1/6/1975 2 Amra 10/7/2015 3 Zahia 2/05/2016 4 Marlos 18/6/1985 5 Marcio 27/12/1998 6 Luciane 26/02/1988 7...... Chave-Valor

ALOCS - Arquitetura Arquitetura: assimétrica Controle getpath(k) s/d/b Metadados Controle get(s/d/b/k) put(s/d/b/k,v) Armazenamento dados Meta dados Armazenamento dados Servidor de Dados e Metadados s/d/b Metadados get(s/d/b/k) put(s/d/b/k,v)... getpath(k) Meta dados Servidor de Dados e Metadados SAD dados dados Armazenamento Armazenamento Servidor de Dados Servidor de Dados dados... Armazenamento Servidor de Dados

ALOCS - Arquitetura Componentes: Controle getpath(k) s/d/b Metadados Controle get(s/d/b/k) put(s/d/b/k,v) Armazenamento dados Meta dados Armazenamento dados Servidor de Dados e Metadados s/d/b Metadados get(s/d/b/k) put(s/d/b/k,v)... getpath(k) Meta dados Servidor de Dados e Metadados SAD dados dados Armazenamento Armazenamento Servidor de Dados Servidor de Dados dados... Armazenamento Servidor de Dados

ALOCS - Arquitetura Tipos de servidores Controle getpath(k) s/d/b Metadados Controle get(s/d/b/k) put(s/d/b/k,v) Armazenamento dados Meta dados Armazenamento dados Servidor de Dados e Metadados s/d/b Metadados get(s/d/b/k) put(s/d/b/k,v)... getpath(k) Meta dados Servidor de Dados e Metadados SAD dados dados Armazenamento Armazenamento Servidor de Dados Servidor de Dados dados... Armazenamento Servidor de Dados

ALOCS - armazenamento Interface entre o módulo de controle e o SAD Mapeamento entre os modelos (Solução e armazenamento físico) Gerenciamento do cache Na leitura de dados

ALOCS - armazenamento Sistema de arquivo distribuído Ceph Librados Mapeamento Pool-> Servidor PG-> Diretório Object-> Bucket

ALOCS - metadados Gerenciamento de metadados Zookeeper Informações de localidades de buckets Coletadas durante a inserção de dados Java Zookeeper API Componentes: Estrutura física Estrutura de Busca

ALOCS - metadados Estrutura de Física: Mapeamento físico de todos dispositivos de armazenamento Dados associados aos znodes (Servidor(ip) / Diretório(Descrição) / Bucket(Intervalo))

ALOCS - metadados Estrutura de Busca: Estrutura de indexação (busca de chaves, baseada na árvore de intervalo)

ALOCS - controle Receber as requisições das aplicações Fazer a interface com os demais módulos Interface com o módulo de metadados Java Native Interface (JNI) Armazenamento Metadados

Princípios de funcionamento Configuração dos clusters Dados e metadados Inicialização dos Servidores, Diretórios e Buckets

Inserção de dados

Inserção de dados 4

Inserção de dados 4

Inserção de dados 4

Inserção de dados 4

Inserção de dados 4

Consulta de dados

Consulta de dados

Consulta de dados

Consulta de dados

Consulta de dados

Experimentos Ambiente 5 máquinas virtuais Debian 7.0.0, com 30GB de disco e 2GB de memória RAM. Clusters: Armazenamento de dados (2 servidores), Gerenciamento de metadados (3 servidores). Cada servidor com um único diretório, com buckets de 100 pares chave-valor. Objetivo principal Avaliar o custo acarretado pelo controle de localidade.

Experimentos 1. Custo da gravação de metadados Pior tempo: Sequencial (50 op.) 4650 ms (93 ms), altura da árvore = 50 Melhor tempo: Aleatória sem replicação, 349 ms (7 ms),altura da árvore = 6

Experimentos 2. Custo da leitura dos metadados Pior tempo : Buckets sequenciais (611 ms), altura da árvore busca Melhor tempo: sem metadados (163 ms)

Experimentos 3. Coalocação de dados Pior tempo: 0% de coalocação (996 ms) (100 operações), várias requisições Melhor tempo: 100% de coalocação(367 ms), apenas uma leitura em nó remoto (cache)

Experimentos 4. Escalabilidade de metadados Melhor tempo : 1 servidor (18ms)(10 op.), Sem replicação Pior tempo: 5 servidores (28 ms), Custo da replicação

Conclusão ALOCS Repositório chave-valor com controle de localidade de dados Experimentos Custo de controle de localidade Coalocação de dados Soluções de armazenamento distribuído atuais Pouco ou nenhum controle sobre a alocação Distribuição uniforme dos dados ou ordenação lexicográfica Trabalhos futuros Replicação de dados Otimização da árvore de busca no módulo de metadados Usar outros SADs para o armazenamento (PVFS)

Obrigado! Groupe de Pesquisa GDAI https://github.com/gdaiufpr/alocs-ceph