۲ - معماری دادههای توزیعشده
دوره پیش نیاز: مبانی طراحی سیستمهای دادهمحور
درباره دوره
معرفی دوره
وقتی حجم دادهها، نرخ ترافیک نوشتن و خواندن، یا نیازمندیهای دسترسیپذیری جغرافیایی از توان یک ماشین واحد فراتر میرود، چارهای جز ورود به دنیای سیستمهای توزیعشده وجود ندارد. با این حال، توزیع دادهها بهای سنگینی به همراه دارد: شبکههای نامطمئن با قطعیهای غیرمنتظره، ساعتهای سختافزاری با انحراف زمانی، ناهماهنگی در کپی دادهها و پدیده شکستهای جزئی (Partial Failures).
در این دوره بر اساس بینشهای عمیق کتاب مرجع Designing Data-Intensive Applications اثر مارتین کلپمن، گامبهگام با اصول معماری دادههای توزیعشده آشنا میشوید. از استراتژیهای رپلیکیشن و تکنیکهای پارتیشنبندی گرفته تا مدیریت ساعتهای نامطمئن، تضمینهای خطیپذیری و پروتکلهای اجماع توزیعشده، تمامی مفاهیم همراه با سناریوهای ملموس مهندسی و چالشهای تعاملی پلتفرم دیپ یار کالبدشکافی میشوند.
سرفصلهای دوره:
- فصل ۱ — چرا توزیع میکنیم و اصل طراحی برای شکست: انگیزههای مقیاسپذیری و پایایی، درک شکستهای جزئی و دگرگونی تفکر در سیستمهای توزیعشده.
- فصل ۲ — استراتژیهای رپلیکیشن و ناهنجاریهای تأخیر: کالبدشکافی مدلهای تکلیدری، چندلیدری و بدون لیدر، تضمینهای سازگاری و تکنیک کووروم (Quorum).
- فصل ۳ — پارتیشنبندی و توزیع بار: تقسیم داده بر اساس بازه کلید و هش، هشینگ پایدار (Consistent Hashing) و چالشهای شاخصهای ثانویه.
- فصل ۴ — شبکههای نامطمئن، ساعتها و توقفهای زمانی: خطرات ساعتهای سختافزاری، پرشهای زمانی، توقفهای GC و تکنیک Fencing Tokens.
- فصل ۵ — خطیپذیری، اجماع و تعهد توزیعشده: تفاوت خطیپذیری و سریالپذیری، قضیه CAP، پروتکلهای 2PC، Raft و Paxos.
- فصل ۶ — پروژه نهایی و ارزیابی جامع: طراحی گامبهگام معماری پایگاه داده توزیعشده برای یک سرویس مقیاس بزرگ جهانی و آزمون جامع پایانی.
اهداف و دستاوردهای یادگیری:
- انتخاب استراتژی رپلیکیشن بهینه (تکلیدری، چندلیدری و بدون لیدر Dynamo-style) متناسب با نیازمندیهای بار و تحمل خطا
- شناسایی و خنثیسازی ناهنجاریهای ناشی از تأخیر رپلیکیشن از طریق تضمینهای سازگاری نظیر Read-Your-Own-Writes و Monotonic Reads
- طراحی معماری پارتیشنبندی مقیاسپذیر با استفاده از هشینگ پایدار (Consistent Hashing) و مدیریت ایندکسهای ثانویه
- تحلیل عمیق خطرات ساعتهای نامطمئن، انحرافات زمانی و توقفهای Garbage Collection و پیادهسازی مکانیزمهای Fencing
- تمایز دقیق خطیپذیری (Linearizability) از سریالپذیری (Serializability) و تحلیل محدودیتهای قضیه CAP
- ارزیابی پروتکلهای اجماع توزیعشده (Raft, Paxos, Zab) در مقایسه با تعهد دو مرحلهای (2PC) در شرایط شکست شبکه
منابع دوره
کتابهایی که این دوره بر اساس آنها طراحی شده است.
سرفصلها و درسها
ساختار دوره را فصل به فصل مرور کن و هر ویدیو را پخش کن.