Você está na página 1de 14

Alocao de Dados em Bancos de Dados Distribudos

Matheus Wildemberg, Melise M. V. Paula, Fernanda Baio, Marta Mattoso {mwild, mel, baiao, marta}@cos.ufrj.br Programa de Engenharia de Sistemas e Computao - COPPE Universidade Federal do Rio de Janeiro, Brasil

Abstract
The problem of data allocation directly impacts on the execution cost of the application over a distributed database in environments that work with data distribution and replication, such as web servers, heterogeneous database integration systems and distributed databases. Allocation algorithms are typically used to find a data distribution among the sites of the network such as to minimize the execution cost of the application. In this work, a heuristic algorithm is proposed for fragment allocation in distributed database systems. The proposed algorithm is based on a heuristic algorithm presented in the literature, and its goal is to find out an allocation schema with a minimal execution cost, maintaining the complexity of the original algorithm. Through simulations performed on top of the TPC-C benchmark, it was possible to identify scenarios where the proposed algorithm found the optimal solution and other scenarios where the proposed algorithm found an allocation schema with a reduced cost when compared to the original algorithm.

1. Introduo O problema da alocao de dados envolve encontrar a distribuio tima dos dados atravs de ns da rede de forma a minimizar o custo das aplicaes sobre esses dados. A alocao um aspecto crtico num Sistema de Banco de Dados Distribudos (SBDD), j que uma alocao ineficiente dos dados pode levar a um aumento considervel do custo de acesso ao SBDD. Em geral, em um projeto de distribuio da base de dados, a fase de alocao realizada aps a fase de fragmentao, a qual determina a distribuio dos dados em fragmentos. Um dos principais objetivos que devem ser alcanados na fase de alocao aumento da proximidade entre os fragmentos e os ns que os utilizam, minimizando o custo de comunicao. O principal aspecto que determina a qualidade da soluo encontrada para o problema de alocao de dados a eficincia do projeto de alocao, ou seja, a alocao dos dados nos ns deve minimizar, tanto quanto possvel, o custo das consultas executadas. O processo de tomada de deciso presente no Problema de Alocao de Dados (PAD) em um SBDD, de uma forma geral, pode ser definido como: escolher dentre todos os possveis modelos de alocao de fragmentos nos ns de uma rede, ou seja, entre todas as possveis distribuies dos fragmentos, aquela que minimize o custo de acesso aos dados alocados considerando um conjunto de restries do problema, como por exemplo, a capacidade dos ns onde os dados so alocados. Este problema inclui a deciso de replicao dos fragmentos. Este tipo de problema classificado na literatura como Problema de Otimizao Combinatria. Em [9], os autores afirmam que o problema de encontrar uma alocao de fragmentos tima em um SBDD NP-Difcil. Segundo [5], dado um problema com n fragmentos e m

ns, (2m - 1)n o nmero de combinaes possveis para este problema. Esta mais uma justificativa para o uso de mtodos heursticos na soluo do PAD, pois invivel solucionar esse tipo de problema com um algoritmo exato em funo da sua complexidade. Existem na literatura propostas que buscam solucionar o problema de alocao de fragmentos em SBDD. Alguns destes trabalhos, como [6, 9], no consideram replicao de fragmentos em sua alocao para diminuir a complexidade do problema. Em [5, 6], o algoritmo proposto independe do modelo de dados, ou seja, pode ser executado tanto para fragmentos de tabelas relacionais quanto para fragmentos de classes de objetos enquanto que em [9, 10] so voltados ao modelo relacional e [12] prope um modelo de alocao de fragmentos de classes em sistemas de base de objetos distribudos. Em [3] proposto um algoritmo de alocao dinmica onde os fragmentos podem ser re-alocados aumentando o desempenho das aplicaes sobre a base de dados distribuda que j esteja em produo, enquanto [1] utiliza algoritmos evolucionrios para tratar o problema. O algoritmo proposto neste trabalho, denominado Aloc, visa buscar uma alocao prxima de tima, e utiliza os mesmos fundamentos apresentados no algoritmo de [5]. No trabalho de [5] so feitas consideraes quanto aos algoritmos existentes na literatura, onde ou a complexidade dos algoritmos muito grande, tornando-os de difcil aplicabilidade, ou o problema muito simplificado, como o caso da desconsiderao da replicao em [6,9]. A escolha do trabalho de [5] se justifica pela simplicidade dos algoritmos apresentados e principalmente pelos resultados satisfatrios obtidos pelos autores. Alm disso, o algoritmo leva em conta a replicao de fragmentos e reflete o comportamento real das transaes em um banco de dados distribudo. Outra caracterstica sua independncia do modelo de dados, assim possvel estend-lo para problemas de alocao de dados em outros ambientes que possuam seus dados distribudos. O objetivo deste trabalho apresentar o Aloc, uma variao do algoritmo apresentando em [5], mantendo algumas caractersticas como a independncia do modelo de dados adotado e a replicao. De forma simplificada, a heurstica de [5] faz uma alocao gulosa privilegiando as operaes de leitura, enquanto que em Aloc, essa alocao inicial estendida contemplando tambm as operaes de atualizao. Assim, mantida a simplicidade do algoritmo, embora o espao de solues seja aumentado por considerar na alocao inicial ns com transaes apenas de atualizao. Este aumento do espao de solues acarretou em um aumento do tempo de execuo do algoritmo (9.26% na mdia, 16% no mximo) em relao ao de [5], sem, no entanto alterar a ordem de complexidade, desta forma mantendo a viabilidade de sua utilizao em problemas reais. O algoritmo Aloc, em casos que possuem um nmero maior de transaes apenas de atualizao, conseguiu alcanar resultados melhores que o algoritmo de [5]. Nos demais casos, ele conseguiu alcanar os mesmos resultados de [5]. O restante deste trabalho est organizado da seguinte forma. Na seo 2 definido o problema de alocao de fragmentos em SBDD. A seguir, a seo 3 descreve Aloc, o algoritmo heurstico proposto para a alocao. Na seo 4 so mostrados alguns experimentos feitos com o algoritmo apresentado e finalmente na seo 5 so mostradas as concluses deste trabalho. 2. Aspectos gerais do Problema de Alocao de Fragmentos em SBDD O problema da alocao de fragmentos em um banco de dados distribudos tem como objetivo encontrar uma matriz de alocao FAT (Fragment Allocation Table) que representa a distribuio dos fragmentos nos ns de forma a minimizar o custo da execuo das transaes.

