1 / 12

Software-Based Replication for Fault Tolerance

Software-Based Replication for Fault Tolerance. Apresentação do tema por João Ramires Tolerância a Faltas Distribuída Mestrado em Informática FCUL 1999/2000 Prof. Luís E.T.Rodrigues. Técnicas de Replicação. Primary-Backup Primary recebe pedidos do cliente e responde.

sema
Download Presentation

Software-Based Replication for Fault Tolerance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software-Based Replication for Fault Tolerance Apresentação do tema por João Ramires Tolerância a Faltas Distribuída Mestrado em Informática FCUL 1999/2000 Prof. Luís E.T.Rodrigues

  2. Técnicas de Replicação Primary-Backup • Primary recebe pedidos do cliente e responde. • Backups interagem com primary e não com o cliente.

  3. Técnicas de Replicação Crash A - Antes de enviar Update. Crash B - Depois ou durante o envio mas antes de Pi receber Res. Crash C - Depois de Pi receber Res. Primary-Backup Op(arg),invID A Update (invID,res,state-update) B Ack Res OK(res) C Pi Prim X1 Bck X2 Bck X3

  4. Técnicas de Replicação Primary-Backup - Eleger novo Prim. A - Pi não recebe Res : suspeita falha e reenvia. Novo Prim considera invID nova. B - Todos ou nenhuns Bcks recebem Update : - Se nenhum recebe : caso A; - Se todos recebem e Pi reenvia o mesmo invID, novo Prim responde imediatamente Res para Pi. C - Crash transparente a Pi.

  5. Técnicas de Replicação Active replication (State-Machine Approach) • Todas as réplicas recebem a tarefa sem o controlo centralizado de um Primary. - Cada réplica processa Op(arg), faz update do seu estado e responde Res a Pi. - Pi espera até receber o primeiro Res. O crash de Xk é transparente a Pi : Pi nunca reenvia Op(arg).

  6. Técnicas de Replicação Active replication Op(arg) Res OK(res) Pi X1 X2 X3

  7. Comunicação em grupo Static vs dynamic groups • Static - Xk pertence a gx antes e depois da recuperação de Xk. • Dynamic - sistema remove Xk de gx quando Xk falha; se Xk recupera, é inserido novamente em gx. Primary-backup : se Prim falha, gx elege novo Prim -- Dynamic. Active : se Xk falha, não necessita de operações especiais -- Static. gx - representa o grupo de réplicas dos servidores X.

  8. Comunicação em grupo Active replication Requer primitiva de total-order multicast : TOCAST(m, gx). Propriedades TOCAST : • Order : Se Xj e Xk entregam m1 e m2, réplicas entregam ambas as mensagens pela mesma ordem. • Atomicity : Se Xjgx entrega m, então todas as réplicas de gx entregam m. • Termination : Pi executa TOCAST(m, gx). Se Pi é correcto, então todas as réplicas correctas em gx eventualmente entregam m.

  9. Comunicação em grupo Primary-backup Não requer primitiva TOCAST - Prim define a ordem de invocação. E se Prim falha ? - requer primitiva de comunicação em grupo. • Prim é invocado por Pi e falha quando envia update a X2 e X3 -- apenas X2 recebe update. • gx define Vi+1(gx)={X2, X3} e X2 passa a Prim. • Os estados de X2 e X3 são inconsistentes.

  10. Comunicação em grupo Primary-backup Evitamos a inconsistência se garantirmos que todas ou nenhuma das réplicas recebem update -- view-synchronous multicast. Xk envia m(i) para a view Vi(gx) -- VSCAST garante que: - todas as réplicas de Vi(gx) eventualmente entreguem m(i) ou - o sistema define uma nova view Vi+1(gx).

  11. Comunicação em grupo View-synchronous multicast (VSCAST) A - todas as réplicas entregam m(i). B - [sistema define nova view] todas as réplicas de Vi(gx)  Vi+1(gx) distribuem m(i) antes de distribuir Vi+1(gx). A B Vi(gx)= {x1,x2,x3} Vi(gx) m(i) m(i) Crash Vi+1(gx)= {x2,x3} X1 X2 X3 X1 X2 X3

  12. Comunicação em grupo View-synchronous multicast (VSCAST) C - [sistema define nova view] nenhuma réplica de Vi(gx)  Vi+1(gx) distribui m(i). D - uma réplica trata m(i) em Vi(gx) e outra em Vi+1(gx) -- VSCAST previne este cenário. C D Vi(gx) Vi(gx) m(i) Crash Crash m(i) Vi+1(gx) Vi+1(gx) X1 X2 X3 X1 X2 X3

More Related