Utilizando kd-trees para particionar o ambiente virtual e balancear dinamicamente a carga sobre servidores de MMOGs Carlos Eduardo Benevides Bezerra CMP189.

Slides:



Advertisements
Apresentações semelhantes
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Advertisements

Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999:
Prof. Humberto Pinheiro, Ph.D.
Inversor Trifásicos com Três Pernas
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Celso C. Ribeiro Caroline T. Rocha
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Suporte distribuído a jogos MMG em cenários com recursos limitados
1 / 35 A fine granularity load balancing technique for MMOG servers using a kd-tree to partition the space Carlos Eduardo Benevides BezerraVIII SBGames,
paralela e Carlos Eduardo Benevides Bezerra
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 11.
Propagação de Ondas e Antenas
Universidade Bandeirante de São Paulo Fundamentos da Álgebra
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Metodologia Científica e Tecnológica
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Arquitetura de Sistemas Operacionais Francis Berenger Machado
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
Arquivos Seqüenciais Inhaúma Neves Ferraz
1 Sabendo-se que os pratos das balanças estão em equilíbrio, você seria capaz de dizer: Quantos quadrados corresponde um círculo ? Dica Mais dicas Elaboração:
Projeto e Análise de Algoritmos
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Auditoria de Segurança da Informação
Organização da Memória Principal
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Experiments with Strassen’s Algorithm: from sequential to parallel
Lidando com cheating em uma arquitetura multiservidor para MMOGs
1 Felipe L. Severino Lidando com cheating em uma arquitetura multiservidor para MMOGs Felipe L. Severino Orientador: Prof. Dr. Claudio Geyer paralela e.
1 Felipe L. SeverinoPDP Enhancing Grids for Massively Multiplayer Online Computer Games Felipe L. Severino Programação com Objetos Distribuídos paralela.
Provas de Concursos Anteriores
TENSÕES E CORRENTES EM CIRCUITOS TRIFÁSICOS BALANCEADOS Sistemas de potência são alimentados por geradores trifásicos. De maneira ideal, os geradores suprem.
Lucas Bondan, Maicon Kist, Rafael Kunst, Cristiano B
Módulo Financeiro Centro de Custo.
IDENTIFICAÇÃO, MODELAGEM E ANÁLISE DE PROCESSOS Luís Gonzaga Trabasso
Como aplicar leis da lógica
Criação de objetos da AD 1Luis Rodrigues e Claudia Luz.
MECÂNICA - ESTÁTICA Esforços Internos Cap. 7.
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap Exercícios.
Object Oriented Software Construction (MEYER, Bertrand)
Conversão de um NFA para um DFA com um exemplo
GAPH Integração de Hardware do Usuário ao CoreConnect Leandro Heleno Möller e Leonel Pablo Tedesco Prototipação Rápida e Computação.
Estruturas de Dados com Jogos
Engenharia Elétrica ANTENAS E PROPAGAÇÃO Parte 2 Nono Semestre
Celso C. Ribeiro Caroline T. Rocha
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2010 Ministro Paulo Bernardo Silva Brasília, 31 de agosto de 2009.
Introdução teórica A modulação em freqüência consiste na variação da freqüência da portadora proporcionalmente ao sinal de informação. Dado o sinal modulador.
Centro de Gravidade e Centróide Cap. 9
EXERCÍCIOS PARA GUARDA-REDES
Rotação Simples e Dupla Katia Guimarães
Técnicas de Modelagem para Aplicações em Computação Gráfica
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Grupo A – Azul Claro, Marrom, Laranja
Conceitos básicos em grafos
Preleções Científicas Universidade Estadual do Ceará Pró-Reitoria de Extensão Integrais Múltiplas e Integrais de Volume Ministrante: Prof. K. David Sabóia.
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Diagramas de Venn e de Carroll Não se chamam propriamente ferramentas/instrumentos estatísticos mas ajudam a organizar de uma forma simples alguns tipos.
Rio Verde - Goiás - Brasil
1 Segunda fase do projeto: Desenvolvimento do “Catálogo Virtual” Foco em Sistemas de Informação Desenvolvimento baseado no diagnóstico e na interação com.
Cinemática Plana de um Corpo Rígido Cap. 16
Introdução aos Protocolos de Roteamento Dinâmico
Tecnologias - Matemática desvio médio, desvio-padrão e variância
Técnicas de Localização para Robôs em Ambientes Internos Claudia Patricia Ochoa Díaz Mestrado em Sistemas Mecatrônicos UnB
GINÁSTICA LABORAL UM NOVO CAMINHO.
1 / 38 Suporte distribuído a MMOGs em cenários com recursos limitados Carlos Eduardo Benevides Bezerra Suporte distribuído a MMOGs em cenários com recursos.
Transcrição da apresentação:

