ترمیم در سیستمهای توزیع شده

36
ل ص ف12 اب ت ک ازsinghal Advanced Operating Systems Sharif University of Technology

Upload: palmer-graves

Post on 30-Dec-2015

78 views

Category:

Documents


0 download

DESCRIPTION

ترمیم در سیستمهای توزیع شده. فصل 12 از کتاب singhal Advanced Operating Systems Sharif University of Technology. ترمیم در سیستمهای توزیع شده. هدف : بازگرداندن سیستم به حالت معمولی و نرمال خود. تغییرات داده شده بوسیله پردازه خطا در undo شوند. منابع اختصاص داده شده پس گرفته شوند. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ترمیم در سیستمهای توزیع شده

singhal از کتاب 12فصل

Advanced Operating Systems

Sharif University of Technology

Page 2: ترمیم در سیستمهای توزیع شده

ترمیم در سیستمهای توزیع شده

نرم�ال :هدف و معم�ولی ح�الت ب�ه بازگردان�دن سیس�تم خود.

تغییرات داده شده بوسیله پردازه خطا درundo.شوند .منابع اختصاص داده شده پس گرفته شوند

ده آل�هم�ان :ای از خط�ا ب�ا ش�ده مواج�ه پ�ردازه اعم�ال ع�دم اج�رای مج�دد بخش�های . نقط�ه خط�ا ادام�ه یاب�د )؟(انجام شده از پردازه فوق.

.همروندی و ترمیم! اثر یک پردازه روی پردازه های دیگر

Page 3: ترمیم در سیستمهای توزیع شده

ترمیم به جلو – ترمیم به عقب

وظیف�هFailure Recovery برگردان�دن ح�الت سیس�تم )ح�التمغلوط( به یک حالت بدون خطاست.

ارزی�ابی ش�ود می 1. I دقیق�ا ایج�اد ش�ده اگ�ر ط�بیعت خط�ای ت�وان اش�کال را مرتف�ع ک�رد و پ�ردازه را ق�ادر ب�ه ح�رکت ب�ه

Forward Error Recoveryجلو کرد:

اگ�ر نمی ت�وان ط�بیعت خط�ای ایج�اد ش�ده را پیش بی�نی ک�رد، 2. :سیس�تم ک�ار خ�ود را از ی�ک ح�الت ب�دون خط�ا ادام�ه می ده�د

Backward Error Recovery

راحت ترPerformance penalty

عدم وجود تضمین برای عدم تکرار خطا در اجرای مجدد

Page 4: ترمیم در سیستمهای توزیع شده

(B.E.R)ترمیم به عقب نق�اطی ک�ه می ت�وان ب�ه آنه�ا ارج�اع و اعتم�اد ک�رد را نق�اط

گویند.(Recovery Points)ترمیم بازی�ابی نق�اط ت�رمیم یع�نی ج�ایگزینی ح�الت فعلی پ�ردازه ای

با حالت آن پردازه در نقطه ترمیم.مدل سیستم :

در اثر بروز خطا محتوای خود را از دست نمی دهد.

و نقاط ترمیمLogبرای ذخیره

CPU

حافظه اصلی

Stable Storage

Secondary Storage

Page 5: ترمیم در سیستمهای توزیع شده

BERپیاده سازی

Page 6: ترمیم در سیستمهای توزیع شده

ادامه BERپیاده سازی

ترمیم پ�ذیری تغی�یرات را می ت�وان ب�ا اعم�ال زی�ر پی�اده س�ازیکرد:

do انجام یک عمل و ثبت در :LogUndo خنثی کردن عمل انجام شده بوسیله :doRedo اجرای مجدد عمل انجام شده بوسیله :do

برق رفتگی بین انجام یک عمل و نوشتنlog ؟ WAL درWAL :

بروزآوری وق�تی انج�ام می ش�ود ک�هundo log مرب�وط ب�ه آننوشته شده باشد.

که بروزآوری، مطمئن شویم یک نهایی شدن از undoقبل log, redo log .ثبت شده باشند

Page 7: ترمیم در سیستمهای توزیع شده

- روش مبتنی بر حالت2روش مبتنی بر حالت ایج�اد نقط�ه ت�رمیم در ه�ر مقط�ع ب�ا ثبت ک�ل ح�الت سیس�تم(checkpointing) ارجاع بهcheckpoint : :پس از رخداد خطا rollback

تالش درrollbackبه آخرین حالت ممکن و سازگار ،در طی اج�رای ی�ک پ�ردازه I ه�ای زی�ادی checkpointمعم�وًال

گرفته می شود.

Shadow paging حالت خاصی از ترمیم مبتنی بر حالت

Page 8: ترمیم در سیستمهای توزیع شده

ترمیم در سیستمهای همروند پیغ�ام تب�ادل مس�تلزم ک�ار ی�ک انج�ام

ت�رمیم نقط�ه ب�ه پ�ردازه ی�ک بازگش�ت هم ه�ا پ�ردازه دیگ�ر بازگش�ت مس�تلزم پ�ردازه از مت�أثر ه�ای پ�ردازه )در هس�ت

