আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
এই বিষয়টিতে Populate Cache policy , LookupCache policy , InvalidateCache policy , এবং Response Cache policy- এর মতো পলিসিগুলোর অধীনে ক্যাশের কার্যপ্রণালী বর্ণনা করা হয়েছে।
শেয়ার করা এবং পরিবেশ ক্যাশে
আপনার কনফিগার করা প্রতিটি ক্যাশিং পলিসি দুই ধরনের ক্যাশের মধ্যে যেকোনো একটি ব্যবহার করতে পারে: একটি অন্তর্ভুক্ত শেয়ার্ড ক্যাশ, যেটিতে আপনার অ্যাপ্লিকেশনগুলোর অ্যাক্সেস থাকে, এবং আপনার তৈরি করা এক বা একাধিক এনভায়রনমেন্ট-স্কোপড ক্যাশ।
- শেয়ার্ড ক্যাশে: ডিফল্টরূপে, আপনার প্রক্সিগুলো প্রতিটি এনভায়রনমেন্টে একটি শেয়ার্ড ক্যাশে অ্যাক্সেস পায়। সাধারণ ব্যবহারের ক্ষেত্রে শেয়ার্ড ক্যাশে ভালোভাবে কাজ করে।
আপনি শুধুমাত্র ক্যাশিং পলিসি ব্যবহার করে শেয়ার্ড ক্যাশে কাজ করতে পারবেন, ম্যানেজমেন্ট এপিআই ব্যবহার করে নয়। কোনো ক্যাশিং পলিসিকে শেয়ার্ড ক্যাশে ব্যবহার করাতে চাইলে, পলিসিটির
<CacheResource>এলিমেন্টটি বাদ দিন। - এনভায়রনমেন্ট ক্যাশে: যখন আপনি নিজের পছন্দের মান দিয়ে ক্যাশে প্রোপার্টিগুলো কনফিগার করতে চান, তখন আপনি একটি এনভায়রনমেন্ট-স্কোপড ক্যাশে তৈরি করতে পারেন। ক্যাশে তৈরি করার বিষয়ে আরও জানতে, ‘ক্রিয়েটিং অ্যান্ড এডিটিং অ্যান এনভায়রনমেন্ট ক্যাশে’ দেখুন।
যখন আপনি একটি এনভায়রনমেন্ট ক্যাশে তৈরি করেন, তখন আপনি এর ডিফল্ট বৈশিষ্ট্যগুলো কনফিগার করেন। পলিসির
<CacheResource>এলিমেন্টে ক্যাশের নামটি উল্লেখ করে আপনি একটি ক্যাশিং পলিসিকে এনভায়রনমেন্ট ক্যাশে ব্যবহার করাতে পারেন।
ক্যাশ এনক্রিপশন সম্পর্কে
পাবলিক ক্লাউডের জন্য এজ: ক্যাশে শুধুমাত্র PCI এবং HIPAA- সক্ষম সংস্থাগুলিতে এনক্রিপ্ট করা হয়। সেই সংস্থাগুলির জন্য এনক্রিপশন সংস্থা প্রোভিশনিংয়ের সময় কনফিগার করা হয়।
ইন-মেমরি এবং স্থায়ী ক্যাশে স্তর
শেয়ার্ড এবং এনভায়রনমেন্ট উভয় ক্যাশই একটি দ্বি-স্তরীয় সিস্টেমের উপর নির্মিত, যা একটি ইন-মেমরি স্তর এবং একটি পারসিস্টেন্ট স্তর নিয়ে গঠিত। পলিসিগুলো একটি সম্মিলিত কাঠামো হিসেবে উভয় স্তরের সাথেই কাজ করে। এজ এই স্তরগুলোর মধ্যকার সম্পর্কটি পরিচালনা করে।

