دیتابیسها چطور هم سرعت بالایی دارن و هم با کرش کردن سیستم، دیتا رو از دست نمیدن؟ کلید ماجرا WAL یا Write-Ahead Logging هست.
دیتابیس به جای اینکه هر تغییر رو همون لحظه توی فایلهای سنگین اصلی ذخیره کنه (که کُند و پرریسکه)، اول تغییرات رو خیلی سریع و پشتسرهم توی یه فایل لاگ (WAL) مینویسه. همین که تو لاگ نوشته شد، به ما میگه کار با موفقیت انجام شد! بعداً سر فرصت تو پسزمینه، این لاگها رو روی فایلهای اصلی دیتا اعمال میکنه.
این کار دو تا مزیت طلایی داره:
۱. سرعت بالا: نوشتن ترتیبی (Sequential I/O) تو فایل لاگ خیلی سریعتر از گشتن و نوشتن تو فایلهای مختلفه.
۲. تضمین بقای دادهها (Durability): اگه یهو سرور خاموش بشه، دیتابیس موقع بالا اومدن دوباره این فایل WAL رو میخونه و تمام دیتایی که رو فایل اصلی نرفته بود رو بازسازی میکنه.
https://www.postgresql.org/docs/current/wal-intro.html
@codehalics | کدهالیک
Post #1189
237

- ❤ 3
- 👍 1