(پس از نقطه ترمیمخطادار -

Page 9: ترمیم در سیستمهای توزیع شده

(Domino)پیغام یتیم – اثر دامینو

خطایX بازگشت به X3

خطایY بازگشت به Y2)!(

m )ارس�ال نش�ده اس�ت ولی دری�افت ش�ده اس�ت! )پیغ�ام ی�تیم و X2 به Xلزوم ارجاع

خط�ایZ بازگش�ت ب�ه Z2 ل�زوم بازگش�ت X وY ب�ه X1 وY1و متعاقب آن

ت�أثیر بازگش�ت ی�ک پ�ردازه :: اث�ر دامین�و :: Z1 ب�ه Z بازگش�تروی بازگشت دیگر پردازه ها

X

Y

Z

X1X2 X3

Y1Y2

Z1 Z2

m

Page 10: ترمیم در سیستمهای توزیع شده

Lost msg

ارجاع X وY به X1 وY1

m.را پیغام گم شده نامیم

X

Y

X1

Y1

Page 11: ترمیم در سیستمهای توزیع شده

LiveLock

وق�تی رخ می ده�د ک�ه رخ�داد خط�ا ب�اعث تع�دادی نامتن�اهیارجاع داشته باشیم و لذا مانع پیشرفت کار سیستم.

n1 .در راه اس�تY ب�ه Y1 و بواس�طه وج�ود پیغ�ام ی�تیمm1، X گ�ردد X1به می ب�از m1 وn1 .ش�وند می ارس�ال دوب�اره

ارس�ال n1، m2 می رس�د. ب�ا رس�یدن Yمعه�ذا نس�خه در راه ب�ه را دری�افت می کن�د ولی m2 را ارس�ال و n2 ن�یز Yش�ده اس�ت.

ل�زوم ارج�اع وج�ود ن�دارد. n1در ح�الت سیس�تم اث�ری از ارس�ال و..... Yبه عقب در

X

Y

X1

Y1 خطا

m1

n1

X

Y

m2n2

Roll-backn1

Page 12: ترمیم در سیستمهای توزیع شده

مجموعه ای سازگار از checkpoints

نقطه مقابله محلی مجموع�ه ای از نق�اط مقابل�ه محلی )از ه�ر س�ایت

