Analisando o Desempenho de Banco de Dados Multi-Inquilino em Nuvem



Documentos relacionados
SLADB: Acordo de Nível de Serviço para Banco de Dados em Nuvem

Automatic virtual machine configuration for database workloads (SIGMOD Journal)

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

4 Implementação e Resultados Experimentais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Panorama de Aplicações de Alto Desempenho em Nuvem

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

Segurança da Informação

O que é Cloud Computing?

Agenda CLOUD COMPUTING I

CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines

Virtualização de Sistemas Operacionais

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

Arquiteturas Paralelas e Distribuídas

CloudSimDB: Um Simulador para o Provisionamento de Máquinas Virtuais para o Processamento de Aplicações Centradas em Banco de Dados *

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

Avaliação de dependabilidade em infraestruturas Eucalyptus geograficamente distribuídas

Arquitetura e Sistema de Monitoramento para

Prof. Marcelo Machado Cunha

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

SISTEMAS DISTRIBUÍDOS

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Serviços em Nuvem: Oportunidade para Operadoras Parte III

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Cloud Computing. Eduardo Roloff

Alexandre Malveira, Wolflan Camilo

Análise de custo projetado da plataforma SAP HANA

Núvem Pública, Privada ou Híbrida, qual adotar?

GARANTIA DA QUALIDADE DE SOFTWARE

Senado Federal Questões 2012

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

UMA PROPOSTA PARA COMPARAÇÃO DE PROVEDORES DE COMPUTAÇÃO EM NUVEM DESDE UMA PERSPECTIVA DE INTEGRAÇÃO DE APLICAÇÕES 1

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Conceitos de Banco de Dados

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Relatório de Progresso

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa

CLOUD. tendências CLOUD. entendendo e contratando assertivamente. Agosto/2012 INFORMATIVO TECNOLÓGICO DA PRODESP EDIÇÃO 02

Orientação a Objetos

Uma aplicacação de privacidade no gerenciamento de identidades em nuvem com uapprove

Gerenciamento e Interoperabilidade de Redes

Classificação::Modelo de implantação

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS

Cloud Computing. Andrêza Leite.

Análise do impacto de operações de live migration em ambientes de computação em nuvem Workshop MoDCS

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Sistemas Operacionais

Professor Esp.: Douglas Diego de Paiva

Sistemas Distribuídos

EUCALYPTUS: UMA PLATAFORMA CLOUD COMPUTING PARA

Alex D. Camargo, Érico M. H. Amaral, Leonardo B. Pinho

Proposta de Avaliação de Empresas para o uso do SAAS

Segurança e Computação em Nuvem

Cloud Computing. Edy Hayashida

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Um Modelo de Virtualização em Grades Computacionais para Inserção de Recursos Ociosos

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

Soluções IBM SmartCloud IBM Corporation

ADM041 / EPR806 Sistemas de Informação

XIII Encontro de Iniciação Científica IX Mostra de Pós-graduação 06 a 11 de outubro de 2008 BIODIVERSIDADE TECNOLOGIA DESENVOLVIMENTO

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Planejamento Estratégico de TI. Felipe Pontes

Arquitetura de Banco de Dados

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Envelhecimento de software na plataforma de computação em nuvem OpenStack

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

gerenciando o desempenho de serviços em uma empresa conectada na nuvem CA Business Service Insight Julho de 2011

LINGUAGEM DE BANCO DE DADOS

Persistência e Banco de Dados em Jogos Digitais

Projeto Você pede, eu registro.

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

Xen Cloud Platform Xen descomplicado

Influência do Encaminhamento de Mensagens na Topologia de Redes Sociais

Material de Apoio. Sistema de Informação Gerencial (SIG)

TRIBUTAÇÃO NA NUVEM. Tax Friday 21 de outubro de 2011 AMCHAM - RJ

CLOUD COMPUTING. Andrêza Leite.

Wilson Moraes Góes. Novatec

Gerenciamento de Níveis de Serviço

Levantamento sobre Computação em Nuvens

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Transcrição:

