You are on page 1of 15

XVII Simpsio Brasileiro de Banco de Dados

Avaliacao de Sistemas de Coer ncia de e Cache em Arquiteturas ODBMS Cliente-Servidor


Carla Osthoff,Cristiana Bentes,Daniel Ariosto,Marta Mattoso,Claudio L. Amorim LNCC/MCT, UERJ, UFRJ osthoff@lncc.br,ariosto,marta,amorim@cos.ufrj.br,cris@eng.uerj.br Resumo
Neste artigo, n s avaliamos o desempenho do algoritmo de coer ncia de cache de disco o e baseado em sistema de software de mem ria distribuda (DSMIO) nas arquiteturas de Siso temas Gerenciadores de Banco de Dados Orientados a Objeto (SGBDOO) cliente-servidor tradicional e cliente-servidor paralelo. A caracterstica principal do algoritmo de DSMIO e a utilizacao de um modelo de consist ncia de mem ria Lazy Release e um protocolo de e o m ltiplos escritores para reduzir a quantidade e o tamanho das mensagens de coer ncia, u e necess rias para manter um sistema distribudo SGBDOO coerente em um cluster de servia dores PCs. Avaliamos o desempenho do algoritmo DSMIO utilizando uma base de dados grande e aplicacoes com diferentes cargas de trabalho e o comparamos em relacao ao al goritmo Callback Locking (CBL). Nossos resultados mostram que o algoritmo de DSMIO apresenta um desempenho signicativamente superior ao sistema CBL, em ambas as arquiteturas, para operacoes com atualizacoes, enquanto que apresenta desempenho similar para aplicacoes de leitura. Nossos resultados sugerem que projetistas de sistemas SGBDOO, basea dos em cluster de PCs, devem considerar o algoritmo de DSMIO como uma opcao eciente, no desenvolvimento de futuros projetos para ambas as arquiteturas de SGBDOO.

Abstract
In this paper, we evaluate the performance of DSMIO cache-coherence algorithm implemented on both parallel servers architecture object-based database management system (ODBMS), and traditional client-server architecture ODBMS. The distinguishing feature of DSMIO is its use of the lazy release memory consistency model and multiple-writer protocol to reduce both the number and size of coherence messages required to keep coherent a distributed ODBMS across a cluster of PC servers. Using a large distributed database and several application workloads we evaluate DSMIO performance and also compare it against that of the well-known Call-Back Locking (CBL) algorithm. Our results show that DSMIO algorithm parallel architecture outperforms signicantly CBL for both architectures. Overall, these results suggest that designers of cluster-based ODBMS should consider DSMIO as an efcient option for developing future projects for both architecture ODBMS.

1. Introducao O problema de coer ncia de caches surge em diversos tipos de sistemas paralelos e e distribudos, incluindo sistemas de Mem ria Compartilhada Distribuda (sistemas o DSM) [1]. Na verdade, h muitas similaridades entre as t cnicas para co rencia de a e e caches aplicadas em sistemas de banco de dados paralelos e em sistemas DSM [8]. Al m disso, o estudo de co rencia de caches em banco de dados est intimamente ligae e a
68

XVII Simpsio Brasileiro de Banco de Dados

do ao estudo de controle de concorr ncia, dado que os dados que est o na cache podem e a ser acessados concorrentemente por m ltiplos clientes. Nosso trabalho e baseado na u observacao de que as t cnicas desenvolvidas para otimizar sistemas software DSM po e dem ser utilizadas para otimizar sistemas de banco de dados paralelos que utilizam caches no cliente. Sistemas de banco de dados paralelos podem se beneciar de t cnicas conhecidas em sistemas sofware DSM para reduzir o falso compartilhamento e quando a unidade de coer ncia e de uma p gina e, principalmente, para reduzir os e a gastos com a manutencao da coer ncia no caso de compartilhamento real. e Baseando-se nessas id ias, desenvolvemos em trabalho anterior o sistema DSMIO e [3] que prop e uma nova abordagem para a coer ncia de caches de sistemas ODBMS o e paralelos. O sistema DSMIO usa o modelo relaxado de consist ncia de mem ria, Lazy e o Release Consistency, e um protocolo que permite m ltiplos escritores numa p gina u a para limitar o n mero e o tamanho das mensagens de um sistema ODBMS paralelo u implementado em um cluster. Em um trabalho recente [3], avaliamos o impacto de DSMIO no desempenho de um sistema ODBMS paralelo num cluster moderno e de alto desempenho para v rias aplicacoes. a Neste trabalho n s avaliamos as v rias quest es de desempenho e de escalabilidade o a o de DSMIO em relacao a arquitetura cliente-servidor tradicional, onde apenas um dos n s processadores do sistema executa a funcao de servidor de base de dados enquanto o que os outros n s executam a funcao de clientes, e a arquitetura cliente-servidor pao ralela onde todos os n s do sistema executam ao mesmo tempo a funcao de servidor o de base de dados e de cliente. Utilizamos para isto um sistema ODBMS paralelo executando em um cluster de 8 processadores (dual-pentium 650 MHz com 512MB de mem ria) conectados por uma rede Myrinet de baixa lat ncia e alta banda passante o e (1.8 Gb/s). Utilizamos uma base grande no padr o 007 [6] (com 3 Gbytes) distribuda a pela rede e um conjunto de cargas de trabalho que nos permite avaliar o impacto dos gastos com a manutencao de coer ncia de cache para as arquiteturas testadas. e Para esta avaliacao n s utilizamos como base de comparacao o conhecido algo o ritmo CBL (CallBack Locking) usado para garantir a coer ncia das caches em sistemas e de banco de dados. Nossos resultados mostram que o desempenho do sistema DSMIO apresenta boa escalabilidade at 8 processadores para o sistema cliente-servidor parae lelo, para v rios tipos de carga e que o sistema cliente-servidor tradicional atinge a a saturacao para quatro clientes, enquanto que o sistema CBL apresenta boa escalabi lidade para o sistema cliente-servidor paralelo e tradicional apenas para as aplicacoes de leitura, atingindo a saturacao para a arquitetura cliente-servidor tradicional em 8 processadores. De uma forma geral, nossos resultados sugerem que projetistas de sistemas ODBMS paralelos devem considerar o sistema DSMIO como uma opcao eciente para o de senvolvimento de projetos futuros na area, n o s para arquiteturas cliente-servidor a o paralela como tamb m para arquiteturas cliente-servidor tradicional. e As contribuicoes desse artigo s o: (1) descricao de uma vers o melhorada do sis a a tema DSMIO que utiliza uma poltica eciente de substituicao na cache para suportar bases de dados muito grandes; e (2) avaliacao do desempenho de DSMIO contra o desempenho de CBL na mesma arquitetura para implementar sistemas de Banco de Dados nas arquiteturas cliente-servidor tradicional e cliente-servidor paralelo em um cluster de PCs.
69