یکی( را نقطه مقابله سراسری:مقابل��ه نق��اط از س��ازگار I قوی��ا ای مجموع��ه

از ب�یرون ب�ا مجم�وعه ای ک�ه هیچ جری�ان اطالع�اتی خود نداشته باشد.

مجم�وعه ای مجموع�ه ای س�ازگار از نق�اط مقابل�ه :ک�ه �در آ�ن ه�ر� �پیغ�ام �در�ی�اف�ت �ش�ده �ار�س�ال�ش �ن�یز ثب�ت

شده باشد. .با پیغام گم شده کاری نداریم

Page 13: ترمیم در سیستمهای توزیع شده

روش ایجاد مجموعه ای سازگار از نقاط مقابله

پیغ�ام و اتمی�ک ب�ودن ارس�ال و دری�افت با ف�رض همچنین انجام نقطه مقابله

اگ�ر ه�ر پ�ردازه پس از ه�ر پیغ�ام ی�ک نقط�ه مقابل�همقاب�ل�ه اخ�یرت�رین �نق�اط مجمو�ع�ه کن�د،� ایج�اد�

همیشه سازگار خواهد بود. بازگش�ت ه�ر پ�ردازه ب�ه آخ�رین ح�الت ثبت ش�ده

خود منجر به پیغام نمی شود. ارس�ال ه�ر از اگ�ر پس اس�ت. گ�ران kراه ح�ل

اث�ر دهیم انج�ام را ک�ار این یکب�ار دامین�وپیغ�ام داریم!

Page 14: ترمیم در سیستمهای توزیع شده

برای ایجاد همگام نقاط Toueg ,Kooالگوریتم مقابله

فرضیات کانالهاFIFOخطای ارتباطی منجر به افراز شبکه نمی شود :دو نوع نقطه مقابله

)آزمایش�ی( ک�ه :موقت نقط�ه مقابل�ه م�وقت اس�ت ی�ک ممکن اس�ت ب�ه دائمی تب�دیل ش�ود، را روی حافظ�ه پای�دار

ایجاد می کند. بخش�ی از ی�ک نقط�ه مقابل�ه سراس�ری اس�ت و ب�ه :دائمی

آن ارجاع می شود.عدم اجرای همروند این الگوریتمعدم وجود خطای سایت در حین اجرای الگوریتم

Page 15: ترمیم در سیستمهای توزیع شده

برای ایجاد همگام نقاط مقابله Toueg ,Kooالگوریتم ادامه -

:فاز اول الگوریتمPi ی�کC آزمایش�ی می گ�یرد و از دیگ�ر پردازه ه�ا هم درخواس�ت

C آزما�یش�ی می کن�د�. ه�ر پ�ر�دازة� دی�گ�ر م�وفقیت� خ�و�د را در این م می �کن�د Pi اعالم� می �کن�د. اگ�ر هم�ه موف�ق بود�ن�د Piک�ار ب�ه اعال�

که دائمی تلقی شود وگرنه دور ریخته شود.

:فاز دوم الگوریتم تص�میم هم�ه Piاعالم ب�ه اول مرحل�ه پای�ان در هم�ه ی�ا C

دائمی می گیرند یا نه. فرض می ک�نیم ک�ه در فاص�له بینC آزمایش�ی و دری�افت تص�میم

نمی� ش�ود. ار�س�ال نا�س�ازگار �بوج�ود آغ�ازگر، �پیغ�امی �ح�الت نخواهد آمد.

Page 16: ترمیم در سیستمهای توزیع شده

، ...Kooبهینه سازی در الگوریتم

اگر ًالزم نیست که پردازه ایCجدیدی بگیرد!؟

اگرX از دریافت به m پس به }C تصمیم بگیرد منجر X2, Y2, Z2 خوا�ه�د ش�د �در ح�ا�لی ک�ه� }X2, Y2, Z1} هم س�ازگار� } آزمایش�ی C اگ�ر پیغ�امی ارس�ال نش�ده اس�ت میت�وان .هس�تند

را در یک سایت انجام نداد.

X

Y

Z

X1 X2

Y1 Y2

Z1

Z2

m

آزمایشی

Page 17: ترمیم در سیستمهای توزیع شده

روش اعمال.پیغام های کنترلی موردنظر نیستند .هر پیغ�ام ی�ک برچس�ب داردm.l ک�ه در ه�ر پ�ردازه ح�الت

افزایشی دارد. فرض کوچکترین و T.بزرگترین برچسب باشد به ازاء ه�رY ,X ف�رض ک�نیم ،m آخ�رین پیغ�ام دری�افت ش�ده

باشد.Cپس از آخرین

last-label-rcvdX[Y] =

first-label-sentX[Y] =

otherwise

existsmiflm.

otherwise

existsmiflm.

Page 18: ترمیم در سیستمهای توزیع شده

ادامه روش اعمال

هرگاهX از Y درخواست می کند که یک C آزمایشی را هم last-label-rcvdX[Y]بگیرد، همراه درخواستش

می گیرد که C تنها وقتی Yمی فرستد. last-label-rcvdX[Y] first-label-sentY[X] >

یعنیX رسید تعدادی پیغام را ثبت کرده است که پس از ارسال شده اند. Y در Cآخرین

Y.هم باید واقعه ارسال آنها را ثبت کند

Chkpt-cohortX = {Y | last-label-rcvdX[Y] > }

به آنها ارسال شود.Cهم در سایتهایی که باید درخواست

Page 19: ترمیم در سیستمهای توزیع شده

The algorithmInitial state at all processes p:

For all processes q do first-label-sentp[q] := ;

OK-to-take-ckptp =

At initiator process Pi:For all processes p ckpt-cohort pi do

Send Take-a-tentative-ckpt(Pi, last-label-rcvd pi[p]) message;If all processes replied “yes” then

