کنترل همروندی خوشبینانه
کنترل همروندی خوشبینانه یکی از دو دیدگاه کلی برای کنترل همروندی است.
مراحل کار
۱. خواندن
فرض کنید که فردی در خانه نشسته است و میخواهد یک صفحه از ویکیپدیا را ویرایش کند. فرد مزبور ابتدا بر دکمه ویرایش میفشارد و تغییرات مورد نظر خود را انجام میدهد. این تغییرات در کاشه رایانه قرار دارد. سپس با فشردن دکمه «ذخیره شود» متن ویرایش به سرور ویکیپدیا فرستاده میشود.
۲.تایید
در سرور نرمافزار مدیاویکی بررسی میکند که آیا ویرایش شما با ویرایش دیگران درگیری دارد یا نه. اگر درگیری وجود داشت الگوریتمی مورد استفاده قرار میگیرد تا درگیری را برطرف سازد. یک راه برای رفع درگیری این است که ویرایش نخست در پایگاه داده ذخیره شود و ویرایشهای درگیر دیگر با فرستادن پیامی برای کاربران موردنظر نادیده انگاشته شود. راه دیگر این است که آن بخشهایی از ویرایش کاربران دیگر که درگیری ندارند نیز ذخیره شوند.
۳.نوشتن
اگر درگیری وجود نداشت تراکنش انجام میشود.
نمونه این نوع کنترل نرمافزار مدیاویکی است. الگوریتم کنترل آن در اینجا توصیف شده است. نمونه دیگر باگزیلا است (اینجا).
منابع
- علی عباسی، پروتکلهای کنترل همزمانی، دانشگاه تهران
- علی عباسی، کنترل همروندی، دانشگاه تهران
- (انگلیسی) (۳۷۰ ص) Philip A. Bernstein، Concurrency Control and Recovery in Database Systems، Addison Wesley، ۱۹۸۷
- (انگلیسی) http://www.cs.berkeley.edu/~brewer/cs262/kung.pdf