Assim, seja S = {s1, s2,..., sm} o conjunto de ns, onde m o nmero de ns da rede, T = {t1, t2,..., tq} o conjunto de transaes que so executadas em S, onde q o nmero de transaes, e F = {f1, f2,..., fn} o conjunto de fragmentos resultantes da fase de fragmentao do projeto de distribuio, onde n o nmero de fragmentos, o custo total para a execuo de cada tk disparada de cada sj sobre os diversos fragmentos envolvidos em tk deve ser o menor possvel. A modelagem do problema baseada em um conjunto de parmetros que podem ser classificados em: 1. Parmetros do banco de dados: os tamanhos dos fragmentos, representados por um vetor TAM, onde tam(i) o tamanho do fragmento fi. 2. Parmetros das transaes: incluem quatro matrizes: (i) a matriz RM representa os pedidos de leitura, onde rmki representa o nmero de vezes que a transao tk faz acesso de leitura ao fragmento fi, a cada vez que executada. Este valor inteiro e positivo podendo ser 0 caso a transao tk no acesse o fragmento fi para leitura; (ii) a matriz UM representa os pedidos de atualizao, onde umki representa o nmero de vezes que a transao tk atualiza o fragmento fi, a cada vez que executada. Como no caso anterior, umki um valor inteiro e positivo podendo ser igual a 0; (iii) a matriz SEL representa a seletividade das transaes, onde selki representa o percentual do volume de dados de fi que acessado durante a execuo da transao tk; (iv) a matriz FREQ representa a freqncia de execuo de cada transao em cada n, onde freqkj o nmero de vezes que o n sj dispara a transao tk. 3. Parmetros da rede: incluem o custo de transferir uma unidade de dado entre os ns da rede e o custo de construo do circuito virtual entre dois ns. O primeiro parmetro representado por uma matriz CTR, onde ctrjl o custo de transferir um dado do n sj para o n sl. Para simplificar o problema, CTR uma matriz simtrica onde ctrii igual a 0 para 1<i<m. O segundo parmetro, VCini, diz respeito ao circuito virtual que criado entre o n que dispara a transao e o n que possui um fragmento acessado por esta transao. Com o fim da transao este circuito fechado. Alm deste, Cini um custo constante de iniciar a transmisso de um pacote de dados de tamanho p_size. De posse de tais parmetros, define-se uma funo de custo a partir da qual pode-se estimar o custo da execuo de um conjunto de transaes sobre uma base de dados distribuda. No modelo de custo apresentado em [5], os autores fazem uma simplificao do custo de execuo das transaes, desprezando o custo de processamento local e concentrando-se apenas no custo de comunicao, j que este ltimo o custo de maior impacto em um ambiente distribudo. Resultados de testes realizados pelos autores comprovaram a validade desta funo de custo na comparao dos seus resultados com os obtidos em um ambiente real. Desta forma, a frmula de minimizao do custo de comunicao definida em [5] possui dois componentes, que so o custo de carga dos fragmentos (CCload), que representa o custo para enviar todos os fragmentos de um n inicial para os ns definidos no esquema de alocao, e o custo de processamento das transaes (CCproc), que representa o custo para execuo das transaes de T sobre o ambiente distribudo. No presente trabalho, pressupomos uma alocao esttica dos fragmentos. Desta forma, utilizamos a funo de custo definida em [5] desconsiderando o custo de carga dos fragmentos (cujo impacto, bastante relevante em problemas que tratam da alocao dinmica de fragmentos, bastante reduzido ao longo do tempo no caso de problemas de alocao esttica). A funo de minimizao do custo que utilizamos no presente trabalho pode ser ento definida como na equao 1:

