Redis භාවිතා කරන වැඩි පරිමාණ වෙබ් යෙදුම් වල, දත්ත පූරණ වේගය අඩුවීමේ ගැටලුවක් නිතරම පෙනේ. ඒක නිසා පරිශීලකයින්ට පේජ් එකක් පෙන්වන්න ගතවන කාලය වැඩිවී, අත්දැකීම අඩු වේ. නවතම Refresh‑Ahead Caching ක්රමය මේ ගැටළුවට සෘජුවම විසඳුමක් ගෙන එයි.
සාමාන්ය cache‑aside ආකෘතියේදී, එක් කී එකක TTL (Time‑to‑Live) ඉකුත් වුනාම ඒක මැකී, ඊළඟ ඉල්ලීමේදී දත්ත දත්ත ගබඩාවෙන් (DB) නැවත ලබාගත යුතුය. එම සින්ක්රෝනස් රීලෝඩ් එක පරිශීලකයාට මන්දගාමී ප්රතිචාරයක් ලෙස පෙනේ. ඉතා “හොට්” කී (උදා: මුල් පිටුවේ ප්රධාන ලිපි, ජනප්රිය නිෂ්පාදන) සඳහා මෙම මන්දගාමීතාවය නිතරම සිදු වන අතර, එකවර බහු ඉල්ලීම් එකම කී එක මත එල්ල වීම “cache stampede” ලෙස හැඳින්වේ.
Refresh‑Ahead යනු, කී එකේ TTL අවසන් වීමට ඉදිරියෙන්ම එය පසුබිමින් (background) අලුත් කර ගැනීමයි. ඉල්ලීමක් පැමිණෙන විට කී එක තවමත් වලංගු නම්, ඒකම පෙන්වා, නමුත් එය අවසන් වීමට ඉතා අඩු වේලාවක් (refresh threshold) ඉතිරි වුනාම පසුබිමින් නව අගයක් ගණනය කර cache එක නවීකරණය කරයි. එවිට පරිශීලකයාට කවදාවත් “miss” එකක් නොදැනේ.
මෙම ක්රමය ක්රියාත්මක කිරීමේ දෙකේ ප්රධාන මාර්ග දෙකක් ඇත. එකක් අයදුම්පත තුළින්, cache එක ලබා දෙන විට TTL පරීක්ෂා කර, අවසන් වීමට ඉතා අඩු වේලාවක් ඉතිරි වූ විට asynchronous job එකක් පටන් ගන්නා පරිදි. තවත් එකක් පසුබිම් වැඩ (background job) එකක් නියමිත වේලාවක (cron) හෝ scheduler එකක් භාවිතා කර, හොට් කී ලැයිස්තුව නියමිත වේලාවකට එකවර නවීකරණය කිරීමයි. දෙකම කී එක “warm” තත්ත්වයේ පවත්වා, සින්ක්රෝනස් DB ඇමතුම් අවම කරයි.
වියදම් ගැන සිතන්න. Refresh‑Ahead සක්රිය කිරීමෙන්, අනාගත ඉල්ලීම් නොවන දත්තවලටද DB ඇමතුමක් සිදු විය හැක. එම නිසා, මෙම ක්රමය “targeted” ලෙස, හොට් කී සඳහා පමණක් භාවිතා කළ යුතුය. සියලු කී සඳහා මෙය සක්රිය කරන්නේ DB පූරණය අධික වීමට හේතුවක් වේ.
කොහොමද මේ ක්රමය භාවිතා කරන්නේ? දත්ත ප්රතිගත කිරීම අධික පරිභෝගයක් (expensive) වන විට, හොට් කී ඉල්ලීම් නිතරම සිදුවන විට, හා පරිශීලකයාට පසුබිම් රීලෝඩ් එකක් නොදැනෙන්න අවශ්ය වූ විට Refresh‑Ahead කාර්යක්ෂම වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
- විදුලි අධ්යයන – සිසුන්ට තත්පර කිහිපයකින්ම දත්ත ලබා ගැනීමට හැකිවීම, ප්රායෝගික පරික්ෂණ හා ව්යාපෘති ඉගෙනීමේ වේගය වැඩි කරයි.
- ඩෙවලොපර්වරු – වෙබ් යෙදුම්වල “cache stampede” අවලංගු කිරීමෙන්, සේවාදායකයේ CPU, memory භාවිතය අඩු වේ. ඒ නිසා අඩු පරිසරයක (low‑cost servers) පවා වැඩි පරිමාණය හසුරවන්න පුළුවන්.
- ව්යාපාරිකයින් – ඉලෙක්ට්රොනික වෙළඳසැල්, පුවත් පෝර්ට්ලයන් වැනි “high‑traffic” වෙබ් අඩවි සඳහා, පරිශීලක අත්දැකීම (UX) තත්පර කිහිපයකින්ම ඉහළ යාම, පාරිභෝගික අඩවිය අඩු කිරීම සහ පාරිභෝගික රැඳී සිටීම වැඩි කිරීමේ හැකියාව ලැබේ.
සාරාංශයක් ලෙස, Refresh‑Ahead Caching යනු, Redis භාවිතා කරන සංවිධාන සඳහා “always‑warm” cache එකක් සකස් කර, පරිශීලකයාට කවදාවත් මන්දගාමී පිළිතුරක් ලබා නොදෙන්නා වූ නව තාක්ෂණික විසඳුමකි. ඔබේ යෙදුම “hot” දත්ත වලට පමණක් පිරිවැය ගත නොකර, සාර්ථකව වේගවත් සේවාවක් ලබා දීමට අවශ්ය නම්, මේ ක්රමය අත්හදා බැලීම වටිනවා.