আমি ধরে নিয়েছি কী-মানক স্টোরেজটি কেবলমাত্র কেভিওর মেয়াদ শেষ হতে পারে তা জানতে সমস্ত কেভি-জোড়ায় পুনরাবৃত্তি করতে খুব বড়। আমি এটিও ধরে নিয়েছি যে প্রতিটি পঠন অ্যাক্সেস মেয়াদোত্তীর্ণ টাইমস্ট্যাম্পকে রিফ্রেশ করে, তাই কেবলমাত্র কিছু আইটেম যা কিছু সময়ের জন্য অ্যাক্সেস করা হয়নি তা মেয়াদ শেষ হয়ে গেছে।
চ্যালেঞ্জটি হ'ল সমস্ত রেকর্ডগুলি দক্ষতার সাথে সন্ধান করা যা শেষ হতে পারে (যখনই ক্লিনআপের সময়সীমা রয়েছে), তবে প্রতিটি পঠনের অ্যাক্সেসের উপর দক্ষতার সাথে মেয়াদোত্তীর্ণ টাইমস্ট্যাম্পটি রিফ্রেশ করুন (সুতরাং আমাদের অবশ্যই সমাপ্তির জন্য ব্যবহৃত কাঠামোর কীটি সন্ধান করতে হবে)।
আমার প্রস্তাব: বালিকাতে গ্রুপের মেয়াদোত্তীর্ণতার সময়সীমা; উদাহরণস্বরূপ, আইটেমগুলি যদি 8 ঘন্টা বেঁচে থাকে তবে প্রতি ঘন্টা একটি বালতি তৈরি করুন। এই বালতিগুলি একটি লিঙ্কযুক্ত তালিকায় রাখা হয়েছে; মেয়াদোত্তীর্ণ হওয়ার পরে, প্রথম বালতিটি খালি করে তালিকাটি হ্রাস করা হয়। বালতির সংখ্যাটি আজীবন / ক্লিনআপের বিরতি। প্রতিটি বালতিতে সমস্ত কীগুলির একটি হ্যাশসেট রয়েছে যা শেষ হতে হবে। একটি হ্যাশসেটের সমস্ত কীগুলির মধ্যে আইট্রেটেশন যথেষ্ট দক্ষ।
পাঠ্য অ্যাক্সেসের সময়, প্রোগ্রামটি পরীক্ষা করে যে কীটি বর্তমানে কী বালতিতে রয়েছে এবং কোন বালতিটি এখন তা অন্তর্ভুক্ত। বেশিরভাগ ক্ষেত্রে, এটি একই বালতি, সুতরাং আর কোনও পদক্ষেপের প্রয়োজন নেই। অন্যথায়, পুরানো বালতি থেকে কীটি সরিয়ে ফেলুন (একটি হ্যাশ সেট থেকে অপসারণ দক্ষ) এবং এটি নতুন বালতিতে intoোকান।
+--------------+ +--------------+ +--------------+
-->+ Expiry 08:00 +-->+ Expiry 09:00 +-->+ Expiry 10:00 +
| KeySet | | KeySet | | KeySet |
+--------------+ +--------------+ +--------------+