• Aucun résultat trouvé

Mesures législatives, réglementaires et autres

Dans le document Avis 49.660 du 9 octobre 2012 (Page 23-28)

Nesta seção, propomos uma solução de balanceamento semântico por meio de uma auto-organização dos clusters. O líder do cluster será capaz de detectar um estado de desbalanceamento semântico, nos níveis intra-cluster e/ou inter-clustere reorganizar o cluster a fim de reestabelecer o balanceamento semântico em ambos os níveis. Na Figura 4.13 encontra–se o algoritmo que descreve o processo de balanceamento semântico.

Periodicamente, o líder do cluster inicia a verificação da existência de um desbalanceamento semântico. Esta periodicidade é configurada no sistema, em alguma unidade de tempo. Uma vez que o período de verificação foi atingido, o líder do cluster só irá dar continuidade ao processo de balanceamento se o cluster não estiver passando por algum outro processo de manutenção como religação semântica ou balanceamento de carga (linhas 13 e 14). Tanto esses dois últimos processos quanto o balanceamento semântico manipulam e alteram, em suas atividades, as mesmas estruturas de dados e metadados do cluster. A execução em paralelo desses processos, em um mesmo cluster, poderia gerar inconsistências nessas estruturas e metadados e, consequentemente, comprometeria o funcionamento de cada processo. Por exemplo, o esquema do cluster é considerado na execução no fluxo de atividades desses três processos e ele pode ser alterado ao longo da execução deles. Consideraremos neste trabalho que apenas um processo será executado por vez. Os detalhes sobre o processo de religação semântica será discutido ainda neste capítulo e o de balanceamento de carga no próximo.

Caso o cluster não esteja passando por uma manutenção, o líder do cluster verificará se houve uma evolução no esquema do cluster (linha 13). Para isso, o líder do cluster deverá manter as duas últimas versões desse esquema. A penúltima versão sempre será o esquema resultante do último processo realizado. Se nunca houve a execução de um processo, a penúltima versão estará com o conteúdo nulo. A última

versão trata-se da versão atual do esquema do cluster. Havendo diferença entre as versões, verificada através da GSM entre elas, o líder do cluster continua o processo de balanceamento. Neste caso, o líder do cluster altera o estado do cluster, para sinalizar que ele está em um processo de manutenção (linha 15). Essa verificação de versões evita que o líder do cluster perca tempo buscando, desnecessariamente, por desbalanceamento semântico, sem que o esquema do cluster tivesse sido atualizado. Se houve evolução nesse esquema, o líder do cluster recalculará todas as GSM, em todos os níveis de conexões. Para cada valor de GSM retornado (linha 19), o líder do cluster verificará se houve o desbalanceamento semântico no nível em questão.

Para balancearmos semanticamente um cluster, vamos considar um clusterCi

(linha 8) e seu líder lpi(linha 23). Cipossui o conjunto de pontos SPi= {pi1, pi2, pi3, ...,

pin} (linha 9), onde n é quantidade de pontos do cluster, ou seja, n = #Pi. O conjunto

SVi = {vi1, vi2, vi3, ..., vik} (linha 38) representa os vizinhos de Ci e k é sua quantidade

de vizinhos, ou seja, k = #Vi. A identificação do desbalanceamento semântico deve

começar no nível intra-cluster, pois a evolução causada no esquema do cluster, devido às operações de balanceamento semântico, podem provocar mudanças na vizinhança do cluster (nível inter-cluster). No entanto, a mudança de vizinhança do cluster, não gera impacto no nível intra-cluster, pois o esquema do cluster permanece inalterado com a inclusão ou exclusão de novos vizinhos.

De acordo com a definição na Seção 4.2.1, lpi identificará se há um

desbalanceamento semântico no nível intra-cluster verificando a GSM entre o esquema de cada ponto pPie o esquema Ci(linhas 17-19). Cada ponto

desbalanceado, no nível intra-cluster, será inserido por lpi numa lista de pontos

desbalanceados chamada SPdes(linha 20). Caso lpi seja um destes pontos

desbalanceados (linha 25), ele selecionará um novo líder de cluster, a partir dos demais pontos não semanticamente desbalanceados, ou seja, dentre os pontos contidos pela diferença dos conjuntos SPi e SPdes (SPiSPdes) (linha 28). Em seguida,

o novo líder receberá a OCi(linha 29).

SPdes é uma lista ordenada, de forma crescente, baseado nas GSM entre seus

pontos e Ci. Para cada ponto desbalanceado pdes em SPdes (linhas 32-34), lpi invocará