XVII Simpsio Brasileiro de Banco de Dados

O artigo est organizado da seguinte forma. A secao 2 trata o problema de coer ncia a e de cache e descreve brevemente as solucoes propostas, que s o os algoritmos CBL e a DSMIO. A seguir, na secao 3, nos descrevemos a nossa metodologia experimental. Na secao 4, n s avaliamos o desempenho dos sistemas DSMIO e CBL para as arquite o turas cliente-servidor tradicional e cliente-servidor paralelo para v rios tipos de cargas a de trabalho. Na secao 5 n s discutimos os trabalhos relacionados e, por nal, na secao o 6 n s apresentamos as nossas conclus es e trabalhos futuros. o o 2. Algoritmos para Coer ncia de Cache em Sistemas ODBMS Paralelos e Sistemas ODBMS paralelos atuais empregam cache de disco nos clientes e no servidor para transformar os acessos ao disco em acessos a mem ria local. Entre` o tanto, a manutencao da coer ncia das diversas caches distribudas pode levar a s rios e e problemas de desempenho devido ao overhead gerado pelas mensagens de coer ncia. e Normalmente os algoritmos para manutencao da coer ncia de caches de sistemas e ODBMS s o classicados como baseados em prevencao ou baseados em deteccao. a Algoritmos baseados em deteccao permitem acessos a dados desatualizados na cache, mas detectam e resolvem eles numa operacao de commit, enquanto que os algorit mos baseados em prevencao evitam acessos a dados desatualizados dentro de uma transacao. Dados desatualizados se referem a dados na cache que n o est o atualiza a a dos porque outros clientes j realizaram commit de modicacoes no dado. Algoritmos a baseados em prevencao aumentam a quantidade de mensagens, enquanto que algorit mos baseados em deteccao geram alta taxa de transacoes abortadas. Mais comparacoes entre os algoritmos de coer ncia de cache podem ser encontradas em [16]. e Nesse trabalho, estamos interessados em algoritmos baseados em prevencao visto que nosso foco e de aplicacoes que n o permitem que uma transacao seja abortada. a Em particular, implementamos e usamos como refer ncia para as nossas comparacoes e o algoritmo CBL. Este algoritmo e um algoritmo sncrono baseado em prevencao que utiliza a p gina como unidade de coer ncia em que os clientes podem manter c pias a e o em cache dos dados e dos locks de leitura. CBL tamb m n o se adapta para compartie a lhamento com granularidade na, tal qual DSMIO. Portanto, consideramos que CBL prov uma base de comparacao bastante adequada para a nossa proposta. e Nossa avaliacao de DSMIO e realizada no contexto de um ODBMS com arquite tura cliente-servidor. Tipicamente uma arquitetura cliente-servidor emprega o modelo data-shipping em que um cliente busca o dado do servidor para a sua cache e realiza as operacoes de banco de dados localmente. Como CBL e DSMIO s o baseados a em p ginas, optamos por uma arquitetura cliente-servidor baseada em p ginas como a a plataforma em nossos estudos. 2.1. DSMIO - Uma Vis o Geral a O sistema DSMIO explora duas caractersticas muito importantes de sistemas soft ware DSM: modelo relaxado de consist ncia de mem ria e protocolo que permite a e o exist ncia de m ltiplos escritores em uma mesma p gina. e u a Modelos Relaxados de Consist ncia de Mem ria. Os modelos Release Cone o sistency (RC) e Lazy Release Consistency (LRC) s o os mais conhecidos modelos a
70

XVII Simpsio Brasileiro de Banco de Dados

relaxados de consist ncia de mem ria [1]. Eles s o baseados no princpio de que o e o a programador deixa claro no programa os pontos onde ele quer que os dados estejam consistentes, usando primitivas de sincronizacao como lock/unlock. Uma operacao de lock (lock acquire) e usada para ganhar acesso aos dados compartilhados e uma operacao unlock (lock release) para liberar o acesso aos mesmos dados. No modelo RC as modicacoes realizadas nos dados compartilhados por um de terminado cliente devem estar visveis aos outros clientes quando o lock for liberado (num lock release). No modelo LRC, por outro lado, somente o pr ximo cliente a o adquirir o lock (num lock acquire) v as modicacoes nos dados compartilhados que e foram realizadas anteriormente ao lock acquire. Para saber o que foi realizado anteriormente ao lock acquire, o modelo LRC divide a execucao do programa em intervalos de modo que se possa estabelecer uma ordem parcial entre os intervalos, baseando-se nos acessos de sincronizacao. Portanto, numa operacao de lock acquire o cliente requere do ultimo cliente que usou o lock as modicacoes realizadas nos intervalos anteriores ao dele. V rios sistemas software DSM implementam o modelo LRC de consist ncia de a e mem ria. O sistema TreadMarks [11] e o software DSM baseado em LRC mais cono hecido e foi utilizado como base na construcao de DSMIO. TreadMarks usa um proto colo de coer ncia baseado em invalidacoes. Na execucao de um lock acquire o cliente e e informado sobre as modicacoes realizadas nos dados compartilhados por avisos de escrita (write-notices). Um aviso de escrita apenas informa que uma p gina foi moa dicada durante um intervalo, mas n o cont m as atualizacoes propriamente ditas. O a e cliente quando recebe um aviso de escrita em uma p gina, invalida a respectiva p gina a a e somente no pr ximo acesso, quando ocorre uma falta de p gina, as modicacoes s o o a a efetivamente recebidas. Protocolo de Multiplos Escritores. O uso da p gina como unidade de coer ncia a e pode levar a s rios problemas de desempenho por conta do falso compartilhamento na e p gina. Para aliviar o problema do falso compartilhamento, TreadMarks usa protocolo a de m ltiplos escritores, que permite que m ltiplos clientes escrevam em uma p gina u u a concorrentemente, desde que em posicoes diferentes. Cada modicacao realizada na p gina e armazenada na forma de diffs. Um diff cont m somente a diferenca entre a a e p gina original e a p gina modicada. Quando todos os diffs s o aplicados a p gina a a a ` a original, obt m-se a vers o mais atualizada da p gina. e a a 2.2. O Algoritmo de Coer ncia de Cache de DSMIO e O sistema DSMIO integra uma estrutura de cache de disco com mecanismos de software DSM providos por TreadMarks da seguinte forma: 1. DSMIO usa a regi o de mem ria compartilhada estabelecida por TreadMarks a o como uma cache de disco compartilhada para armazenar os dados transferidos entre disco e mem ria. As modicacoes realizadas numa p gina, entretanto, s o mantidas o a a separadamente na mem ria local, na forma de diffs. o 2. DSMIO mat m a cache de disco compartilhada coerente, adaptando a implee mentacao do modelo LRC de TreadMarks, onde e denido estaticamente um n servi o
71

