قد تعتقد أنه بمجرد حفظ ملف أو تعديل قاعدة بيانات، تُكتب البيانات مباشرة إلى القرص. لكن في الواقع، لا يحدث ذلك دائمًا في أنظمة Linux.
بدلًا من الكتابة الفورية، يحتفظ النظام بالبيانات المعدلة داخل الذاكرة لفترة قصيرة قبل نقلها إلى وحدة التخزين. وتُعرف هذه البيانات باسم Dirty Pages.
هذه الآلية تساهم في تحسين الأداء بشكل كبير، لكنها تتطلب إدارة دقيقة للحفاظ على سلامة البيانات.
Dirty Pages هي صفحات من الذاكرة تحتوي على بيانات تم تعديلها، ولكن لم تُكتب بعد إلى وحدة التخزين.
تظل هذه الصفحات في الذاكرة حتى يقرر النظام أو التطبيق نقلها إلى القرص فيما يُعرف بعملية Writeback.
عند تعديل ملف:
تجميع عدة عمليات كتابة في عملية واحدة يقلل عدد مرات الوصول إلى القرص.
خاصة مع أقراص SSD التي تمتلك عددًا محدودًا من دورات الكتابة.
لا يضطر التطبيق للانتظار حتى تنتهي عملية الكتابة.
إذا انقطع التيار الكهربائي أو تعطل الخادم قبل كتابة Dirty Pages إلى القرص، فقد تُفقد آخر التعديلات.
ولهذا تستخدم قواعد البيانات تقنيات مثل Write-Ahead Logging (WAL) لضمان سلامة البيانات.
يعتمد Linux على عدة إعدادات مثل:
vm.dirty_ratiovm.dirty_background_ratioلتحديد الحد الأقصى للبيانات التي يمكن الاحتفاظ بها في الذاكرة قبل بدء الكتابة إلى القرص.
لا، لكنها تزيد احتمال فقدان آخر التعديلات في حال حدوث انقطاع مفاجئ قبل كتابة البيانات.
نعم، باستخدام أوامر مثل sync أو من خلال التطبيقات التي تطلب الكتابة المتزامنة.
تعد Dirty Pages من أهم الآليات التي يستخدمها Linux لتحقيق توازن بين الأداء وسلامة البيانات، حيث تسمح بتجميع عمليات الكتابة وتحسين كفاءة وحدات التخزين.