8

मेरे पास निम्न इकाई है (गैर-प्रासंगिक फ़ील्ड/विधियां हटा दी गई हैं)।Google के डेटास्टोर (उच्च प्रतिकृति) के लिए एक ही लेनदेन में "बहुत अधिक" कितनी वस्तुएं हैं?

public class HitsStatsTotalDO 
{ 
    @Id 
    transient private Long targetId; 

    public Key<HitsStatsTotalDO> createKey() 
    { 
     return new Key<HitsStatsTotalDO>(HitsStatsTotalDO.class, targetId); 
    } 
} 

तो ... मैं बैच 10 वस्तुओं है जिसके लिए मैं HitsStatsTotalDO.createKey() का उपयोग कर कुंजी निर्माण के लिए प्राप्त करने के लिए कोशिश कर रहा हूँ। मैं इस तरह के लेनदेन में उन्हें लाने के लिए प्रयास कर रहा हूँ:

final List<Key<HitsStatsTotalDO>> keys = .... 

// This is being called in transaction.. 
Map<Key<HitsStatsTotalDO>, HitsStatsTotalDO> result = DAOBase.ofy().get(keys); 

जो अपवाद निम्नलिखित थ्रो:

java.lang.IllegalArgumentException: operating on too many entity groups in a single transaction.

आप कृपया विस्तार से बताएं किया जा सका है कि कितने भी कई है और यह कैसे तय करने के लिए? मुझे दस्तावेज़ीकरण में सटीक संख्या नहीं मिली।

धन्यवाद!

उत्तर

5

समस्या उन संस्थाओं की संख्या नहीं है जिन्हें आप पुनर्प्राप्त कर रहे हैं, यह तथ्य है कि वे कई इकाई समूहों में हैं। या तो लेनदेन के बाहर लाने के लिए, या XG (Cross Group) transaction का उपयोग करें।

+0

हाँ, मैं उस हिस्से को लगभग 5 इकाइयों से चूक गया। – expert

+1

कम से कम पायथन एसडीके 1.7.3 में, BadRequestError में दो अलग-अलग त्रुटि संदेश हैं: "क्रॉस-ग्रुप लेनदेन को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है, TransactionOptions.Builder.withXG देखें" और "एकल में बहुत से इकाई समूहों पर परिचालन करना लेन-देन "। आपका उत्तर पूर्व को हल करता है, लेकिन बाद वाला एक्सजी लेनदेन में हो सकता है, अगर यह 5 से अधिक इकाई समूहों पर चलता है। –

+0

अब एक्सजी लेनदेन के लिए, सीमा 25 इकाई समूह प्रतीत होती है। Https://cloud.google.com/appengine/docs/standard/java/datastore/transactions?csw=1#What_Can_Be_Done_In_a_Transaction देखें – rimsky

1

एक ही लेनदेन में आप एक ही इकाई समूह में इकाइयों को संचालित कर सकते हैं।

What Can Be Done In a Transaction

+1

आह हाँ, यह उच्च प्रतिकृति के लिए 5 है जिसका मैं उपयोग करता हूं। मैंने आपका जवाब भी अपडेट किया। – expert

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

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