XVII Simpsio Brasileiro de Banco de Dados

dor para um conjunto de p ginas compartilhadas. O servidor de uma p gina e respona a s vel por manter as informacoes de coer ncia da p gina. a e a O sistema DSMIO fornece as tr s operacoes b sicas no disco: leitura, escrita e e a ush da cache. Essas operacoes ser o descritas brevemente a seguir, atrav s de exem a e plos simples sobre seu funcionamento. Uma descricao detalhada pode ser encontrada em [5]. Numa operacao de leitura, o cliente requisita a p gina ao servidor. Este l a p gina a e a do disco, armazena-a na cache compartilhada e envia uma c pia da mesma para o o cliente. Quando a p gina chega no cliente, ele verica se h avisos de escrita para a a ela, caso haja, ele requisita os respectivos diffs aos n s que modicaram a p gina o a anteriormente segundo o modelo LRC. Depois de receber todos os diffs, o cliente os aplica para gerar a vers o mais atualizada da pagina. a Numa operacao de escrita, o cliente primeiro inicia uma operacao de leitura para obter a vers o mais atualizada da p gina. Em seguida, ele cria uma c pia g mea a a o e da p gina atual. As escritas s o realizadas na p gina corrente. Assim que a p gina a a a a termina de ser alterada, ela e comparada a sua vers o anterior, armazenada na c pia a o g mea, gerando as diferencas entre elas na forma de diffs. Os diffs s o armazenados e a na memoria local do cliente e um aviso de escrita e criado relativo a modicacao reali ` zada. O aviso de escrita e incorporado ao intervalo em que o cliente est , dessa forma a mantemos inalteradas as estruturas de intervalos e avisos de escrita de TreadMarks. Uma operacao de ush na cache e executada por dois motivos: (1) quando a aplicacao termina; e (2) quando ocorre um overow na cache e o servidor tem que remover p ginas para liberar espaco. No segundo caso, o servidor utiliza uma poltica a FIFO para selecionar as p ginas que ser o descartadas. Quando uma p gina v lida a a a a e escolhida para remocao da cache, o servidor deve enviar mensagem de invalidacao a todos os clientes que a compartilham, para que eles marquem a p gina como n o a a disponivel para leitura (inv lida). O servidor aguarda mensagens de acknowlegment a dos clientes que foram noticados da remocao da p gina e, em seguida, escreve a a p gina a ser removida no disco, liberando espaco na cache. a 2.3. O Algoritmo de Coer ncia de Cache CBL e No algoritmo CBL, um cliente acessa uma p gina adquirindo um lock de escrita a ou um lock de leitura para aquela p gina. Quando um cliente tenta adquirir um lock a de leitura ou escrita para uma p gina, ele envia uma mensagem ao servidor da p gina a a e permanece bloqueado at conseguir uma resposta do servidor. Se n o h nenhum e a a outro cliente com a p gina na sua cache, o servidor responde a requisicao de lock a ` imediatamente. Caso contr rio, o servidor deve tomar medidas diferentes de acordo a com o tipo de lock (leitura ou escrita) pedido e o tipo de acesso que os outros clientes que mant m a p gina na cache est o fazendo (leitura ou escrita). Mais detalhes sobre e a a o funcionamento do algoritmo CBL podem ser encontrados em [7]. E importante notar que em CBL, antes de um lock ser adquirido, as escritas anteriores realizadas na p gina devem ter sido vistas pelo servidor e por todos os clientes a que mant m a p gina em sua cache. Portanto, o algoritmo CBL segue o modelo RC e a de consist ncia de mem ria. e o Em nossa implementacao de CBL, o servidor implementa a operacao de ush na
72