Min (CCproc =


j =1
k =1

freqkj * (TRk + TUk + VCini))

(1)

onde TR o custo de recuperao relacionado s transaes de leitura (consulta) detalhados a seguir. Supondo uma transao tk que realiza um acesso de leitura ao fragmento fi e disparada a partir do n sj, TRk (definido na equao 2) representa o custo de executar a transao tk . O n que ser lido durante a execuo da transao tk o que apresenta o menor custo de comunicao (CCcom) para transferir os dados consultados para o n sj, dentre todos os ns que alocam uma rplica do fragmento fi, TRk =

i =1

rmki * min(CCcom(ctrjs where fat i,s = 1, selki * tami))

(2)

onde fatij igual a 1 se o fragmento fi est alocado no n sj, seno igual a 0 e CCcom uma funo definida na equao 3. m _ size +ctrjl * m_size CCcom(ctrjl, m_size) = Cini* (3) p _ size onde m_size o tamanho do fragmento e p_size a capacidade de transmisso da rede. Para o clculo do custo relacionado s transaes de atualizao (TU), supondo uma transao tk que atualiza o fragmento fi e disparada a partir do n sj, TUk, definido na equao 4, indica a soma dos custos de comunicao para transferir os dados atualizados pela transao tk a partir de sj em todos os ns que alocam o fragmento fi de forma a garantir a consistncia de todas as rplicas de fi no sistema distribudo.

TUk =

i =1

umki * ( fati,l, * CCcom (ctrjl, selki * tami))


l =1

(4)

3. Proposta de um algoritmo para o problema de alocao de fragmentos em SBDD

O algoritmo proposto para encontrar uma soluo prxima de tima para o problema de alocao de fragmentos em SBDD foi baseado no algoritmo apresentado em [5], descrito a seguir. Em seguida apresentado o algoritmo Aloc, contribuio principal do presente trabalho, quando so descritas as extenses feitas a partir do algoritmo original apresentado em [5].
3.1. Algoritmo proposto por Huang e Chen [5]

O algoritmo proposto por Huang e Chen [5] est dividido em trs passos. No primeiro passo feita uma alocao inicial de modo guloso considerando somente os acessos de leitura feitos pelos ns a cada fragmento. Para cada fragmento uma rplica alocada em cada n que dispare ao menos uma transao de leitura a este fragmento. Formalmente, dado o fragmento fi F e a transao tk T , ento: fatij = 1 para todo n sj S onde freqkj > 0 e rmki > 0. Neste passo no feita nenhuma anlise de custo para a distribuio dos fragmentos, portanto no existe um limite de replicaes para estes fragmentos. Ao final desse passo o esquema de alocao est de forma que o custo de execuo das transaes de leitura mnimo e o custo de execuo das transaes de atualizao pode no ser o ideal, devido ao grande nmero de rplicas de cada fragmento. No segundo passo, so consideradas as atualizaes com o objetivo de reduzir o custo de execuo das transaes de atualizao, atravs da diminuio do nmero de rplicas de

fragmentos alocadas no primeiro passo. O critrio para a retirada da rplica de um fragmento de um determinado n analisar o custo adicional gerado pela retirada (causado pelo aumento dos custos de leitura) e o benefcio alcanado (com a reduo dos custos de atualizao). Desta forma, para cada fragmento, retirada a rplica com a maior diferena entre o benefcio alcanado e o custo gerado com a retirada onde este valor seja maior que 0. Isto repetido at que o nmero de rplicas do fragmento seja igual a um ou no exista mais rplicas cuja diferena entre o benefcio e o custo da retirada seja maior que 0. Portanto, ao final desse passo, fica garantido que existe ao menos uma rplica de cada fragmento j alocados no passo anterior em um dos ns. Supondo uma rplica do fragmento fr alocada ao n st, temos que: Benefcio da retirada da rplica: definido como a eliminao do custo de execuo de todas as transaes de atualizao de fr em st, e calculado como na equao 5.


j =1 k =1

