ক্যাশে ইন্টার্নাল

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

এই বিষয়ে, নিম্নলিখিত নীতিগুলির অধীনে ক্যাশে কীভাবে কাজ করে তা বর্ণনা করা হয়েছে: ক্যাশে পূরণ করার নীতি, ক্যাশে খোঁজার নীতি, ক্যাশে বাতিল করার নীতি এবং উত্তর ক্যাশে করার নীতি।

শেয়ার করা ও এনভায়রনমেন্ট ক্যাশে

আপনার কনফিগার করা প্রতিটি ক্যাশিং নীতি দুটি ক্যাশে ধরনের মধ্যে একটি ব্যবহার করতে পারে: একটি অন্তর্ভুক্ত শেয়ার করা ক্যাশে যেটিতে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করতে পারে এবং আপনার তৈরি করা এক বা একাধিক এনভায়রনমেন্ট-স্কোপড ক্যাশে।

  • শেয়ার করা ক্যাশে: সাধারণত, আপনার প্রক্সি প্রতিটি এনভায়রনমেন্টে একটি শেয়ার করা ক্যাশে অ্যাক্সেস করতে পারে। সাধারণ সম্ভাব্য পরিস্থিতির ক্ষেত্রে শেয়ার করা ক্যাশে ভালো কাজ করে।

    আপনি শুধুমাত্র ক্যাশিং নীতি ব্যবহার করে শেয়ার করা ক্যাশের সাথে কাজ করতে পারবেন, ম্যানেজমেন্ট API ব্যবহার করে নয়। শেয়ার করা ক্যাশে ব্যবহার করার জন্য ক্যাশিং নীতি পেতে, শুধু নীতির <CacheResource> এলিমেন্ট বাদ দিন।

  • এনভায়রনমেন্ট ক্যাশে: আপনি বেছে নিয়েছেন এমন ভ্যালু সহ ক্যাশে প্রপার্টি কনফিগার করতে চাইলে, এনভায়রনমেন্ট-স্কোপড ক্যাশে তৈরি করতে পারবেন। ক্যাশে তৈরি করা সম্পর্কে আরও জানতে, এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা দেখুন।

    আপনি এনভায়রনমেন্ট ক্যাশে তৈরি করলে, এর ডিফল্ট প্রপার্টি কনফিগার করেন। আপনি এমন ক্যাশিং নীতি রাখতে পারেন যা নীতির <CacheResource> এলিমেন্টে ক্যাশের নাম উল্লেখ করে এনভায়রনমেন্ট ক্যাশে ব্যবহার করে।

ক্যাশে এনক্রিপশন সম্পর্কে

পাবলিক ক্লাউডের জন্য Edge: PCI- এবং HIPAA-চালু সংস্থাগুলিতে শুধুমাত্র ক্যাশে এনক্রিপ্ট করা হয়। সংস্থা প্রোভিশনিংয়ের সময় সেইসব সংস্থার জন্য এনক্রিপশন কনফিগার করা হয়।

ইন-মেমরি ও পারসিস্ট্যান্ট ক্যাশে লেভেল

