5.8 Parˆ ametros, Atributos e Invariantes
5.8.3 Atributos das DHTs
5.8.3.1 Identificador
Num cluster Domus, as DHTs s˜ao nomeadas por identificadores ´unicos, definidos pelas aplica¸c˜oes Domus na cria¸c˜ao das DHTs, cabendo ao supervisor verificar a sua unicidade. A tabela 5.10 caracteriza o atributo attr_dht_id, correspondente a esse identificador.
5.8.3.2 Fun¸c˜ao de Hash
A efic´acia das fun¸c˜oes de hash varia em fun¸c˜ao do tipo de dados a que se aplicam (ver sec¸c˜ao B.1.2). Logo, faz sentido permitir a escolha da fun¸c˜ao a utilizar pelas DHTs, de entre um conjunto de fun¸c˜oes suportadas por uma realiza¸c˜ao da arquitectura Domus. A tabela 5.11 caracteriza o atributo attr_dht_fh, correspondente `a fun¸c˜ao de hash.
5.8 Parˆametros, Atributos e Invariantes 139
atributo : attr_node_ucpu- utiliza¸c˜ao (agregada) da(s) CPU(s) nota¸c˜ao : U(cpu)
atributo : attr_node_uiodisk- utiliza¸c˜ao (actividade E/S) do disco com a “parti¸c˜ao Domus” nota¸c˜ao : U(iodisk)
atributo : attr_node_unet- utiliza¸c˜ao (largura de banda consumida) do “interface Domus” nota¸c˜ao : U(net)
atributo : attr_node_uram- utiliza¸c˜ao (espa¸co consumido) da mem´oria RAM nota¸c˜ao : U(ram)
atributo : attr_node_udisk- utiliza¸c˜ao (espa¸co consumido) da “parti¸c˜ao Domus” nota¸c˜ao : U(disk)
Observa¸c˜oes:
a) para todos estes atributos, a defini¸c˜ao ´e “vari´avel e interna”
Tabela 5.9: Caracteriza¸c˜ao dos atributos de Utiliza¸c˜oes dos N´os Computacionais.
atributo : attr_dht_id(identificador) nota¸c˜ao formal : d
tipo de defini¸c˜ao : constante, externa (obrigat´oria)
Tabela 5.10: Caracteriza¸c˜ao do atributo Identificador de uma DHT Domus.
atributo : attr_dht_fh(fun¸c˜ao de hash) nota¸c˜ao formal : f
tipo de defini¸c˜ao : constante, interna ou externa valor por omiss˜ao : (uma fun¸c˜ao gen´erica)
Tabela 5.11: Caracteriza¸c˜ao do atributo Fun¸c˜ao de Hash de uma DHT Domus.
5.8.3.3 N´umero M´ınimo de Entradas por N´o Virtual
No contexto do modelo M4 de distribui¸c˜ao heterog´enea, a qualidade da distribui¸c˜ao ´e medida por uma grandeza do tipo “desvio-padr˜ao-relativo” (ver f´ormula 3.16). De uma forma indirecta, a qualidade da distribui¸c˜ao ´e afectada pelo parˆametro Hmin(v) do modelo
(n´umero m´ınimo de entradas por n´o virtual): quanto mais elevado for o valor de Hmin(v)
(com a restri¸c˜ao de que deve ser potˆencia de 2), maior ser´a a qualidade da distribui¸c˜ao. A tabela 5.12 caracteriza o atributo attr_dht_nmev, correspondente ao parˆametro Hmin(v).
5.8.3.4 Restri¸c˜oes `a Distribui¸c˜ao
Os atributos desta categoria permitem definir restri¸c˜oes a) `a identidade ou n´umero dos n´os/servi¸cos de uma DHT, b) bem como ao seu n´umero de n´os virtuais37. Desta forma, uma aplica¸c˜ao Domus (ou o utilizador associado) tem um certo n´ıvel de controlo sobre a aloca¸c˜ao de n´os/servi¸cos a uma DHT e sobre o seu paralelismo/distribui¸c˜ao potencial.
140 5.8 Parˆametros, Atributos e Invariantes
atributo : attr_dht_nmev(n´umero m´ınimo de entradas por n´o virtual) nota¸c˜ao formal : Hmin(v)
tipo defini¸c˜ao : constante, interna ou externa
valor por omiss˜ao : 8 (valor de referˆencia para Hmin(n) em M2 e Hmin(v) em M4)
invariantes associados : I1 - “Hmin(v) ´e potˆencia de 2” ∧ Hmin(v) > 0
Tabela 5.12: Caracteriza¸c˜ao do atributo Hmin(v) de uma DHT Domus.
Atrav´es destes atributos ´e poss´ıvel a1) limitar o endere¸camento/armazenamento a certos conjuntos de n´os, a2) impor um grau m´ınimo de paralelismo/distribui¸c˜ao real no suporte `
a DHT, definindo um n´umero m´ınimo de n´os computacionais de endere¸camento/armaze- namento; b1) impor um grau m´ınimo de paralelismo/distribui¸c˜ao potencial no suporte `a DHT, definindo um n´umero m´ınimo de n´os virtuais de endere¸camento/armazenamento. Um exemplo que demonstra o interesse da possibilidade a1) ´e dado pela situa¸c˜ao em que um subconjunto de n´os do cluster disp˜oe de uma liga¸c˜ao a um dispositivo SAN, pretendendo-se que as fun¸c˜oes de armazenamento da DHT sejam adstritas a esses n´os; outra hip´otese ´e criar uma DHT n˜ao persistente, especificamente sobre os n´os com maior capacidade de RAM. A possibilidade de se exercer um controlo deste tipo ´e tamb´em ´
util quando existe conhecimento adicional sobre as condi¸c˜oes actuais/futuras do cluster; por exemplo, sabendo-se da necessidade de manuten¸c˜ao de certos n´os, ou da execu¸c˜ao iminente de tarefas que v˜ao sobrecarregar os recursos associados ao endere¸camento e/ou armazenamento, ent˜ao pode optar-se pela exclus˜ao desses n´os de uma DHT em cria¸c˜ao. Como referido na sec¸c˜ao 5.5.1.1, a possibilidade a2) tem mais a ver com requisitos de desempenho e a b1) com requisitos de armazenamento; por exemplo, quando se tem uma ideia aproximada do espa¸co que vai ser necess´ario para suportar a totalidade dos registos de uma DHT, e sendo poss´ıvel associar um certo espa¸co a um n´o virtual de armazenamento (ver o atributo limiar de armazenamento, na sec¸c˜ao 5.8.3.9), ent˜ao a defini¸c˜ao de um certo n´umero inicial de n´os virtuais de armazenamento equivale a uma declara¸c˜ao dos requisitos de armazenamento da DHT, sem a satisfa¸c˜ao dos quais a DHT n˜ao chega a ser criada. Na pr´atica, os atributos desta categoria participam em invariantes que determinam restri- ¸c˜oes que a DHT deve respeitar, quer durante a sua cria¸c˜ao, quer durante a sua opera¸c˜ao. Neste contexto, introduzimos os conceitos de dom´ınio e universo de uma DHT. Assim, o dom´ınio de uma DHT ´e o conjunto de n´os actualmente utilizados para a suportar, donde:
• N (d) representa o dom´ınio da DHT d; • Ne
(d) representa o dom´ınio de endere¸camento da DHT d; • Na
(d) representa o dom´ınio de armazenamento da DHT d.
O universo de uma DHT ´e o maior conjunto de n´os a que ´e admiss´ıvel recorrer para a suportar, ou seja, representa o limite m´aximo de expans˜ao do dom´ınio38 da DHT. Assim:
38
O conceito de universo que aqui introduzimos, ´e oriundo da Teoria de Conjuntos, onde representa o maior de todos os superconjuntos de um conjunto (o conceito de superconjunto ´e dual de subconjunto).
5.8 Parˆametros, Atributos e Invariantes 141
atributo : attr_dht_ue(universo de endere¸camento) nota¸c˜ao formal : Ne
max(d)
valor por omiss˜ao : N (S) (conjunto de todos os n´os actuais do cluster Domus) invariantes associados : I5, I10, I20
atributo : attr_dht_nmne(n´umero m´ınimo de n´os de endere¸camento) nota¸c˜ao formal : #Ne
min(d) ou N e min(d)
valor por omiss˜ao : 1 invariantes associados : I10, I30
atributo : attr_dht_ua(universo de armazenamento) nota¸c˜ao formal : Na
max(d)
valor por omiss˜ao : N (S) (conjunto de todos os n´os actuais do cluster Domus) invariantes associados : I6, I11, I21
atributo : attr_dht_nmna(n´umero m´ınimo de n´os de armazenamento) nota¸c˜ao formal : #Na
min(d) ou N a min(d)
valor por omiss˜ao : 1 invariantes associados : I11, I31
atributo : attr_dht_nmve(n´umero m´ınimo de n´os virtuais de endere¸camento) nota¸c˜ao formal : #Ve
min(d) ou V e min(d)
valor por omiss˜ao : attr_dht_nmne(n´umero m´ınimo de n´os de endere¸camento) invariantes associados : I60, I61
atributo : attr_dht_nmva(n´umero m´ınimo de n´os virtuais de armazenamento) nota¸c˜ao formal : #Va
min(d) ou V a min(d)
valor por omiss˜ao : attr_dht_nmna(n´umero m´ınimo de n´os de armazenamento) invariantes associados : I60, I61
Observa¸c˜oes:
a) para todos estes atributos, a defini¸c˜ao ´e “constante, interna ou externa”
Tabela 5.13: Caracteriza¸c˜ao dos atributos de Restri¸c˜oes `a Distribui¸c˜ao de uma DHT Domus.
• Nmax(d) representa o universo da DHT d;
• Ne
max(d) representa o universo de endere¸camento da DHT d;
• Na
max(d) representa o universo de armazenamento da DHT d;
• N (d) ⊆ Nmax(d), Nmax(d) = Nmaxe (d) ∪ Nmaxa (d) e Nmax(d) ⊆ N (S).
A tabela 5.13 sistematiza a caracteriza¸c˜ao dos atributos de Restri¸c˜oes `a Distribui¸c˜ao de uma DHT, e a tabela 5.14 apresenta os invariantes em que esses atributos participam. 5.8.3.5 Tabelas de Distribui¸c˜ao
O modelo M4 apoia-se numa tabela de distribui¸c˜ao (T D) que regista, para cada n´o n de uma DHT, o seu n´umero de entradas, H(n), e de n´os virtuais, V(n) – rever sec¸c˜ao 3.5.5.
142 5.8 Parˆametros, Atributos e Invariantes
I5 : Nmaxe (d) ⊆ N (S)
– o universo de endere¸camento, Ne
max(d), ´e restrito aos n´os do cluster Domus, N (S)
I6 : Nmaxa (d) ⊆ N (S)
– o universo de armazenamento, Na
max(d), ´e restrito aos n´os do cluster Domus, N (S)
I10 : #Nmaxe (d) ≥ #N e
min(d) ≥ 1
– o universo de endere¸camento, Ne
max(d), deve ter pelo menos #N e
min(d) n´os
– o universo de endere¸camento, Ne
max(d), n˜ao pode ser vazio
I11 : #Nmaxa (d) ≥ #N a
min(d) ≥ 1
– o universo de armazenamento, Na
max(d), deve ter pelo menos #N a
min(d) n´os
– o universo de armazenamento, Na
max(d), n˜ao pode ser vazio
I20 : Ne(d) ⊆ Nmaxe (d)
– o dom´ınio de endere¸camento, Ne
(d), ´e restrito ao universo de endere¸camento I21 : Na(d) ⊆ Nmaxa (d)
– o dom´ınio de armazenamento, Na
(d), ´e restrito ao universo de armazenamento I30 : #Ne(d) ≥ #Nmine (d) ≥ 1
– o dom´ınio de endere¸camento, Ne
(d), deve ter pelo menos #Ne
min(d) n´os
– o dom´ınio de endere¸camento, Ne
(d), n˜ao pode ser vazio I31 : #Na(d) ≥ #Nmina (d) ≥ 1
– o dom´ınio de armazenamento, Na
(d), deve ter pelo menos #Na
min(d) n´os
– o dom´ınio de armazenamento, Na
(d), n˜ao pode ser vazio I60 : Ve(d) ≥ Vmine (d) ≥ #N
e
(d)min
– deve haver n´os virtuais suficientes para #Ne
(d)min n´os de endere¸camento
I61 : V a (d) ≥ Va min(d) ≥ #N a (d)min
– deve haver n´os virtuais suficientes para #Na
(d)min n´os de armazenamento
Tabela 5.14: Invariantes associados dos atributos de Restri¸c˜oes `a Distribui¸c˜ao.
A dissocia¸c˜ao entre endere¸camento e armazenamento tem como consequˆencia a necessi- dade de aplicar o modelo M4 em separado para essas fun¸c˜oes. Desta forma, para cada DHT d, ´e necess´ario operar com duas tabelas: 1) uma tabela de distribui¸c˜ao do endere¸ca- mento (T De
(d)) e 2) uma tabela de distribui¸c˜ao do armazenamento (T Da
(d)). A primeira guarda tuplos <n, Ve
(d, n), He
(d, n) > e a segunda guarda tuplos <n, Va
(d, n), Ha
(d, n) >. Estas tabelas s˜ao geridas pelo supervisor, representando os atributos de uma DHT que sumarizam o resultado da distribui¸c˜ao pesada das responsabilidades de endere¸camento e de armazenamento. Essa distribui¸c˜ao pode basear-se num n´umero global de n´os virtuais de endere¸camento, Ve
(d), diferente do n´umero global de n´os virtuais de armazenamento, Va
(d); o n´umero global de entradas a repartir pelas duas esp´ecies de n´os virtuais ´e H(d). Ao contr´ario dos atributos j´a apresentados, as tabelas T De
(d) e T Da
(d) n˜ao s˜ao defi- n´ıveis directamente; assim, estas representam atributos internos sendo a sua defini¸c˜ao influenciada pelos parˆametros/atributos de Qualidade da Distribui¸c˜ao e de Restri¸c˜oes `a Distribui¸c˜ao; essa influˆencia ´e vis´ıvel nos invariantes associados, fornecidos na tabela 5.16. As tabelas 5.15 e 5.16 caracterizam as Tabelas de Distribui¸c˜ao e invariantes associados.
5.8 Parˆametros, Atributos e Invariantes 143
atributo : attr_dht_tde(tabela de distribui¸c˜ao do endere¸camento) nota¸c˜ao formal : T De
(d)
tipo de defini¸c˜ao : vari´avel, interna invariantes associados : I40, I42, I50, I52
atributo : attr_dht_tda(tabela de distribui¸c˜ao do armazenamento) nota¸c˜ao formal : T Da
(d)
tipo de defini¸c˜ao : vari´avel, interna invariantes associados : I41, I43, I51, I53
Tabela 5.15: Caracteriza¸c˜ao das Tabelas de Distribui¸c˜ao de uma DHT Domus.
I40 : Ve(d, n) > 0, ∀n ∈ T De(d)
– se n ´e n´o de endere¸camento, o seu n´umero de n´os virtuais de endere¸camento ´e positivo I41 : Va(d, n) > 0, ∀n ∈ T Da(d)
– se n ´e n´o de armazenamento, o seu n´umero de n´os virtuais de armazena. ´e positivo I42 : He(d, n) > 0, ∀n ∈ T De(d)
– se n ´e n´o de endere¸camento, o n´umero de entradas endere¸cadas por n ´e positivo I43 : Ha(d, n) > 0, ∀n ∈ T Da(d)
– se n ´e n´o de armazenamento, o n´umero de entradas armazenadas por n ´e positivo I50 : Pn∈ T De(d)V
e
(d, n) == Ve
(d)
– n˜ao pode haver n´os virtuais de endere¸camento por atribuir I51 : Pn∈ T Da(d)V
a
(d, n) == Va
(d)
– n˜ao pode haver n´os virtuais de armazenamento por atribuir I52 : Pn∈ T De(d)H
e
(d, n) == H(d)
– n˜ao pode haver entradas da DHT por endere¸car I53 : Pn∈ T Da
(d)H a
(d, n) == H(d)
– n˜ao pode haver entradas da DHT por armazenar
Tabela 5.16: Invariantes associados `as Tabelas de Distribui¸c˜ao de uma DHT Domus.
5.8.3.6 Atributos da Localiza¸c˜ao Distribu´ıda
Os atributos desta categoria permitem influenciar a forma como se realiza, num cluster Domus, a localiza¸c˜ao distribu´ıda de uma DHT, com base nas contribui¸c˜oes do cap´ıtulo 4. Assim, o atributo attr_dht_pld permite especificar uma pol´ıtica de localiza¸c˜ao distribu´ıda, que pode ser global ou local; no primeiro caso, todos os n´os/servi¸cos de endere¸camento da DHT aplicar˜ao o mesmo algoritmo global de localiza¸c˜ao distribu´ıda, definido atrav´es do atributo attr_dht_agld (os valores poss´ıveis deste atributo s˜ao baseados nas designa¸c˜oes atribu´ıdas aos algoritmos de localiza¸c˜ao discutidos no cap´ıtulo 4); no segundo caso, cada n´o/servi¸co de endere¸camento poder´a comutar entre algoritmos com diferentes exigˆencias de processamento, numa ´optica de balanceamento local de recursos (rever sec¸c˜ao 5.6.7.2). A tabela 5.17 sintetiza a caracteriza¸c˜ao dos atributos attr_dht_pld e attr_dht_agld.
144 5.8 Parˆametros, Atributos e Invariantes
atributo : attr_dht_pld(pol´ıtica de localiza¸c˜ao distribu´ıda) tipo de defini¸c˜ao : constante, interna ou externa
valor por omiss˜ao : global
valores poss´ıveis : { global, local }
atributo : attr_dht_agld(algoritmo global de localiza¸c˜ao distribu´ıda) tipo de defini¸c˜ao : constante, interna ou externa
valor por omiss˜ao : EA-E-L(melhor compromisso entre consumo de CPU e distˆancia m´edia) valores poss´ıveis : { EC, EM, EA-E-1, EA-E-L, EA-all }
Tabela 5.17: Caracteriza¸c˜ao dos Atributos da Localiza¸c˜ao Distribu´ıda de uma DHT.
5.8.3.7 Atributos dos Reposit´orios
Como referido na sec¸c˜ao 5.6.6.2, um servi¸co Domus suporta reposit´orios de registos, base- ados numa certa combina¸c˜ao de plataforma de armazenamento e meio de armazenamento. Al´em disso, deve existir a possibilidade de especificar a granularidade do reposit´orio, de acordo com a semˆantica tamb´em definida na mesma sec¸c˜ao. Estas qualidades do reposi- t´orio de uma DHT s˜ao dadas pelos atributos attr_dht_pa, attr_dht_ma e attr_dht_gr – ver tabela 5.18; os valores admiss´ıveis destes atributos dependem da implementa¸c˜ao.
atributo : attr_dht_pa(plataforma de armazenamento) tipo de defini¸c˜ao : constante, interna ou externa
valor por omiss˜ao : (uma plataforma sobre ram; dependente da implementa¸c˜ao) valores poss´ıveis : (dependentes da implementa¸c˜ao)
atributo : attr_dht_ma(meio de armazenamento) tipo de defini¸c˜ao : constante, interna ou externa
valor por omiss˜ao : ram
valores poss´ıveis : pelo menos ram e disco (outros dependem da implementa¸c˜ao) atributo : attr_dht_gr(granularidade do reposit´orio)
tipo de defini¸c˜ao : constante, interna ou externa valor por omiss˜ao : m´ınima
valores poss´ıveis : { m´ınima, m´edia, m´axima}
Tabela 5.18: Caracteriza¸c˜ao dos Atributos dos Reposit´orios de uma DHT Domus. 5.8.3.8 Pol´ıtica de Evolu¸c˜ao da DHT
Apesar do desenho da arquitectura Domus ser orientado ao suporte de DHTs dinˆamicas (em que o n´umero e o posicionamento das entradas pode evoluir), poder´a ter interesse, em certas situa¸c˜oes, instanciar DHTs de tipo est´atico (em que o n´umero e o posicionamento das entradas, uma vez estabelecidos na cria¸c˜ao, ´e fixado); mais uma vez, uma decis˜ao deste tipo poder´a ser condicionada por conhecimento adicional sobre o estado actual ou futuro do cluster, ou por requisitos espec´ıficos das aplica¸c˜oes clientes das DHTs; por exemplo, recorrendo aos parˆametros que permitem delimitar o universo da DHT, ´e poss´ıvel confin´a- la a uma parti¸c˜ao exclusiva do cluster; se nessa parti¸c˜ao n˜ao for permitida a execu¸c˜ao de outras tarefas, poder´a ent˜ao dispensar-se o balanceamento dinˆamico da DHT (indepen- dentemente de se ter realizado uma distribui¸c˜ao inicial pesada, da DHT, nessa parti¸c˜ao).