• Nenhum resultado encontrado

Um Framework para o Gerenciamento Autonômico de Bancos de Dados em Nuvem Baseado nas Interações entre Consultas

N/A
N/A
Protected

Academic year: 2021

Share "Um Framework para o Gerenciamento Autonômico de Bancos de Dados em Nuvem Baseado nas Interações entre Consultas"

Copied!
6
0
0

Texto

(1)

Um Framework para o Gerenciamento Autonômico de Bancos

de Dados em Nuvem Baseado nas Interações entre Consultas

Manoel Siqueira1, José Maria Monteiro1 (Orientador), Javam de Castro Machado1 (Coorientador)

1Programa de Mestrado e Doutorado em Ciência da Computação (MDCC)

Universidade Federal do Ceará (UFC), Fortaleza, CE – Brasil {manoeljr,monteiro,javam}@lia.ufc.br

Nível: Mestrado Ingresso: março de 2010 Conclusão esperada: março de 2012 Previsão de defesa da proposta: setembro de 2011 Etapas concluídas: disciplinas e defesa de pré-proposta Etapas futuras: defesa da proposta e defesa da dissertação

Resumo. Este artigo apresenta um framework para o gerenciamento autonô-mico de bancos de dados em nuvem, o qual fornece uma infraestrutura respon-sável pela disponibilização de bancos de dados em ambientes de computação em nuvem de forma eficiente. A solução proposta busca solucionar alguns pro-blemas ainda em aberto, tais como: despacho, escalonamento de consultas e provisionamento de recursos. A abordagem concebida estende os trabalhos an-teriores adicionando importantes características, como por exemplo: o suporte às cargas de trabalho imprevistas, a utilização de informações sobre as intera-ções entre consultas, e a inalterabilidade do código fonte do banco de dados utilizado.

Palavras-Chave: Gerenciamento de Dados, Bancos de Dados em Nuvem, Interação entre Consultas.

(2)

1. Introdução

A Computação em nuvem é uma tendência recente de tecnologia cujo objetivo é propor-cionar serviços de Tecnologia da Informação (TI) sob demanda com pagamento baseado no uso. A nuvem computacional é um modelo de computação em que dados, arquivos e aplicações residem em servidores físicos ou virtuais, acessíveis por meio de uma rede em qualquer dispositivo compatível (fixo ou móvel), e que podem ser acessados a qualquer hora, de qualquer lugar, sem a necessidade de instalação ou configuração de programas específicos. Assim, a infraestrutura da computação em nuvem pode ser vista como um pool de recursos computacionais (virtualmente) infinito (e elástico) oferecido no modo self-service, por um terceiro via um modelo “pague o quanto usa” [Sousa et al. 2010].

Atualmente, podemos observar uma crescente migração das aplicações de geren-ciamento de dados para o ambiente de nuvem. Isso ocorre porque, em geral, as instala-ções dos sistemas de banco de dados normalmente são complexas e envolvem uma grande quantidade de dados, ocasionando um custo elevado, tanto em hardware quanto em soft-ware[Sousa et al. 2010]. Logo, tais aplicações podem beneficiar-se das características da computação em nuvem.

Neste trabalho, consideramos que um banco de dados em nuvem consiste de um sistema de banco de dados (SBD) relacional executado em máquinas virtuais (Virtual Machines - VMs) pré-configuradas e disponibilizadas por um provedor de infraestru-tura como um serviço (IaaS - Infrastructure as a Service), onde os dados estão distri-buídos, através de réplicas, de forma a melhorar o desempenho, a escalabilidade e a disponibilidade dos sistemas. Elasticidade rápida de recursos, autonomia e acordo de níveis de serviço também são aspectos relevantes no contexto de um SBD em nuvem [Sousa et al. 2010].

Com base na definição anterior, pode perceber-se que a construção e a disponibi-lização de SBD em nuvem envolvem inúmeros desafios, muitos dos quais ainda se confi-guram como problemas em aberto. Recentemente, diversas pesquisas têm sido realizadas com o objetivo de fornecer suporte às aplicações de gerenciamento de dados em nuvem. Contudo, essas iniciativas buscam solucionar problemas específicos, tais como: despacho [Paton et al. 2009], provisionamento de recursos [Soror et al. 2010], dentre outros.

