অ্যাপসিগন্যাল ব্যবহার করে অ্যাপ্লিকেশন চালু করে থাকা প্রতিটি সার্ভার প্রতি ৩০ সেকেন্ডে আমাদের পুশ API-তে নমুনা এবং মেট্রিক্সের একটি সংগ্রহ পাঠায়।
প্রতিটি রিকোয়েস্টে একটি কী থাকে যা আমরা ব্যবহার করি ডেটা কোন অ্যাপ থেকে এসেছে তা নির্ধারণ করতে। সেজন্য, প্রতিটি ইনকামিং রিকোয়েস্টের জন্য অ্যাপ খুঁজে বের করতে আমাদের ডেটাবেস কোয়েরি করতে হয়। মাসে ত্রিশ বিলিয়ন রিকোয়েস্ট থাকায়, আমরা 지속적으로 ডেটাবেস কোয়েরি কমাতে চেষ্টা করি যাতে অ্যাপসিগন্যাল দ্রুততর হয়।
আমরা ডেটাবেস ক্লাস্টারে কোয়েরি কমাতে ক্যাশিং ইমপ্লিমেন্ট করেছি। যখনই আমরা ডেটাবেস থেকে একটি অ্যাপ ফেচ করি, আমরা সেটি এক মিনিটের জন্য Memcached-এ স্টোর করি। এই পরিবর্তন প্রোডাকশনে ডিপ্লয় করার পর, আমরা দেখলাম আমরা আগের চেয়ে অধিক কোয়েরি করছি। মনে হয় ক্যাশটি খুব ঘন ঘন ইনভ্যালিডেট হচ্ছে। সেটি কোথায় হচ্ছে সেটি খুঁজে বের করার জন্য, আমরা কিছু কাস্টম মেট্রিক্স যোগ করেছি যাতে বুঝতে পারি ক্যাশটি কোথায় অনुचিতভাবে ইনভ্যালিডেট হচ্ছে।
কয়েকটি জায়গায় আমরা ক্যাশ ইনভ্যালিডেট করি, যেমন যখন পুশ প্রসেসড টাইম আপডেট হয় অথবা যখন আমরা একটি নতুন نیمস্পেস ডিটেক্ট করি।
আমরা একাধিক কাউন্টার যোগ করেছি যাতে বুঝতে পারি এই ক্যাশ ইনভ্যালিডেশনগুলোর কোনটিই døden। এই উদাহরণে আমরা app.cache.invalidate কাউন্টার ইনক্রিমেন্ট করি মোট ইনভ্যালিডেশনের সংখ্যা গণনা করতে, এবং স্পেসিফিক কী যেমন app.cache.invalidate_push_time এবং app.cache.invalidate_namespaces ব্যবহার করি স্পেসিফিক ইনভ্যালিডেশনগুলো ট্র্যাক করতে।
উপরের কাস্টম মেট্রিক্স যোগ করে, আমরা সময়ের সাথে ক্যাশ হিট গ্রাফ করতে পেরেছি। এটা তৎক্ষণাৎ স্পষ্ট হয়ে গেল কোন ক্যাশ কি ইনভ্যালিডেশনের কারণ ছিল। app.cache.invalidate_namespaces কিটি প্রতিটি রিকোয়েস্টের জন্য ইনভ্যালিডেট হচ্ছিল।

মোট ক্যাশযোগ্য রিকোয়েস্টের সংখ্যা app.cache.maybe হিসেবে গণনা হয়।
এই ইস্যু ফিক্স করে ডিপ্লয় করার পর, ইনভ্যালিডেশনের সংখ্যা শূন্যে নেমে এল যতক্ষণ না একটি অ্যাপের জন্য نیمস্পেস আপডেট হয়।

কাস্টম মেট্রিক্স যোগ করলে বুঝতে সহজ হয় কী কোথায়, কখন, এবং কতবার হচ্ছে। এই কেসে, ক্যাশ ইনভ্যালিডেশনের সংখ্যা জানা এবং সেগুলো একটি পঠনযোগ্য গ্রাফে দেখানো আমাদের দ্রুত একটি সমস্যা খুঁজে বের করতে সাহায্য করল। এতে শুধু কয়েক লাইন কোড লাগে একটি মান ইনক্রিমেন্ট করতে এবং একটি ড্যাশবোর্ড তৈরি করতে।
আপনার কাস্টম মেট্রিক্স সম্পর্কে কোনো প্রশ্ন থাকলে আমাদের জানান এবং আপনার অ্যাপ্লিকেশনে সেগুলো সেট আপ করতে আমরা কীভাবে সাহায্য করতে পারি সেটি বলুন। আমরা সাহায্য করতে খুশি হব!
রবার্ট বিকমান
কো-ফাউন্ডার হিসেবে, রবার্ট আমাদের প্রথম কমিট লিখেছেন। তিনি আমাদের সাপোর্ট রোল মডেল এবং কোডের ছোটো ছোটো ডিটেইলস সম্পর্কে সব জানেন। ভ্রমণ ও ফটোগ্রাফি (একসাথে)।
রবার্ট বিকমানের সকল আর্টিকেল