• Nenhum resultado encontrado

2.4 Revis˜ao do cap´ıtulo

3.2.3 Sistema de qu´oruns bizantinos

Um sistema de qu´oruns bizantinos garante os requisitos de disponibilidade e consistˆencia de ar- mazenamento mesmo na presenc¸a de servidores que podem falhar de maneira arbitr´aria (bizantina). Um sistema de qu´oruns bizantinos apresenta subconjuntos de servidores em qu´oruns Q com uma quantidade de servidores corretos suficiente, tal que a propriedade de consistˆencia do sistema seja mantida mesmo com a ocorrˆencia de faltas bizantinas.

Um exemplo de sistema de qu´oruns deste tipo (sistema

Q

) ´e mostrado na figura 3.1. Tal sis- tema compreende um subsistema pass´ıvel de falhas

B

, um conjunto de qu´oruns {Q1, Q2, Q3} e os

subconjuntos B ∈

B

. A consistˆencia em

Q

´e garantida pela intersec¸˜ao entre cada dois qu´oruns no conjunto {Q1, Q2, Q3}, sendo que cada intersec¸˜ao cont´em uma quantidade suficiente de servidores

corretos (por exemplo, o conjunto Q1∩ Q2\ B). Logo, se um cliente realizar duas operac¸˜oes em dois

qu´oruns diferentes, necessariamente um mesmo grupo de servidores corretos ser´a acessado, ainda que servidores bizantinos sejam possivelmente acessados tamb´em (conjunto B ∩ Q2). A disponibilidade ´e

garantida pela existˆencia de, pelo menos, um qu´orum Q ∈

Q

, onde todos os servidores s˜ao corretos (conjunto Q3).

A seguir, s˜ao apresentados os v´arios tipos de BQS estudados neste trabalho.

1Se a e b s˜ao eventos, ent˜ao a → b se a acontece antes de b num mesmo processo, ou se a ´e o evento de escrita em um processo e b ´e o evento de leitura correspondente em outro processo, ou se, dado um evento c, a → c se a → b e b → c

3. Algoritmos de Sistemas de Qu ´oruns Bizantinos 19

Figura 3.1: Representac¸˜ao formal de um sistema de qu´oruns bizantinos.

3.2.3.1 Sistemas f-mascaramento [32]

Um sistema de qu´orum de f-mascaramento (f-masking quorum system) pressup˜oe o armaze- namento de dados gen´ericos usando qu´oruns sim´etricos. O sistema organiza-se de maneira que, na intersec¸˜ao entre cada dois qu´oruns, h´a uma maioria de servidores corretos. Desta maneira, para f servidores bizantinos, h´a em cada intersec¸˜ao pelo menos 2 f + 1 servidores, garatindo, ainda no pior caso, uma maioria de f + 1 servidores corretos. Assim, considerando quaisquer dois qu´oruns Q1e Q2

neste sistema, temos:

|Q1∩ Q2| ≥ 2 f + 1

Se quisermos aplicar uma intersec¸˜ao de 2 f + 1 entre Q1e Q2, ambos de tamanho |Q|, limitando-se

a um conjunto total de n servidores, teremos ao final o tamanho de cada qu´orum:

|Q1| + |Q2| − n ≥ 2 f + 1 ⇒ 2|Q| − n ≥ 2 f + 1 ⇒ |Q| ≥ 2 f +1+n2 ⇒ |Q| = d2 f +1+n2 e

Sabendo que existe, pelo menos, um qu´orum com todos os servidores corretos (|Q| ≤ n − f ), temos:

|Q| ≤ n − f ⇒2 f +1+n2 ≤ |Q| ≤ n − f ⇒2 f +1+n2 ≤ n − f ⇒ n ≥ 4 f + 1

Assim, temos um sistema com um n´umero de servidores de n ≥ 4 f + 1, o que permite a construc¸˜ao de qu´oruns com no m´ınimo 3 f + 1 servidores.

3.2.3.2 Sistemas f-disseminac¸˜ao [32]

Um sistema de qu´orum de f-disseminac¸˜ao (f-dissemination quorum system) possui construc¸˜ao similar ao f-mascaramento. A diferenc¸a aqui est´a no armazenamento de dados auto-verific´aveis, o que enfraquece a premissa de intersec¸˜ao entre cada dois qu´oruns. Neste caso, somente se exige que

3. Algoritmos de Sistemas de Qu ´oruns Bizantinos 20

haja pelo menos 1 servidor correto na intersec¸˜ao, cujo valor pode ser verificado como correto. Logo, para um sistema com f servidores bizantinos, temos uma intersec¸˜ao de f + 1 servidores, ou seja, se Q1e Q2, temos |Q1∩ Q2| ≥ f + 1.

Utilizando o mesmo racioc´ınio dos qu´oruns de f-mascaramento, obtemos um sistema com qu´oruns sim´etricos de tamanho |Q| = dn+ f +12 e. Com f servidores a menos em cada intersec¸˜ao entre dois

qu´oruns, ´e poss´ıvel ter um sistema com n ≥ 3 f + 1 sevidores, o que permite a construc¸˜ao de qu´oruns com no m´ınimo 2 f + 1 servidores.

3.2.3.3 Sistemas a-mascaramento [35]

Assim como nos qu´oruns de f-mascaramento, um sistema de qu´orum de a-mascaramento (a-

masking quorum system) armazena dados n˜ao assinados (gen´ericos). Logo, se restringe que, na

