Professional Documents
Culture Documents
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
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
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
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
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
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
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
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
30
20
10
Aceleracao Aceleracao
20
10 -10
4 Numero de Processadores
4 Numero de Processadores
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
100
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
700000 600000
10 DSMIO Paralelo DSMIO Tradicional
Number of Messages
U50 U10 R
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
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
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
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
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