XVII Simpsio Brasileiro de Banco de Dados

cache de forma similar ao sistema DSMIO. A diferenca est apenas no fato de que o a protocolo de CBL e de unico escritor e, portanto, o ultimo cliente a escrever na p gina a possui a vers o mais atualizada dela. Logo, n o h necessidade de se coletar diffs antes a a a de escrever a p gina de volta no disco. a 2.4. CBL versus DSMIO As diferencas b sicas entre os algoritmos de DSMIO e CBL s o: a a 1. DSMIO permite m ltiplos escritores concorrentes numa mesma p gina, enu a quanto CBL permite apenas um unico escritor. 2. DSMIO possui um modelo de consist ncia mais relaxado que permite uma e dr stica reducao nos gastos com a manutencao de coer ncia dos dados. a e 3. O overow de cache e menos custoso em CBL. Por usar protocolo de unico escritor, CBL n o trata do problema de falso compar a tilhamento, restringindo a concorr ncia da aplicacao, dado que acessos em diferentes e objetos numa mesma p gina n o podem ser executados ao mesmo tempo. J em a a a DSMIO, que implementa protocolo de m ltiplos escritores com o uso de mecanismo u de diffs, v rios clientes podem estar acessando objetos diferentes numa mesma p gina a a concorrentemente. Como a unidade de coer ncia utilizada por CBL e DSMIO e muito e grande (uma p gina), o efeito do falso compartilhamento pode ter impacto bastante a negativo no desempenho de CBL. Al m do problema de falso compartilhamento, devido ao seu modelo de cone sist ncia, CBL sofre ainda do overhead de espera pelo callback. Espera pelo callback e e o overhead relativo ao tempo que o servidor espera para que todos os clientes que mant m a p gina em cache respondam ao pedido de lock naquela p gina. Um aumento e a a no n mero de clientes pode, portanto, ter impacto no desempenho de CBL, dado que u o overhead de espera pelo callback pode aumentar bastante. O modelo de consist ncia e LRC de DSMIO, por outro lado, traz as operacoes de coer ncia para o momento de e um lock acquire, onde apenas os dois clientes que est o respectivamente liberando e a adquirindo o lock trocam mensagens de coer ncia. Por conta disso, DSMIO deve ser e menos afetado pelos overheads de coer ncia que CBL, em que as operacoes de lock e release geram mensagens de coer ncia para todos os processadores que mant m c pia e e o da p gina, mesmo que eles n o a utilizem mais ou demorem bastante para utiliz -la. a a a Com relacao ao custo de uma operacao de ush na cache, o fato de CBL utilizar o modelo de consist ncia RC garante que apenas um processador possui a ultima vers o e a da p gina. Dessa forma, quando uma pagina e escolhida para ser descartada da cache, a nenhuma operacao de coer ncia e necess ria e a p gina pode ser imediatamente escrita e a a no disco. Em DSMIO, por outro lado, uma operacao de ush requer a execucao de uma operacao de sincronizacao para se coletar os diffs dos clientes remotos e para gerar uma vers o atualizada da p gina, antes de escrev -la para o disco. Um aumento no a a e numero de n s no sistema leva DSMIO a executar mais operacoes de ush e, portanto, o DSMIO e mais suscetvel ao overhead de ush na cache do que CBL.
73

XVII Simpsio Brasileiro de Banco de Dados

3. Metododologia e Carga de Trabalho 3.1. Plataforma de Hardware Implementamos os sistemas CBL e DSMIO em um cluster de 8 Dual-Pentium III (650MHz,512 MB) interconectados por uma rede de baixa lat ncia (9 s) e alta banda e passante (1.8 Gb/s), Myrinet. Utilizamos o protocolo de comunicacao UDP e a base de dados 007 [6] como base de refer ncia para os sistemas de ODBMS. e 3.2. Carga de Trabalho A estrutura da base de dados 007 consiste de uma arvore de tr s nveis de objetos e formada por objetos assembly, composite e atomic. Denimos a base de padr o 007 a grande como base para nossos experimentos. Al m da denicao da base, especicamos operacoes que obedecem ao padr o da e a aplicacao Traversal T3 do Benchmark 007, com e sem operacoes de atualizacao na base de dados e padr o de compartilhamento adotado em [4]. As variacoes de T3 s o a a referidas como aplicacoes de leitura e de atualizacao. O padr o de compartilhamento adotado em nossos experimentos e tal que cada n a o cliente pode ler e escrever em dados compartilhados em 20% dos acesso e pode apenas ler dados privados em 80% dos acessos. O compartilhamento de nossas aplicacoes e compartilhamento real, i.e., os dados atualizados s o efetivamente compartilhados a por todos os processadores do sistema. Este trabalho n o analisa os efeitos do falso a compartilhamento nos sistemas e os ganhos obtidos com o mecanismo de diffs de DSMIO, j que mostramos em trabalhos anteriores [3,5] , que os ganhos de desema penho com o uso de diffs em DSMIO s o muito pequenos quando comparados aos a ganhos obtidos pelo uso de modelo mais relaxado de consist ncia de mem ria. e o Por nal, distribumos a base de dados entre os discos dos processadores do sis tema, de forma a ter 75% dos dados acessado localmente e 25% dos dados acessados remotamente. 3.3. ODBMS DSMIO e CBL foram incorporados no ODBMS descrito em [9], que implementa uma arquitetura cliente-servidor. O cliente cont m o c digo da aplicacao, enquanto e o que o servidor executa os servicos de persist ncia de dados e o processamento das e consultas. Os n s clientes executam pedidos de p ginas para o servidor ODBMS. O o a modelo de dados do ODBMS adotado e baseado no padr o ODMG, de forma que o a esquema da base de dados e criado segundo o padr o ODL e o padr o OQL e utilizado a a para o armazenamento das colecoes dos objetos das consultas. Realizamos a avaliacao dos sistema DSMIO e CBL utilizando duas vers es de o cada sistema chamadas de tradicional e paralela. A vers o tradicional e um sistema a cliente/servidor tradicional onde apenas um dos n s do sistema executa a funcao de o servidor, enquanto que os outros n s do sistema executam apenas funcoes de clientes. o Na vers o paralela, a base de dados e distribuda entre todos os n s do sistema que a o executam as funcoes de servidores e de clientes.
74

