نشان دیپکدهدیپکده
مهندسی نرم افزار

۳ - تراکنش‌ها و کنترل همزمانی

دوره پیش نیاز: مبانی طراحی سیستم‌های داده‌محور

دوره متنی و تعاملی
سیدمهدی حسین زاده
سیدمهدی حسین زاده
۳ - تراکنش‌ها و کنترل همزمانی

درباره دوره

معرفی دوره

در دنیای مهندسی نرم‌افزار، همزمانی (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) برای مهار خطاهای مرزی شبکه و سرور

سرفصل‌ها و درس‌ها

ساختار دوره را فصل به فصل مرور کن و هر ویدیو را پخش کن.

5 فصل
تشریح ACID و تضمین‌های ایمنی تراکنش‌ها4 درس
01معرفی و اهداف فصل: تشریح ACID و تضمین‌های ایمنی تراکنش‌ها
02معنای واقعی ACID: فراتر از افسانه‌ها
03تراکنش‌های تک‌شیئی در برابر چندشیئی: مرزهای امنیت
04آزمون فصل ۱: تشریح ACID و تضمین‌های ایمنی تراکنش‌ها
سطوح انزوا و ناهنجاری‌های هم‌زمانی4 درس
01معرفی و اهداف فصل: سطوح انزوا و ناهنجاری‌های هم‌زمانی
02خواندن تاییدشده و خواندن کثیف
03به‌روزرسانی گم‌شده و تداخلات هم‌زمانی
04آزمون فصل ۲: سطوح انزوا و ناهنجاری‌های هم‌زمانی
ایزولاسیون اسنپ‌شات و کنترل همزمانی چندنسخه‌ای4 درس
01معرفی و اهداف فصل: ایزولاسیون اسنپ‌شات و کنترل همزمانی چندنسخه‌ای
02ایزولاسیون اسنپ‌شات و معماری داخلی MVCC
03انحراف در نوشتن (Write Skew) و پدیده فانتوم‌ها
04آزمون فصل ۳: ایزولاسیون اسنپ‌شات و کنترل همزمانی چندنسخه‌ای
مکانیزم‌های سریال‌پذیری و صحت سرتاسری4 درس
01معرفی و اهداف فصل: مکانیزم‌های سریال‌پذیری و صحت سرتاسری
02رویکردهای سریال‌پذیری: اجرای واقعی، 2PL و SSI
03اصل صحت سرتاسری و ادامپوتنسی
04آزمون فصل ۴: مکانیزم‌های سریال‌پذیری و صحت سرتاسری
پروژه پایانی: طراحی معماری تراکنش‌ها و کنترل هم‌زمانی3 درس
01معرفی و اهداف فصل: پروژه پایانی: طراحی معماری تراکنش‌ها و کنترل هم‌زمانی
02پروژه عملی: سیستم دفتر کل مالی و رزرواسیون
03آزمون جامع پایانی: تراکنش‌ها و کنترل هم‌زمانی