Simpósio Brasileiro de Bancos de Dados - SBBD 212 Analisando o Desempenho de Banco de Dados Multi-Inquilino em Nuvem Leonardo O. Moreira, Flávio R. C. Sousa e Javam C. Machado Universidade Federal do Ceará - Brasil {leoomoreira,sousa,javam}@ufc.br Abstract. Computação em nuvem é uma tendência de tecnologia com o objetivo de proporcionar serviços sob demanda de pagamento baseado no uso. Para melhorar a utilização dos recursos, os provedores implementam técnicas multi-inquilino para sistemas de banco de dados. Existem muitos modelos multi-inquilino, cada um com diferentes níveis de isolamento e desempenho. Entretanto, estes modelos não têm sido avaliados sob a perspectiva de desempenho. Este artigo apresenta uma análise de experimentos para medir a variação de desempenho de sistemas de banco de dados multi-inquilino em nuvem. Foram utilizados diferentes bancos de dados para representar um ambiente real. Os resultados mostram que o sistema de banco de dados inuencia diretamente no isolamento entre inquilinos e no tempo de resposta das consultas. Por m, o trabalho fornece alguns direcionamentos para utilização de banco dados multi-inquilinos em nuvem. Categories and Subject Descriptors: H.Information Systems [H.m. Miscellaneous]: Databases Keywords: Banco de Dados, Desempenho, Multi-inquilino 1. INTRODUÇÃO Computação em nuvem é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação (TI) sob demanda com pagamento baseado no uso [Agrawal et al. 21]. Ambientes em nuvem são baseados em técnicas de virtualização para melhorar a utilização dos recursos. Neste ambiente, cada máquina física comporta um número variável de máquinas virtuais (VM), de acordo com a capacidade de hardware disponível na máquina física. Sistemas de gerenciamento de banco de dados (SGBDs) são candidatos potenciais para a implantação em nuvem. Isso ocorre porque, em geral, as instalações destes sistemas são complexas e envolvem grande quantidade de dados, ocasionando custo elevado, tanto em hardware quanto em software [Elmore et al. 211]. Na nuvem, o usuário do serviço tem algumas garantias, tais como: desempenho e disponibilidade. Essas garantias de qualidade do serviço (QoS) são denidas entre o provedor do serviço e o usuário, e expressas por meio de acordo de nível de serviço (SLA) [Sousa et al. 21]. Este acordo consiste de contratos que especicam um nível de qualidade que deve ser atendido, e penalidades em caso de falha. Muitas empresas dependem de SLA, por exemplo, para exibir uma página web dentro de um determinado intervalo de tempo. Essas empresas esperam que os provedores de nuvem forneçam garantias de qualidade utilizando SLAs com base em características de desempenho. Contudo, em geral, os provedores baseiam seus SLAs apenas na disponibilidade dos serviços oferecidos, ao passo que os serviços em nuvem apresentam uma variabilidade de desempenho bastante elevada. Portanto, é essencial que os provedores ofereçam SLAs baseados em desempenho para os usuários [Sousa et al. 212]. Para melhorar o gerenciamento dos recursos e reduzir custos, os provedores implementam o compartilhamento de recursos entre inquilinos [Barker et al. 212]. O conceito de multi-inquilino é uma 161