XVII Simpsio Brasileiro de Banco de Dados

Na arquitetura de cache de CBL, cada processador possui a cache original do sistema ODBMS e uma cache para receber os dados do n servidor. Um n cliente o o primeiro acessa a sua cache local e, caso n o encontre o dado, ele executa um pedido a da sua respectiva p gina para o servidor. O servidor ir ler o dado da sua cache local a a ou do seu disco local, caso o dado ainda n o tenha sido acessado. a Na arquitetura de cache dos sistema DSMIO, a cache original do sistema ODBMS foi alterada de forma a termos apenas uma cache compartilhada. Quando um n cliente o n o encontra o objeto na sua cache, ele solicita a sua respectiva p gina para o n a a o servidor. 4. An lise de Resultados a Como n o existem benchmarks para avaliar o desempenho dos algoritmos de coa er ncia de cache em SGBDOOs, seguimos a avaliacao de desempenho adotada na area e [7,11]. Avaliamos o Benchmark OO7 (normalmente usado para SGBDOO seq enciais) u em conjunto com aplicacoes possuindo diferentes padr es de compartilhamento de da o dos apresentados na secao 3.2. De fato, consideramos em nossa avaliacao tr s aplicacoes com o padr o de com e a partilhamento apresentado na metodologia, mas com taxas de atualizacao crescentes. Mais especicamente, avaliamos uma aplicacao de leitura, R, com 0% de atualizacoes, e duas aplicacoes de atualizacao, U10 e U50, com taxas de atualizacao de 10% e 50% dos dados compartilhados, respectivamente. 4.1. Aplicacao de Leitura A gura 1 apresenta a taxa de aceleracao da execucao da aplicacao R para os algoritmos DSMIO e CBL nas arquiteturas tradicional e paralelo em relacao ao tempo de processamento em um sistema tradicional com algoritmo CBL e com 1 n cliente. o Comparando os sistemas paralelos com os tradicionais, obtivemos o resultado esperado de que o aumento do n mero de n s servidores e de n s clientes no sistema u o o permite que as esperas por mensagens remotas e por acessos a base de dados sejam mascaradas pela execucao em paralelo dos processos cliente e servidor em cada um dos processadores do sistema, e tamb m porque com o aumento do n mero de servie u dores no sistema a vaz o dos dados aumenta. a Analisando o desempenho de DSMIO, podemos observar pela gura 1 que, na arquitetura tradicional, a aceleracao comeca em 1.15 e atinge 3.8 para 4 processadores. A partir da, ocorre uma saturacao do servidor, pois a medida em que aumentamos ` o n mero de clientes para 6, a aceleracao continua a mesma chegando a sofrer uma u diminuicao de 3.7 em 8 processadores. O sistema paralelo, por outro lado, n o apre a senta saturacao em nenhum ponto, pelo contr rio, a aceleracao varia de de 3.6 para 1 a processador at 23 para 8 processadores. e Comparando o desempenho de DSMIO com CBL, podemos observar que DSMIO tem desempenho inferior a CBL para essa aplicacao. Isso ocorre porque DSMIO n o a conhece de antem o a caracterstica da aplicacao de possuir somente operacoes de a leitura. Dessa forma, DSMIO inclui overheads para a criacao da cache compartilhada. O primeiro deles se refere as operacoes de protecao de p ginas. Quando uma p gina ` a a
75

XVII Simpsio Brasileiro de Banco de Dados

30

CBL Paralelo DSMIO Paralelo CBL Tradicional DSMIO Tradicional

20

CBL Paralelo DSMIO Paralelo CBL Tradicional DSMIO Tradicional

10
Aceleracao Aceleracao

20

10 -10

4 Numero de Processadores

4 Numero de Processadores

Figure 1: Aceleracao da aplicacao R nos sistemas DSMIO e CBL paralelos e tradicionais

Figure 2: Aceleracao da aplicacao U10 nos sistemas DSMIO e CBL paralelos e tradicionais