শেয়ার করা ও এনভায়রনমেন্ট ক্যাশে, দু'টিই ইন-মেমরি লেভেল ও পারসিস্টেন্ট লেভেল নিয়ে গঠিত টু-লেভেল সিস্টেমের উপর ভিত্তি করে তৈরি হয়। নীতিগুলি একটি সম্মিলিত ফ্রেমওয়ার্ক হিসেবে দুটি লেভেলের সাথে ইন্টার‍্যাক্ট করে। Edge লেভেলগুলির মধ্যে সম্পর্ক ম্যানেজ করে।

  • দ্রুত অ্যাক্সেসের জন্য লেভেল ১ হল ইন-মেমরি ক্যাশে (L1)। প্রতিটি মেসেজ প্রসেসিং নোডের (MP) অনুরোধের সবচেয়ে দ্রুত উত্তর দেওয়ার জন্য নিজস্ব ইন-মেমরি ক্যাশে (Ehcache থেকে প্রয়োগ করা) থাকে।
    • প্রতিটি নোডে, ক্যাশে ব্যবহারের জন্য মেমরির একটি নির্দিষ্ট শতাংশ রিজার্ভ করা থাকে।
    • মেমরি সীমা পৌঁছে গেলে, Apigee Edge মেমরি থেকে ক্যাশে এন্ট্রি সরিয়ে দেয় (যদিও সেগুলি এখনও L2 পারসিস্টেন্ট ক্যাশেতে থাকে) যাতে অন্যান্য প্রসেসের জন্য মেমরি উপলভ্য থাকে।
    • শেষ অ্যাক্সেস করার পর থেকে সময়ের ক্রম অনুযায়ী এন্ট্রি সরানো হয়, সবচেয়ে পুরনো এন্ট্রি প্রথমে সরানো হয়।
    • ক্যাশেতে এন্ট্রি সংখ্যার মাধ্যমেও এই ক্যাশে সীমিত করা হয়।
  • ইন-মেমরি ক্যাশের নিচে লেভেল ২ হল একটি পারসিস্ট্যান্ট ক্যাশে (L2)। সমস্ত মেসেজ প্রসেসিং নোড, ক্যাশে এন্ট্রি পারসিস্ট করার জন্য ক্যাশে ডেটা স্টোর (Cassandra) শেয়ার করে।
    • L1 ক্যাশে থেকে সরিয়ে দেওয়ার পরেও ক্যাশে এন্ট্রি এখানে থেকে যায়, যেমন, যখন ইন-মেমরি সীমা পৌঁছে যায়।
    • কারণ, মেসেজ প্রসেসর জুড়ে (এমনকি আলাদা আলাদা অঞ্চলে) পারসিস্ট্যান্ট ক্যাশে শেয়ার করা হয়, তাই ক্যাশে করা ডেটার জন্য কোনও নোড অনুরোধ পেলেও ক্যাশে এন্ট্রি উপলভ্য থাকে।
    • শুধুমাত্র নির্দিষ্ট সাইজের এন্ট্রি ক্যাশে করা হতে পারে এবং অন্যান্য ক্যাশে সীমা প্রযোজ্য হয়। ক্যাশে সংক্রান্ত সীমা ম্যানেজ করা দেখুন।

এছাড়াও, আপনি Apigee কমিউনিটিতে গিয়ে Apigee Edge ক্যাশিং সম্পর্কে বিস্তারিত জানতে পারেন।

নীতি কীভাবে ক্যাশে ব্যবহার করে

আপনার ক্যাশিং নীতি কীভাবে কাজ করে তা নিচে বর্ণনা করা হয়েছে। Apigee Edge কীভাবে ক্যাশে এন্ট্রি ম্যানেজ করে তা এখানে বলা হয়েছে ।

  • কোনও নীতি ক্যাশে নতুন এন্ট্রি লেখে (PopulateCache বা ResponseCache নীতি) তখন:
    1. Edge শুধুমাত্র সেই মেসেজ প্রসেসর -এর ইন-মেমরি L1 ক্যাশেতে এন্ট্রি লেখে যা অনুরোধটি ম্যানেজ করেছে। এন্ট্রি মেয়াদ শেষ হওয়ার আগে মেসেজ প্রসেসরের মেমরি সীমা পৌঁছে গেলে Edge L1 ক্যাশে থেকে এন্ট্রি সরিয়ে দেয়।
    2. এছাড়াও, Edge L2 ক্যাশে এন্ট্রি লেখে।
  • কোনও নীতি ক্যাশে (LookupCache বা ResponseCache নীতি) থেকে পড়লে:
    1. Edge প্রথমে অনুরোধ হ্যান্ডেল করা মেসেজ প্রসেসরের ইন-মেমরি L1 ক্যাশেতে এন্ট্রি খোঁজে।
    2. সংশ্লিষ্ট ইন-মেমরি এন্ট্রি না থাকলে, Edge L2 পারসিস্টেন্ট ক্যাশে এন্ট্রি খোঁজে।
    3. পার্সিস্টেন্ট ক্যাশে এন্ট্রি না থাকলে:
      • LookupCache নীতি: ক্যাশে থেকে কোনও ভ্যালু রিট্রিভ করা হয় না।
      • ResponseCache নীতি: Edge, টার্গেট থেকে পাওয়া আসল উত্তরটি ক্লায়েন্টকে ফেরত দেয় এবং সেটির মেয়াদ শেষ না হওয়া পর্যন্ত বা সেটি বাতিল না হওয়া পর্যন্ত ক্যাশে এন্ট্রিটি স্টোর করে।
  • কোনও নীতি যখন কোনও আগে থেকে থাকা ক্যাশে এন্ট্রি আপডেট বা বাতিল করে (InvalidateCache, PopulateCache বা ResponseCache নীতি):
    1. যে মেসেজ প্রসেসর অনুরোধটি পাচ্ছে, সেটি নিজের এবং সব অঞ্চলের অন্যান্য মেসেজ প্রসেসরের L1 ক্যাশে এন্ট্রি আপডেট বা মুছে দেওয়ার জন্য একটি ব্রডকাস্ট পাঠায়।
      • ব্রডকাস্ট সফল হলে, প্রতিটি মেসেজ গ্রহণকারী প্রসেসর L1 ক্যাশে এন্ট্রি আপডেট করে বা সরিয়ে দেয়।
      • ব্রডকাস্ট ব্যর্থ হলে, যে মেসেজ প্রসেসর ব্রডকাস্ট পায়নি সেটির L1 ক্যাশে বাতিল করা ক্যাশে ভ্যালু থেকে যায়। সেইসব মেসেজ প্রসেসরের L1 ক্যাশে পুরনো ডেটা থাকবে যতক্ষণ না এন্ট্রিটির টাইম-টু-লাইভ (TTL) শেষ হয়ে যায় অথবা মেসেজ প্রসেসর মেমরি সীমা পৌঁছে গেলে সেটি সরিয়ে দেওয়া হয়।
    2. এছাড়াও, ব্রডকাস্ট L2 ক্যাশে এন্ট্রি আপডেট করে বা মুছে দেয়।