freqkj * umkr * CCcom(ctrjt, selkr * tamr)

(5)

Custo da retirada da rplica: definido como o custo adicional de execuo de todas as transaes de consulta de fr, e calculado somando o custo adicional em relao a todos os ns da rede. Para cada sj S, o custo adicional em relao a sj calculado da seguinte forma: suponha que sprox1 seja o n mais prximo de sj, e sprox2 o segundo n mais prximo de sj. Se sprox1 = st, ento o custo adicional em relao a sj a diferena entre o custo de consultar fr em sprox2 a partir de sj (T2) e o custo de consultar fr em sprox1 a partir de sj (T1). A funo dada por:

j =1

(T2 T1),

(6)

onde T1 = T2 =

k =1 q

freqkj * rmkr * CCcom(ctrjprox1, selkr * tamr) freqkj * rmkr * CCcom(ctrjprox2, selkr * tamr)

(7) (8)

k =1

O clculo de sprox1 e sprox2 feito da seguinte forma: Dado o n sv, sprox1 o n que contm fr e que possui o menor custo de transferir fr para sv, assim sprox1 definido pela equao 9. Min (ctrjv), (9) onde sj todo n que contm fr. sprox2 o n que possui o menor custo depois de sprox1. O segundo passo do algoritmo repetido para todo fi F. No terceiro passo do algoritmo, feita a alocao dos fragmentos que no foram alocados no primeiro passo, ou seja, so considerados os fragmentos que no so acessados por nenhuma transao de leitura, mas so atualizados por alguma transao. Este passo se justifica pelo fato de que a alocao realizada nos passos anteriores considera somente a matriz de acesso de leitura (RM) para distribuir os fragmentos nos ns da rede, e a matriz de atualizao considerada somente para eliminao das possveis replicaes. Deste modo, os fragmentos que so acessados somente para atualizao no so considerados na soluo obtida nos passos 1 e 2.

Neste passo, so consideradas as matrizes de atualizao UM e a de freqncia FREQ. Para cada fragmento ainda no alocado, encontrado o n que possui o menor tempo de espera em relao transao. O clculo do tempo de espera dado como: Para cada n que atualiza o fragmento calculado o custo de executar todas as transaes de atualizao sobre o fragmento, estando ele alocado neste n. Esse custo o produto da freqncia de execuo da transao pelo custo de comunicao entre o n que dispara a transao e o n candidato alocao do fragmento. Assim o n onde fr ser alocado sv Su onde: (10) umkr * freqkj * ctrlj,
sjS
tkT

seja mnimo, onde Su o conjunto o ns que atualizam fr. Portanto neste passo os fragmentos so alocados em um e somente um n. Em [5] os autores mostram que os resultados obtidos por seu algoritmo so melhores que o algoritmo proposto em [7]. Segundo [5], o problema considerado em ambos os trabalhos possui a mesma configurao. Segundo [5], a ordem de complexidade do algoritmo proposto no seu trabalho O(nm2q), onde n o nmero de fragmentos distintos, m o nmero de ns e q o nmero de transaes. A partir daqui o algoritmo proposto em [5] ser denominado Huang.
3.2. Algoritmo Aloc

A proposta deste trabalho o algoritmo Aloc que altera o primeiro passo do algoritmo anterior de maneira que a alocao inicial dos fragmentos considere tambm as transaes de atualizao. Deste modo, o ponto que difere o algoritmo Aloc do algoritmo Huang a distribuio inicial dos fragmentos. Durante o primeiro passo do algoritmo Aloc, uma rplica de cada fragmento alocada em cada n que dispare ao menos uma transao de leitura ou de atualizao a este fragmento, ou seja, dado o fragmento fi F e a transao tk T, onde rmki > 0 ou umki > 0, ento fatij = 1 para todo n sj S onde freqkj > 0 e (rmki > 0 ou umki > 0). Como no algoritmo anterior, no feita nenhuma anlise de custo para a distribuio dos fragmentos, portanto no existe um limite de replicaes para estes fragmentos. Ao final desse passo cada fragmento que acessado por alguma transao de leitura ou atualizao est alocado em ao menos um n da rede , fato que no acontecia no algoritmo Huang. O segundo passo idntico ao segundo passo do algoritmo Huang, porm no algoritmo Aloc criada uma lista LCO (Lista de Candidatas Ordenada) para cada fragmento, contendo todas as rplicas do fragmento onde a diferena entre o benefcio e o custo de sua retirada seja maior que zero, ordenada de forma decrescente. Desta forma, para um determinado fragmento, retira-se o primeiro elemento da sua LCO, e isto repetido at que o nmero de rplicas deste fragmento seja igual a um ou no existam mais elementos na LCO. Esta anlise feita para todos os fragmentos. As funes para definir o benefcio e o custo da retirada de uma determinada cpia de um fragmento seguem as definies apresentadas anteriormente (equaes 5 e 6, respectivamente). O algoritmo Huang no define explicitamente a utilizao de uma estrutura de lista no segundo passo de sua execuo, da mesma forma que no deixa claro se a ordem das rplicas de um determinado fragmento refeita a cada retirada de uma de suas rplicas. Finalmente, o terceiro passo do algoritmo Aloc considera todos os fragmentos que no so acessados por nenhuma transao. A alocao realizada de forma circular, ou seja, dado

