মেসেজ প্রসেসরে L1 ক্যাশের মেয়াদ সেট করা

অনুরোধ জুড়ে ডেটা পারসিস্টেন্সের জন্য Apigee Edge ক্যাশিং প্রদান করে। API ডেটা পেলে, সেটি অল্প সময়ের জন্য ক্যাশে সেভ করা হয় এবং তারপরে মুছে দেওয়া হয়। কোনও ডেটা মুছে ফেলার আগে সর্বাধিক যত সময় ধরে রাখা হয় তাকে ক্যাশের মেয়াদ শেষ হওয়ার সময় বা টাইম-টু-লিভ (TTL) বলা হয়। প্রতিটি ক্যাশের একটি ডিফল্ট TTL থাকে, কিন্তু কিছু ক্ষেত্রে API পারফর্ম্যান্স উন্নত করতে আপনাকে TTL ভ্যালু পরিবর্তন করতে হতে পারে।

ক্যাশের ধরন

API ডেটা দুই ধরনের ক্যাশে স্টোর করা হয়:

  • লেভেল ১ (L1): ইন-মেমরি ক্যাশে, যেটির অ্যাক্সেস দ্রুততর হলেও উপলভ্য স্টোরেজ ক্ষমতা কম।
  • লেভেল ২ (L2): Cassandra ডেটা স্টোরেজে স্থায়ী ক্যাশে থাকে, যার অ্যাক্সেস ধীর গতির হলেও স্টোরেজ ক্যাপাসিটি বেশি থাকে।

L1 ক্যাশে কোনও ডেটা এন্ট্রি L1 TTL-এ পৌঁছে গেলে, সেটি মুছে দেওয়া হয়। তবে, এন্ট্রির একটি কপি L2 ক্যাশে (যেটির TTL, L1 ক্যাশের থেকে বেশি) রাখা হয়, যেখানে এটি অন্যান্য মেসেজ প্রসেসরদের কাছে অ্যাক্সেসযোগ্য থাকে। ক্যাশে সম্পর্কে আরও বিবরণের জন্য ইন-মেমরি ও পারসিস্টেন্ট ক্যাশে লেভেল দেখুন।

সর্বাধিক L1 TTL

প্রাইভেট ক্লাউডের জন্য Edge-এ, আপনি Max L1 TTL প্রপার্টি (conf_cache_max.l1.ttl.in.seconds) ব্যবহার করে প্রতিটি মেসেজ প্রসেসরের জন্য সর্বাধিক L1 ক্যাশে TTL সেট করতে পারবেন। L1 ক্যাশেতে এন্ট্রি সর্বাধিক L1 TTL ভ্যালুতে পৌঁছানোর পরে মেয়াদ শেষ হয়ে যাবে এবং মুছে দেওয়া হবে।

মনে রাখবেন:

  • ডিফল্ট হিসেবে, Max L1 TTL বন্ধ করা থাকে (ভ্যালু -1), এই ক্ষেত্রে L1 ক্যাশে কোনও এন্ট্রির TTL নির্ধারণ করা হয় PopulateCache নীতির মেয়াদ শেষ হওয়ার সেটিংস (L1 ও L2 ক্যাশে, দু'টির ক্ষেত্রেই)।
  • সর্বাধিক L1 TTL-এর মান সামগ্রিক ক্যাশে এক্সপায়ারের থেকে কম হলে তবেই এটি কাজ করে।

সর্বাধিক L1 TTL সেট করা

আপনি কোনও মেসেজ প্রসেসরের উপর নিম্নলিখিতভাবে Max L1 TTL সেট করতে পারবেন:

  1. এডিটরে কনফিগারেশন ফাইল /opt/apigee/customer/application/message-processor.properties খুলুন। ফাইলটি না থাকলে, এটি তৈরি করুন।
  2. সর্বাধিক L1 TTL প্রপার্টিকে পছন্দসই ভ্যালুতে সেট করুন:
    conf_cache_max.l1.ttl.in.seconds = 180

    আমরা 180 সেকেন্ড ভ্যালু সাজেস্ট করি।

  3. প্রপার্টি ফাইলের মালিক "apigee" ব্যবহারকারী কিনা তা নিশ্চিত করুন:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. মেসেজ প্রসেসর রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Max L1 TTL সেট করার নির্দেশিকা

Max L1 TTL সেট করার সময়, নিম্নলিখিত নির্দেশিকা মনে রাখবেন:

  • RPC মিস করা: আপনি যদি মেসেজ প্রসেসর (MP)-এর মধ্যে রিমোট প্রসিডিওর কল (RPC) মিস করা লক্ষ্য করেন— বিশেষ করে একাধিক ডেটা সেন্টার জুড়ে— তাহলে এটি সম্ভব যে L1 ক্যাশেতে পুরনো এন্ট্রি আছে, যা L1 ক্যাশে থেকে মুছে না দেওয়া পর্যন্ত পুরনো হয়ে থাকবে। সর্বাধিক L1 TTL-এর মান কম সেট করলে, কোনও পুরনো এন্ট্রি সরিয়ে দেওয়া হয় এবং L2 ক্যাশে থেকে নতুন ভ্যালু দিয়ে তা শীঘ্রই পাল্টে দেওয়া হয়।
    সমাধান: conf_cache_max.l1.ttl.in.seconds কমান।
  • Casandra-তে অতিরিক্ত লোড: আপনি Max L1 TTL-এর জন্য কোনও ভ্যালু সেট করলে, L1 ক্যাশে এন্ট্রি আরও ঘন ঘন এক্সপায়ার হয়ে যাবে, যার ফলে আরও বেশি L1 ক্যাশে মিস এবং আরও বেশি L2 ক্যাশে হিট হবে। যেহেতু L2 ক্যাশে আরও বেশিবার হিট করা হবে, Cassandra-তে আরও বেশি লোড পড়বে।
    সমাধান: conf_cache_max.l1.ttl.in.seconds বাড়ান

সাধারণ নিয়ম হিসেবে, Max L1 TTL-কে এমন একটি ভ্যালুতে টিউন করুন যা Cassandra-তে সম্ভাব্য লোডের সাথে MP-এর মধ্যে RPC মিস হওয়ার ফ্রিকোয়েন্সিকে ব্যালেন্স করে।

প্রসেসিং যাতে মসৃণভাবে চলতে থাকে, তার জন্য আমরা conf_cache_max.l1.ttl.in.seconds-এর ভ্যালু কমপক্ষে 180 সেকেন্ড (৩ মিনিট) সেট করার সাজেশন দিই।