Utilizando kd-trees para particionar o ambiente virtual e balancear dinamicamente a carga sobre servidores de MMOGs Carlos Eduardo Benevides Bezerra CMP189 – Algoritmos Geométricos Prof. João Luiz Dihl Comba Porto Alegre, 13 de julho de 2009

Problema Dado um espaço bidimensional, através do qual estão distribuídos avatares (pontos), dividí-lo em N regiões, de forma que: f(Si) seja o mesmo* para todas as regiões Ri, onde a função f(S) calcula a carga de uma região com base no conjunto S de avatares contidos nela Como geralmente não é possível que f(Si) seja exatamente o mesmo, o objetivo é minimizar o seu desvio. Dada uma divisão onde o f(Si) de uma região Ri desvia além do tolerável, modificar a divisão de maneira que a carga de Ri esteja dentro de um limite aceitável

Exemplo

Em MMOGs, existem dezenas de milhares de jogadores simultâneos Contexto Em MMOGs, existem dezenas de milhares de jogadores simultâneos Solução: multi-servidor O ambiente do jogo é dividido em partições, cada uma administrada por um servidor Cada jogador precisa de atualizações de estado do ambiente do jogo (uso da banda de upload do server) A carga sobre os servidores deve ser rebalanceada, sempre que algum deles estiver sobrecarregado

Trabalhos Relacionados (De Vleeschauwer et al., 2005) Dynamic microcell assignment for massively multiplayer online gaming. In: Proceedings of the ACM SIGCOMM workshop on Network and system support for games, NetGames (Ahmed; Shirmohammadi, 2008) A Microcell Oriented Load Balancing Model for Collaborative Virtual Environments. In: Proceedings of the IEEE Conference on Virtual Environments, Human- Computer Interfaces and Measurement Systems (Bezerra; Geyer, 2009) A load balancing scheme for massively multiplayer online games. In: Massively Multiuser Online Gaming Systems and Applications, Special Issue of Springer’s Multimedia Tools and Applications

Propõe-se uma divisão do espaço em células estáticas de mesmo tamanho Células e regiões Propõe-se uma divisão do espaço em células estáticas de mesmo tamanho As células são agrupadas, formando uma região, que é então atribuída a um servidor Para rebalancear a carga, as células são transferidas entre regiões

Exemplo de divisão em células

Exemplo de divisão em células

Exemplo de divisão em células

Exemplo de divisão em células [Bezerra e Geyer, 2009] : uso de algoritmo para particionamento de grafo (Progrega); e transferência de células para servidores cuja carga se aproximaria mais de sua parcela ideal (BFBCT) [Ahmed e Shirmohammadi, 2008] : busca por células isoladas (menor aglomeradode células do mesmo servidor)

Granularidade da distribuição KD-Tree Células

KD-Tree Divisão inicial Rebalanceamento Abordagem proposta A cada passo é definida uma coordenada de divisão que reparta o conjunto de avatares em dois conjuntos de carga semelhante Rebalanceamento As coordenadas x e y das linhas de divisão são modificadas Feito primeiro no nível das folhas, partindo do corte entre a região sobrecarregada e sua região vizinha Percorre-se a árvore enquanto a divisão não satisfizer o critério de balanceamento