Este trabalho propõe um framework genérico para o gerenciamento autonômico de SBDs em nuvem. O framework proposto busca fornecer a infraestrutura necessária para a disponibilização de bancos de dados em nuvem de forma eficiente e completa.

2. Definição do Problema

Para possibilitar a concepção de um framework que fosse suficientemente genérico inves-tigamos e identificamos os principais problemas relacionados à gerência autonômica de bancos de dados em nuvem. Esses problemas são descritos a seguir:

1. despacho: o objetivo do despacho é alocar cada consulta recebida a alguma das instâncias (que compõem o sistema de banco de dados em nuvem) disponíveis e com capacidade de executá-la;

2. escalonamento: quando determinada instância possui um conjunto de consul-tas a serem executadas, há necessidade de definição sobre que consulta executar primeiro, ou quais executar primeiro, ou ainda em que ordem elas devem ser exe-cutadas;

(3)

3. provisionamento de recursos: dada uma carga de trabalho submetida ao SBD em nuvem é necessário verificar se com a configuração atual (quantidade de VMs e de recursos físicos alocados a cada uma das VMs atuais) é possível executar essa carga de trabalho respeitando eficientemente os parâmetros definidos no acordo de nível de serviço (SLA - Service Level Agreement) ou se será necessário a adi-ção/diminuição de recursos em nível de quantidade de VMs e/ou de hardware (memória, espaço em disco, CPUs, etc.) de cada uma das VMs individualmente.

3. O Framework Proposto

Para lidar com todos esses problemas de maneira satisfatória, é de fundamental impor-tância a utilização de conceitos da computação autonômica, uma vez que a nuvem é um ambiente complexo, com uma quantidade muito grande de tarefas envolvidas. A Figura 1 ilustra a arquitetura do framework proposto.

...

Consultas Ações corretivas

. . . Despachante Monitor Escalonador1 Escalonador2 Escalonadorn Decisão sobre o escalonador responsável pela consulta analisada Verificação do estado atual do sistema

Figura 1. Arquitetura do Framework Proposto

Adicionalmente, para que o framework forneça uma boa solução para os proble-mas discutidos, este deve apresentar os seguintes requisitos:

• ser não-intrusivo: não requerer alterações no código fonte do SGBD utilizado; • utilizar um modelo de custo genérico: a forma de calcular o custo de execução

de determinada consulta ou carga de trabalho deve basear-se no custo econômico (medido, por exemplo, em dólar) referente aos recursos utilizados para sua execu-ção e não mais no custo computacional (número de I/Os, etc.);

• baseado no SLA: para garantir a qualidade de serviço, os SBDs em nuvem, em geral, utilizam a abordagem baseada em SLAs. O SLA fornece informações sobre o nível de qualidade esperado para o serviço de dados, o qual pode ser especificado em termos de: disponibilidade, tempo de resposta, vazão, dentre outros. Além disso, o SLA especifica também penalidades em caso de violação do nível de qualidade contratado [Sousa et al. 2010];

• orientado ao lucro: do ponto de vista do provedor do serviço de dados, o obje-tivo principal de um framework de gerenciamento de dados em nuvem consiste em maximizar o lucro total do serviço, ou seja, minimizar o seu custo, o que é al-cançado minimizando os recursos necessários para executar as cargas de trabalho respeitando-se o nível de qualidade especificado no SLA;

• baseado na interação entre as consultas: [Ahmad et al. 2009] mostra que a or-dem na qual as consultas são executadas pode interferir no desempenho do SBD. Isso ocorre devido à relação de dependência entre as consultas. Assim, o fra-meworkdeve ser concebido levando em consideração este aspecto;

• monitoramento e ajuste dinâmico da solução: tanto o provedor do serviço de dados quanto os seus usuários necessitam monitorar o SBD e verificar se o SLA é atendido satisfatoriamente. Particularmente, o provedor necessita monitorar o

(4)