ক্যাশে সংক্রান্ত সীমা ম্যানেজ করা

কনফিগারেশনের মাধ্যমে, আপনি ক্যাশের কিছু দিক ম্যানেজ করতে পারবেন। ইন-মেমরি ক্যাশের জন্য উপলভ্য সামগ্রিক স্পেস সিস্টেম রিসোর্স দ্বারা সীমিত এবং এটি কনফিগার করা যায় না। ক্যাশেতে নিম্নলিখিত সীমাবদ্ধতা প্রযোজ্য:

  • ক্যাশে সংক্রান্ত সীমা: বিভিন্ন ক্যাশে সংক্রান্ত সীমা প্রযোজ্য হয়, যেমন নাম ও ভ্যালুর সাইজ, ক্যাশের মোট সংখ্যা, ক্যাশে থাকা আইটেমের সংখ্যা, এবং মেয়াদ শেষ হওয়া।
  • ইন-মেমরি (L1) ক্যাশে। আপনার ক্যাশের মেমরি সীমা কনফিগার করা যায় না। সীমাগুলি একাধিক গ্রাহকের জন্য ক্যাশে হোস্ট করে এমন প্রতিটি মেসেজ প্রসেসরের জন্য Apigee দ্বারা সেট করা হয়।

    হোস্ট করা ক্লাউড এনভায়রনমেন্টে, যেখানে সমস্ত গ্রাহকের ডিপ্লয়মেন্টের জন্য ইন-মেমরি ক্যাশে হোস্ট করা হয় একাধিক শেয়ার করা মেসেজ প্রসেসর জুড়ে, প্রতিটি প্রসেসরে Apigee-কনফিগার করা যায় এমন মেমরি পার্সেন্টেজ থ্রেশহোল্ড থাকে যাতে ক্যাশিং অ্যাপ্লিকেশনের সম্পূর্ণ মেমরি ব্যবহার না করে ফেলে তা নিশ্চিত করা যায়। কোনও নির্দিষ্ট মেসেজ প্রসেসরের জন্য থ্রেশহোল্ড অতিক্রম করা হলে, সবচেয়ে কম সম্প্রতি ব্যবহৃত আইটেম ভিত্তিতে মেমরি থেকে ক্যাশে এন্ট্রি সরিয়ে দেওয়া হয়। মেমরি থেকে সরিয়ে দেওয়া এন্ট্রিগুলি মেয়াদ শেষ না হওয়া বা বাতিল না হওয়া পর্যন্ত L2 ক্যাশে থাকে।

  • পার্সিস্টেন্ট (L2) ক্যাশে। ইন-মেমরি ক্যাশে থেকে সরানো এন্ট্রি কনফিগার করা টাইম-টু-লিভ সেটিংস অনুযায়ী পার্সিস্টেন্ট ক্যাশে থেকে যায়।

কনফিগার করা যায় এমন অপ্টিমাইজেশন

ক্যাশে পারফর্ম্যান্স অপ্টিমাইজ করতে আপনি যেসব সেটিংস ব্যবহার করতে পারবেন, তা নিম্নলিখিত সারণীতে উল্লেখ করা হল। আপনি নতুন এনভায়রনমেন্ট ক্যাশে তৈরি করার সময় এইসব সেটিংসের ভ্যালু নির্দিষ্ট করতে পারবেন, যেমনটি এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা নিবন্ধে বর্ণনা করা হয়েছে।

সেটিং বিবরণ নোট
মেয়াদ শেষ হওয়ার তারিখ ক্যাশে এন্ট্রির জন্য 'টাইম টু লিভ' নির্দিষ্ট করে। কোনওটিই নয়।