o conjunto de fragmentos restantes Fr = {fr1, fr2, ..., frm} e o conjunto de ns S = {s1, s2,..., sm}, ento a alocao ocorre da seguinte forma: fat r1,1 = 1, fat r2,2 = 1,..., fat rm,m = 1, fat rm+1,1 = 1, .... Esta considerao no feita no algoritmo Huang e permite garantir a completude da alocao, ou seja, garantir que todo fragmento seja alocado em ao menos um n. Analisando-se as modificaes propostas pelo algoritmo Aloc em relao ao algoritmo original, pode-se verificar que h um aumento do espao de solues do algoritmo Aloc.
3.3. Anlise do comportamento dos algoritmos

A incluso de novas rplicas no passo 1 do algoritmo no altera o benefcio da retirada das rplicas dos fragmentos j que, de acordo com a funo para o clculo do benefcio da retirada de uma rplica, definido na equao 5, a alocao dos fragmentos nos ns que os atualizam no considerada neste clculo. Quanto ao custo da retirada de uma rplica, definido na equao 6, para cada n calculado o custo adicional de executar todas as transaes de leitura. Esse custo adicional definido como o acrscimo no custo das transaes de leitura advindo da retirada de uma rplica. Segundo esta funo, dado o fragmento fr e o n st de onde se quer retirar fr, o custo para cada n sj da rede calculado como a diferena entre o custo de executar todas as transaes de leitura no n sprox1 (que o n que apresenta o menor custo para st) e o custo de executar todas as transaes de leitura no n sprox2 (que o n que apresenta o segundo menor custo para st). Esta diferena s considerada se sprox1 for igual a st. Isto porque, considerando su um n que no executa nenhuma transao de leitura no fragmento fi, mas executa transaes de atualizao neste fragmento, conforme a funo do clculo do custo adicional definida na equao 6, sprox1 somente ser igual a su no clculo do custo adicional de retirar fi de su, pois sprox1 deve ser igual a st. Portanto isto no interfere o custo adicional dos demais ns. E se sprox2 for igual a su significa que custo de comunicao de su com sj o menor possvel, portanto o custo adicional final ser menor. Com isso conclui-se que a incluso de novas rplicas somente podem reduzir o custo da retirada de alguma(s) da(s) rplica(s) dos fragmentos. Conforme descrito, no segundo passo do algoritmo Aloc a eliminao das rplicas dos fragmentos feita segundo uma lista LCO. Como mostrado acima, a diferena entre os resultados no algoritmo Huang e no algoritmo Aloc se d pela ordem das rplicas em LCO para os fragmentos onde o nmero de rplicas, definidas no passo 1, seja diferente para os dois algoritmos. Assim podemos comparar o comportamento dos dois algoritmos com 6 casos diferentes variando a ordem da retirada das rplicas nos dois algoritmos: Considere, para os casos 1 e 2 descritos a seguir, um esquema de alocao onde o fragmento fj possua, na primeira iterao da eliminao de suas rplicas no passo 2 no algoritmo Aloc, a seguinte LCO: {si, sj,..., sk, su, sl,..., st, sn} sendo su um n que executa somente transaes de atualizao em fj. Caso 1: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {si, sj,..., sk, sl,..., st, sn} e no sofreu nenhuma alterao na sua ordem em nenhuma iterao do algoritmo; Caso 2: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {sj, si,..., sk, sl,..., st, sn} e no sofreu nenhuma alterao na sua ordem em nenhuma iterao do algoritmo;