for all processes p ckpt-cohort pi doSend Make-tentative-ckpt-permanent;

elseFor all processes p ckpt-cohort pi do

Send Undo-tentative-ckpt.

otherwiseno

checkpoataketowillingispifyes

""

int""

Page 20: ترمیم در سیستمهای توزیع شده

The algorithm Continued

At all processes p: Upon receiving Take-a-tentative-ckpt(q, last-label-rcvd q[p])

message from q doBeginIf OK-to-take-ckptp = “yes” AND last-label-rcvd q[p] first-label-sentp[q] > then

begintake a tentative checkpoint;for all processes r ckpt-cohort p do

Send Take-a-tentative-ckpt(P,last-label-rcvd p[r]) message;

If all processes r ckpt-cohort p replied “yes” thenOK-to-take-ckptp := “yes”

ElseOK-to-take-ckptp = “no”

End;Send (p, OK-to-take-ckptp) to q;End;

Page 21: ترمیم در سیستمهای توزیع شده

The algorithm Continued

At all processes p:Upon receiving Make-tentative-ckpt-permanent

message doBeginMake tentative checkpoint permanent;For all processes r ckpt-cohort p do

Send Make-tentative-ckpt-permanent message;End;

Upon receiving Undo-tentative-ckpt-permanent message doBeginUndo tentative checkpoint;For all processes r ckpt-cohort p do

Send Undo-tentative-ckpt-permanent message;End;

Page 22: ترمیم در سیستمهای توزیع شده

Rollback-Recoveryو فرض کن�د می آغ�از را الگ�وریتم پ�ردازه ی�ک تنه�ا :

فراخوانی همروند الگوریتم را نداریم.

آغ�ازگرفاز اول :( Pi) کن�ترل میکن�د ک�ه آی�ا هم�ه پ�ردازه ه�ا خ�ود هس�تند ی�ا ن�ه؟ پ�ردازه Cعالقمن�د ب�ه بازآغ�ازی از آخ�رین

آغ�از ش�ده بوس�یله دیگ�ری درگ�یر اس�ت R ی�ا Cای ک�ه در می ده�د. در ص�ورت مثبت ب�ودن پاس�خ هم�ه، "no"پاس�خ

بازآغازی اعالم می شود.فاز دوم :Pi ب�رآن و ب�ه هم�ه می فرس�تد را تص�میمش

اس�اس عم�ل می ش�ود. م�ادام ک�ه پ�ردازه ای منتظ�ر پاس�خ است پیغامی در رابطه با محاسباتش نمی فرستد.

Page 23: ترمیم در سیستمهای توزیع شده

Rollback-Recovery Continued

باز هم بهین�ه س�ازی در م�واردی ک�ه ًالزم نیس�ت پ�ردازه ای ب�اآغازی را انجام دهد:

نیازی به بازآغازی ندارد.X ، Zخطا در با رخداد•

X

Y

Z

X1 X2

Y1 Y2

Z2Z1

Page 24: ترمیم در سیستمهای توزیع شده

Rollback-Recovery Continued

:تعریف

Last-Label-SentX[Y] =

وق�تیx از y می خواه�د ک�ه ب�ه آخ�رین Cدائمی اش برگ�ردد Last-Label-SentX[Y] .را هم می فرس�تدY ب�ه ش�رط�ی ب�ه آخ�رین� C خ�ود

بر می گردد که Last-Label-RcvdY[X] > Last-Label-SentX[Y]

یع�نیX متمای�ل ب�ه ارج�اع ب�ه ح�التی اس�ت ک�ه ارس�ال ی�ک ی�ا چن�د شود.y، undo به Xپیغام از

roll-cohortX = {Y|X can send msgs to Y}

OtherwiseT

existsmiflm.

Largest Value

Page 25: ترمیم در سیستمهای توزیع شده

The algorithmInitial state at process P: Resume-execution := true;

For all processes q, doLast-label-rcvdp[q] := T;

Willing-to-rollp = yes / no …. At initiator process Pi:

For all processes p roll-cohortpi doSend Prepare-to-rollback(Pi, last-label-sentPi[p])

message;If all processes p roll-cohortpi do

Send Roll-back message;Else

For all processes proll-cohortpi doSend Donot-roll-back message;

Page 26: ترمیم در سیستمهای توزیع شده

The algorithm Continued

At all processes p: Upon receiving Prepare-to-rollback(q, last-label-sentq[p])

