تالار گفتمان مانشت
rollback کردن یک تراکنش - نسخه‌ی قابل چاپ

rollback کردن یک تراکنش - irpersian20 - 31 اردیبهشت ۱۳۹۴ ۰۱:۰۰ ق.ظ

سلام

[تصویر:  3o7dhkrgwqwg.jpg]

عزیزان اینجا کتاب میگه اگر خواستید از بن بست فرار کنید. راه چاره این هست که یکی از تراکنش های شرکت کننده در بن بست رو rollback کنید.
من فرض میگیرم ما ۵ تراکنش داریم.
T1,T2,T3,T4,T5
یک حلقه کامل رو تکشیل دادن که ما رو به بسن بست برده و هر کدام نیاز به دیتا ایتم ان یکی دارند.
فرضا میائیم اینجا تراکنش T4 را رول بک میکنیم تا قفل را ازاد کند و T3 کارش انجام دهد تا قضیه حل شود و بعد نوبت خودش

اما اگر اینجا وقتی T2 به T3 خواست تکمیل بشه اما یک دستور العمل داشت T2 که باید T3 میرفت از T4 یک ایتمی را میخوند. و باز قفل میکرد اون ایتم رو. تکلیف چیه؟
فرضا همه این تراکنش ها چنین وضعیتی رو برای تکمیل دارد. هر تراکنش انگار غیرمستقیم نیاز به یک ایتم از تراکنش بعد تر ش هم دارد.