Para os casos 3 e 4, considere um esquema de alocao onde o fragmento fj possua, na primeira iterao da eliminao de suas rplicas no passo 2 no algoritmo Aloc, a seguinte LCO: {si,..., sk, sl, su}, sendo su um n que executa somente transaes de atualizao em fj. Caso 3: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {si,..., sk, sl}; Caso 4: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {si,..., sl, sk}; Finalmente para os casos 5 e 6, considere um esquema de alocao onde o fragmento fj possua, na primeira iterao da eliminao de suas rplicas no passo 2 no algoritmo Aloc, a LCO da forma: {si,..., su, sk, sl}, sendo su um n que executa somente transaes de atualizao em fj. Caso 5: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {si,..., sk, sl}; Caso 6: No algoritmo Huang, considere a ordem da diferena entre o benefcio e o custo da retirada das rplicas de fj como {si,..., sl, sk}; Para os casos 1, 2 e 5, o resultado dos algoritmos sero idnticos, pois aps a retirada de fj de su o comportamento ser o mesmo para os dois algoritmos. Para o caso 3, o resultado do algoritmo Aloc ser melhor ou igual ao resultado do algoritmo Huang, pois a alocao final de fj ser em sl como no algoritmo Huang, ou em su que ser melhor. No caso 4 a possibilidade da alocao final ser no n su muito maior, pois se esta alocao alterou a ordem da lista significa que o custo de comunicao de su com outros ns baixa, conseqentemente o custo da retirada do fragmento do n alto. No foi encontrado nenhum caso onde ocorresse a situao 6. A alocao de fj em su somente acarretar alteraes muito grandes em LCO se o custo de comunicao de su com os fragmentos for baixo e se isso ocorrer, a alocao final de fj ser em su.
4. Resultados Experimentais

Esta seo apresenta os resultados experimentais que foram realizados executando o algoritmo Aloc, o algoritmo Huang e, em alguns casos, um algoritmo de busca exaustiva que encontra a soluo tima. Foram realizados dois grupos de experimentos. No primeiro grupo, os algoritmos foram executados para um conjunto de problemas pequenos gerados aleatoriamente, utilizando a mesma metodologia utilizada em [5]. Para um nmero fixo de ns, transaes e fragmentos, so geradas - aleatoriamente - variaes nos dados de entrada envolvendo a freqncia de transaes, custo de comunicao, fatores de seletividade, entre outros. O objetivo deste primeiro grupo de experimentos mostrar a utilidade do algoritmo proposto, comprovando o baixo custo das solues obtidas por ele atravs de comparaes com os resultados obtidos com o algoritmo Huang e com a soluo tima. A importncia destes testes se deve impossibilidade de executar o algoritmo de soluo tima para problemas maiores, com um nmero de solues possveis muito grande. No segundo grupo de experimentos, foram feitas simulaes com os algoritmos Aloc e Huang para um caso real baseado no Benchmark TPC-C [11]. Nos dois grupos de experimentos foi utilizado o modelo de custo apresentado na seo 2.

O modelo de custo descrito na seo 2 possui trs parmetros constantes: (i) Cini: custo de iniciar a transferncia de um pacote de dados; (ii) p_size tamanho do pacote de dados e (iii) VCini custo de construo do circuito virtual. Nos experimentos realizados foram considerados os mesmos valores adotados em [5]: Cini = 0,032 ms/byte, p_size = 6250 bytes e VCini 65,5676 ms. As figuras 1, 2, 3 e 4 mostram a relao entre os resultados obtidos com o algoritmo de busca exaustiva (soluo tima), os algoritmos Aloc e Huang para os casos aleatrios. Os grficos relacionam as variaes geradas com o custo de execuo das transaes no projeto de alocao.

1600 1400 1200 Custos 1000 800 600 400 200 0 1 2 3 Variaes
Figura 1 - 4 ns, 4 transaes e 4 fragmentos

Soluo tima Aloc Huang

3000 2500 2000 Custos 1500 1000 500 0 1 2 3 Variaes


Figura 2 - 4 ns, 5 transaes e 4 fragmentos

Soluo tima Aloc Huang

3500 3000 2500 Custos 2000 1500 1000 500 0 1 2 3 Variaes 4 5 Soluo tima Aloc Huang

Figura 3 - 4 ns, 4 transaes e 5 fragmentos


3500 3000 2500 Custos 2000 1500 1000 500 0 1 2 3 Variaes 4 5 Soluo tima Aloc Huang

Figura 4 - 5 ns, 4 transaes e 4 fragmentos

As figuras de 1 a 4 mostram que os resultados dos algoritmos Aloc e Huang se aproximam da soluo tima e em alguns casos o algoritmo Aloc apresenta uma reduo no custo de execuo das transaes em relao ao resultado apresentado pelo algoritmo Huang. A diferena entre os resultados apresentados pelos algoritmos Aloc e o Huang se acentua nas variaes 1 e 4 em todas as figuras acima. Isto se justifica pelo fato de que, nestes casos, na soluo final apresentada, existem fragmentos que foram alocados em ns que somente acessam estes fragmentos por transaes de atualizao. Especificamente para a variao 1 da figura 2, onde esta diferena ainda maior, verificou-se que ela reflete exatamente o custo de atualizao de um fragmento que foi alocado pelo algoritmo Aloc a um n que dispara somente transaes de atualizao a este fragmento. Se um determinado n que executa um maior nmero de transaes somente de atualizao possuir um custo de comunicao relativamente baixo com os demais ns da rede, o projeto de alocao do algoritmo Aloc ser mais eficiente que o projeto apresentado pelo algoritmo Huang. Por se tratarem de problemas pequenos, os custos so muito prximos da soluo tima. O objetivo dessa etapa foi mostrar a proximidade dos custos em relao soluo tima.

