का उपयोग करने के लिए एक ऐपइंजिन जावा/जेडीओ डेटास्टोर डाट() को अनुकूलित कैसे कर सकता हूं, मैं ऐप इंजन पर चलने वाले ऐप को ट्यून कर रहा हूं और सबसे बड़ी लागत में से एक डेटा स्टोर पढ़ता है और लिखता है। मैंने देखा है कि लिखने के सबसे बड़े अपराधियों में से एक यह है कि जब हम एक आदेश जारी रखते हैं।मैं कम लिखने
बुनियादी डेटा आदेश कई मदों है - हम दोनों को अलग से संग्रहीत करने और इस तरह से उन्हें संबंधित हैं:
@PersistenceCapable
public class Order implements Serializable {
@Persistent(mappedBy="order")
@Element(dependent = "true")
private List<Item> orderItems;
// other fields too obviously
}
@PersistenceCapable
public class Item implements Serializable {
@Persistent(dependent = "true")
@JsonIgnore
private Order order;
// more fields...
}
appstats दिखाया जा रहा है दो डेटा संग्रह एक आइटम के साथ एक आदेश के लिए कहते हैं - लेकिन दोनों बड़े पैमाने पर प्रयोग कर रहे हैं लिखने की संख्या। मैं इसे किसी भी व्यक्ति से अनुकूलित करने का सबसे अच्छा तरीका जानना चाहता हूं।
AppStats डेटा:
असली = 34ms एपीआई = 1695ms लागत = 6400 billed_ops = [DATASTORE_WRITE: 64]
असली = 42ms एपीआई = 995ms लागत = 3600 billed_ops = [DATASTORE_WRITE: 36]
क्षेत्रों मैं उस के बारे में पता में से कुछ शायद मदद मिलेगी:
- कम इंडेक्स - कई ऑर्डर और आइटम गुणों पर इम्प्लांट इंडेक्स है जो मैं एपेंगिन को इंडेक्स नहीं बता सकता, उदाहरण के लिए item.quantity कुछ ऐसा नहीं है जिसे मुझे क्वेरी करने की आवश्यकता है। लेकिन क्या ये सभी लिखने के लिए हैं?
- आइटम और ऑर्डर से संबंधित है, ताकि मेरे पास सिर्फ एक इकाई ऑर्डरआईटम हो, रिश्ते की आवश्यकता को हटा दें (लेकिन अतिरिक्त संग्रहण के साथ इसके लिए भुगतान करें)।
- स्पष्टीकरण सूचकांक के संदर्भ में, मेरे पास ऑर्डर तालिका पर ऑर्डर टेबल पर, ऑर्डर तिथि पर और ऑर्डर आइटम पर एक है, एसकेयू/तिथि और रिश्ते के लिए निहित एक है।
- यदि आइटम एक संग्रह थे, सूची नहीं, तो क्या यह पूरी तरह से बच्चों _IDX पर एक सूचकांक की आवश्यकता को हटा देगा?
तो, मेरा सवाल होगा, उपर्युक्त वस्तुओं में से कोई भी बड़ी जीत के लिए जा रहा है, या क्या ऐसे अन्य विकल्प हैं जिन्हें मैंने याद किया है जो शुरुआत में ध्यान केंद्रित करना बेहतर होगा?
बोनस अंक: क्या कोई अच्छा 'कम डेटास्टोर लिखने के लिए मार्गदर्शिका' आलेख कहीं है?
धन्यवाद पीटर, क्या मैंने 4 के बाहर कोई कदम उठाया है, मैंने देखा है कि आप सोचने का सुझाव देंगे, या मैं दिमाग में जो कुछ मिला है उसके साथ सही रास्ते पर हूं। –
@ एशले: मैंने सबसे महत्वपूर्ण जानकारी के साथ उत्तर अपडेट किया - इंडेक्स की संख्या लिखने की लागत को प्रभावित करती है, लेकिन लिखने की गति नहीं। अपने मामले में चीजों को गति देने के लिए एसिंक ऑपरेशंस देखें। –