sistema e caso seja verificado que os SLAs não estão sendo atendidos, o SBD deve ser ajustado automaticamente com a finalidade de passar a atender os SLAs; • suportar cargas inesperadas: as cargas de trabalho dos SBDs são muitas vezes sazonais. Assim, o serviço de dados deve manter seu desempenho dentro dos valores contratados nos SLAs mesmo na ocorrência de um aumento inesperado da demanda, uma vez que uma das características da nuvem é a elasticidade rápida; • suportar a replicação dos dados: um framework de gerenciamento de dados em

nuvem deve fornecer suporte para a replicação dos dados, uma vez que esta estra-tégia é fundamental para aumentar a disponibilidade dos dados e o desempenho do SBD.

3.1. Funcionamento do Framework

Com o intuito de tornar clara a arquitetura proposta para o framework, a resolução dos três problemas levantados será explicada separadamente.

3.1.1. Despacho q T1 T2 ... Tn ... E1 E2 Em

Figura 2. Arquitetura para Solução do Problema de Despacho

A Figura 2 ilustra a solução proposta para o problema de despacho. O elemento qrepresenta a consulta a ser despachada. T1, T2, ..., Tnreferem-se às tabelas utilizadas

pela consulta q. Tanto a consulta q quanto as tabelas utilizadas por q são enviadas às VMs E1, E2, ..., Em, intituladas escalonadoras. Cada uma destas envia uma mensagem

de retorno ao despachante contendo informações sobre a viabilidade de executá-la dentro do intervalo de tempo estipulado no SLA e, também, um fator indicativo da interação da consulta despachada com suas candidatas a adjacentes no escalonamento.

3.1.2. Escalonamento

Para tratar o escalonamento, a arquitetura escolhida dá a cada escalonador a responsabili-dade de manipulação sobre as consultas a ele despachadas, determinando, assim, quantas delas podem ser executadas concorrentemente, além de sua ordem de execução, que é ba-seada nas tabelas em comum entre elas e em algumas informações fornecidas pelo SLA. A Figura 3 mostra a inclusão de uma consulta recém-chegada entre outras duas. Essa decisão foi tomada porque apesar daquela ser uma consulta mais recente, foi previsto que esta ordem de execução propicia melhor relação de custo-benefício para o provedor de serviço. Para auxiliar no escalonamento, a estrutura de dados, ilustrada na Figura 3, contém o tempo de resposta estimado da consulta, representado por t, tie ti+1.

(5)

q t = k T1 T2 ... Tn Ti,1 qi t = ki i t = kj j Ti,2 ... Ti,l ... ... Tj,1 qj Tj,2 ... Tj,m

Figura 3. Decisão sobre Escalonamento do SBD 3.1.3. Provisionamento de Recursos .. . E1 E2 Em M IaaS Solicitar mais recursos Analisar consultas respondidas

Figura 4. Processo de Requisição de Recursos

Um dos motivos para o não cumprimento das especificações do SLA é a carên-cia de recursos físicos e/ou de VMs. A Figura 4 mostra a VM despachante (possuidora dos módulos de monitoramento e de despacho) recebendo as informações referentes às consultas executadas nas VMs escalonadoras (incluindo o tempo de resposta de cada con-sulta, etc.). A partir disso, há uma verificação feita pelo monitor sobre o atendimento adequado ao SLA, que, caso não seja cumprido, leva à solicitação, em nível de hardware e/ou quantidade de VMs, de adição/diminuição de recursos ao provedor IaaS.

4. Trabalhos Relacionados

Os trabalhos apresentados em [Rogers et al. 2010, Shivam et al. 2007, Soror et al. 2010] propõem soluções para o provisionamento de recursos, porém os dois primeiros lidam apenas com o fator quantidade de VMs, diferentemente do terceiro trabalho, que trata somente da configuração automática de VMs. Portanto, nenhum dos trabalhos se preo-cupa com esses dois níveis de tratamento do problema ao mesmo tempo. Já a abordagem proposta em [Paton et al. 2009] busca solucionar somente o problema de despacho de consultas. Em [Chi et al. 2011], os autores propõem uma nova estrutura de dados, deno-minada SLA-Tree, com a finalidade de fornecer suporte para a tomada de decisão baseada no lucro. Contudo, esses trabalhos apresentam limitações importantes, tais como: intera-ções entre consultas não são consideradas e parte das soluintera-ções é intrusiva.

