الگوریتم های مدیریت آزاد سازی و flushing فضای پر کش در سیستم های ذخیره سازی Block-base

کش منبعی گران قیمت است که نیازمند مدیریت مناسب می باشد. اگرچه سیستم های ذخیره سازی هوشمند مدرن به میزان زیادی کش مجهز می باشند، اما وقتی که همه page های کش پر شوند، برای سرویس دهی به داده های جدید و جلوگیری از افت عملکرد، بعضی از page ها باید آزاد شوند.

 

 الگوریتم های مدیریت آزاد سازی فضای پر کش

انواع الگوریتم های مدیریت کش برای نگهداری از page های آزاد و لیست page های احتمالی برای آزاد شدن در سیستم های ذخیره سازی هوشمند پیاده سازی می شوند، که رایج ترین الگوریتم های مورد استفاده به شرح ذیل می باشد:

 

(Least Recently Used (LRU

 الگوریتمی که به صورت مداوم دسترسی به داده ها را در کش مانیتور می کند و page های کش که برای مدتی طولانی مورد دسترسی قرار نگرفته اند را شناسایی، آزاد و یا برای استفاده مجدد مشخص می کند. این الگوریتم بر اساس این فرض است که داده هایی که برای مدت طولانی مورد استفاده قرار نگرفته اند، توسط سیستم محاسباتی مورد درخواست قرار نخواهند گرفت.

 با این حال، اگر یک page شامل داده هایی است که باید در دستگاه های ذخیره سازی نوشته شوند، ولی هنوز نوشته نشده اند، قبل از استفاده مجدد از کش، داده ها باید بر روی دستگاه ذخیره سازی نوشته شوند.

 

(Most Recently Used (MRU

این الگوریتم بر عکس LRU می باشد و به این صورت است کهpage هایی که اخیرا مورد دسترسی قرار گرفته اند آزاد می شوند و یا برای استفاده مجدد مشخص می شوند. این الگوریتم بر اساس این فرض است که داده هایی که اخیراً مورد استفاده قرار گرفته اند، ممکن است برای مدتی مورد نیاز نباشند.

 

 

 

الگوریتم های مدیریت flushing فضای پر کش

هنگامی که کش پر می شود، سیستم ذخیره سازی برای مدیریت فضای کش باید محتویات  pageهای پر که داده های آن ها هنوز به دستگاه ذخیره سازی منتقل نشده به دستگاه ذخیره سازی منتقل شوند، و این فرآیند flushing  نامیده می شود. سرعت و الگوی دسترسی I/O که برای مدیریت فرآیند flushing در کش تنظیم می شود watermark نامیده می شود و دارای دو سطح می باشد.

 

 (High watermark (HWH سطح بالای استفاده از کش که در آن سيستم ذخيره سازي با سرعت بالا flushing داده ها را شروع مي شود. (Low watermark (LWM سطح پایین استفاده از کش و نقطه ای که در آن سیستم ذخیره سازی، flushing داده ها به درایوهای ذخیره سازی را متوقف می کند. مدهای flushing مورد استفاده در سطح استفاده از کش به شرح ذیل می باشد:

 

Idle flushing : این مد زمانی که سطح استفاده از کش بین watermark بالا و پایین باشد، به طور پیوسته و با سرعت متوسط اتفاق می افتد.

High watermark flushing : این مد هنگامیکه استفاده از کش به watermark بالا برسد، فعال می شود. سیستم ذخیره سازی برخی از منابع اضافی را برای flushing اختصاص می دهد، و این نوع flushing تأثیر اندکی بر روی پردازش I/O دارد.

 

Forced flushing : در صورت بزرگی I/O و در شرایطی که کش 100 % پر شود اتفاق می افتد. سیستم کش با اولویت بالا و تخصیص منابع بیشتر flushing را انجام می دهد و بر روی response time تاثیر قابل توجهی خواهد داشت.

 

 

برای بهینه سازی عملکرد سیستم ذخیره سازی، میزان flushing و پذیرش I/O از سیستم محاسباتی در کش بصورت پویا مدیریت می شوند، و کنترلر بصورت پویا و خودکار I/O ورودی و خروجی را تنظیم می کند. الگوریتم های هوشمند flushing درایوهای ذخیره سازی را با زمان مورد نیاز جهت پردازش بار اضافی flushing تجهیز می نمایند، و با تاخیر ارسال تاییدیه  (acknowledgement) به سیستم محاسباتی و کندی سرعت نوشتن داده های ورودی ، تا زمانی که میزان داده های ورودی با قابلیت درایو های ذخیره سازی زیرساخت برای رسیدگی به حجم های کار یکسان گردد، bottleneck  در نوشتن همچنان خواهد داشت.