organizac¸˜ao do qu´orum, exista pelo menos 2 f + 1 servidores na intersec¸˜ao entre um qu´orum qualquer de leitura com um qu´orum qualquer de escrita.

Entretanto, ao contr´ario dos qu´oruns de f-mascaramento, temos qu´oruns de leitura e escrita com tamanhos diferentes (assim´etricos), sendo que os qu´oruns de escrita n˜ao cumprem com o requisito de disponibilidade, apenas os qu´oruns de leitura. A disponibilidade para os qu´oruns de escrita n˜ao ´e necess´aria pois suas operac¸˜oes n˜ao esperam por mensagens de confirmac¸˜ao para serem conclu´ıdas (escritas n˜ao confirm´aveis). Nesta situac¸˜ao, para que haja pelo menos um qu´orum de leitura com apenas servidores corretos, os qu´oruns de escrita tˆem de ser maiores que os qu´oruns de leitura em f servidores. Ou seja, |Qw| = |Qr| + f . A partir desta constatac¸˜ao e seguindo o racioc´ınio aplicado para

o qu´orum de f-mascaramento, temos:

|Qr| + |Qw| − n ≥ 2 f + 1 ⇒ |Qw| − f + |Qw| − n ≥ 2 f + 1 ⇒ 2|Qw| ≥ 2 f + 1 + n + f ⇒ |Qw| ≥

2 f +1+n+ f

2 ⇒ |Qw| = d

n+ f +1

2 e + f

Logo, |Qr| = dn+ f +12 e. Sabendo que |Qr| respeita a propriedade de disponibilidade (|Qr| ≤ n − f ),

temos:

|Qr| ≤ n − f ⇒ n+ f +12 ≤ |Qr| ≤ n − f ⇒ n+ f +12 ≤ n − f ⇒ n ≥ 3 f + 1

Assim, temos um sistema com n ≥ 3 f + 1 servidores. No caso do menor n´umero poss´ıvel de servidores no sistema (3 f + 1), temos qu´oruns de leitura e escrita, respectivamente, com tamanhos de 2 f + 1 e 3 f + 1.

3.2.3.4 Sistemas a-disseminac¸˜ao [35]

Assim como os qu´oruns de f-disseminac¸˜ao, um sistema de qu´orum de a-disseminac¸˜ao (a-

3. Algoritmos de Sistemas de Qu ´oruns Bizantinos 21

onde existem pelo menos f + 1 servidores na intersec¸˜ao entre cada dois qu´oruns. E, tal como os qu´oruns de a-mascaramento, um qu´orum de a-disseminac¸˜ao pressup˜oe qu´oruns assim´etricos, onde a propriedade de disponibilidade ´e somente respeitada para o qu´orum de leitura.

Partindo dessas premissas e combinando os racioc´ınios usados na definic¸˜ao dos qu´oruns de f- disseminac¸˜ao e a-mascaramento, obtemos os seguintes resultados: tamanho do qu´orum de leitura

|Qr| = dn+12 e, tamanho do qu´orum de escrita |Qw| = dn+12 e + f e quantidade de servidores no sistema

n ≥ 2 f + 1 servidores, o que permite a formac¸˜ao de qu´oruns de leitura e escrita, respectivamente, com tamanhos m´ınimos de f + 1 e 2 f + 1.

3.2.3.5 Sistemas “m´ınimos” [34]

O que se considera aqui como um sistema de qu´orum “m´ınimo” ´e em princ´ıpio um sistema de qu´orum de a-mascaramento `a medida que ambos armazenam dados gen´ericos, organizam-se em qu´oruns assim´etricos, mantˆem pelo menos 2 f + 1 servidores em comum na intersec¸˜ao entre cada par de qu´oruns de leitura e escrita e, finalmente, possuem n ≥ 3 f + 1 servidores.

Entretanto, no que se refere `a organizac¸˜ao dos qu´oruns, existem diferenc¸as entre os qu´oruns m´ınimos e os qu´oruns assim´etricos. Ao contr´ario do sistema de a-mascaramento, onde se assegura a propriedade de disponibilidade aos qu´oruns de leitura, em um sistema de qu´orum m´ınimo, apenas os qu´oruns de escrita parecem manter tal propriedade. Desta maneira, pode-se pensar em um racioc´ınio pr´oximo do que foi mostrado no sistema de a-mascaramento obtendo uma invers˜ao nos tamanhos dos qu´oruns de leitura e escrita em comparac¸˜ao ao que se estabeleceu nos sistemas de a-mascaramento:

|Qr| = dn+ f +12 e + f (ou |Qr| = dn+3 f +12 e conforme [34]) e |Qw| = dn+ f +12 e.

Observac¸˜ao: de fato, a palavra “m´ınimo”, usada aqui para nomear o sistema ora apresentado, diferenciando-o do sistema de a-mascaramento, referencia-se ao termo minimal empregado por Mar- tin et. al em [34]. Neste trabalho, minimal diz respeito ao limite m´ınimo para se construir sistemas de qu´oruns bizantinos. Em tal caso, para se tolerar f faltas, ´e necess´ario, no m´ınimo, 3 f + 1 ser- vidores para que se obtenha um sistema com qualquer semˆantica de consistˆencia e com suporte a escritas confirm´aveis; por outro lado, para se construir um sistema com escritas n˜ao confirm´aveis, s˜ao necess´arios 2 f + 1 servidores. Ainda assim, o termo minimal pode se referir mesmo aos pr´oprios sistemas de qu´oruns que empreguem estes n´umero m´ınimos de servidores.