Simpósio Brasileiro de Bancos de Dados - SBBD 212 técnica para consolidar aplicações de diversos inquilinos em um único sistema. Esta técnica é frequentemente utilizada para eliminar a necessidade de sistemas separados para cada inquilino. Por exemplo, um inquilino pode ser um usuário utilizando uma aplicação que acessa um SGBD ou um SGBD instalado em uma infraestrutura. SGBDs multi-inquilino têm sido utilizados para hospedar diversos inquilinos (bancos de dados) dentro de um único sistema, permitindo o compartilhamento ecaz de recursos em diferentes níveis de abstração e isolamento [Elmore et al. 211]. De acordo com [Chaudhuri 212], um desao interessante é desenvolver técnicas para garantir o desempenho de SGBDs multi-inquilino. Por outro lado, antes de elaborar novas técnicas, é necessário compreender como a carga de trabalho de um inquilino inuencia os demais e ainda o isolamento proporcionado por um SGBD para evitar a interferência entre os inquilinos. Este problema é abordado em alguns trabalhos [Elmore et al. 211] [Ahmad and Bowman 211] [Xiong et al. 211] [Lang et al. 212] [Hatem A. Mahmoud and El-Abbadi 212]. Contudo, os trabalhos não tratam aspectos de desempenho, pois são orientados a recursos (o foco é consolidar a maior quantidade de inquilinos no mesmo hardware ou VM) e/ou não vericam o isolamento de cada SGBD. Este artigo mostra uma análise de um conjunto de experimentos para medir a variação do desempenho de sistemas de banco de dados multi-inquilino em nuvem. Para tanto, foram utilizados diferentes bancos de dados para representar um ambiente real. De acordo com nosso estudo, este é o primeiro trabalho que analisa detalhadamente a interferência entre inquilinos e sua relação com o desempenho. Os resultados do estudo permitem compreender e conceber novas técnicas para tratar a questão de desempenho de SGBDs multi-inquilino. O trabalho está organizado da seguinte forma. A seção 2 apresenta, resumidamente, os conceitos básicos relacionados ao estudo. Na seção 3, são apresentadas a metodologia e o ambiente utilizado. A seção 4 apresenta os experimentos e os resultados. A seção 5 comenta sobre e discute os trabalhos relacionados; e, nalmente, a seção 6 contém as conclusões. 2. MODELOS MULTI-INQUILINO PARA BANCOS DE DADOS O termo multi-inquilino é uma estratégia utilizada para compartilhar recursos. Um inquilino é denido de acordo com o contexto onde se encontra inserido; por exemplo, um inquilino pode ser um banco de dados em relação ao SGBD. Existem vários modelos de multi-inquilino que podem compartilhar desde máquinas físicas até tabelas. Por exemplo, a empresa Salesforce.com [Salesforce 212] utiliza o modelo de tabela compartilhada [Weissman and Bobrowski 29], enquanto [Soror et al. 28] utilizam o modelo de VM compartilhada para melhorar a utilização dos recursos. Algumas características do gerenciamento de dados em nuvem aumentam a relevância de outros modelos de SGBDs multiinquilino. Para melhorar a compreensão destes modelos, [Elmore et al. 211] propõem uma nova classicação, como mostra a Tabela I. A Tabela I estabelece uma relação entre modelos de bancos de dados multi-inquilino e os modelos de serviço da computação em nuvem, infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) e software como serviço (SaaS). Modo de Compartilhamento Isolamento IaaS PaaS SaaS 1. Hardware VM x 2. Máquina Virtual (VM) Usuário SO x 3. Sistema Operacional (SO) Instância do BD x 4. Instância BD x 5. Banco de Dados Esquema x 6. Tabela Tupla x Table I. Modelos de bancos de dados multi-inquilino e a correspondência com a computação em nuvem [Elmore et al. 211] Os modelos correspondentes às linhas 1-3 compartilham recursos nos níveis das mesmas máquinas 162

