mysql و مدل ACID
مدل ACID مجموعه ای از مفاهیم و قواعد طراحی است که بر قابلیت اطمینان در ذخیره داده های تجاری و برنامه های با کاربرد حیاتی تاکید دارد.
مای اسکیوال شامل قطعات مختلفی مانند موتور ذخیره سازی اینودیبی است که که بسیار به مدل ACID سازگار هستند که موجب می شود تا داده ها در مواردی مانند استثنائی مانند خطای نرم افزاری و مشکلات سخت افزاری ازبین نروند. زمانی که از ویژگی های مدل ACID استفاده می شود دیگر نیاز به طراحی مجدد چرخه ی بررسی سازگاری داده ها و مکانیزم های بازیابی خطا وجود ندارد. همچنین در مواردی که سازگاری داده ها یا ازبین رفتن بخش اندکی از داده ها برای سیستم اهمیت زیادی نداشته باشد می توان از برخی از ویژگی های ACID جهت کارایی بیشتر چشم پوشی نمود.
بخش های زیر به نحوه برخورد ویژگی های مای اسکیوال و به طور خاص موتور ذخیره سازی اینودیبی با دسته بندی های مدل ACID می پردازد.
اتمی بودن
جنبه اتمی بودن مدل ACID بیشتر به تراکنش های اینودیبی مرتبط است. ویژگی های مرتبط مای اسکیوال عبارتند از :
- تنظیمات اعمال خودکار (autocommit)
- دستور اعمال (commit)
- دستور بازگشت به عقب (rollback)
سازگاری
این جنبه بیشتر به فرآیند های داخلی اینودیبی بستگی دارد تا از تداخل داده ها جلوگیری کند . ویژگی های مرتبط مای اسکیوال عبارتند از :
- بافر doublewrite در اینودیبی
- بازیابی خطا در اینودیبی
ایزوله سازی
این جنبه به طور اصلی به تراکنش های اینودیبی مربوط می شود که به صورت خاص بیانگر سطح ایزوله سازی در تراکنش ها می باشد. ویژگی های مرتبط مای اسکیوال عبارتند از :
- تنظیمات اعمال خودکار (autocommit)
- دستور SET ISOLATION LEVEL
- جزئیات سطح پایین قفل گذاری در اینودیبی ،این تنظیمات در جدول Information_schemaمشاهده می شوند.
با دوامی
جنبه دوام در مدل ACID شامل تنظیمات ویژگی های نرم افزاری مای اسکیوال می شود که به طور خاص با سخت افزار شما در تعامل هستند. به دلیل تفاوت های زیاد در پردازنده ها ، ابزار شبکه و رسانه ذخیره سازی این قسمت برای ارائه راهنمایی و اطلاعات دقیق دشوار است. ویژگی های مرتبط مای اسکیوال عبارتند از :
- وضعیت بافر doublewrite در اینودیبی که توسط گزینه innodb_doublewriteتنظیم می شود.
- گزینه پیکربندی innodb_flush_log_at_trx_commit
- گزینه پیکربندی sync_binlog
- گزینه پیکربندی innodb_file_per_table
- نوشتن بافر در یک رسانه ذخیره سازی مانند دسیک ،SSD یا RAID.
- کش با پشتیبانی باتری در دستگاه ذخیره سازی
- پشتیبانی از فراخوان سیستمی fsync()
- منبع تغزیه بدون وقفه UPS باید از تمام سیستم های سرور و دستگاه های ذخیره سازی داده ها پشتیبانی کند.
- استراتژی تهیه نسخه پشتیبان مانند تعداد و دفعات تکرار تهیه نسخه پشتیبان