Message from q doBeginIf willing-to-rollp AND last-label-rcvdp[q] > last-label-

sentq[p] AND (resume-executionp)Then

BeginResume-executionp := false;For all processes r roll-cohortp do

Send Prepare-to-rollback(p, last-label- sentp[r]) message;

If all processes r roll-cohortp replied “yes” then

willing-to-rollp := “yes”else

willing-to-rollp := “no”end;

Send (p, willing-to-rollp) message tp q;End;

Page 27: ترمیم در سیستمهای توزیع شده

The algorithm Continued

Upon receiving Roll-back message AND if resume-executionp = false do

BeginRestart from p’s permanent checkpoint;For all processes r roll-cohortp do

Send Roll-back message;End;

Upon receiving Donot-roll-back message doBeginResume execution;For all processes r roll-cohortp do

Send Roll-back message;End; 

Page 28: ترمیم در سیستمهای توزیع شده

Async Checkpointing & Recovery:معایب نقطه مقابله سازی همگام

مبادله می شوند.Cپیغامهای اضافی که در هر 1.

پیغ�ام محاس�باتی مبادل�ه نمی شود.Cتأخیرات همگ�انی ک�ه در حین 2.

دو 3. ه�ر بین ن�ادر خط�ای ک�ه سیس�تمهایی درخص�وص زی�اد Cسربار متوالی دارند.

