রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন প্রতিটি আগত অনুরোধকে আলাদাভাবে প্রক্রিয়া করে রিয়েল টাইমে ডুপ্লিকেটগুলো দূর করে, অন্যদিকে ব্যাচ-লেভেল ডিডুপ্লিকেশন একাধিক অনুরোধকে একত্রিত করে এবং জমা হওয়ার পর অপ্রয়োজনীয় পুনরাবৃত্তিগুলো অপসারণ করে। উভয় পদ্ধতিই ডেটার পুনরাবৃত্তি কমায়, কিন্তু লেটেন্সি, রিসোর্স ব্যবহার এবং আদর্শ ব্যবহারের ক্ষেত্রে এদের মধ্যে উল্লেখযোগ্য পার্থক্য রয়েছে।
হাইলাইটস
অনুরোধ-স্তরের ডিডুপ্লিকেশন ন্যূনতম লেটেন্সি ওভারহেড সহ রিয়েল টাইমে ডুপ্লিকেট শনাক্ত করে।
সম্পূর্ণ সঞ্চিত ডেটাসেটের সাথে তুলনা করে ব্যাচ-স্তরের ডিডুপ্লিকেশন উচ্চতর নির্ভুলতা অর্জন করে।
অনুরোধ-স্তরের সিস্টেমের জন্য দ্রুত ইন-মেমরি স্টোর প্রয়োজন, অন্যদিকে ব্যাচ সিস্টেমগুলো সস্তা ডিস্ক স্টোরেজ ব্যবহার করে।
ব্যাচ-স্তরের ডিডুপ্লিকেশন আরও ভালো ব্যর্থতা পুনরুদ্ধার সুবিধা প্রদান করে, কারণ কাঁচা ডেটা স্টোরেজে সংরক্ষিত থাকে।
অনুরোধ-স্তরের ডুপ্লিকেট অপসারণ কী?
একটি রিয়েল-টাইম পদ্ধতি যা কোনো প্রক্রিয়াকরণ শুরু হওয়ার আগেই, ডুপ্লিকেট অনুরোধগুলো আসা মাত্রই যাচাই করে সরিয়ে দেয়।
সিস্টেমে পৌঁছানোর সাথে সাথেই প্রতিটি অনুরোধের উপর কাজ করে, যার ফলে তাৎক্ষণিকভাবে ডুপ্লিকেট শনাক্ত করা সম্ভব হয়।
দ্রুত অনুসন্ধানের জন্য সাধারণত হ্যাশ সেট বা ব্লুম ফিল্টারের মতো ইন-মেমরি ডেটা স্ট্রাকচার ব্যবহার করে।
যেহেতু অনুরোধ প্রক্রিয়াকরণের সাথে সাথেই সিদ্ধান্ত গ্রহণ করা হয়, তাই লেটেন্সি খুবই কম থাকে।
সাধারণত এপিআই গেটওয়ে, ওয়েব সার্ভার এবং রিয়েল-টাইম জালিয়াতি সনাক্তকরণ সিস্টেমে ব্যবহৃত হয়।
একই কাজের পুনরাবৃত্তি শুরু হওয়া প্রতিরোধ করে অপ্রয়োজনীয় গণনা হ্রাস করে।
ব্যাচ-স্তরের ডুপ্লিকেট অপসারণ কী?
একটি বিলম্বিত পদ্ধতি যা সময়ের সাথে সাথে অনুরোধগুলি সংগ্রহ করে এবং একটি নির্ধারিত প্রক্রিয়াকরণ সময়কালে ডুপ্লিকেটগুলি সরিয়ে দেয়।
মিনিট থেকে ঘন্টা পর্যন্ত নির্ধারিত বিরতিতে জমা হওয়া অনুরোধগুলি প্রক্রিয়া করে।
অপেক্ষাধীন রেকর্ড সংরক্ষণের জন্য ডেটাবেস বা ডিস্ট্রিবিউটেড ফাইল সিস্টেমের মতো স্থায়ী স্টোরেজের উপর নির্ভর করে।
বৃহত্তর ঐতিহাসিক ডেটাসেটের সাথে তুলনা করে উচ্চতর ডিডুপ্লিকেশন নির্ভুলতা অর্জন করে।
ডেটা পাইপলাইন, ETL জব এবং অ্যানালিটিক্স ইনজেশন ওয়ার্কফ্লোতে প্রায়শই ব্যবহৃত হয়।
ইচ্ছাকৃতভাবে লেটেন্সি তৈরি করে কিন্তু থ্রুপুট এবং স্টোরেজ দক্ষতা সর্বোচ্চ করে তোলে।
তুলনা সারণি
বৈশিষ্ট্য
অনুরোধ-স্তরের ডুপ্লিকেট অপসারণ
ব্যাচ-স্তরের ডুপ্লিকেট অপসারণ
প্রক্রিয়াকরণ মডেল
রিয়েল-টাইম, অনুরোধ অনুযায়ী
নির্ধারিত, ব্যাচ অনুযায়ী
লেটেন্সি প্রভাব
প্রায়-শূন্য অতিরিক্ত লেটেন্সি
মিনিট থেকে ঘন্টার বিলম্ব
সংরক্ষণের প্রয়োজনীয়তা
মেমরিতে ন্যূনতম পদচিহ্ন
সারিবদ্ধ ডেটার জন্য স্থায়ী স্টোরেজ প্রয়োজন।
ডুপ্লিকেট বাদ দেওয়ার নির্ভুলতা
সাম্প্রতিক ইন-মেমরি উইন্ডোতে সীমাবদ্ধ
সম্পূর্ণ ব্যাচ ইতিহাস জুড়ে উচ্চ নির্ভুলতা
থ্রুপুট দক্ষতা
প্রতি অনুরোধে কম থ্রুপুট
উচ্চতর সামগ্রিক থ্রুপুট
বাস্তবায়ন জটিলতা
মাঝারি, দ্রুত অনুসন্ধান কাঠামো প্রয়োজন
উচ্চতর, সারি ব্যবস্থাপনা এবং সময়সূচী প্রয়োজন।
এর জন্য সবচেয়ে উপযুক্ত
এপিআই, ওয়েবহুক, রিয়েল-টাইম সিস্টেম
ডেটা পাইপলাইন, অ্যানালিটিক্স, ইটিএল
ব্যর্থতা পুনরুদ্ধার
ক্র্যাশ হলে মেমরির অবস্থা হারিয়ে যায়
স্টোরেজ থেকে ব্যাচটি পুনরায় চালানো যাবে।
বিস্তারিত তুলনা
মূল প্রক্রিয়া
রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন প্রতিটি রিকোয়েস্টকে তার প্রবেশপথেই আটক করে এবং সম্প্রতি দেখা আইডেন্টিফায়ারগুলোর একটি চলমান রেকর্ডের সাথে মিলিয়ে দেখে। যদি কোনো মিল পাওয়া যায়, তাহলে রিকোয়েস্টটি তাৎক্ষণিকভাবে বাতিল বা একীভূত করে দেওয়া হয়। ব্যাচ-লেভেল ডিডুপ্লিকেশন এর বিপরীত পদ্ধতি অবলম্বন করে; এটি একটি কিউ বা স্টেজিং এরিয়াতে রিকোয়েস্টগুলোকে জমা হতে দেয় এবং ব্যাচ উইন্ডো বন্ধ হয়ে গেলে পুরো সংগ্রহটির উপর একটি ডিডুপ্লিকেশন পাস চালায়।
লেটেন্সি বনাম থ্রুপুট ট্রেডঅফ
এই দুটি পদ্ধতির মধ্যে মূল দ্বন্দ্বটি মূলত গতি বনাম পরিধির প্রশ্ন। রিকোয়েস্ট-লেভেল সিস্টেমগুলো প্রতি কলে মাত্র কয়েক মাইক্রোসেকেন্ড ওভারহেড যোগ করে, তাই ব্যবহারকারীরা যখন তাৎক্ষণিক প্রতিক্রিয়া আশা করেন, তখন এগুলো আদর্শ। অন্যদিকে, ব্যাচ-লেভেল সিস্টেমগুলো সেই তাৎক্ষণিকতাকে বিসর্জন দিয়ে প্রতি ইউনিট কম্পিউটে অনেক বেশি রেকর্ড প্রসেস করে, কারণ এক্ষেত্রে ডিডুপ্লিকেশন লজিককে একক-রেকর্ড অনুসন্ধানের পরিবর্তে বাল্ক অপারেশনের জন্য অপ্টিমাইজ করা যায়।
নির্ভুলতা এবং সনাক্তকরণ উইন্ডো
যেহেতু রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন সাধারণত সীমিত মেমরির উপর নির্ভর করে, তাই এটি কেবল সেই নির্দিষ্ট সময়ের মধ্যে আসা ডুপ্লিকেটগুলোই ধরতে পারে। কয়েক ঘণ্টা পরে আসা কোনো ডুপ্লিকেট এর ফাঁক গলে বেরিয়ে যেতে পারে। ব্যাচ-লেভেল ডিডুপ্লিকেশন সম্পূর্ণ সংগৃহীত ডেটাসেটের সাথে তুলনা করে, তাই ডুপ্লিকেটগুলো মূলত কখন এসেছিল তা নির্বিশেষে এটি সেগুলোকে ধরে ফেলে, যা গুরুত্বপূর্ণ যখন আপস্ট্রিম সিস্টেমগুলো দীর্ঘ সময় ধরে রিকোয়েস্টগুলো রিট্রাই বা রিপ্লে করে।
অবকাঠামো এবং খরচ
বৃহৎ পরিসরে রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন চালানোর জন্য রেডিস (Redis) বা মেমক্যাশড (Memcached)-এর মতো দ্রুত ও ডিস্ট্রিবিউটেড ইন-মেমরি স্টোরের প্রয়োজন হয়, যা উচ্চ রিকোয়েস্ট ভলিউমের ক্ষেত্রে ব্যয়বহুল হয়ে উঠতে পারে। ব্যাচ-লেভেল ডিডুপ্লিকেশন তুলনামূলকভাবে সস্তা ডিস্ক-ভিত্তিক স্টোরেজ এবং শিডিউলড কম্পিউটের উপর নির্ভর করে, যা প্রায়শই স্পট ইনস্ট্যান্সে বা অফ-পিক আওয়ারে চলে। উচ্চ-ভলিউম এবং কম-জরুরি ওয়ার্কলোডের ক্ষেত্রে খরচের দিক থেকে ব্যাচ প্রসেসিং সুবিধাজনক।
ব্যর্থতা পরিচালনা
যখন একটি রিকোয়েস্ট-লেভেল সিস্টেম ক্র্যাশ করে, তখন এর ইন-মেমরি ডিডুপ্লিকেশন স্টেট হারিয়ে যায়, যার অর্থ হলো রিস্টার্টের পর ইতিমধ্যে ফিল্টার করা ডুপ্লিকেটগুলোও বাদ পড়ে যেতে পারে। ব্যাচ-লেভেল সিস্টেমগুলো এক্ষেত্রে বেশি স্থিতিস্থাপক, কারণ কাঁচা রিকোয়েস্টগুলো ডিউরেবল স্টোরেজে থাকে এবং সেগুলোকে সহজেই পুনরায় প্রসেস করা যায়। এটি ব্যাচ ডিডুপ্লিকেশনকে এমন ওয়ার্কলোডের জন্য একটি নিরাপদ বিকল্প করে তোলে, যেখানে ডুপ্লিকেট প্রসেসিংয়ের সাথে উল্লেখযোগ্য খরচ বা ঝুঁকি জড়িত থাকে।
সুবিধা এবং অসুবিধা
অনুরোধ-স্তরের ডুপ্লিকেট অপসারণ
সুবিধাসমূহ
+রিয়েল-টাইম ডুপ্লিকেট সনাক্তকরণ
+ন্যূনতম অতিরিক্ত বিলম্ব
+যুক্তি দিয়ে বোঝা সহজ
+শুরুতেই অপ্রয়োজনীয় গণনা প্রতিরোধ করে
কনস
−সীমিত মেমরি উইন্ডো
−উচ্চতর অবকাঠামো ব্যয়
−দুর্ঘটনায় রাজ্য হেরেছে
−অনুভূমিকভাবে স্কেল করা আরও কঠিন
ব্যাচ-স্তরের ডুপ্লিকেট অপসারণ
সুবিধাসমূহ
+উচ্চ সনাক্তকরণ নির্ভুলতা
+সস্তা স্টোরেজ বিকল্প
+ব্যর্থতা সত্ত্বেও স্থিতিস্থাপক
+বৃহৎ পরিসরে উন্নততর কার্যক্ষমতা
কনস
−প্রক্রিয়াকরণে বিলম্ব ঘটায়
−সারি ব্যবস্থাপনা প্রয়োজন
−আরও জটিল সময়সূচী
−বাস্তব সময়ের প্রয়োজনের জন্য উপযুক্ত নয়
সাধারণ ভুল ধারণা
পুরাণ
অনুরোধ-স্তরের ডিডুপ্লিকেশন প্রতিটি ডুপ্লিকেট শনাক্ত করে, তা যখনই আসুক না কেন।
বাস্তবতা
বাস্তবে, রিকোয়েস্ট-লেভেল সিস্টেমগুলো শুধুমাত্র তাদের ইন-মেমরি উইন্ডোর মধ্যেই ডুপ্লিকেট শনাক্ত করে। একবার কোনো রেকর্ডের মেয়াদ শেষ হয়ে গেলে, পুনরায় পাঠানো একটি রিকোয়েস্টকে নতুন হিসেবে গণ্য করা হয়, যে কারণে বেশিরভাগ প্রোডাকশন সিস্টেম সম্পূর্ণতা যাচাইয়ের জন্য এটিকে একটি দ্বিতীয় ব্যাচ-লেভেল পাসের সাথে যুক্ত করে।
পুরাণ
ব্যাচ-স্তরের ডিডুপ্লিকেশন সর্বদা ধীরগতির এবং সেই কারণে নিকৃষ্ট।
বাস্তবতা
লেটেন্সিই একমাত্র গুরুত্বপূর্ণ মেট্রিক নয়। ব্যাচ-স্তরের ডিডুপ্লিকেশন প্রায়শই আরও ভালো ব্যয়-দক্ষতা, উচ্চতর নির্ভুলতা এবং শক্তিশালী ফল্ট টলারেন্স প্রদান করে, যা এটিকে অনেক বৃহৎ-স্কেল ডেটা ওয়ার্কফ্লোর জন্য একটি উন্নততর বিকল্প করে তোলে।
পুরাণ
আপনাকে আপনার পুরো সিস্টেমের জন্য একটি পদ্ধতি বেছে নিতে হবে।
বাস্তবতা
অধিকাংশ উন্নত ক্লাউড আর্কিটেকচারে এই দুটিই সমন্বিত থাকে। রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন তাৎক্ষণিক ফিল্টারিংয়ের জন্য হট পাথ পরিচালনা করে, অন্যদিকে ব্যাচ-লেভেল ডিডুপ্লিকেশন একটি সুরক্ষা জাল হিসেবে কাজ করে, যা এর ফাঁক গলে বেরিয়ে যাওয়া যেকোনো কিছুকে ধরে ফেলে।
পুরাণ
ব্লুম ফিল্টার অনুরোধ-স্তরের ডুপ্লিকেশন অপসারণকে পুরোপুরি নির্ভুল করে তোলে।
বাস্তবতা
ব্লুম ফিল্টার ফলস পজিটিভ তৈরি করতে পারে, যার অর্থ হলো কিছু বৈধ অনুরোধ বাদ পড়ে যায়। এগুলো নকশাগতভাবেই সম্ভাবনামূলক, তাই যে সিস্টেমগুলো এগুলো ব্যবহার করে, তারা সাধারণত গুরুত্বপূর্ণ অপারেশনগুলোর জন্য একটি দ্বিতীয় যাচাইকরণ ধাপ যোগ করে।
পুরাণ
ব্যাচ-স্তরের ডিডুপ্লিকেশন রিয়েল-টাইম ওয়ার্কলোডের সাথে খাপ খাইয়ে নিতে পারে না।
বাস্তবতা
অ্যাপাচি ফ্লিংক বা স্পার্ক স্ট্রাকচার্ড স্ট্রিমিং-এর মতো আধুনিক স্ট্রিম প্রসেসিং ফ্রেমওয়ার্কের সাহায্যে, ব্যাচ-স্টাইল ডিডুপ্লিকেশন মাত্র কয়েক সেকেন্ডের বিলম্ব সহ মাইক্রো-ব্যাচে চলতে পারে, যা এই দুটি পদ্ধতির মধ্যেকার পার্থক্যকে অস্পষ্ট করে দেয়।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
রিকোয়েস্ট-লেভেল এবং ব্যাচ-লেভেল ডিডুপ্লিকেশনের মধ্যে প্রধান পার্থক্য কী?
মূল পার্থক্যটি হলো সময়। রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন প্রতিটি রিকোয়েস্ট আসার সাথে সাথেই তা পরীক্ষা করে এবং তাৎক্ষণিকভাবে ডুপ্লিকেটগুলো সরিয়ে দেয়, অন্যদিকে ব্যাচ-লেভেল ডিডুপ্লিকেশন একটি নির্দিষ্ট সময় ধরে রিকোয়েস্ট সংগ্রহ করে এবং পরে ডুপ্লিকেটগুলো সরিয়ে দেয়। প্রথমটি কম ল্যাটেন্সিকে অগ্রাধিকার দেয়, দ্বিতীয়টি পুঙ্খানুপুঙ্খতা এবং ব্যয় সাশ্রয়কে অগ্রাধিকার দেয়।
এপিআই গেটওয়ের জন্য কোন ডিডুপ্লিকেশন পদ্ধতিটি বেশি ভালো?
এপিআই গেটওয়েগুলির জন্য সাধারণত রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশনই সবচেয়ে উপযুক্ত, কারণ ব্যবহারকারীরা সিনক্রোনাস রেসপন্স আশা করেন এবং ডুপ্লিকেট এপিআই কলগুলি প্রায়শই রিট্রাই বা বাগ নির্দেশ করে যা তাৎক্ষণিকভাবে ধরা উচিত। একটি দ্বিতীয় স্তর হিসাবে ব্যাচ-লেভেল ডিডুপ্লিকেশন যোগ করলে পরবর্তী স্তরের অপচয় আরও কমানো যেতে পারে।
ব্যাচ-স্তরের ডিডুপ্লিকেশন কি রিয়েল টাইমে কাজ করতে পারে?
হ্যাঁ, আধুনিক স্ট্রিম প্রসেসিং ইঞ্জিনগুলো মাত্র এক থেকে পাঁচ সেকেন্ডের মতো কম বিলম্বেই মাইক্রো-ব্যাচে ডিডুপ্লিকেশন চালাতে পারে। এই পদ্ধতিটি আপনাকে ব্যাচ-স্টাইল প্রসেসিং দক্ষতার সুবিধা বজায় রেখেই প্রায় রিয়েল-টাইম কার্যকারিতা প্রদান করে।
অনুরোধ-স্তরের ডিডুপ্লিকেশনের জন্য কোন ডেটা স্ট্রাকচারগুলো ব্যবহার করা হয়?
সাধারণ বিকল্পগুলোর মধ্যে রয়েছে নির্ভুল মিলের জন্য হ্যাশ সেট, মেমরি-সাশ্রয়ী সম্ভাবনামূলক মিলের জন্য ব্লুম ফিল্টার এবং সীমিত মেমরি উইন্ডোর জন্য LRU ক্যাশ। ডিস্ট্রিবিউটেড ডেপ্লয়মেন্টের জন্য Redis এবং Memcached হলো জনপ্রিয় ব্যাকস্টোর।
ব্যাচ-লেভেল ডিডুপ্লিকেশন খুব বড় ডেটাসেট কীভাবে পরিচালনা করে?
বৃহৎ পরিসরে ব্যাচ ডিডুপ্লিকেশনের জন্য সাধারণত অ্যাপাচি স্পার্ক বা হ্যাডুপের মতো ডিস্ট্রিবিউটেড প্রসেসিং ফ্রেমওয়ার্ক ব্যবহার করা হয়। ডিডুপ্লিকেশন কী-এর হ্যাশ দ্বারা রেকর্ডগুলোকে পার্টিশন করা হয়, প্রতিটি পার্টিশনের মধ্যে সেগুলোকে সর্ট করা হয় এবং তারপর পাশাপাশি থাকা এন্ট্রিগুলোর তুলনা করে একত্রিত করা হয়, যা মেমোরির ব্যবহারকে নিয়ন্ত্রণযোগ্য রাখে।
অনুরোধ-স্তরের ডিডুপ্লিকেশন কি ব্যাচ-স্তরের ডিডুপ্লিকেশনের চেয়ে বেশি ব্যয়বহুল?
প্রতি অনুরোধের জন্য, হ্যাঁ, কারণ প্রতিটি কলে এর জন্য দ্রুত ইন-মেমরি লুকআপ প্রয়োজন। বৃহৎ পরিসরে, লো-ল্যাটেন্সি ডেটা স্টোরের অবকাঠামোগত খরচ দ্রুত বেড়ে যেতে পারে। ব্যাচ-লেভেল ডিডুপ্লিকেশন সেই খরচকে শিডিউলড কম্পিউট এবং সস্তা ডিস্ক স্টোরেজের দিকে স্থানান্তরিত করে।
অনুরোধ-স্তরের ডিডুপ্লিকেশন সিস্টেম ক্র্যাশ করলে কী হয়?
দেখা অনুরোধগুলির মেমরি অবস্থা হারিয়ে যায়, তাই পূর্বে ফিল্টার করা ডুপ্লিকেটগুলি রিস্টার্টের পরে আবার প্রসেস হতে পারে। এর প্রতিকারের জন্য, অনেক সিস্টেম ডিডুপ্লিকেশন অবস্থা ডিস্কে সংরক্ষণ করে অথবা একটি রাইট-অহেড লগ ব্যবহার করে যা রিকভারির সময় পুনরায় চালানো যায়।
উভয় পদ্ধতি কি একটি স্থাপত্যে একত্রিত করা যেতে পারে?
অবশ্যই, এবং এটি প্রোডাকশন সিস্টেমে একটি সাধারণ বিষয়। রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন তাৎক্ষণিক ফিল্টারিংয়ের জন্য হট পাথ পরিচালনা করে, অন্যদিকে একটি ব্যাচ জব পর্যায়ক্রমে চলে ইন-মেমরি উইন্ডোর ফাঁক গলে যাওয়া বা বিভ্রাটের সময় আসা যেকোনো ডুপ্লিকেট ফাইল ধরার জন্য।
লগ ইনজেশন পাইপলাইনের জন্য কোন পদ্ধতিটি বেশি ভালো?
লগ ইনজেশনের জন্য সাধারণত ব্যাচ-স্তরের ডিডুপ্লিকেশন পছন্দ করা হয়, কারণ লগগুলি প্রচুর পরিমাণে আসে, কিছুটা বিলম্ব সহ্য করতে পারে এবং প্রায়শই দীর্ঘ সময় ধরে ডিডুপ্লিকেশনের প্রয়োজন হয়। Logstash, Flink এবং Spark-এর মতো টুলগুলি স্বাভাবিকভাবেই এই প্যাটার্নটি সমর্থন করে।
ব্যাচ প্রসেসিংয়ের জন্য আপনি ডিডুপ্লিকেশন উইন্ডোর আকার কীভাবে নির্বাচন করেন?
বাস্তবে ডুপ্লিকেট ডেটা আসতে কত সময় লাগতে পারে, তার উপর উইন্ডোর আকার নির্ভর করে। ওয়েবহুক রিট্রাইয়ের জন্য কয়েক ঘণ্টাই যথেষ্ট হতে পারে। কিন্তু অ্যানালিটিক্স ডেটার জন্য, যা কয়েক দিন পর রিপ্লে করা হয়, আপনার ২৪ ঘণ্টা বা তার বেশি সময়ের উইন্ডো প্রয়োজন হতে পারে। এক্ষেত্রে সবসময় ল্যাটেন্সি এবং ডেটার সম্পূর্ণতার মধ্যে একটি ভারসাম্য রক্ষা করতে হয়।
রায়
যখন আপনার সিস্টেমে রিয়েল-টাইম প্রতিক্রিয়ার প্রয়োজন হয় এবং ডুপ্লিকেট অনুরোধগুলো ব্যয়বহুল কম্পিউট নষ্ট করে বা ব্যবহারকারীর কাছে দৃশ্যমান সমস্যা তৈরি করে, যেমন পেমেন্ট এপিআই বা ওয়েবহুক রিসিভারের ক্ষেত্রে, তখন রিকোয়েস্ট-লেভেল ডিডুপ্লিকেশন বেছে নিন। যখন আপনি বিপুল পরিমাণ ডেটা প্রসেস করেন, যেখানে কিছুটা বিলম্ব গ্রহণযোগ্য এবং আপনার দীর্ঘ সময় ধরে পুঙ্খানুপুঙ্খ ডুপ্লিকেট সনাক্তকরণের প্রয়োজন হয়, যেমন অ্যানালিটিক্স ইনজেশন বা লগ প্রসেসিং পাইপলাইনে, তখন ব্যাচ-লেভেল ডিডুপ্লিকেশন ব্যবহার করুন।