کنترل همروندی چیست؟ (Concurrency Control)
تعریف کنترل همروندی
Concurrency Control
مسئله کنترل همروندی، به هماهنگی دسترسی های همزمان به پایگاه داده در سیستم مدیریت چند کاربردی (DBMS) اتلاق می گردد. کنترل همروندی به کاربران اجازه دسترسی به پایگاه داده به شیوه برنامه ریزی شده چندگانه را می دهد و در عین حال، خطا و اشتباهی که هر کاربر به تنهایی روی سیستم تخصیص داده شده اجرا می کند را حفظ می نماید. مشکل فنی اصلی در نیل به این هدف، پیشگیری ازاختلال در به روزرسانی پایگاه داده توسط یک کاربر با بازیابی پایگاه داده و به روزرسانی های انجام شده توسط کاربر دیگر می باشد. مسئله کنترل همروندی در DDBMS توزیع شده بدتر می شودزیرا (۱) کاربران به داده های ذخیره شده در بسیاری از کامپیوترهای مختلف در سیستم توزیع شده دسترسی دارندو (۲) مکانیزم کنترل همروندی در یک کامپیوتر را نمی توان به صورت لحظه ای تصدیق نمود. زیرا کنترل همروندی پایگاه داده توزیع شده یکی از پیچیده ترین و چالش برانگیزترین حوزه ها در سیستم های پایگاه داده است. نرم افزار بلادرنگ برای برنامه های کاربردی مطمئن و بحرانی کنترل همروندی در پایگاه داده توزیع شده لازم و ضروری می باشد. سیستم های بلادرنگ در اینجا نقش غالبی ایفا می کنند، در اینجا تعداد زیادی از برنامه های کاربردی شامل وظایف بلادرنگ می باشند که اغلب با اشکالات مهمی از لحاظ هزینه و زمان تلفات روبرو می باشند.
در مطالعات اخیر، کارهای پژوهشی زیادی به روشها و مکانیزم های کنترل همروندی تخصیص داده شده است، زیرا برای حفظ قابلیت اعتماد و پایداری پایگاه داده توزیع شده بلادرنگ به آنها نیاز می باشد، چرا که آنها ویژگیهای مختلفی از برنامه های کاربردی بلادرنگ بکاررفته در پایگاه داده توزیع شده را به صورت سری قرار می دهند که به موارد زیر کمک می کنند: (۱) توصیف داده ها (ابرداده)، (۲) حفظ درستی و یکپارچگی داده ها، (۳) دسترسی کارآمد به داده ها و (۴) اجرای درست تراکنش ها علی رغم همروندی و خرابی.
از لحاظ سنتی، پایگاههای داده با داده های بادوام سرو کار دارند. تراکنش های اصلی که به داده ها دسترسی داشته و سازگاری آنها را حفظ می کنند. هدف تراکنش و روشهای پردازش پرس و جو انتخابی در پایگاههای داده، دستیابی به کارایی و زمان پاسخ خوب جهت تضمین عملکرد بهتر می باشد. بر عکس، سیستم های پایگاه داده بلادرنگ می توانند با داده های زمانی نیز سرو کار داشته باشند ( به عبارتی داده های زمان بندی شده بعد از یک زمان خاص). اختلاف مهم آن است که هدف سیستم های پایگاه داده بلادرنگ، تامین محدودیت های زمانی تراکنش ها می باشد. همچنین شایان توجه است بلادرنگ الزاماً به معنای سریع نیست. بلادرنگ به معنای نیاز به مدیریت محدودیت های زمان طبقاتی به شیوه ای قابل پیش بینی یعنی استفاده از روشهای آگاه از زمان برای مقابله با موعدها و ضرب العجل ها یا محدودیت های دوره ای بودن مرتبط با وظایف و تراکنش ها می باشد.
این کار نیاز به روشهای کنترل همروندی پیچیده در سیستم های پایگاه داده توزیع شده بلادرنگ را بزرگ می کند. بنابراین رویکرد جدیدی برای کنترل همروندی خوشبینانه جدید مطرح شده است که براساس دوباره کاری روی حجم کار فعلی عمل می کند.
هر تراکنش پایگاه داده با قواعد ACID مطابقت دارد؛ تعداد اتم ها،سازگاری، جدایی، و دوام. بسته به تیپ های تراکنش، سطح موازی گرایی و سایر عوامل، مکانیزم های کنترل همروندی متفاوتی پیاده می شوند. a) کنترل همروندی بدبینانه: اگر بیش از یک تراکنش برای به روزرسانی داده ها در یک زمان مورد انتظار باشد، آنگاه داده ها را قفل کرده و از عملیات های به روزرسانی همپوشان تراکنش ها جهت دسترسی به داده های یکسان جلوگیری کنید، اما به عملیات های خواندن اجازه دسترسی به داده های قفل شده را دهید. B) کنترل همروندی خوشبینانه: تاخیر این مسئله را چک می کند که آیا تراکنش قواعد ACID برای حالت ارتکاب، جهت پیشگیری از نقض و تخلف را تامین می کند یا خیر.