Simpósio Brasileiro de Bancos de Dados - SBBD 212 físicas com diferentes níveis de abstração; por exemplo, múltiplas VMs, contas de SO de usuários diferentes e diversas instâncias dos SGBDs. Neste caso, não existe compartilhamento de recursos de banco de dados e as instâncias dos SGBDs se mantêm independentes. As linhas 4-6 envolvem o compartilhamento de processos de banco de dados em vários níveis de isolamento, tais como: diferentes bancos de dados, esquema ou tablespace e tupla. Nos diferentes modelos, os dados dos inquilinos são armazenados de várias formas. O modelo de hardware compartilhado utiliza a virtualização para chavear várias VMs na mesma máquina. Cada VM possui apenas um processo de banco de dados, e uma VM inteira em geral corresponde a um inquilino. Já o modelo de tabela compartilhada armazena dados de vários inquilinos em uma mesma tabela; e algumas tuplas de uma tabela correspondem a um inquilino. Os modelos das linhas 4-6 são os mais amplamente utilizados, pois permitem um melhor compartilhamento de recursos. Por outro lado, estes três modelos apresentam maior interferência entre os inquilinos do sistema, o que pode interferir no desempenho do sistema. No modelo da linha 4, um inquilino é um banco de dados separado, que melhora o isolamento. Contudo, o modelo 4 está limitado ao número de estruturas que o SGBD pode manipular. Os modelos 5-6 utilizam um número menor de recursos dentre todos os modelos, mas apresentam algumas desvantagens; por exemplo, o modelo 6 necessita de indexação e otimização, já que os inquilinos compartilham as mesmas tabelas, porém apresentam requisitos diferentes. 3. METODOLOGIA E AMBIENTE 3.1 Metodologia A metodologia, utilizada neste trabalho, consiste de um conjunto de experimentos para vericar o desempenho e a interferência em um SGBD multi-inquilino. São denidos cinco passos para a concepção e execução de experimentos: (1) Denir o modelo multi-inquilino a ser utilizado. (2) Denir os benchmarks para gerar o ambiente de SGBD multi-inquilino. (3) Denir os SGBDs e a alocação dos inquilinos nestes sistemas. (4) Denir as cargas de trabalho ao longo do tempo para cada inquilino. (5) Analisar a variação da carga de trabalho e sua relação com o desempenho de cada inquilino. 3.2 Ambiente No trabalho, optou-se por utilizar o modelo multi-inquilino de instância (linha 4 da Tabela 1), pois é mais utilizado do que os modelos 5-6 [Elmore et al. 211], e os das linhas 1-3 apresentam menor interferência entre os inquilinos. Assim sendo, de acordo com o modelo utilizado, tem-se que um banco de dados corresponde a um inquilino no sistema. Em relação à ferramenta de avaliação, a diversidade de sistemas em nuvem e a forma como estes sistemas são construídos (i.e., modelo de dados, níveis de consistência e linguagem de acesso) dicultam o desenvolvimento de um benchmark padrão. Existem alguns benchmarks para avaliar SGBDs executados em nuvem. Contudo, cada benchmark elenca um conjunto de pressupostos próprios, o que torna complexo a utilização [Sousa et al. 21]. Tratando-se especicamente do benchmark multiinquilino, ainda não existe um benchmark para SGBD multi-inquilino. Para simular o ambiente, foi utilizado o OLTPBenchmark [OLTPBenchmark 212]. O OLTPBenchmark é um framework para avaliar o desempenho de diferentes SGBD relacionais diante de congurações de cargas de trabalho OLTP. O framework possui diversos benchmarks, tais como TPC-C, Twitter, e Wikipedia. O OLTPBenchmark possibilita congurar a taxa de tempo para submissão de requisições, denir o percentual de cada tipo de transação por tempo 163

