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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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 { اس�ت مجموع�ه س�ازگاری

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