Design and Performance Analysis of a Distributed Java Virtual Machine Felipe Damasio Rita Kalile Almeida Andrade Mihai Surdeanu, Member, IEEE; Dan Moldovan, Senior Member, IEEE
Motivação Aplicações complexas Paralelismo Em java SMP RMI Custos adicionais de hardware. Mais complexidade do software. Obter paralelismo com uma rede de workstations Utilizar JVM distribuída de memória compartilhada (DMS).
Estado da Arte Page-based DSM systems (IVY, TreadMarks, Coherent Virtual Machine, Millipede) IVY: Consistência seqüencial usando um protocolo single-writer multiple-reader. Há muita troca de mensagem Falso compartilhamento (false sharing) O TreadMarks atenuou com o Lazy Release Consistency Os demais reduzem a troca de mensagens com thread migration Shared-variable DSM systems (Munin, Midway) Programador anota variáveis compartilhadas e o protocolo desejado da consistência com palavras reservadas
Estado da Arte Object-based DSM systems (Linda, Orca) Linda: Baseado em tuplas. Consistência por broadcasting para os nós do sistema. Orca: Broadcast confiável. Consistência sequencial. Java-Based Distributed Environment (JavaParty) Usa palavras reservadas para marcar objetos compartilhados Traduz o código para um código Java RMI. Programador tem que informar quais variáveis são locais e compartilhadas.
Objetivos Projetar de uma máquina virtual compartilhada distribuída: Correta (em conformidade com a especificação da Máquina Virtual Java (JVMS)); Utilizar memória compartilhada distribuída (DSM). Permite executar de maneira transparente para a aplicação (sem modificar o código);
A Plataforma DISK (DIStributed Kaffe) Conjunto de nodos conectados via TCP; Usa a JVM Kaffe; Possui garbage collector e compilador JIT; Gerenciamento de threads distribuídas; Serviços de E/S distribuídos (DSM);
Protocolo OMW (Object-Based Multiple-Writer) Adaptação do modelo Update-Based, Multiple-Writer Lazy Release Consistency [Keleher 1994] Classifica automaticamente objetos como sendo compartilhados ou não-compartilhados; Pesquisas mostram que mais de 90% dos objetos em aplicações java não são compartilhados [Dieckemann, 1998] ; Evita completamente as falhas de acesso; Até que um objeto esteja acessível por uma thread remota, o protocolo marca-a como não-compartilhado; Reduz o overhead de consistência (tráfego);
Protocolo OMW (Object-Based Multiple-Writer) É descentralizado (quase) totalmente. Objetos compartilhados protegidos por variáveis da sincronização; Possui um lock directory usando para serializar as requisições de sincronizações; Cada objeto possui um copyset; Conjunto de nodos que possuem cópias do objeto; Ao ser atualizado, existem 2 possibilidades: Se o nodo de leitura estiver no copyset, recebe um diff contendo somente os campos alterados; Se o nodo não estiver no copyset, uma cópia do objeto é enviada (e ele é adicionado ao copyset);
OMW vs outros DSM Munin: Programador precisa explicitar no código variáveis compartilhadas e não compartilhadas; OMW faz a classficação de maneira automática; Usa timer para marcar páginas inválidas; OMW usa garbage collector para descartar objetos desnecessários; Midway: Programador explicita no código variáveis compartilhadas; OMW faz a classficação de maneira automática;
Resultados Testes realizados com DISK: Usando OMW e protocolo Lazy-Invalidate (LI) tradicional; 16 nodos PIII 450MHz numa rede FastEthernet 100mbps; Kernel Linux ; Multiplicação paralela de uma matriz 640x640; Análise de vazão e mensagens dos protocolos
Conclusões Facilidade de uso do DISK; Não é necessário alterar o código da aplicação; Baixo overhead com relação a outros protocolos; Somente manda diffs das atualizações; Somente atualiza objetos marcados compartilhados; Flexibilidade de interconexão de redes; Possui módulo de tradução de mensagens de diferentes tipos de redes, conexão a redes heterogêneas;
Bibliografia M. Surdeanu and D. Moldovan; Design and Performance Analysis of a Distributed Java Virtual Machine; IEEE Transactions on Parallel and distributed systems; Vol. 13; No. 6; Jun; páginas ; K. Thitikamol and P. Keleher; Thread Migration and Communication Minimization in DSM Systems; Proc. IEEE; Mar; 1999; S. Dieckemann and U.HOlzle, A Study of the Allocation Behavior of the SPECjvm98 Java Benchmarks. Technical report RTC98-33; Univ. of California; Santa Barbara, USA; Dez; 1998;
Avaliação Motivação: 5 Problemas solucionados: 4 Protótipo: 4 Resultados: 5 Comparação com outros trabalhos: 5 Redação: 4
Design and Performance Analysis of a Distributed Java Virtual Machine Felipe Damasio Rita Kalile Almeida Andrade Mihai Surdeanu, Member, IEEE; Dan Moldovan, Senior Member, IEEE