filho_esquerda = new nó(id, nível + 1); Criação da kd-tree Construção simples da árvore balanceada filho_esquerda = new nó(id, nível + 1); filho_esquerda = new nó(id + 2nível, nível + 1);

Informações nos nós da árvore Além da coordenada de divisão, cada nodo armazena: Capacidade Carga A capacidade de um nodo é igual à soma das capacidades de seus dois filhos (o mesmo para a carga) Cada nó folha é associado a uma região e a um servidor Carga e capacidade são os mesmos do servidor associado

Rebalanceamento Um servidor está sobrecarregado quando o nó correspondente na kd-tree tem uma carga maior que sua capacidade Sobe-se recursivamente na árvore, até encontrar um nó ancestral com capacidade maior ou igual à carga, ou chegar à raiz Requisita-se a lista de avatares, carga e capacidade dos servidores servindo a região associada a cada nó visitado Ajusta-se a coordenada de divisão do nó de forma a balancear a carga entre as duas sub-árvores filhas dele Os filhos desse nó são percorridos recursivamente, reajustando as coordenadas de divisão e rebalanceando, conforme necessário Se atingir a raiz e não houver capacidade suficiente, rebalanceie de qualquer modo para manter os servidores igualmente sobrecarregados

Exemplo (1/5)

Exemplo (2/5)

Exemplo (3/5)

Exemplo (4/5)

Exemplo (5/5)

Cálculo da carga em um MMOG A carga da região depende da distribuição dos avatares dos jogadores Cada jogador deve receber atualizações de estado de seu próprio avatar e daqueles com quem interage

Algoritmos simulados: KDTree Simulações Algoritmos simulados: KDTree Progrega (Bezerra e Geyer, 2008) BFBCT (Bezerra e Geyer, 2008) “Ahmed” (Ahmed e Shirmohammadi, 2008) Parâmetros: Sistema com 8 servidores, com recursos heterogêneos 750 avatares Área de 750x750 u.a. Duas situações: Com hotspots (pontos ao redor dos quais os jogadores se concentram) Sem hotspots (distribuição mais ou menos uniforme dos avatares no ambiente)

Proporcionalidade da distribuição de carga Métricas utilizadas Proporcionalidade da distribuição de carga Após um rebalanceamento, a parcela de carga de um servidor deve ser proporcional à sua parcela de recursos no sistema Migrações de jogadores Muitas divisões entre regiões e muitos rebalanceamentos causam desconexões e reconexões de jogadores de um servidor para outro Overhead da distribuição Jogadores interagindo, porém conectados a servidores diferentes, causam uma carga adicional no sistema

Distribuição – sem hotspots

Distribuição – com hotspots

Desvio do uso ideal – sem hotspots 1. KDTree 2. BFBCT 3. Progrega 4. Ahmed

Desvio do uso ideal – com hotspots 1. KDTree 2. Ahmed 3. BFBCT 4. Progrega

Migrações de jogadores entre servidores – sem hotspots 1. Progrega 2. KDTree 3. Ahmed 4. BFBCT

Migrações de jogadores entre servidores – com hotspots 1. KDTree 2. Ahmed 3. Progrega 4. BFBCT

Overhead – sem hotspots 1. KDTree 2. Progrega 3. Ahmed 4. BFBCT

Overhead – com hotspots 1. Progrega 2. KDTree 3. Ahmed 4. BFBCT

O uso da kd-tree proporcionou algumas vantagens: Conclusões O uso da kd-tree proporcionou algumas vantagens: Granularidade mais fina que a grade de células Distribuição mais próxima do “ideal” Redução do número de migrações de jogadores Redução do overhead Simplicidade no balanceamento, utilizando recursão Possíveis trabalhos futuros: Desenvolver um algoritmo que considere o overhead Associar cada servidor a mais de um nó-folha da kd-tree Maior flexibilidade para a área gerenciada por aquele servidor

fim. Obrigado! Perguntas?