در مبحث ۳ برنامه level-up میخوایم با Optimistic Concurrency Control آشنا بشیم، که یک متده که در سیستمهای تراکنشی (Transactional) مثل دیتابیسها استفاده میشه تا از ثبات دادهها در عین حال که امکان دسترسی همزمان (Concurrent) رو میده، فراهم کنه. فرض میکنه که تضاد بین تراکنشهای همزمان نادر خواهد بود و به چندین تراکنش اجازه میده تا دادههای یکسان رو به طور همزمان بخونن و بنویسن، بدون اینکه منبع داده قفل (Lock) بشه.
در مدل کنترل همزمانی خوشبینانه، به هر تراکنش یک کپی از دادهای که لازم داره تغییر بده داده میشه، قبل از اینکه تراکنشاش commit بشه، با بررسی اینکه هیچ تراکنش دیگهای از زمان دریافت کپی داده، اون رو تغییر نداده، تایید میکنه که کپی اون داده، هنوز معتبره. اگر داده تغییری نکرده بود، تراکنش commit میشه و دیتای جدید در دیتابیس نوشته میشه. اگر داده تغییر کرده بود، تراکنش به حالت قبلی برمیگرده و باید دوباره از نو انجام بشه.
این روش کنترل همزمانی خوشبینانه، اغلب توسط سیستمهای با همزمانی بالا یا با رقابت بالا برای منابع مشترک، استفاده میشه که امکان استفاده کاراتر از منابع رو میده. اگر چه نیازمند کار بیشتری برای نگهداری و چک کردن درگیریهای داده (Data Conflict) است.
اگر این پست براتون مفید بود، لایک فراموش نشه :)