۳ - تراکنشها و کنترل همزمانی
دوره پیش نیاز: مبانی طراحی سیستمهای دادهمحور
درباره دوره
معرفی دوره
در دنیای مهندسی نرمافزار، همزمانی (Concurrency) یکی از پیچیدهترین و خطازاترین مباحث است. باگهای ناشی از اجرای همزمان تراکنشها معمولاً نادیدنی، غیرقابلتولید مجدد در محیطهای تستی (Non-deterministic) و وابسته به زمانبندیهای میلیثانیهای هستند. اغلب توسعهدهندگان تصور میکنند صرف استفاده از یک پایگاه داده رابطهای با واژه تجاری «ACID» سیستم آنها را در برابر هرگونه فساد داده بیمه میکند؛ در حالی که این تصور یک اشتباه پرهزینه است.
در این دوره بر اساس آموزههای کتاب مرجع Designing Data-Intensive Applications اثر مارتین کلپمن، گامبهگام لایههای زیرین تراکنشها را کالبدشکافی میکنیم. از تعریف فنی و تفکیکشده ACID و بررسی ناهنجاریهای ظریف سطوح ایزولاسیون ضعیف گرفته تا ساختار داخلی MVCC، پدیده Write Skew، الگوریتمهای مدرن سریالپذیری بهینهبینانه (SSI) و اصل صحت انتها به انتها با کلیدهای توانرسانی، تمام مفاهیم را در قالب سناریوهای ملموس و چالشهای تحلیلی پلتفرم دیپ یار فرا خواهید گرفت.
سرفصلهای دوره:
- فصل ۱ — کالبدشکافی ACID و تضمینهای ایمنی: تفکیک دقیق Atomicity از همزمانی، چرایی تعلق Consistency به اپلیکیشن، و تراکنشهای تکموجودیتی در برابر چندموجودیتی.
- فصل ۲ — سطوح ایزولاسیون ضعیف و ناهنجاریهای همزمانی: بررسی Read Committed، رفع ناهنجاری Dirty Read و مهار Lost Update با قفلهای صریح و عملیات اتمیک.
- فصل ۳ — ایزولاسیون اسنپشات و کنترل همزمانی چندنسخهای: ساختار داخلی MVCC، قاعده «خوانندگان مانع نویسندگان نمیشوند»، ناهنجاری انحراف در نوشتن (Write Skew) و پدیده فانتومها.
- فصل ۴ — مکانیزمهای سریالپذیری و اصل صحت انتها به انتها: مقایسه ۲PL و SSI، محدودیتهای تراکنش محلی دیتابیس در برابر خطاهای مرزی شبکه و توانرسانی (Idempotency).
- فصل ۵ — پروژه نهایی و ارزیابی جامع: طراحی سیستم دفترکل تراکنشی و سامانه رزرواسیون با ۵ گیت تصمیم معماری + آزمون جامع پایانی.
اهداف و دستاوردهای یادگیری:
- کالبدشکافی تضمینهای چهارگانه ACID و تمایز دقیق اتمیسیته از ایزولاسیون و چرایی وابستگی سازگاری به منطق اپلیکیشن
- شناسایی و پیشگیری از ناهنجاریهای همزمانی نظیر Dirty Read, Lost Update, Non-repeatable Read, Phantom Read و Write Skew
- درک مکانیزم داخلی کنترل همزمانی چندنسخهای (Snapshot Isolation / MVCC) و قوانین دیدپذیری سطرها
- مقایسه فنی و ارزیابی تریدآفهای سه روش سریالپذیری: اجرای متوالی واقعی، قفلگذاری دوفازی (2PL) و ایزولاسیون اسنپشات سریالپذیر (SSI)
- به کارگیری اصل صحت انتها به انتها (End-to-End Correctness) و پیادهسازی کلیدهای توانرسانی (Idempotency Keys) برای مهار خطاهای مرزی شبکه و سرور
منابع دوره
کتابهایی که این دوره بر اساس آنها طراحی شده است.
سرفصلها و درسها
ساختار دوره را فصل به فصل مرور کن و هر ویدیو را پخش کن.