خ�ود را مس�تقل از دیگ�ران Cدر روش ناهمگ�ام، ه�ر پ�ردازه )پردازن�ده( 1.ه�ای محلی� C تض�مینی ب�ر� س�ازگا�ری �مجموع�ه ای از� � می �گ�یرد.

وجود ندارد.ه�ا را قب�ل C الگ�وریتم ت�رمیم بای�د اخ�یرترین مجموع�ه س�ازگار از

از آغاز ترمیم پیدا کند. Rollback ش�ده در حین undo ب�رای ح�داقل ک�ردن م�یزان محاس�بات 1.

شوند. �redo می شوند تا اح�تماًال Log، همه پیغامها�ی وارده �

Page 29: ترمیم در سیستمهای توزیع شده

 Juang & Venkatesan الگوریتم

درcheckpointing فرض می کنیم که دو نوع ، Log داریم :ار فرار: دسترسی سریع ولی فر�هراز چندگاه یکبار ذخیره روی حافظه پایدار: پایدار

ار هر پ�ردازه پس از ه�ر واقع�ه، س�ه ت�ایی زی�ر را در حافظ�ه ف�ر�ثبت می کند:

{s, m, msg-sent}

:ه� سیس�تم اس�ت ک�ه ب�ا انتظ�ار ب�رای event - driver ف�رض ب�ر توج.می شود fireپیغام و رسیدن پیغام

.این همان نقطه مقابله محلی برای رخداد واقعه است

حالت پ�ردازه از قب�����ل رخ�داد واقع�ه

پیغ�ام )ش�امل شناس�ه فرس�تنده( ک�ه رس�یدنش ب�اعث رخ�داد واقع�ه

شده است

در ک�ه پیغامه�ا از ای مجموع�ه پردازن��ده توس��ط واقع��ه طی

ارسال شده است

Page 30: ترمیم در سیستمهای توزیع شده

: Juang & Venkatesan الگوریتمNotationsساختمان داده های ًالزم و

 RCVDij(chpti) از رس�یده پیغامه�ای تع�داد ب�ه jمع�رف i

ذخیره شده است. chpti باتوجه به اطالعاتی که در .استSENT ij(chpti) مع�رف تع�داد پیغامه�ای ارس�ال ش�ده ازi ب�ه j باتوجه به chpti.است ایده اصلی

ترمیم بای�د بتوان�د مجموع�ه ای س�ازگار از نق�اط مقابل�ه محلی خ�ود ب�ه دری�افتی و ارس�الیپی�دا کن�د ه�ر پردازن�ده پیغامه�ای

دیگران را می شمارد. وق�تی پردازن�ده ایrollback می کن�د، بای�د هم�ه کن�ترل کنن�د ک�ه

آی�ا پی�غامه�ای� دری�افت شد�ه اش�ان ی�ت�یم ش�ده ا�ند �ی�ا ن�ه؟ )م�قایس�ه پیغامه�ای دری�افت ک�رده و ارس�ال ش�ده(. اگ�ر وج�ود داش�ت،

ارجاع به مرحلة قبلی و ......

Page 31: ترمیم در سیستمهای توزیع شده

ادامه Juang & Venkatesan الگوریتم

اگ�رY ب�ه eY1 ،عقبگ�رد کن�د Y ی�ک پیغ�ام ب�ه X فرس�تاده اس�ت بای�د ب�ه X دری�افت ک�رده اس�ت.Y دوت�ا پیغ�ام از Xولی

هم Z س�ازگار باش�د.Y عقبگ�رد کن�د ت�ا ب�ا eX2ح�الت قب�ل از باید عقبگرد کند.

ex0X

Y

Z

ex1 ex2 ex3

ey0 ey1 ey2ey3

ez0 ez1 ez2 ez3

Page 32: ترمیم در سیستمهای توزیع شده

الگوریتم: :پیغ�امی منتش�ر فرض بازآغ�ازی، ب�ه محض پردازن�ده ه�ر

ک�رده ب�ود. الگ�وریتم بالفاص�له پس از ت�رمیم failمی کن�د ک�ه از خط�ا و بازآغ�ازی ش�روع می ش�ود و ی�ا ب�ا اطالع از خط�ای

پردازنده دیگر. هم�ه در الگ�وریتم همگ�ان، ب�ه پیغ�ام پخش خ�اطر به

پردازنده ها آغاز می شود. در پردازندهi :اگر ترمیم یافته از خطاست:

آخرین واقعهLog شده در حافظه پایدار ckpti= در غیر اینصورت

آخرین واقعه ای که رخ داده استckpti= )اعم از روی حافظه فرار یا پایدار(

Page 33: ترمیم در سیستمهای توزیع شده

ادامهالگوریتم

for k:=1 to N do (*N is he # of processors*)begin

for each neighboring process j doSend ROLLBACK(I, SENTij(ckpti)) msg;

wait for ROLLBACK msg from every neighbor.)چون همه در حال اجرای الگوریتم هستند پس به همسایه ها پیغام را می فرستند(

for every ROLLBACK(j,c) received from j,i does the following:

if RCVDij(ckpti) > c then /* یتیم پیغام /*وجودbegin

find the latest event e such that RCVDij(e)cj;ckpti := e;

end;end;

Page 34: ترمیم در سیستمهای توزیع شده

ادامهالگوریتم

مثال: در نظر بگیرید:

،خط�ا رخ�داد از بهYپس Y1 .برمی گ�ردد ey2 آخ�رین ن�یز را logواقع�ة ثبت ش�ده در از خط�ا اس�ت. چ�ون برگش�ت

هم الگوریتم را شروع می کنند.Z و Xپخش می کند

X

Y

Z

ey0 ey1 ey2ey3

ez0 ez1 ez2 ez3

ex0 ex1 ex2 ex3

X1

Y1

Z1

failure

Page 35: ترمیم در سیستمهای توزیع شده

ادامهمثال

در ابتدادر دور اول X ckptX eX3 RollBack(X,2) to Y, RollBack(X,0) to Z Y ckptY eY2 RollBack(Y,2) to X, RollBack(Y,1) to Z Z ckptZ eZ2 RollBack(Z,0) to X, RollBack(Z,1) to Y 

درX چون ، RCVDXY(ckptX) = 3> 2 ckptX eX2 :و لذا داریم

RCVD XY(eX2) = 2 2 درZ داریم RCVDZY(ckptZ) = 2> 1 پس ckptZ = eZ1 ارجاع به عقب درY،

نیاز به عقبگرد در این مرحله ندارد.Yپس

)(1)(

21)(

ZYZYZY

YXY

ckptSENTckptRCVD

ckptRCVD

RollBackدریافتی از پیغام

Page 36: ترمیم در سیستمهای توزیع شده

ادامهمثال

در دور دوم:سایت پیغام ارسالی

Y RollBack(Y,2) to X, RollBack(Y,1) to Z

X RollBack(X,0) to Z, RollBack(X,1) to Y

Z RollBack(Z,1) to Y, RollBack(Z,0) to X

مقدارckpt در Z, Y, X بترتیبex2 ، eY2 ، eZ1.است چون مجموع�هex2} ، eY2، eZ1 { اس�ت مجموع�ه س�ازگاری

.لزومی به عقبگرد بیش از این نیست.در مرحله دوم و سوم وضعیت جدیدی ایجاد نمی شود