10

O segundo grupo de testes foi realizado segundo a especificao do TPC-C. Foram utilizadas todas as transaes especificadas no Benchmark. A fase de fragmentao do projeto de distribuio foi realizada utilizando-se os algoritmos propostos em [2] para escolha das tcnicas de fragmentao aplicadas s tabelas e [4] para definio dos fragmentos de cada tabela, resultando em um total de 17 fragmentos onde a tabela Order_Line sofreu fragmentao vertical gerando dois fragmentos, a tabela Item sofreu fragmentao hbrida gerando cinco fragmentos, a tabela Stock sofreu fragmentao horizontal derivada da tabela Item gerando quatro fragmentos e as tabelas Warehouse, District, History, New_Order, Customer e Order no sofreram fragmentao. Depois de realizada a fragmentao, alguns casos foram gerados variando a quantidade de ns e o custo de comunicao que no constam na especificao do BenchMark e fazendo uma pequena variao da matriz de freqncia permitida pela especificao. Em funo do tamanho do problema, e conseqentemente do grande nmero de solues viveis, no foram realizados experimentos com o algoritmo de soluo tima (cujo tempo de processamento inviabilizaria a sua execuo na prtica).
Tabela 1. Testes baseados no BenchMark TPC-C

Variaes 1 2 3 4 5 6 7 8 9 10

Ns 4 4 8 8 8 8 12 12 12 12

Huang 40.855.813 40.858.742 46.622.635 46.586.584 46.608.514 44.674.516 83.094.830 82.944.482 82.408.342 91.858.218

Aloc Ganho (%) 40.855.813 0 40.849.526 0,02 42.734.635 8,33 42.687.064 8,37 42.715.906 8,35 40.781.908 8,71 72.726.830 12,47 72.571.874 12,50 78.518.038 4,72 87.970.218 4,23

A tabela 1 mostra a relao entre os custos nos dois algoritmos. A coluna de variao expressa as mudanas realizadas nas matrizes dos dados de entrada, como freqncia de transaes (matriz FREQ) nas variaes de 1 a 10 e o custo de comunicao (matriz CTR) nas variaes 9 e 10, dentro das faixas especificadas no TPC-C. As variaes, mostradas na tabela 1, tambm refletem um nmero especfico de ns. Estes valores so representados na segunda coluna da tabela. Na ltima coluna da tabela 1 mostrada a porcentagem de ganho do algoritmo Aloc em relao ao algoritmo Huang. Verifica-se que em todas as variaes realizadas Aloc foi mais eficiente ou idntico ao algoritmo Huang. As variaes, mostradas na tabela 1, podem ser agrupadas por quantidade de ns em: grupo 1 (4 ns, variaes 1 e 2), grupo 2 (8 ns, variaes 3 a 6) e grupo 3 (12 ns, variaes 7 a 10) onde a diferena entre os elementos de cada grupo a matriz FREQ, exceto para as variaes 9 e 10 onde foram alterados tambm dados da matriz CTR. As figuras 5, 6 e 7 mostram os custos dos algoritmos para cada variao de cada grupo. Em todas as figuras o eixo de custo est na escala 1:103. Segundo estas figuras e a tabela 1 possvel verificar que a maior porcentagem de ganho ocorre nos casos onde o nmero de ns maior. Para todos os testes executados o custo do algoritmo Aloc foi menor.

11

40860 40858 40856


Custos

40854 40852 40850 40848 40846 40844 1


Variaes do problema

Huang Aloc

Figura 5. 4 ns, 8 transaes e 17 fragmentos 48000 47000 46000 45000 44000 43000 42000 41000 40000 39000 38000 37000 3 4 5 6
Variaes do problema

Custos

Huang Aloc

Figura 6. 8 ns, 8 transaes e 17 fragmentos

100000 90000 80000 70000 60000 50000 40000 30000 20000 10000 0 7 8 9 10 Variaes do problema
Figura 7. 12 ns, 8 transaes e 17 fragmentos

Custos

Huang Aloc

12

5. Concluses

