PDA

View Full Version : مقاله: Deadlock Management-مدیریت بن بست



artour
یک شنبه 01 آذر 1388, 12:15 عصر
یکی از مشکل هایی که در پروژه های چند کاربره(web) ممکنه واسه خیلی ها پیش آمده باشه،بن بست و مشکلاتی که در پی داره .
تو این تاپیک می خوام در مورد بن بست و انواع مدیریتش در کد برنامه صحبت کنم.
به عنوان مثال:

فرض کنید رکوردهای جدولی از دیتابیس وجود داره
1,ehsan,amini
2,reza,javadi
3
....


حال فرض کنید


کاربر 1 درخواست ویرایش رکورد 1 و نمایش رکوردها را بدهد(تراکنش1)
از طرفی کاربر 2 درخواست نمایش رکوردهاو ویرایش رکورد 2 را بدهذ.(تراکنش2)


در این حالت وقتی که کاربر1 در حال ویرایش رکورد 1 است کاربر 2 اجازه دسترسی به این رکورد را ندارد و تراکنش 2 به حالت انتظار می رود.
از طرفی حالت عکس برای کاربر 1 پیش می آید. یعنی وقتی کاربر 2 در حال ویرایش رکورد 2است کاربر1 اجازه دسترسی به این رکورد را ندارد.

در این حالت دو تراکنشی که به حالت wait(انتظار) رفته اند، دچار بن بست می شوند.


روش های مدیریت بن بست

1.چشم پوشی(ignore)
2.فرصت(timeout)
3.پیشگیری(prevention)
4.اجتناب (avoidance)
5.تشخیص و رفع بن بست

در قسمت های بعد به بررسی هر یک از این روش ها، همچنین پیاده سازی هر یک از آنها در
برنامه می پرداریم.امیدوارم در بهبود این قسمت همکاری کافی رو انجام بدبد.