- লেভেল ১ হলো দ্রুত অ্যাক্সেসের জন্য একটি ইন-মেমরি ক্যাশে (L1) । অনুরোধে দ্রুততম প্রতিক্রিয়া নিশ্চিত করার জন্য প্রতিটি মেসেজ প্রসেসিং নোডের (MP) নিজস্ব ইন-মেমরি ক্যাশে (Ehcache থেকে বাস্তবায়িত) থাকে।
- প্রতিটি নোডে, মেমরির একটি নির্দিষ্ট শতাংশ ক্যাশে ব্যবহারের জন্য সংরক্ষিত থাকে।
- মেমরির সীমা পূর্ণ হয়ে গেলে, Apigee Edge মেমরি থেকে ক্যাশ এন্ট্রিগুলি মুছে ফেলে (যদিও সেগুলি L2 পারসিস্টেন্ট ক্যাশে রাখা হয়) যাতে অন্যান্য প্রসেসের জন্য মেমরি উপলব্ধ থাকে।
- শেষবার অ্যাক্সেস করার পর থেকে সময়ের ক্রমানুসারে এন্ট্রিগুলো মুছে ফেলা হয়, এবং সবচেয়ে পুরোনো এন্ট্রিগুলো প্রথমে সরানো হয়।
- এই ক্যাশগুলো ক্যাশে থাকা এন্ট্রির সংখ্যা দ্বারাও সীমিত থাকে।
- লেভেল ২ হলো ইন-মেমরি ক্যাশের নিচে অবস্থিত একটি স্থায়ী ক্যাশ (L2) । সমস্ত মেসেজ প্রসেসিং নোড ক্যাশ এন্ট্রিগুলো সংরক্ষণ করার জন্য একটি ক্যাশ ডেটা স্টোর (ক্যাসান্ড্রা) শেয়ার করে।
- L1 ক্যাশে থেকে মুছে ফেলার পরেও, যেমন মেমোরির সীমা পূর্ণ হয়ে গেলে, ক্যাশে এন্ট্রিগুলো এখানে থেকে যায়।
- যেহেতু পারসিস্টেন্ট ক্যাশে বিভিন্ন মেসেজ প্রসেসরের মধ্যে (এমনকি ভিন্ন ভিন্ন অঞ্চলেও) শেয়ার করা হয়, তাই ক্যাশ করা ডেটার জন্য কোন নোড অনুরোধ গ্রহণ করছে তা নির্বিশেষে ক্যাশে এন্ট্রিগুলো উপলব্ধ থাকে।
- শুধুমাত্র একটি নির্দিষ্ট আকারের এন্ট্রি ক্যাশ করা যেতে পারে এবং অন্যান্য ক্যাশ সীমা প্রযোজ্য। ক্যাশ সীমা ব্যবস্থাপনা দেখুন।
আপনি Apigee কমিউনিটিতে থাকা “Apigee Edge Caching In Detail” শীর্ষক লেখাটিতেও আগ্রহী হতে পারেন।
পলিসিগুলো কীভাবে ক্যাশে ব্যবহার করে
আপনার ক্যাশিং পলিসিগুলো কাজ করার সময় Apigee Edge কীভাবে ক্যাশ এন্ট্রিগুলো পরিচালনা করে, তা নিম্নলিখিতভাবে বর্ণনা করা হলো।
- যখন কোনো পলিসি ক্যাশে একটি নতুন এন্ট্রি লেখে (PopulateCache বা ResponseCache পলিসি):
- Edge শুধুমাত্র সেই মেসেজ প্রসেসরের ইন-মেমরি L1 ক্যাশে এন্ট্রিটি লেখে, যেটি অনুরোধটি পরিচালনা করেছে। যদি এন্ট্রিটির মেয়াদ শেষ হওয়ার আগেই মেসেজ প্রসেসরের মেমরি সীমা পূর্ণ হয়ে যায়, তবে Edge L1 ক্যাশে থেকে এন্ট্রিটি মুছে ফেলে।
- Edge এন্ট্রিটি L2 ক্যাশেও লিখে রাখে।
- যখন কোনো পলিসি ক্যাশ থেকে ডেটা পড়ে (যেমন LookupCache বা ResponseCache পলিসি):
- Edge প্রথমে অনুরোধটি পরিচালনাকারী মেসেজ প্রসেসরের ইন-মেমরি L1 ক্যাশে এন্ট্রিটি খোঁজে।
- যদি মেমরিতে কোনো সংশ্লিষ্ট এন্ট্রি না থাকে, তাহলে Edge L2 পারসিস্টেন্ট ক্যাশে এন্ট্রিটি খোঁজে।
- যদি এন্ট্রিটি পারসিস্টেন্ট ক্যাশে না থাকে:
- লুকআপক্যাশ নীতি: ক্যাশ থেকে কোনো মান পাওয়া যায়নি।
- রেসপন্সক্যাশ পলিসি: Edge টার্গেট থেকে ক্লায়েন্টের কাছে প্রকৃত রেসপন্স ফেরত পাঠায় এবং এন্ট্রিটি মেয়াদোত্তীর্ণ বা অবৈধ না হওয়া পর্যন্ত ক্যাশে সংরক্ষণ করে।
- যখন কোনো পলিসি বিদ্যমান ক্যাশ এন্ট্রি আপডেট বা বাতিল করে (InvalidateCache, PopulateCache, বা ResponseCache পলিসি):
- অনুরোধ গ্রহণকারী মেসেজ প্রসেসরটি নিজের এবং সমস্ত অঞ্চলের অন্য সকল মেসেজ প্রসেসরের L1 ক্যাশে থাকা এন্ট্রিটি আপডেট বা ডিলিট করার জন্য একটি ব্রডকাস্ট পাঠায়।
- সম্প্রচার সফল হলে, প্রতিটি গ্রহণকারী বার্তা প্রসেসর L1 ক্যাশে থাকা এন্ট্রিটি আপডেট বা মুছে ফেলে।
- যদি ব্রডকাস্টটি ব্যর্থ হয়, তাহলে বাতিল হয়ে যাওয়া ক্যাশ ভ্যালুটি সেই মেসেজ প্রসেসরগুলোর L1 ক্যাশে থেকে যায় যেগুলো ব্রডকাস্টটি গ্রহণ করেনি। সেই মেসেজ প্রসেসরগুলোর L1 ক্যাশে অপ্রচলিত ডেটা থাকবে যতক্ষণ না এন্ট্রিটির টাইম-টু-লিভ (TTL) শেষ হয় অথবা মেসেজ প্রসেসরের মেমরি সীমাতে পৌঁছানোর কারণে এটি অপসারিত হয়।
- এই ব্রডকাস্টটি L2 ক্যাশে থাকা এন্ট্রিটিকেও আপডেট বা ডিলিট করে।
- অনুরোধ গ্রহণকারী মেসেজ প্রসেসরটি নিজের এবং সমস্ত অঞ্চলের অন্য সকল মেসেজ প্রসেসরের L1 ক্যাশে থাকা এন্ট্রিটি আপডেট বা ডিলিট করার জন্য একটি ব্রডকাস্ট পাঠায়।
ক্যাশে সীমা পরিচালনা করা
কনফিগারেশনের মাধ্যমে আপনি ক্যাশের কিছু দিক পরিচালনা করতে পারেন। ইন-মেমরি ক্যাশের জন্য উপলব্ধ মোট স্থান সিস্টেম রিসোর্স দ্বারা সীমাবদ্ধ এবং এটি কনফিগারযোগ্য নয়। ক্যাশের ক্ষেত্রে নিম্নলিখিত সীমাবদ্ধতাগুলো প্রযোজ্য:
- ক্যাশ সীমা : বিভিন্ন ক্যাশ সীমা প্রযোজ্য, যেমন নাম ও মানের আকার, মোট ক্যাশের সংখ্যা, একটি ক্যাশে থাকা আইটেমের সংখ্যা এবং মেয়াদোত্তীর্ণতা।
- ইন-মেমরি (L1) ক্যাশে। আপনার ক্যাশের জন্য মেমরি সীমা কনফিগার করা যায় না। যে সমস্ত মেসেজ প্রসেসর একাধিক গ্রাহকের জন্য ক্যাশে হোস্ট করে, তাদের প্রত্যেকের জন্য Apigee এই সীমা নির্ধারণ করে দেয়।
একটি হোস্টেড ক্লাউড পরিবেশে, যেখানে সমস্ত কাস্টমার ডেপ্লয়মেন্টের জন্য ইন-মেমরি ক্যাশে একাধিক শেয়ার্ড মেসেজ প্রসেসরের মধ্যে হোস্ট করা থাকে, সেখানে প্রতিটি প্রসেসরে একটি Apigee-কনফিগারযোগ্য মেমরি পার্সেন্টেজ থ্রেশহোল্ড থাকে, যা নিশ্চিত করে যে ক্যাশিং যেন অ্যাপ্লিকেশনটির সমস্ত মেমরি ব্যবহার না করে। যখন কোনো নির্দিষ্ট মেসেজ প্রসেসরের জন্য এই থ্রেশহোল্ড অতিক্রম করা হয়, তখন ক্যাশে এন্ট্রিগুলো সবচেয়ে কম ব্যবহৃত হওয়ার ভিত্তিতে মেমরি থেকে সরিয়ে দেওয়া হয়। মেমরি থেকে সরিয়ে দেওয়া এন্ট্রিগুলো L2 ক্যাশে থেকে যায় যতক্ষণ না সেগুলোর মেয়াদ শেষ হয় বা সেগুলোকে বাতিল করা হয়।
- স্থায়ী (L2) ক্যাশে। ইন-মেমরি ক্যাশে থেকে অপসারিত এন্ট্রিগুলো কনফিগারযোগ্য টাইম-টু-লিভ সেটিংস অনুযায়ী স্থায়ী ক্যাশে থেকে যায়।
কনফিগারযোগ্য অপ্টিমাইজেশন
নিম্নলিখিত সারণীতে এমন সেটিংস তালিকাভুক্ত করা হয়েছে যা আপনি ক্যাশের পারফরম্যান্স অপ্টিমাইজ করতে ব্যবহার করতে পারেন। "একটি এনভায়রনমেন্ট ক্যাশ তৈরি এবং সম্পাদনা করা" অংশে বর্ণিত পদ্ধতি অনুযায়ী, একটি নতুন এনভায়রনমেন্ট ক্যাশ তৈরি করার সময় আপনি এই সেটিংসগুলির জন্য মান নির্দিষ্ট করতে পারেন।
| সেটিং | বর্ণনা | নোট |
|---|---|---|
| মেয়াদ শেষ | ক্যাশ এন্ট্রিগুলির মেয়াদকাল নির্দিষ্ট করে। | কিছুই না। |