Escolar Documentos
Profissional Documentos
Cultura Documentos
, entio existe uma ou ‘mais mensagens ainda no recebidas (e que provavelmente foram eliminadas, no primeiro caso). Ele ‘mantém toda mensagem para a qual $> Rj + 1,em uma fila de espera (Figura 12.11) ~ tai filas sio fre- Gilentemente usadas para satisfazer garantias de distribuigdo de mensagem. Ele solicita as mensagens ausentes enviando confirmagdes negativas para 0 remetente original, ou para um processo q a partir do qual recebeu uma confirmagio, com Rt niio menor do que o ntimero de sequéncia exigido.426 _ Sistewas Disrmwuioos, Concertos € PROIETO Fila de espera Quando as garantias de entrega Mensagens so satistetas recebidas Figura 12.11 A fila de espera para mensagens multicast recebidas. AA fila de espera ndo € rigorosamente necesséria para a confiabilidade, mas simplifica o protocoto. nos permitindo usar nmeros de seqiiéncia para representar conjuntos de mensagens enviadas. Ela também nos fornece uma garantia da ordem de envio (veja a Secdo 11.4.3). ‘A propriedade da integridade resulta da detecc3o de duplicatas e das propriedades subjacentes do multicast IP (que usa somas de verificagao para eliminar mensagens corrompidas). A propriedade da validade vale porque 0 multicast IP tem essa propriedade. Para o acordo, exigimos primeiro que ‘um processo sempre possa detectar mensagens ausentes. Isso, por sua vez, significa que ele sempre receberd mais uma mensagem que permita detectar a omissio. Conforme o protocolo simplificado, garantimos a detecedo de mensagens ausentes apenas no caso em que processos corretos enviam ‘mensagens por multicast, indefinidamente, Segundo, a propriedade do acordo exige que sempre haja ‘uma c6pia dispontvel de toda mensagem necessdria para um processo que niio a recebeu. Portanto, presumimos que os processos mantém indefinidamente as c6pias das mensagens que enviaram ~nesse protocolo simplificado. Nenhuma das suposigdes que fizemos para garantit 0 acordo € pritica (veja o Exercicio 11.14). Entretanto, 0 acordo € tratado praticamente em todos os protocolos dos quais © nosso é derivado: 0 protocolo Psync [Peterson et al. 1989], 0 protocolo Trans [Melliar-Smith et al. 1990] ¢ 0 protocolo de multicast confidvel escalivel [Floyd et al. 1997]. Os protocolos Psyne ¢ Trans também fornecem garantias de ordenacio de entrega a mais. Propriedades uniformes 0 A detinigio de acordo dada anteriormente se refere apenas a0 c0inyor tamento de processos corretos ~ processos que nunca falham. Considere o que aconteceria i sig0- ritmo da Figura 12.10 se um processo nio fosse correto ¢ falhasse apds ter entregue uma mensagem com R-deliver. Como todo processo que entrega mensagem com R-deliver deve primeiro envis-la com B-multicast, segue-se que todos os processos corretos terminario por entregar a mensagem. ‘Toda propriedade que vale, sejam os processos corretos ou nao, é chamada de propriedade wnifor ‘me. Definimos 0 acordo uniforme como segue: Acordo uniforme: se um proceso, correto ou falho, entrega uma mensagem m, entdo todos os processos corretos em group(m) terminarao por entregar m. 0 acordo uniforme permite que um processo falhe apés ter enviado uma mensagem, enquanto ainda garante que todos 0s processos corretos entregario a mensagem. Argumentamos que 0 alg0- ritmo da Figura 12.10 satisfaz essa propriedade. que & mais forte do que a propriedade do acordo nio- uuniforme, definida anteriormente. © acordo uniforme € itil em apticagdes onde um proceso pode executar uma ago que produz uma inconsisténcia observvel antes de falhar. Por exemplo, considere que 0s processos sio servidores gerenciando c6pias de uma conta bancéria, e que as atualizagées na conta so enviadas para 0 grupo de servidores usando multicast confidvel. Se 0 multicast nao satisfizer 0 acordo uniforme. entio umCariuio 12 @ Cooroenacko eAcoroo 427 cliente que acesse um servidor imediatamente antes dele falhar poderd observar uma atualizagao que renhum outro servidor processard leressante notar que, se invertermios as linhas “Redeliver m” e “if (q # p) then Bemulticastts, ‘m); end if” na Figura 12.10, 0 algoritmo resultante nao satisfari o acordo uniforme. Assim como existe uma versio uniforme do acordo, também existem versdes uniformes de qual {quer propriedade de multicast, incluindo validade ¢ integridade ¢ as propriedades de order estamos para definir. 12.4.3 Multicast ordenado Oalgoritmo multicast basico da Segao 12.4.1 entrega mensagens para processos em uma ondem arbitr devido aos atrasos arbitrérios nas operagdes de envio de um para um subjacentes. Essa falta de garantia de lordem nao ¢ satisfatéria para muitas aplicagdes. Por exemplo, em uma usina nuclear pode ser importante que os eventos que signifiquem ameagas as condigées de seguranga e os eventos que signifiquem agdes de unidades de controle sejam observados na mesma ordem por todos os processos do sister, Os requisitos de ordenagao comuns so: ordem total, ordem causal, ordem FIFO ¢ as misturas total-causal ¢ total-FIFO. Para simplificarmos nossa discussio. definiremos essas ordenagbes sob a suposigio de que todo proceso pertence no maximo a um grupo. Posteriormente, discutiremos as implicagdes resultantes de permitir que os grupos se sobreponham, Ordem FIFO: se um proceso correto executa multicast(g. m) € depois multicasi(g, m’), entao todo proceso correto que entregar m’ entregard m antes dem Ordem causal: se multicast(g, m) — multicast(g. m’), onde + € a relagio antes do acontecido induzida apenas pelas mensagens enviadas entre os membros de g, entio todo proceso correto «que entregar m' entregard m antes dem’ Ordem total: se um processo correto entregar a mensagem m antes de entregar m', ‘outro proceso correto que entregue m’ entregarim antes de mr. nto qualquer A ordem causal implica na ordem FIFO, pois quaisquer dois multicasts feitos pelo mesmo pro- cesso esto sujeitos a relagio antes do acontecido. Note que a ordem FIFO ¢ a ordem causal so ‘ordenagdes apenas parciais: em geral, nem todas as mensagens sio enviadas pelo mesmo proceso analogamente, alguns multicasts so concorrentes (ndo ordenados pela relagdo antes do acontecido), A Figura 12.12 ilustra as ordenagdes para o caso de trés processos. Uma inypecdo detalhada dla figura mostra que as mensagens totalmente ordenadas sdo enviadas na ordem oposta ao tempo fisico ‘em que foram enviadas. Na verdade, a definigdo de ordenagio total permite que a distribuigdo de mensagens seja ordenada arbitrariamente, desde que a ordem seja a mesma ein diferentes processos, Como a ordcnagdio total nao é necessariamente também uma ordenagio FIFO, ou causal, detinimos a mistura da ordenagao FIFO-total como aquela para a qual a distribuigdo de mensagens obedece a or- dem FIFO e a total; analogamente, sob a ordenagao causal-tota. distribuigio de mensagens obedece a ordenacao causal e a to ‘As definiges de multicast ordenado no presumem nem implicam em confiabitidade, Por exem- plo, o leitor deve verificar que, na ordenagio total, se 0 processo correto p entre} gem me ‘depois m', entdo um processo correto q poderd entregar m sem também entregar mou qualquer outra ‘mensagem ordenada aps m. Também podemos formar misturas dos protocolos ordenados ¢ confidveis. O multicast totalmente confidvel é freqiicntemente referido na literatura como multicast atdmico. Analogamente, podemos formar um multicast FIFO confiavel, um multicast causal confidvel e versdes confidveis de multicasis ‘ordenados mistos Ordenar a entrega de mensagens multicast, conforme veremos, pode ser dispendioso em termos de Jaténcia da distribuigdo de consumo de largura de banda. A semantica da ordenagio que descrevemos pode atrasar desnecessariamente a distribuigdo das mensagens. Isto €, no nivel aplicativo, uma mensagem pode ser retardada por outra mensagem da qual, na verdade, nao depende. Por isso, alguns t6n» proposto sistemas multicast que utilizam apenas a semintica de mensagem especttica & propria aplicagdo para determinar a ordem de distribuigdo de mensagens [Cheriton ¢ Skeen 1993, Pedone © Schiper 1999},