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

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

ক্যাশের ধরন

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

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

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

সর্বাধিক L1 TTL

Edge for Private Cloud-এ, আপনি Max L1 TTL প্রপার্টি (conf_cache_max.l1.ttl.in.seconds) ব্যবহার করে প্রতিটি মেসেজ প্রসেসরের জন্য সর্বাধিক L1 ক্যাশে TTL সেট করতে পারবেন। L1 ক্যাশেতে কোনও এন্ট্রি Max 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

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

সর্বাধিক 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 সেকেন্ড (৩ মিনিট) সেট করার সাজেশন দিই।