Simpósio Brasileiro de Bancos de Dados - SBBD 212 de experimento, obter informações sobre vazão, média do tempo de resposta e informações sobre utilização dos recursos de SO. Para a avaliação foi utilizada uma nuvem privada com o middleware OpenNebula [OpenNebula 212], que permite gerar a infraestrutura em nuvem. A utilização de uma nuvem privada tem como objetivo concentrar o foco no problema da interferência entre os inquilinos, visto que uma nuvem pública, por exemplo, a Amazon [EC2 212], apresenta grande variabilidade de desempenho [Schad et al. 21], o que pode prejudicar a identicação dos reais fatores responsáveis pela variação de desempenho. Foram utilizadas 3 VMs (V M bench, V M mysql e V M postgres ), cada uma com sistema operacional Ubuntu 12.4 Server. A V M bench possui 4 CPUs, 16 GB RAM, 3 GB de armazenamento, e contêm o OLTPBenchmark [OLTPBenchmark 212]. Em todos os experimentos, foram criadas 3 instâncias do OLTPBenchmark. Uma para submissão da carga de trabalho para o TPC-C, outra para o e uma terceira para o Wikipedia. As submissões das cargas de trabalho foram realizadas em paralelo. As V M mysql e V M postgres possuem 2 CPUs, 2 GB RAM, 3 GB de armazenamento com MySQL 5.5 e PostgreSQL 9.1, respectivamente. Nas VMs com o MySQL e PostgreSQL, foram utilizadas três bases de dados fornecidas pelo OLTP- Benchmark, TPC-C, e Wikipedia, com os seguintes tamanhos: TPC-C (4 MB), (8 MB) e Wikipedia (6 MB). Foram conguradas 3 conexões para cada banco de dados, variando a taxa de transações. Com essa conguração de ambiente é possível realizar experimentos que analise como cada um dos dois SGBDs, diante de diversas cargas de trabalho, trata questões de interferência entre os bancos de dados multi-inquilino de diferentes benchmarks. 4. EXPERIMENTOS E RESULTADOS Os experimentos foram realizados focando nos seguintes objetivos: (a) medir o desempenho e a interferência entre os inquilinos e (b) avaliar a inuência da carga de trabalho e do SGBD. Devido aos valores dos tempos de respostas serem muito diferentes tanto entre os bancos de dados quanto os SGBDs avaliados, não foi possível padronizar a escala do tempo de resposta. Com isso, os grácos possuem escalas diferentes. Para evitar que atrasos na inicialização dos inquilinos viessem a interferir nos resultados, as medidas iniciais obtidas (12 segundos) foram descartadas, considerando os valores posteriores, o que torna os experimentos mais próximos de um ambiente real. Foram realizados três experimentos variando a taxa de transações ao longo de um intervalo de tempo. No primeiro experimento, as taxas do e do Wikipedia foram xadas em 6, e a taxa do TPC-C foi alterada de acordo a seguinte sequência (5, 1, 15, 2, 25), a cada 3 segundos. As Figuras 1 e 2 apresentam a variação do tempo de resposta médio para o experimento. A Figura 1 mostra o resultado da avaliação com MySQL. Com o aumento da taxa de transações, o tempo de resposta do TPC-C aumenta, já que a taxa deste banco está aumentando, mas existe pouca interferência entre os inquilinos (bancos de dados). Com o aumento da taxa no instante de tempo segundos, ocorre pouca interferência com o Wikipedia e um aumento maior no tempo de resposta do, ocasionado pela interferência da taxa do TPC-C. Esse resultado mostra que o MySQL apresenta um bom nível de isolamento entre os inquilinos. A Figura 2 mostra o resultado com o PostgreSQL. De forma similar ao MySQL, o tempo de resposta do TPC-C aumenta de acordo com a taxa, mas apresenta maior variabilidade. Com o aumento da taxa no instante de tempo segundos, ocorre pouca interferência com o Wikipedia e um aumento muito grande no tempo de resposta do, ou seja, muita interferência provocada pelo TPC-C. O PostgreSQL apresenta pouco isolamento entre os inquilinos, prejudicando o desempenho. Além disso, apresenta alta variabilidade no tempo de resposta para cada inquilino. No segundo experimento, as taxas do TPC-C e foram xadas em 6 e, desta vez, a taxa do 164

Simpósio Brasileiro de Bancos de Dados - SBBD 212 3. 6. 8. 25. 2. 5. 4. 7. 6. 5. 15. 1. 5. 3. 2. 1. 4. 3. 2. 1. 45 135 115 45 135 115 2 275 35 425 5 575 65 725 8 875 95 11 14 1 Fig. 1. Tempo médio de resposta para o MySQL com aumento na taxa de transações do TPC-C Média Média Tempo de de 8. 35. 14. 7. 6. 5. 4. 3. 2. 1. 3. 25. 2. 15. 1. 5. 12. 1. 8. 6. 4. 2. 45 135 115 45 135 115 25 285 365 445 525 65 765 845 925 15 185 1165 145 1485 Fig. 2. Tempo médio de resposta para o PostgreSQL com aumento na taxa de transações do TPC-C Wikipedia foi alterada de acordo a seguinte sequência (5, 1, 15, 2, 25), a cada 3 segundos. As Figuras 3 e 4 apresentam a variação do tempo de resposta médio para este experimento. A Figura 3 mostra o resultado da avaliação com MySQL variando o Wikipedia. Com o aumento da taxa de transações, o tempo de resposta do Wikipedia não aumenta, ocorrendo pouca interferência com o e. O resultado com o PostgreSQL é apresentado na Figura 4. O Wikipedia não sofre alteração no tempo de resposta com o aumento da carga, mas ocorrem muitas interferências com o TPC-C e o. Média de Média de de 8. 12. 6. 7. 6. 5. 1. 8. 5. 4. 4. 3. 2. 1. 6. 4. 2. 3. 2. 1. 45 135 115 45 135 115 2 275 35 425 5 575 65 725 8 875 95 11 14 1 Fig. 3. Tempo médio de resposta para o MySQL com aumento na taxa de transações do Wikipedia O terceiro experimento avalia o desempenho com o aumento/diminuição da carga de trabalho (i.e., elasticidade). A taxa dos três bancos de dados foi alterada, a cada 3 segundos, de acordo com a Tabela 2. A Figura 5 apresenta o resultado deste experimento para o MySQL. É possível observar que o tempo de reposta de cada banco de dados segue a taxa de transações, com pouca interferência. Já o resultado do PostgreSQL, na Figura 6, apresenta maior interferência e variabilidade de desempenho. De forma geral, em todos os experimentos realizados, pode-se perceber que o crescimento na taxa de transações do TPC-C ocasiona aumento no tempo de resposta do próprio banco de dados e interferência no desempenho do, principalmente com o PostgreSQL. Por outro lado, o Wikipedia recebeu pouca interferência do TPC-C. Isso mostra que existem inquilinos que podem ser alocados para um mesmo SGBD e convivem quase perfeitamente. Em todos os resultados, o PostgreSQL apresentou tempo de resposta muito superior ao MySQL, provavelmente devido à diculdade de gerenciar multiinquilinos. 165