e trazida do disco, ela deve ser protegida contra escritas, para que operacoes de es crita futuras possam se beneciar do mecanismo de difng. Embora a aplicacao n o a realize escritas propriamente ditas, as p ginas s o protegidas mesmo assim e, para tal, a a interrupcoes devem ser geradas para chamar o sistema operacional. Outro overhead de DSMIO por conta da cache compartilhada est na necessidade de se realizar uma a operacao de sincronizacao na ocorr ncia de um overow de cache. A sincronizacao e ocorre para que as informacoes sobre os dados modicados da cache possam ser atu alizados e salvos no disco. 4.2. Aplicacao de Atualizacao A gura 2 apresenta a taxa de aceleracao para a execucao da aplicacao U10 para os algoritmos DSMIO e CBL nas arquiteturas tradicional e paralela em relacao ao tempo de processamento em um sistema tradicional com algoritmo CBL e com 1 n cliente. o Tal qual na aplicacao de leitura, observamos que os sistemas paralelos apresentam melhor desempenho que os tradicionais, devido ao benefcio inerente do paralelismo. Al m disso, DSMIO na arquitetura tradicional, tamb m apresenta uma saturacao do e e servidor quando mais de 4 processadores s o empregados. a Na comparacao de DSMIO com CBL, entretanto, obtivemos resultados completa mente diferentes dos obtidos para a aplicacao de leitura. Na arquitetura tradicional, CBL sofre o que podemos chamar de uma desaceleracao ou slow-down a medida em ` que aumentamos o n mero de processadores, caindo da taxa de 1 para 1 n cliente at u o e uma taxa de -19 para 8 n s clientes. Observamos tamb m que o mesmo ocorre para a o e arquitetura paralela, mas com uma desaceleracao menor, onde uma taxa de aceleracao de valor 5.24 para 2 n s paralelos decresce a medida em que aumentamos o n mero de o u processadores de -5.2 para 4 processadores chegando a -7.3 para 8 processadores. Em CBL, os gastos com a manutencao de coer ncia s o muito grandes, em comparacao a e a `
76

XVII Simpsio Brasileiro de Banco de Dados

100

flush comm. others read write

50

DSMIO 1 Proc

DSMIO 8 Procs

CBL 1 Proc

CBL 8 Procs

