2013-03-08 3 views
11

हम एक परियोजना में https://code.google.com/p/concurrentlinkedhashmap/ से ConcurrentLinkedHashMap का उपयोग करें और मैं एक नोट देखा कि वह अमरूद के MapMaker और CacheBuilder में 2010 में वापस एकीकृत किया गया की जानकारी बहुत ही संक्षिप्त है:इसका क्या अर्थ है कि ConcurrentLinkedHashMap को गुवा में एकीकृत किया गया है?

MapMaker में एल्गोरिथम तकनीक की एकता में जारी किया जाएगा Google Guava r08 और इस संस्करण पर आधारित है।

इसका क्या अर्थ है?

  • समवर्तीलिंक्डशैशमैप प्रोजेक्ट अभी भी सक्रिय प्रतीत होता है।
  • क्या यह गुवा कैश पैकेज बूटस्ट्रैप करने के लिए सिर्फ एक बार एकीकरण था?
  • क्या 2010 से दो परियोजनाएं स्वतंत्र रूप से विकसित हुई हैं?
  • यदि हां, तो आज उनके बीच मुख्य अंतर क्या हैं?

उत्तर

31

इसका क्या अर्थ है?

अमरूद दीर्घकालिक प्रतिस्थापन है और अधिकांश समय आपको इसका उपयोग करना चाहिए। इतिहास यह है कि ConcurrentLinkedHashMap ने एल्गोरिदम का पता लगाया, गुवा ने इसे कम किया, और फिर सुविधाओं को जोड़ने पर ध्यान केंद्रित किया।

concurrentlinkedhashmap प्रोजेक्ट अभी भी सक्रिय प्रतीत होता है।

यह हमेशा एक सप्ताहांत परियोजना रहा है, इसलिए सक्रिय माध्यम है कि मेरे पास खुजली करने के लिए खरोंच है या परिवर्तन अनुरोध का जवाब दिया गया है। गुवा से सीएलएचएम में प्रयोग करना भी आसान है, इसलिए मैंने उन्हें पोर्टिंग करने से पहले विचारों को साबित करने के लिए प्रतिबद्ध किया। अमरूद के साथ मेरी भागीदारी 20% थी।

क्या यह गुवा कैश पैकेज बूटस्ट्रैप करने के लिए सिर्फ एक बार एकीकरण था?

हां। हमने पहले मैपमेकर को ओवरहाल किया और फिर एक समर्पित एपीआई में कैशिंग को विभाजित कर दिया। यह अमरूद में विचारों और सुधारों का एक तरफा प्रवास है।

क्या 2010 से दो परियोजनाएं स्वतंत्र रूप से विकसित हुई हैं?

दोनों अपने लक्ष्यों को समर्पित रहे हैं। ConcurrentLinkedHashMap के पीछे प्रेरणा यह जानना था कि शॉर्टकट लेने के बिना वास्तव में समवर्ती कैश कैसे लिखना है। गुवा के पीछे लक्ष्य एक सुंदर एपीआई और व्यापक उपयोग के लिए ठोस कार्यान्वयन के साथ एक समृद्ध पुस्तकालय प्रदान करना है।

आज उनके बीच मुख्य अंतर क्या हैं?

अमरूद सुविधाओं के साथ पैक किया गया है और Google का समर्थन करने में पूर्णकालिक टीम है। इसका इस्तेमाल करें!

ConcurrentLinkedHashMap को फोर्किंग, ConcurrentHashMap की बजाय सजाने के द्वारा उच्च पूर्ण समरूपता है। यह इसे ConcurrentHashMapV8 के साथ उपयोग करने की अनुमति देता है, जो एक नए एल्गोरिदम पर आधारित है।सीएलएचएम सेगमेंट लॉक पर निर्भर नहीं है, जो लेखन प्रदर्शन में सुधार करता है और एक एलआरयू श्रृंखला को बनाए रखने की अनुमति देता है। मेरे पास एलआईआरएस नीति के साथ एक प्रयोगात्मक शाखा है जिसे मैं किसी दिन खत्म होने की उम्मीद करता हूं।

लंबी अवधि की उम्मीद यह है कि डौग ली एक दिन हमारे काम से प्रेरित कैश लिखेंगे और प्रक्रिया में हमें कुछ चीजें सिखाएंगे।


अद्यतन (3/15): Caffeine अमरूद की कैश की एक जावा 8 पुनर्लेखन है। यह जावा 8 के साथ आधुनिकीकृत ConcurrentLinkedHashMap और Guava का सर्वोत्तम प्रदान करने का प्रयास करता है, और उन पिछली परियोजनाओं के बाद से सीखने वाली तकनीकों को अपनाने का प्रयास करता है।

+0

उत्तर बेहतर नहीं हो सकता है! अंतिम वाक्य के लिए –

+7

+1: _ दीर्घकालिक आशा यह है कि डौग ली एक दिन हमारे काम से प्रेरित कैश लिखेंगे और प्रक्रिया में हमें कुछ चीजें सिखाएंगे ._;) – Xaerxess

+0

गुवा मुझे प्रभावित करने के लिए नहीं रोकता है प्रैक्टिस में जावा कंसुरेंसी पढ़ना आपको एहसास है कि डौग ली आदमी है, दोनों एपीआई और गुवा में विचारों के त्वरित पोर्टिंग पर बहुत अच्छा काम है। बेन ने कहा, गुवा का प्रयोग करें। –

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