Simpósio Brasileiro de Bancos de Dados - SBBD 212 Média de Média de de 35. 16. 5. 3. 25. 2. 15. 1. 5. 14. 12. 1. 8. 6. 4. 2. 4. 3. 2. 1. 45 135 115 45 135 115 2 275 35 425 5 575 65 725 8 875 95 11 14 1 Fig. 4. Tempo médio de resposta para o PostgreSQL com aumento na taxa de transações do Wikipedia Taxa Tempo (seg) TPC-C Wikipedia 3 15 5 5 6 1 25 15 9 5 2 25 12 25 1 2 15 2 15 1 Table II. Taxa de transações durante o experimento. Média de Respostas (ms) Respostas (ms) 35. 3. 25. 2. 15. 1. 5. 9. 8. 7. 6. 5. 4. 3. 2. 1. 14. 12. 1. 8. 6. 4. 2. 45 135 115 45 135 115 25 285 365 445 525 65 765 845 925 15 185 1165 145 1485 Fig. 5. Tempo médio de resposta para o MySQL com aumento/diminuição dos três bancos de dados 4.1 Lições Aprendidas: Dicas para reduzir a interferência em SGBDs multi-inquilino A principal lição aprendida neste trabalho é que executar diferentes cargas de trabalho em um SGBD multi-inquilino ocasiona interferência entre inquilinos. Atualmente, os SGBDs não tratam essa interferência. Por outro lado, a escolha do SGBD ajuda a diminuir a interferência, conforme observado nos resultados do MySQL e do PostgreSQL. O usuário deve alocar inquilinos com pouca interferência entre si, como por exemplo o TPC-C e o Wikipedia. Para tanto, é necessária uma análise do perl do inquilino para identicar o nível de interferência. Também é importante isolar inquilinos suscetíveis à interferência, como foi o caso do nos experimentos. Neste caso, outros modelos multi-inquilino podem ser utilizados, por exemplo, SGBD privado para este inquilino suscetível à interferência. De acordo com os resultados, os SGBDs trabalham bem o aumento da carga de trabalho e também com a elasticidade da taxa de transações, principalmente o MySQL, que apresentou variabilidade de desempenho proporcional à taxa de transações. 5. TRABALHOS RELACIONADOS [Elmore et al. 211] apresentam um estudo sobre os modelos multi-inquilino, destacando o nível de isolamento de cada modelo. Além disso, apresenta uma proposta para elasticidade de banco de dados utilizando o modelo de SGBD compartilhado. Contudo, o trabalho não apresenta avaliação ou resultados do estudo elaborado. [Ahmad and Bowman 211] propõem o uso de técnicas de aprendizagem de máquina para realizar a predição de recursos para banco de dados servindo-se do modelo de 166