Figure 3: Gastos (em %) para os sistemas paralelos dos algoritmos DSMIO e CBL para U10. reducao dos gastos gerada pela arquitetura paralela. Para melhor explicarmos estes resultados, apresentamos na gura 3 um perl dos overheads da aplicacao U10 para os dois algoritmos na arquitetura paralela, em sis temas com 1 e 8 processadores. A gura divide os gastos dos sistemas em quatro categorias principais: lock, ush, read, e write. As categorias lock e ush representam, respectivamente, a porcentagem do tempo de execucao gasto pela aplicacao nas operacoes de sincronizacao de locks e nas operacoes de sincronizacao executadas du rante as operacoes de ush. As categorias de leitura e escrita, ou read e write respec tivamente, relacionam a porcentagem do tempo de execucao gasto durante os acessos de leitura e de escrita de dados respectivamente. Analisando os resultados da gura 3, observamos primeiramente que, para ambos os sistemas paralelos, gastos com leitura e escrita s o reduzidos signicativamente. a CBL reduz o tempo de leitura drasticamente e n o apresenta reducao na escrita, ena quanto que DSMIO apresenta reducoes ainda mais signicativas no tempo de leitura e praticamente elimina o custo da escrita. Com relacao as operacoes de lock e ush, observamos que, em DSMIO, de 1 para ` 8 processadores o custo dessas operacoes apenas dobra, representando apenas 25% do tempo de execucao da aplicacao. J em em CBL, esse mesmo tempo aumenta de quase a duas ordens de grandeza, dominando o tempo de execucao da aplicacao (representando 90% do tempo total). Como CBL e DSMIO executam exatamente a mesma quantidade de sincronizacoes, vemos que o overhead dessas operacoes em CBL e respons vel pela a grande diferenca no desempenho dos dois sistemas. Como a carga U10 e dominada por operacoes de compartilhamento real, ou seja, as operacoes de atualizacao s o realizadas em dados compartilhados por todos os pro a cessadores do sistema, conclumos que a diferenca entre os resultados obtidos nos dois sistemas est no modelo de consist ncia empregado nos dois algoritmos. a e Analisando a gura 3, conclumos tamb m que, em DSMIO, o aumento do tempo e das operacoes de ush (de 9% em 1 processador para 37% em 8 processadores) e
77

XVII Simpsio Brasileiro de Banco de Dados

700000 600000
10 DSMIO Paralelo DSMIO Tradicional
Number of Messages

U50 U10 R

500000 400000 300000 200000 100000

Aceleracao

4 Numero de Processadores

5 Nprocs

Figure 4: Aceleracao da aplicacao U50 nos sistemas DSMIO e CBL paralelos e tradicionais

Figure 5: N mero de mensagens para R, u U10 e U50 para DSMIO no sistema paralelo

desprezvel em relacao ao ganho obtido com a reducao dos gastos com as operacoes de coer ncia. e Em um outro experimento, aumentamos signicativamente a taxa de escrita da aplicacao, 50% dos objetos selecionados pela consulta s o atualizados, utilizando a a aplicacao U50. Obtivemos resultados similares aos da aplicacao U10, como pode ser observado pela gura 4, que apresenta a taxa de aceleracao da aplicacao U50 para os algoritmos DSMIO nas arquiteturas tradicional e paralela em relacao ao tempo de processamento em um sistema tradicional com algoritmo DSMIO e 1 n cliente. Essa o gura nem mostra os resultados de CBL, j que para esta aplicacao a desaceleracao a nos sistemas CBL tradicional e paralela e muito grande, tornando CBL invi vel para a aplicacoes com altas taxas de escrita. A aplicacao U50 apresenta o mesmo perl de acesso a dados que a aplicacao U10, entretanto, a diferenca entre as duas aplicacoes est na taxa de atualizacao de dados. a Observamos que a diferenca fundamental entre os resultados das aplicacoes U10 e U50 est no aumento signicativo dos gastos com comunicacao, ou seja, no aumento do a n mero de mensagens geradas. Uma an lise detalhada dos gastos com a comunicacao u a do sistema DSMIO e apresentada a seguir. 4.3. Comunicacao Para ilustrar os gastos do sistema DSMIO com a comunicacao, apresentamos na gura 5 o n mero de mensagens geradas pelas aplicacoes R, U10 e U50 neste sistema. u Podemos observar que a aplicacao de leitura R apresenta um tr fego de comuni a cacao relativamente baixo, mesmo para 8 processadores. Nessa aplicacao o tr fego e a composto somente pelos pedidos de p ginas remotas e por suas respectivas mensagens a de conrmacao. Como era de se esperar, o sistema DSMIO gera consideravelmente muito mais
78

XVII Simpsio Brasileiro de Banco de Dados

mensagens para as aplicacoes de atualizacao. Observamos que aproximadamente 90% das mensagens que DSMIO gera para U10 e U50 ocorrem nos pontos de sincronizacao, quando as aplicacoes utilizam operacoes de lock e unlock para proteger os acessos aos dados compartilhados. Devido ao modelo LRC, a comunicacao ocorre apenas entre o processador que adquire o lock e o processador que foi o ultimo dono do lock, o que explica o pequeno gasto gerado nas operacoes de coer ncia no DSMIO. Como e resultado, o n mero de mensagens por processador diminui aproximadamente at a u e metade quando o n mero de processadores varia de 2 para 8. Por exemplo, para U10, u o n mero de mensagens por processador e de 40000 com 2 processadores e de 20000 u com 8 processadores. Para U50, o n mero de mensagens por processador e de 140000 u com 2 processadores e de menos de 78000 com 8 processadores. Observamos tamb m que o restante da comunicacao (aproximadamente 10%) core responde aos pedidos de dados por p ginas e por diffs. O baixo tr fego de comunicacao a a e devido ao protocolo de m ltiplos escritores do sistema DSMIO e a utilizacao dos me u canismos de diffs. Por nal, a rede Myrinet fornece uma rede de comunicacao de baixa lat ncia e alta vaz o de dados, reduzindo signicativamente os gastos nas transmiss es e a o das mensagens, diminuindo o seu impacto no desempenho do sistema paralelo. E importante observar que as operacoes de entrada e sada de disco n o afetam o a desempenho dos sistemas, devido ao eciente mecanismo de prefetching do sistema operacional LINUX. Mais especicamente, com 512MB de mem ria em cada proceso sador, e possvel armazenar 1/8 da base de dados de 3GB em mem ria principal. Dessa o forma, o sistema de prefetching do Linux pode antecipar e esconder a maior parte das operacoes de entrada e sada de disco. 5. Trabalhos Relacionados Existem v rios trabalhos em sistemas DBMS distribudos orientados a objetos e a relacionais que t m como objetivo estudar as quest es relacionadas com a consist ncia e o e de cache, em sistemas de arquitetura cliente-servidor. Em particular, uma vers o adapa tativa do algoritmo CBL, chamada de ACBL [4], foi proposta para atacar os problemas relacionados com o efeito do falso compartilhamento no sistema CBL. O algoritmo ACBL e considerado como o algoritmo mais eciente desta classe. De forma diferente do algoritmo CBL, o algoritmo ACBL pode adaptar o seu sistema de lock seja no nvel do objeto, seja no nvel da p gina conforme a granularidade de acesso da aplicacao. a Escolhemos como base para a avaliacao do algoritmo DSMIO o algoritmo CBL por serem ambos algoritmos baseados em sistemas servidor de p ginas com acessos as a ` aplicacoes realizados no nvel do objeto. Somando-se a isto, os servidores de dados em nvel de objetos e os servidores de dados em nvel de p ginas s o as arquiteturas mais adotadas para no desenvolvimento a a ODBMS. Existem trabalhos recentes que apresentam uma arquitetura com o algoritmo de coer ncia de cache ACBL e que se adapta entre as duas arquiteturas de servidores e [17], de forma que o servidor possa se adaptar a servidor de p ginas, ou a servidor a de objetos de acordo com o comportamento da aplicacao. N s planejamos, em um o trabalho futuro, implementar e comparar uma vers o ACBL com servidor adaptativo a entre objeto e p gina com relacao a uma vers o de servidor adaptativa equivalente do a a sistema DSMIO.
79

XVII Simpsio Brasileiro de Banco de Dados