uma operação de migração que buscará, em SVi, um vizinho v que receba pdes(linha

similar com pdes e esteja mais distante de uma situação de sobrecarga. Uma vez

encontrado v, a operação de migração transferirá pdes de Ci para v. Esta operação se

encarregará de realizar o unmerge entre OCi e Opdes, para atualizar o esquema de Ci, com à saída desse ponto. Ainda na operação de migração, se nenhum vizinho for encontrado para receber pdes, este ponto formará seu próprio cluster e,

automaticamente, tornar-se-á vizinho de Ci, caso o valor da GSM entre eles seja

maior que . Os detalhes sobre a operação de migração, bem como o seu algoritmo, encontram-se no próximo capítulo, onde são discutidas questões referentes a balanceamento de carga e que são essenciais a esta operação.

A migração do ponto resulta em uma ação de saída do cluster do qual ele fazia parte. Conforme foi anteriormente discutido, a saída de um ponto poderá fazer com que as demais GSM, no nível intra-cluster, aumentem. Portanto, ao recuperar o próximo pdesde SPdes, lpi recalculará a GSM entre OCi e Opdes(linhas 33 e 34). Se o

valor resultante for maior ou igual a , pdes será removido de Pdes e permanecerá no

cluster. Caso contrário, esse ponto também será migrado para outro cluster (linha 35), conforme discutimos no parágrafo anterior. Essa verificação para cada pdes em

SPdes se repetirá até que esta lista esteja vazia (linha 32).

Conforme discutido na Seção 4.2.2, as evoluções ocorridas em OCi podem

provocar o desbalanceamento semântico inter-cluster. Além do mais, o próprio balanceamento semântico intra-cluster provoca evoluções em OCi. Para identificar se

houve um desbalanceamento inter-cluster, lpi recalculará todas as GSM entre OCi e

cada Ov(linhas 39-41). Se para cada v for verificado, essa GSM resultar em um valor abaixo de (linha 41), lpi removerá v de SVi (linha 42). Além disso, v deverá remover

de sua vizinhança, a conexão inter-cluster que contém com Ci(linha 43). Ao término

do balanceamento semântico, lpi mudará o estado do seu cluster para “não em

manutenção” (linha 46).

Figura 4.13- Algoritmo para o balanceamento semântico intra-cluster e inter-cluster.

1. AlgoritmoBalanceamento_Semântico(,:Limite) 2. { 3. v,C : Cluster; 4. S : Conjunto de Clusters; 5. p,p ,l : Ponto; 6. SP ,SP : Conjunto de Pontos; 7.

9. SP ← recuperar os pontos de C ;

10. estado_manutenção← recuperar o estado de Ci;

11. SP ←; 12.

13. SE (estado_manutenção = VERDADE) E (O não evoluiu) ENTÃO 14. RETORNAR;

15. estado_manutenção = VERDADE; 16.

17. PARA CADA p EM SP FAÇA {

18. //verificando desbalanceamento no nível intra-cluster 19. SE (GSM(Op,O )<) ENTÃO

20. inserirp em SP ; 21. }

22.

23. lp ← recuperar líder de C ;

24. //verificando se o super-ponto também está desbalanceado

25. SE lpSP ENTÃO {

26. //selecionando o novo super-ponto a partir 27. // dos pontos não desbalanceados

28. lp ← selecionar ponto de {SP – SP }; 29. armazenarO em lp ;

30. } 31.

32. ENQUANTO (SP ≠) FAÇA {

33. p ← remover primeiro elemento de SPdes;

34. SE GSM(Op , O )<ENTÃO

35. migração_ponto(p );

36. } 37.

38. SV ← recuperar os vizinhos de C ; 39. PARA CADA v EM SVi FAÇA {

40. //verificando desbalanceamento no nível inter-cluster 41. SE GSM(Ov, O )< ENTÃO { 42. removerv de SVi; 43. removerC da vizinhança de v; 44. } 45. } 46. estado_manutenção = FALSO; 47. }

Fonte: o próprio Autor.

Podemos observar que o balanceamento no nível inter-cluster consiste em remover as ligações nesse nível, ou seja, remover alguns clusters vizinhos. No entanto, novos vizinhos poderão ser encontrados para os clusters, por meio do processo de religação semântica. Este processo ainda será abordado neste capítulo.

O processo de balanceamento semântico possui uma limitação. Em alguns casos, ele poderá não ter um fim determinado. Considere dois clustersCi e Cj.

Suponha Ci com um desbalanceamento semântico intra-cluster. Ci migrará algum(s)

ponto(s) para Cj. Este último cluster, ao receber o(s) ponto(s) poderá tornar-se

algum(s) de seu(s) ponto(s) para Ci, desbalanceando-o novamente. Esta situação

poderá repetir-se, indefinidamente, e ela não foi considerada na solução proposta neste trabalho.

Dans le document Avis 49.660 du 9 octobre 2012 (Page 23-28)

Documents relatifs