मेरे पास BLOB स्टोरेज में संग्रहीत XML फ़ाइलें हैं, और मैं यह पता लगाने की कोशिश कर रहा हूं कि उन्हें अपडेट करने का सबसे प्रभावी तरीका क्या है (और/या उनमें कुछ तत्व जोड़ें)। एक WebRole में, मैं इस के साथ आया था:Azure - BLOB स्टोरेज में मौजूदा xml फ़ाइल को अपडेट करना
using (MemoryStream ms = new MemoryStream())
{
var blob = container.GetBlobReference("file.xml");
blob.DownloadToStream(msOriginal);
XDocument xDoc= XDocument.Load(ms);
// Do some updates/inserts using LINQ to XML.
blob.Delete();//Details about this later on.
using(MemoryStream msNew = new MemoryStream())
{
xDoc.Save(msNew);
msNew.Seek(0,SeekOrigin.Begin);
blob.UploadFromStream(msNew);
}
}
मैं इन मानकों दक्षता पर विचार तलाश में हूं:
- ब्लॉब लेनदेन।
- बैंडविड्थ। (सुनिश्चित नहीं है कि यह गिना जाता है, क्योंकि कोड डेटा-सेंटर में चलता है)
- मेमोरी उदाहरण पर खपत।
कुछ बातें उल्लेख करने के लिए:
मेरे xml फ़ाइलें चारों ओर 150-200 KB कर रहे हैं।
मैं तथ्य यह है कि XDocument स्मृति में पूरे फाइल लोड के बारे में पता कर रहा हूँ, और धाराएं (XmlWriter और XmlReader) में काम कर इस का समाधान कर सकता है। लेकिन मुझे लगता है कि इसे ब्लॉबस्ट्रीम के साथ काम करने की आवश्यकता होगी जो कम कुशल लेनदेन-वार (मुझे लगता है) का कारण बन सकता है।
ब्लॉब के बारे में डिलीट(), इसके बिना, ब्लॉब स्टोरेज में अपलोड किए गए एक्सएमएल के अंत में कुछ बंद टैग गायब लगते हैं। मुझे लगता है कि यह पुराने डेटा के साथ टकराव के कारण होता है। मैं यहां पूरी तरह से गलत हो सकता हूं, लेकिन हटाए गए डिलीवरी का उपयोग करके इसे हल किया गया है (हालांकि अधिक लेनदेन की लागत)।
क्या मैंने जो कोड प्रदान किया है वह एक अच्छा अभ्यास है या मेरे द्वारा वर्णित पैरामीटर पर विचार करने का एक और अधिक प्रभावी तरीका मौजूद है?
दस्तावेज़ अक्सर बदलते हैं। असल में अक्सर। संभावित रूप से उन्हें कई बार बदला जा सकता है, मान लीजिए, एक मिनट। –
प्रदर्शन में सुधार करने के तरीके पर कोई विचार? –