در مطلب رویکردهای Cache در Apache Ignite آموزش دادیم که می توانیم از سه رویکرد پارتیشن بندی (partitioning)، تکثیر کردن (replication) داده ها و داده های محلی (Local Data) را برای پیاده سازی کَش توزیع شده (distributed cache) بر روی چندین سرور به کار ببریم. در این مطلب می خواهیم رویکردهای همگام سازی کَش (Cache Synchronization) را آموزش دهیم.

در یک پایگاه داده، زمانی که فرمان SQL درخواست داده ها را کند، این داده ها از روی دیسک به درون حافظه اصلی و فضای کَش، ریخته می شوند تا هم به تندی به آنها دسترسی شود و همچنین برای درخواست های آینده، تا زمانی درون کَش می مانند. همچنین داده ها نخست درون کَش، تغییر می کنند (دگرگون می شوند) و پس این داده ها از کَش به درون دیسک فرستاده و نگهداری خواهند شد.

۱ – رویکرد Cache Aside

در این رویکرد ود برنامه (لایه Logic برنامه) همگام سازی میان کَش و پایگاه داده را انجام می دهد. برنامه نخست بوسیله یک کلید درون کَش به دنبال داده می گردد و اگر پیدا نکند (Cache Miss)، از درون پایگاه داده (دیسک) داده را خوانده و سپس آنرا به درون کَش بارگذاری می کند تا از این پس برای درخواست های آینده و پیش رو، در دسترس باشد. سپس هر دگرگونی (تغییری) بر روی داده، نخست درون کَش انجام شده و سپس این دگرگونی ها (مانند بروز رسانی داده) از کَش به پایگاه داده فرستاده شده تا برای همیشه بر روی دیسک نگهداری شود.

در شکل زیر رویکرد Cache Aside نشان داده شده است که در Cache Miss چونکه داده درون Cache نیست، پس باید آن را از درون پایگاه داده به درون کَش بارگذاری کرد. همچنین می بینید که داده نخست درون کَش بروز شده و سپس داده های درون پایگاه داده نیز با کَش همگام سازی می شوند. از دید Apche Ignite، اداره کردن کَش بر دوش کلاستر نیست، بلکه بر دوش برنامه (زبان جاوا – سی شارپ) است.

۲ – رویکرد Read-through

در این رویکرد دسرسی به داده ها همواره از درون کَش است و برنامه هیچ آگاهی از پایگاه داده (داده های دیسک) ندارد. در Cache Aside، برنامه همگام سازی کَش و پایگاه را اداره و سرپرستی می کند ولی در Read Through این گونه نیست و به جای آن، یک مولفه دیگر، همگام سازی کَش به پایگاه داده را بر دوش دارد. بنابراین همکنشی (تعامل) میان داده ها بوسیله یک لایه دیگر به نام Cache Atraction Layer انجام می شود.

۳ – رویکرد Write-through

در این رویکرد هر زمان که داده ای درون کَش دگرگون شد (تغییر کرد)، کَش می تواند پایگاه داده را با آن داده بروز رسانی کند. بنابراین در رویکرد پایگاه داده یکراست بروز نمی شود بلکه بوسیله کَش بروز رسانی خواهد شد.

۴ – رویکرد Write-Behind

در این رویکرد بر افزایش سرعت نوشتن داده ها بر روی پایگاه داده، صفی از داده های دگرگون شده هست که پس از آن هر کدام از آنها از پیش روی صف برداشته شده تا درون پایگاه داده نوشته شود. بنابراین نوشتن به شیوه دسته ای (Batch) انجام می شود.