هنگام انتخاب، استفاده و نگهداری از یک پایگاه داده، درک ساختار داخلی آن ضروری است. اما با وجود پایگاههای داده توزیعشده و ابزارهای فراوان موجود امروزی، اغلب دشوار است که بفهمیم هر کدام چه چیزی ارائه میدهند و چه تفاوتهایی با هم دارند. با این راهنمای عملی، الکس پتروف توسعهدهندگان را از طریق مفاهیم پشت ساختار داخلی موتورهای ذخیرهسازی و پایگاه داده مدرن راهنمایی میکند. در طول کتاب، مطالب مرتبطی را که از کتابها، مقالات، پستهای وبلاگ متعدد و کد منبع چندین پایگاه داده منبع باز جمعآوری شدهاند، بررسی خواهید کرد. این منابع در پایان بخشهای اول و دوم فهرست شدهاند. متوجه خواهید شد که مهمترین تفاوتها در میان بسیاری از پایگاههای داده مدرن در زیرسیستمهایی نهفته است که نحوه سازماندهی ذخیرهسازی و نحوه توزیع دادهها را تعیین میکنند. این کتاب به بررسی موارد زیر میپردازد: موتورهای ذخیرهسازی (Storage engines): طبقهبندی و دستهبندی ذخیرهسازی را کاوش میکند و به موتورهای ذخیرهسازی مبتنی بر درخت B و موتورهای ذخیرهسازی ساختاریافته با لاگ (Log Structured) تغییرناپذیر میپردازد، همراه با تفاوتها و موارد استفاده برای هر یک. بلوکهای سازنده ذخیرهسازی: نحوه سازماندهی فایلهای پایگاه داده برای ساخت ذخیرهسازی کارآمد را با استفاده از ساختارهای داده کمکی مانند کش صفحه (Page Cache)، بافر پول (Buffer Pool) و لاگ پیشنویس (Write-Ahead Log) میآموزید. سیستمهای توزیعشده: گام به گام نحوه اتصال گرهها و فرآیندها و ساخت الگوهای ارتباطی پیچیده را میآموزید. خوشههای پایگاه داده: مدلهای سازگاری که معمولاً توسط پایگاههای داده مدرن استفاده میشوند و نحوه دستیابی سیستمهای ذخیرهسازی توزیعشده به سازگاری را بررسی میکند.
اشتراکی

با مرور فصلها، ساختار ، محتوای کتاب را به سرعت بشناسید.
با مرور فصلهای این کتاب میتونی خیلی سریع بفهمی هر بخش چی یاد میده، ساختار کلی چطوره و از کجا باید شروع کنی. هر فصل روی یک مفهوم یا مهارت خاص تمرکز داره و موضوعات اصلیش رو میبینی تا انتخابت آگاهانهتر باشه. چه بخوای کل کتاب رو دنبال کنی، چه فقط یک بخش خاص رو دنبال کنی، این نما کمکت میکنه مسیرت رو پیدا کنی.
وظیفه اصلی هر سیستم مدیریت پایگاه داده، ذخیرهسازی مطمئن دادهها و در دسترس قرار دادن آنها برای کاربران است. ما از پایگاههای داده به عنوان منبع اصلی داده استفاده میکنیم و این به ما کمک میکند تا دادهها را بین بخشهای مختلف برنامههایمان به اشتراک بگذاریم. به جای یافتن راهی برای ذخیره و بازیابی اطلاعات و ابداع روشی جدید برای سازماندهی دادهها هر بار که یک برنامه جدید ایجاد میکنیم، از پایگاههای داده استفاده میکنیم. به این ترتیب میتوانیم به جای زیرساخت، بر منطق برنامه تمرکز کنیم.
از آنجایی که اصطلاح سیستم مدیریت پایگاه داده (DBMS) نسبتاً حجیم است، در سراسر این کتاب از اصطلاحات فشردهتر، سیستم پایگاه داده و پایگاه داده، برای اشاره به همین مفهوم استفاده میکنیم.
پایگاههای داده سیستمهای ماژولار هستند و از چندین بخش تشکیل شدهاند: یک لایه انتقال که درخواستها را میپذیرد، یک پردازشگر پرسوجو که کارآمدترین راه برای اجرای پرسوجوها را تعیین میکند، یک موتور اجرا که عملیات را انجام میدهد، و یک موتور ذخیرهسازی (Storage engine) (به «معماری DBMS» مراجعه کنید).
موتور ذخیرهسازی (Storage engine) (یا موتور پایگاه داده) یک جزء نرمافزاری از سیستم مدیریت پایگاه داده است که مسئول ذخیرهسازی، بازیابی و مدیریت دادهها در حافظه و روی دیسک است و برای ثبت یک حافظه پایدار و بلندمدت از هر گره طراحی شده است [REED78]. در حالی که پایگاههای داده میتوانند به پرسوجوهای پیچیده پاسخ دهند، موتورهای ذخیرهسازی به دادهها با جزئیات بیشتری نگاه میکنند و یک API دستکاری داده ساده ارائه میدهند که به کاربران امکان میدهد رکوردها را ایجاد، بهروزرسانی، حذف و بازیابی کنند. یک راه برای نگاه به این موضوع این است که سیستمهای مدیریت پایگاه داده، برنامههایی هستند که بر روی موتورهای ذخیرهسازی ساخته شدهاند و یک شمای (schema) و یک پرسوجو ...