Apesar de muitos esforcos terem sido realizados para desenvolver sistemas de soft ware DSM de forma eciente para aplicacoes cientcas, poucos trabalhos t m sido de e senvolvidos para aplicacoes em sistemas de SGBD paralelos [13,15]. O trabalho [13] utiliza o software DSM TreadMarks como uma plataforma para executar aplicacoes DBMS Postgres. De forma diferente do nosso trabalho, eles n o implementaram a modicacoes no sistema software DSM. O trabalho [15] executa operacoes de con sulta no sistema de banco de dados comercial ORACLE sobre um cluster, usando um software DSM de granularidade na chamado de SHASTA. A diferenca principal em relacao ao nosso trabalho est no fato de que SHASTA necessita de suporte no nvel a do compilador para re-escrever as vers es em c digo bin rio das aplicacoes. o o a Sistemas cliente-servidor possuem unidade de coer ncia de dados baseados em e p ginas, assim como DSMIO e a maioria dos sistemas de software DSM existentes. a Para aplicarmos o algoritmo DSMIO no contexto de sistema de banco de dados relacionais, teramos que alterar a sua granularidade de coer ncia de dados de tal forma e que n o poderamos mais adotar o protocolo de coer ncia de dados implementados a e por TreadMarks. Entretanto, o modelo relaxado de consist ncia de mem ria, Lazy Ree o lease Consistency poderia ser implementado na manutencao da coer ncia de dados de e sistemas de caches de SGBD relacionais. 6. Conclus es e Trabalhos Futuros o Neste artigo, avaliamos a eci ncia do sistema de coer ncia de cache DSMIO em e e arquiteturas ODBMS cliente-servidor tradicional e cliente-servidor paralelo num cluster de PCs. Nossos experimentos mostram que o desempenho do sistema DSMIO apresenta boa escalabilidade no sistema cliente-servidor paralelo, para todas as aplicacoes testadas, enquanto que o algoritmo CBL apresenta slow-down para aplicacoes com atualizacao de objetos. No sistema cliente-servidor tradicional, para aplicacao de leitura, o uso do algoritmo DSMIO n o impede que o servidor venha a atingir a a saturacao com poucos clientes, assim como para o algoritmo CBL, enquanto que para aplicacoes com atualizacao de objetos, o algoritmo DSMIO apresenta um desempenho muito superior ao do algoritmo CBL. Mais importante ainda, nossos experimentos mostram que o modelo de consist ncia e Lazy Release e a principal causa do bom desempenho do sistema DSMIO. Os resulta dos nos levam a concluir que o sistema DSMIO e uma opcao eciente para aumentar o desempenho em um sistema ODBMS paralelo baseado em cluster de PCs. Pretendemos a seguir, implementar e comparar vers es adaptativas do sistema o DSMIO com as respectivas vers es adaptativas do sistema CBL. Pretendemos tamb m o e avaliar o sistema de servidor paralelo DSMIO para aplicacoes de com rcio eletr nico e o no contexto do projeto NCP3 [12]. 7. Agradecimentos Este trabalho foi parcialmente nanciado pelo CNPq, pela FINEP e pela FAPERJ.

80

XVII Simpsio Brasileiro de Banco de Dados

Refer ncias e [1] S. V. Adve and K. Gharachorloo. Shared Memory Consistency Models: A Tutorial. IEEE Computer, December 1996. [2] Y.Breibart, R. Komondoor, R. Rastogi, S.Seshdri. Update Propagation Protocols for Replicated Databases. In Bell Labs Technichal Reports. [3] Evaluating the DSMIO Cache-Coherence Algorithm in Cluster-Based Parallel Object-Oriented Database Management Systems. In Proceedings of the 8th International Conference on Object-Oriented Information Systems, Montpellier, Frana, 2002 [4] M. J. Carey, M. J. Franklin, and M. Zaharioudakis. Fine-Grained Sharing in a Page Server OODBMS. In Proceedings ACM SIGMOD Conference, 1990. [5] C. Osthoff, M. Mattoso, C. Seidel, R. Bianchini and C. L. Amorim. Avaliacao do Algoritmo de Coer ncia de Cachede Disco DSMIO. In Proceedings of SBBD, sept. e 2000. [6] M. J. Carey, D. J. DeWitt, and J. F. Naughton. The 007 Benchmark. In Proceedings of the ACM SIGMOD International Conference on Management of Data, pp.12-21, 1993. [7] M. J. Franklin and M. J. Carey. Client-Server Caching Revisited. In Technical Report 1089, Computer Science Department, University of Wisconsin-Madison, May 1992. [8] M. J. Franklin, M. J. Carey, and M. Livny. Transactional Client-Server Cache Consistency: Alternatives and Performance. In ACM Transactions On DataBase Systems, Sept. 1997. [9] GOA . http:://www.cos.ufrj.br/ goa [10] B.Kemme, G.Alonso.Dont be lazy, be consistent: Postgres-R, a new way to implement Database Replication. In Proceedings of th 26th VLDB Conference, Cairo, Egypt,2000. [11] P. Keleher, S. Dwarkadas, A. L. Cox, and W. Zwaenepoel. Treadmarks: Distributed Shared Memory on Standard Workstations and Operating Systems. In Proceedings of the 1994 Winter USENIX Conference, January 1994. [12] ncp3. http://www.cos.ufrj.br [13] T. Parker, and A. Cox. I/O-Oriented Applications on a Software DistributedShared Memory System. Master of Science Thesis - Computer Science Dept- Rice university, 1999. [14] E.Pacitti, P. Minet, E.Simon. Fast Lagorithms for Maintaining Replica Consistency in Lazy Master Replicated databases. In Proceedings fo the 25th VLDB Conference, Edinburgh, Scotland 1999. [15] D. J. Scales, K. Gharachorloo, and C. A. Thekkath. Shasta: A Low Overhead, Software-Only Approach for Supporting Fine-Grain Shared Memory. In Proceedings of the 7th Symp. on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VII), October 1996. [16] M. Ozsu, K. Voruganti, and R. Unrau. An Asynchronous Avoidance-Based Cache Consistency Algorithm for Client Caching DBMSs. In Proceedings of the 24th
81

XVII Simpsio Brasileiro de Banco de Dados

Very Large DataBases Conference, 1998. [17] K. Voruganti, M. Ozsu, and R. Unrau. An Adaptative Hybrid Server Architecture for Client-Caching Object DBMS. In Proceedings of the 25th Very Large DataBases Conference, 1999.

82

You might also like