Neste trabalho foi apresentada uma soluo para o problema de alocao de fragmentos em SBDD. O objetivo foi encontrar um algoritmo simples Aloc que busque se aproximar o quanto possvel de um problema real. Baseado em um trabalho previamente definido na literatura [5] que atende a estes quesitos, foi possvel encontrar uma soluo prxima de tima com uma pequena variao do seu mtodo de soluo, mantendo a complexidade do algoritmo e aumentando o custo de processamento do algoritmo em mdia em menos de 10%. Com essa variao o algoritmo Aloc conseguiu reduzir o custo da matriz de alocao para todos os casos onde exista ao menos um fragmento onde sua melhor alocao deva ser em um n que no execute nenhuma transao de leitura e somente atualizao deste fragmento. Alm disso, segundo experimentos realizados, possvel verificar que o algoritmo proposto apresenta resultados melhores que o algoritmo original proposto em [5] para problemas com maior nmero de ns e fragmentos. Estes experimentos foram realizados com um modelo proposto pelo TPC-C para representar o comportamento dos algoritmos em situaes reais. O algoritmo apresentado neste trabalho pode ser estendido tambm para problemas de alocao de dados em ambientes com distribuio e replicao como servidores web e alguns sistemas de integrao de banco de dados heterogneos. Isto possvel por tratar os fragmentos de forma genrica sem considerar o modelo de dados. A funo de custo utilizada neste trabalho foi baseada na funo de custo apresentada em [5]. Em seu trabalho, [5] faz uma comparao entre os custos obtidos com sua funo de custo e de experimentos reais realizados comprovando a proximidade entre os valores estimados e reais. Existem na literatura outros modelos de custo que consideram custo de processamento local como o apresentado em [8] que foi desprezado no modelo de [5]. Em trabalhos futuros pretendemos realizar experimentos considerando esses custos no modelo. Outros trabalhos futuros incluem a otimizao do algoritmo de soluo tima, a fim de viabilizar a comparao de seus resultados em problemas maiores. Ainda, como no algoritmo original este trabalho no considera alocao dinmica, ou seja, no considera a re-alocao de fragmentos, o que tambm ser tratado em trabalhos futuros.
6. Agradecimentos

Este trabalho foi parcialmente financiado pela CAPES, CNPq e FAPERJ.


7. Referncias

1. Ahmad, I., Karlapalem, K., Kwok, Yu, So, Siu, 2002, Evolutionary Algorithms for Allocating Data in Distributed Database Systems, Distributed and Parallel Databases 11(1), pp. 5-32. 2. Baio, F., Mattoso, M., Zaverucha, G., 1998, "Towards an Inductive Distributed Design of Object Oriented Databases". In: Proceedings of the "Third IFCIS Conference on Cooperative Information Systems" (CoopIS'98), IEEE CS Press, New York, USA, August, pp. 188-197. 3. Brunstom, A., Leutenegger, S. T., Simha, R., 1995. Experimental Evaluation of Dynamic Data Allocation Strategies in a Distributed Database With Changing Workloads. In Proc. Fourth Int'l Conf. on Information and Knowledge Management, ACM Press, pp. 395-402.

13

4. Cruz, F., Baio, F., Mattoso, M., Zaverucha, G., 2002, Towards a Theory Revision Approach for the Vertical Fragmentation of Object Oriented Databases. In: Proceedings of the XVI Brazilian Symposium on Artificial Intelligence (SBIA'02), Lectures Notes in Artificial Intelligence, Springer-Verlag, Recife, Rio de Janeiro, nov, pp. 216-226. 5. Huang, Y e Chen, J., 2001 Fragment Allocation in Distributed Database Design. Journal of Information Science and Engineering, 17 (3), pp.491-506. 6. Karlapalem, K., Pun, N., 1997. Query Driven Data Allocation Algorithms for Distributed Database System. In Proceedings of the 8th International Conference on Database and Expert Systems Applications (DEXA 1997), pp.347-356. 7. Lin, X., Orlowska, M., Zhang, Y., 1993 On data allocation with the minimum overall communication costs in distributed database design. In Proceedings of the Fifth International Conference on Computing and Information, pp 539-544. 8. zsu, M., Valduriez, P., 1999 Principles of Distributed Database Systems. PrenticeHall, 2nd. Edition. 9. Sacca, D. e Wiederhold, G., 1985. Database Partitioning in a Cluster of processors. ACM Transactions on Database System, 10(1), pp. 29-56. 10. Shepherd, J., Harangsri, B., Chen, H. e Ngu, A., 1995. A Two-Phase Approach to Data Allocation in Distributed Database. In: Database Systems for Advanced Applications. DASFAA, pp.380-387 . 11. TPC-C, 2003, Transaction Processing Performance Council Benchmark C, version 5. www. tpc.org/tpcc. 12. Barker, k., Bhar, S., 2001. A Graphical Approach to Allocating Class Fragments in Distributed Objectbase System. In: Distributed and Parallel Databases, 10, pp 207-239.

14

Você também pode gostar