Simpósio Brasileiro de Bancos de Dados - SBBD 212 de Respostas (ms) de Média Média Tempo de de Respostas (ms) 8. 3. 8. 7. 6. 5. 25. 2. 7. 6. 5. 4. 3. 2. 1. 15. 1. 5. 4. 3. 2. 1. 45 135 115 45 135 115 2 275 35 425 5 575 65 725 8 875 95 11 14 1 Fig. 6. Tempo médio de resposta para o PostgreSQL com aumento/diminuição dos três bancos de dados SGBD compartilhado. Os experimentos utilizam múltiplas instâncias do TPC-C/H para simular um ambiente multi-inquilino, e os resultados mostram os recursos usados por cada banco de dados. O trabalho foca a utilização de recursos, mas não trata de aspectos de desempenho. [Xiong et al. 211] apresentam o SmartSLA, um framework para o gerenciamento de recursos para SGBDs em nuvem, e utiliza o modelo multi-inquilino de hardware compartilhado, onde cada SGBD é executado em uma VM isolada. O SmartSLA considera diversos aspectos, tais como: SLA, carga de trabalho, custo de infraestrutura, e utiliza um modelo de predição baseado em aprendizagem de máquina para garantir o SLA. Entretanto, o modelo apresentado no trabalho não pode ser usado em provedores públicos, como o da Amazon [EC2 212], pois supõem o acesso aos recursos físicos da infraestrutura. Em [Lang et al. 212] é proposto um framework para a otimização de custos e recursos de acordo com restrições de um SLA. O framework usa um modelo analítico para vericar a utilização dos recursos e a violação do SLA. Em relação à avaliação, ele se serve do modelo multi-inquilino de SGBD compartilhado, e múltiplas instâncias do TPC-C/H para simular o ambiente multi-inquilino, similar a [Ahmad and Bowman 211]. [Hatem A. Mahmoud and El-Abbadi 212] apresentam uma estratégia para minimizar os recursos necessários, satisfazendo um SLA em uma arquitetura OLAP. Para tanto, usa um conjunto de algoritmos e heurísticas com o objetivo de melhorar a alocação dos recursos e distribuição da carga de trabalho. Este trabalho utiliza o modelo de SGBD compartilhado e foca o uso dos recursos. Contudo, por considerar uma arquitetura OLAP, não trata da garantia de desempenho QoS em tempo de execução. [Barker et al. 212] apresentam uma solução para migração de banco de dados multi-inquilino, servindo-se do modelo de compartilhamento de sistema operacional, com um banco de dados por SGBD. O trabalho visa ainda minimizar o impacto de desempenho durante o processo de migração, mas não aborda aspectos de desempenho. Os trabalhos [Ahmad and Bowman 211] [Hatem A. Mahmoud and El-Abbadi 212] são orientados a recursos, ao passo que a análise realizada em nosso estudo foca o desempenho. Diferente dos trabalhos relacionados, este utiliza vários bancos de dados, tais como TPC-C, e Wikipedia para fornecer um ambiente multi-inquilino completo. Além disso, nosso estudo utiliza diferentes SGBDs e analisa a interferência de cada sistema considerando variadas cargas de trabalho. 6. CONCLUSÃO O trabalho apresentou uma análise de um conjunto de experimentos para medir a variação do desempenho de SGBDs multi-inquilino em nuvem. Para isso, foram apresentados alguns modelos multiinquilino para SGBDs, destacando suas principais características. Foram analisados aspectos de desempenho de bancos de dados multi-inquilino, servindo-se do framework OLTPBenchmark, que permite construir um ambiente multi-inquilino completo. De acordo com os resultados, foi possível observar que variadas cargas de trabalho em um SGBD multi-inquilino ocasionam interferência entre os inquilinos. Com isso, a escolha do SGBD ajuda a diminuir as interferências, pois os SGBDs analisados não tratam completamente deste aspecto. Além disso, para diminuir tais interferências, é necessário identicar o nível de interação entre os inquilinos e, consequentemente, melhorar a alocação 167