O framework proposto neste trabalho foi baseado na solução descrita em [Chi et al. 2011], a qual utiliza uma árvore (SLA-Tree) com o objetivo de facilitar o acesso às informações que auxiliam a tomada de decisão baseada no lucro. Porém, a criação e atualização desta árvore possui ordem acima da linear, o que pode comprometer o desem-penho da abordagem proposta em [Chi et al. 2011]. A solução concebida neste trabalho,

(6)

diversamente da proposta em [Chi et al. 2011], não tem essa sobrecarga em suas estru-turas de dados. Além disso, o mecanismo proposto busca agrupar consultas com maior interação na mesma máquina virtual, a fim de melhorar o desempenho das consultas.

5. Estado Atual do Trabalho

Com relação ao andamento da pesquisa, o problema abordado foi definido e uma solução conceitual inicial foi concebida. O próximo passo será implementar o framework e reali-zar os testes de forma a verificar melhorias possíveis. Por fim, com o término do trabalho, espera-se comprovar a utilidade da solução proposta na gerência autonômica de dados em nuvem.

6. Conclusões

Neste trabalho apresentamos um framework para o gerenciamento autonômico de SBDs em nuvem. A solução proposta aplica-se a diferentes problemas, tais como: despacho, escalonamento de consultas e provisionamento de recursos. A abordagem concebida se baseia no modelo proposto em [Chi et al. 2011], porém se preocupa com características adicionais, por exemplo, a interação entre consultas.

Referências

Ahmad, M., Aboulnaga, A., and Babu, S. (2009). Query interactions in database workloads. In Proceedings of the Second International Workshop on Testing Database Systems, DBTest ’09, pages 11:1–11:6, New York, NY, USA. ACM.

Chi, Y., Moon, H. J., Hacigümü¸s, H., and Tatemura, J. (2011). Sla-tree: a framework for efficiently supporting sla-based decisions in cloud computing. In Proceedings of the 14th International Conference on Extending Database Technology, EDBT/ICDT ’11, pages 129–140, New York, NY, USA. ACM.

Paton, N. W., Aragão, M. A. T., Lee, K., Fernandes, A. A. A., and Sakellariou, R. (2009). Optimi-zing utility in cloud computing through autonomic workload execution. IEEE Data Eng. Bull., 32(1):51–58.

Rogers, J., Papaemmanouil, O., and Çetintemel, U. (2010). A generic auto-provisioning fra-mework for cloud databases. In ICDE Workshops, pages 63–68.

Shivam, P., Demberel, A., Gunda, P., Irwin, D., Grit, L., Yumerefendi, A., Babu, S., and Chase, J. (2007). Automated and on-demand provisioning of virtual machines for database applications. In Proceedings of the 2007 ACM SIGMOD international conference on Management of data, SIGMOD ’07, pages 1079–1081, New York, NY, USA. ACM.

Soror, A. A., Minhas, U. F., Aboulnaga, A., Salem, K., Kokosielis, P., and Kamath, S. (2010). Automatic virtual machine configuration for database workloads. ACM Trans. Database Syst., 35(1):1–47.

Sousa, F. R. C., Moreira, L. O., Macêdo, J. A. F., and Machado, J. C. (2010). Gerenciamento de Dados em Nuvem: Conceitos, Sistemas e Desafios, pages 101–130. In: PEREIRA, A. C. M.; PAPPA, G. L.; WINCKLER, M.; GOMES, R. L. (Org.). Tópicos em Sistemas Colaborativos, Interativos, Multimídia, Web e Bancos de Dados, SIWB 2010, 1. ed. SBC, Belo Horizonte.

Referências

Documentos relacionados

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria

[r]

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

Pretendo, a partir de agora, me focar detalhadamente nas Investigações Filosóficas e realizar uma leitura pormenorizada das §§65-88, com o fim de apresentar e