मेरे पास एक Google guava कैश है जो डेटाबेस से डेटा लोड कर रहा है और प्राथमिक कुंजी का उपयोग कर इसे कैशिंग कर रहा है। डेटाबेस से बनाते हुए ऑब्जेक्ट्स अपरिवर्तनीय हैं और किसी ऑब्जेक्ट को बनाने के लिए कई तालिकाओं तक पहुंच की आवश्यकता होती है। क्या इस परिदृश्य में क्या होता है:Google Guava LoadingCache क्या करता है जब लोड निष्पादित होने पर अमान्य करने के लिए कॉल किया जाता है?
- थ्रेड 1: cache.load (10) कॉल करता है और कैश मूल्य 10
- धागा 2 के साथ एक डेटाबेस प्राथमिक कुंजी के आधार पर डाला जा रहा है: प्राथमिक साथ डेटाबेस पंक्ति को अद्यतन करता कुंजी 10 और इसलिए यह cache.invalidate (10) को cache.load (10) समाप्त होने से पहले अमान्य कहा जाता है।
लोड (x) निष्पादित होने पर अमान्य (x) को बुलाए जाने पर गुवा लोडिंग कैश क्या करता है?
यह [गलत चीज़] (https://github.com/google/guava/issues/1881) करता है। – dnault