مقدمه و بررسی اجمالی

مبانی درخت B

فرمتهای فایل

پیادهسازی درختان B

پردازش تراکنش و بازیابی

انواع درخت B

ذخیرهسازی ساختاریافته با لاگ
بدون سیستمهای توزیعشده (Distributed systems)، ما قادر به برقراری تماس تلفنی، انتقال پول یا تبادل اطلاعات در فواصل طولانی نبودیم. ما روزانه از سیستمهای توزیعشده استفاده میکنیم. گاهی اوقات، حتی بدون اینکه متوجه شویم: هر برنامه کلاینت/سرور یک سیستم توزیعشده است.
برای بسیاری از سیستمهای نرمافزاری مدرن، مقیاسگذاری عمودی (vertical scaling) (مقیاسگذاری با اجرای همان نرمافزار بر روی یک ماشین بزرگتر، سریعتر با CPU، RAM بیشتر یا دیسکهای سریعتر) امکانپذیر نیست. ماشینهای بزرگتر گرانتر، سختتر قابل تعویض هستند و ممکن است نیاز به نگهداری ویژه داشته باشند. یک جایگزین، مقیاسگذاری افقی (horizontal scaling) است: اجرای نرمافزار بر روی چندین ماشین متصل از طریق شبکه و کار کردن به عنوان یک موجودیت منطقی واحد.
سیستمهای توزیعشده ممکن است هم از نظر اندازه، از چند ماشین تا صدها ماشین، و هم از نظر ویژگیهای شرکتکنندگانشان، از دستگاههای کوچک دستی یا حسگر تا رایانههای با کارایی بالا، متفاوت باشند.
زمانی که سیستمهای پایگاه داده عمدتاً بر روی یک گره واحد اجرا میشدند، مدتهاست که گذشته است، و اکثر سیستمهای پایگاه داده مدرن دارای چندین گره متصل در خوشهها هستند تا ظرفیت ذخیرهسازی را افزایش دهند، عملکرد را بهبود بخشند و در دسترس بودن را افزایش دهند.
اگرچه برخی از پیشرفتهای نظری در محاسبات توزیعشده جدید نیستند، اما بیشتر کاربردهای عملی آنها نسبتاً اخیراً اتفاق افتاده است. امروزه، ما شاهد افزایش علاقه به این موضوع، تحقیقات بیشتر و ...

مقدمه و بررسی اجمالی

تشخیص خطا

انتخاب رهبر

تکثیر و سازگاری

ضد آنتروپی و انتشار

تراکنشهای توزیعشده

اجماع
14 فصل در حال تولید
مدت زمان خوانش
10:23
نوع کتاب
اشتراکی
شرکت کنندگان
0 نفر
تولید کتاب
۳۰ شهریور ۱۴۰۵