Simpósio Brasileiro de Bancos de Dados - SBBD 212 dos inquilinos de acordo com suas interferências. Em trabalhos futuros, pretende-se realizar experimentos com outros modelos multi-inquilinos não contemplados no estudo, assim como vericar o nível de interferências em outros SGBDs e os recursos utilizados por cada inquilino. Outro aspecto importante é desenvolver técnicas para migrar inquilinos com muita interferência entre si, melhorando o desempenho do sistema. Pretende-se também realizar um estudo para elaborar estratégia de alocação para inquilinos em SGBDs, visando diminuir as interferências. Agradecimentos Os autores agradecem a Carlo Curino e a equipe do OLTPBenchmark pela colaboração no desenvolvimento deste trabalho. REFERENCES Agrawal, D., Das, S., and Abbadi, A. E. Big data and cloud computing: New wine or just new bottles? PVLDB 3 (2): 16471648, 21. Ahmad, M. and Bowman, I. T. Predicting system performance for multi-tenant database workloads. In Proceedings of the Fourth International Workshop on Testing Database Systems. DBTest '11. ACM, New York, NY, USA, pp. 6:16:6, 211. Barker, S., Chi, Y., Moon, H. J., Hacigümü³, H., and Shenoy, P. "cut me some slack": latency-aware live migration for databases. In Proceedings of the 15th International Conference on Extending Database Technology. EDBT '12. ACM, New York, NY, USA, pp. 432443, 212. Chaudhuri, S. What next?: a half-dozen data management research goals for big data and the cloud. In Proceedings of the 31st symposium on Principles of Database Systems. PODS '12. ACM, New York, NY, USA, pp. 14, 212. EC2, A. Amazon Elastic Compute Cloud (Amazon EC2), 212. http://aws.amazon.com/en/ec2/. Elmore, A., Das, S., Agrawal, D., and Abbadi, A. E. Towards an elastic and autonomic multitenant database. In NetDB 211-6th International Workshop on Networking Meets Databases Co-located with SIGMOD 211, 211. Elmore, A. J., Das, S., Agrawal, D., and El Abbadi, A. Zephyr: live migration in shared nothing databases for elastic cloud platforms. In Proceedings of the 211 ACM SIGMOD International Conference on Management of data. SIGMOD '11. ACM, New York, NY, USA, pp. 31312, 211. Hatem A. Mahmoud, Hyun Jin Moon, Y. C. H. H. D. A. and El-Abbadi, A. Towards multitenancy for io-bound olap workloads. Tech. Rep. UCSB-212-2, CS Department, University of California, Santa Barbara. May, 212. Lang, W., Shankar, S., Patel, J. M., and Kalhan, A. Towards multi-tenant performance slos. Data Engineering, International Conference on vol., pp. 72713, 212. OLTPBenchmark. OLTPBenchmark, 212. http://www.oltpbenchmark.com. OpenNebula. OpenNebula, 212. http://opennebula.org/. Salesforce. Salesforce.com, 212. http://www.salesforce.com/. Schad, J., Dittrich, J., and Quiané-Ruiz, J.-A. Runtime measurements in the cloud: observing, analyzing, and reducing variance. Proc. VLDB Endow. 3 (1-2): 46471, Sept., 21. Soror, A. A., Minhas, U. F., Aboulnaga, A., Salem, K., Kokosielis, P., and Kamath, S. Automatic virtual machine conguration for database workloads. ACM Trans. Database Syst. 35 (1): 7:17:47, Feb., 28. Sousa, F. R. C., Moreira, L. O., Macêdo, J. A. F., and Machado, J. C. Gerenciamento de dados em nuvem: Conceitos, sistemas e desaos. In SWIB 21, 1. ed. SBC, pp. 1113, 21. Sousa, F. R. C., Moreira, L. O., Santos, G. A. C., and Machado, J. C. Quality of service for database in the cloud. In CLOSER, F. Leymann, I. Ivanov, M. van Sinderen, and T. Shan (Eds.). SciTePress, pp. 59561, 212. Weissman, C. D. and Bobrowski, S. The design of the force.com multitenant internet application development platform. In Proceedings of the 29 ACM SIGMOD International Conference on Management of data. SIGMOD '9. ACM, New York, NY, USA, pp. 889896, 29. Xiong, P., Chi, Y., Zhu, S., Moon, H. J., Pu, C., and Hacigumus, H. Intelligent management of virtualized resources for database systems in cloud environment. In Proceedings of the 211 IEEE 27th International Conference on Data Engineering. ICDE '11. IEEE Computer Society, Washington, DC, USA, pp. 8798, 211. 168