2012-02-12 9 views
5

मेरे सिस्टम में हाय एक मास्टर नोड और एन नंबर गुलाम नोड्स होगा, जहां मास्टर नोड आने वाले अनुरोध को अपने दास नोड में वितरित करेगा। कैश मेमोरी सामग्री का उपयोग करने के लिए, मैं पिछले 50 अनुरोध (इनकमिंग अनुरोध का हैश) का ट्रैक रखना चाहता हूं कि दास नोड पहले ही सेवा कर रहा है (माना जाता है कि पिछले 50 अनुरोध कैश मेमोरी में पहले से ही होंगे, इसलिए नोड तेजी से अनुरोध करेगा)। जहां तक ​​मैंने विलोपन का अध्ययन किया है, ब्लूम फ़िल्टर में मुश्किल है। लेकिन यह फ़िल्टर गिनती करके भी किया जा सकता है। ब्लूम फ़िल्टर को चलती खिड़की की तरह रखना वास्तव में संभव है (जैसे 50 अनुरोध के बाद इसे नए अनुरोध को समायोजित करने के लिए फ्रंट एंड से हटा देना चाहिए)। क्या ऐसा करना वास्तव में संभव है या क्या ब्लूम फ़िल्टर जैसे कोई अन्य फ़िल्टर है (जो तत्व की उपस्थिति की जांच करने के लिए पर्याप्त तेज़ होना चाहिए)।ब्लूम फ़िल्टर पिछले 50 डेटा सामग्री को अकेले स्टोर करने के लिए

उत्तर

5

यदि आपके पास केवल 50 चीजें हैं जिन पर आप ट्रैक रखते हैं, तो मुझे नहीं लगता कि ब्लूम फ़िल्टर एक उचित डेटा संरचना है। ब्लूम फ़िल्टर अच्छे होते हैं जब आपके पास बड़ी मात्रा में डेटा होता है जो स्मृति में नहीं रखा जा सकता है और रिमोट डेटाबेस जैसे कुछ रिमोट डेटा स्ट्रक्चर में अनावश्यक लुकअप को खत्म करने के लिए प्रीफिल्टरिंग करना चाहता है। यदि आपके पास केवल 50 तत्व हैं, तो आप उन मानों को संग्रहीत करने के लिए हैश तालिका जैसी किसी चीज़ का उपयोग करके लगभग निश्चित रूप से बेहतर हैं, क्योंकि आप अपेक्षित ओ (1) समय में सटीक उत्तर प्राप्त कर सकते हैं, जिसमें न्यूनतम स्थान ओवरहेड होता है।

यदि आप पिछले 50 तत्वों को ट्रैक करना चाहते हैं, तो एक लिंक वाली हैश तालिका को देखने पर विचार करें, जो सम्मिलित करने, लुकअप, हटाने और हटाने के लिए समर्थन करता है-ओ (1) समय में सबसे बड़ा। जावा का LinkedHashMap यहां बहुत अच्छा होना चाहिए।

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे