5

यह वास्तव में एक बुनियादी सवाल की तरह प्रतीत हो सकता है, लेकिन अगर मैं किसी अन्य प्रक्रिया द्वारा अपडेट किया जा रहा है, तो मैं एस 3 से फ़ाइल डाउनलोड कर रहा हूं, क्या मुझे अपूर्ण फ़ाइल प्राप्त करने की चिंता करनी है?एडब्ल्यूएस एस 3 से डाउनलोड करते समय फ़ाइल को अपडेट किया जा रहा है

उदाहरण: 200 एमबी सीएसवी फ़ाइल। उपयोगकर्ता ए 1 एमबीपीएस पर 200 एमबी नई सामग्री के साथ फाइल को अपडेट करना शुरू कर देता है। 16 सेकंड बाद, उपयोगकर्ता बी 200 एमबीपीएस पर फ़ाइल डाउनलोड करना शुरू कर देता है। क्या उपयोगकर्ता बी को मूल फ़ाइल की सभी 200 एमबी मिलती है, या क्या उपयोगकर्ता बी को यूजर ए के ~ 2 एमबी मिलते हैं और कुछ भी नहीं?

उत्तर

9

उपयोगकर्ता बी को मूल फ़ाइल की सभी 200MB मिलती है।

S3 पर

PUT संचालन परमाणु कर रहे हैं:

यहां इसका कारण बताया। तकनीकी रूप से ऐसी कोई चीज नहीं है जो किसी ऑब्जेक्ट को "संशोधित" करती है। वास्तव में तब होता है जब कोई ऑब्जेक्ट ओवरराइट किया जाता है यह है कि ऑब्जेक्ट को एक ही ऑब्जेक्ट के साथ एक ही ऑब्जेक्ट के साथ बदल दिया गया है। लेकिन मूल वस्तु वास्तव में तब तक नहीं बदली जाती जब तक कि नई (ओवरराइटिंग) ऑब्जेक्ट पूरी तरह से अपलोड नहीं हो जाती है, और सफलतापूर्वक ... और फिर भी, ओवरराइट ऑब्जेक्ट तकनीकी रूप से "चला गया" नहीं है - इसे केवल बाल्टी की अनुक्रमणिका में बदल दिया गया है , ताकि भविष्य के अनुरोधों को नई वस्तु परोसा जाएगा।

(नई वस्तु की सेवा वास्तव में हमेशा तुरंत होने की गारंटी नहीं किया जा रहा के रूप में दर्ज है। नई वस्तुओं, जो डाउनलोड के लिए तुरंत उपलब्ध हैं अपलोड के साथ इसके विपरीत, मौजूदा वस्तुओं की अधिलेखित कर देता हैं अंत में संगत, जिसका अर्थ है कि यह संभव है - हालांकि असंभव - यह कि एक ऑब्जेक्ट अपलोड करने के बाद थोड़े समय के लिए कि पुराने प्रतिलिपि को बाद के अनुरोधों के लिए अभी भी सेवा दी जा सकती है)।

लेकिन जब आप किसी ऑब्जेक्ट को ओवरराइट करते हैं, और बाल्टी पर वर्जनिंग सक्षम नहीं होती है, तो वही कुंजी के बावजूद पुरानी ऑब्जेक्ट और नई ऑब्जेक्ट्स वास्तव में एस 3 में स्वतंत्र रूप से संग्रहीत होती हैं। पुराने ऑब्जेक्ट को अब बाल्टी के इंडेक्स द्वारा संदर्भित नहीं किया गया है, इसलिए अब आप इसे स्टोरेज के लिए बिल नहीं कर पाएंगे, और इसे जल्द ही एस 3 की बैकिंग स्टोर से शुद्ध कर दिया जाएगा। वास्तव में यह दस्तावेज नहीं किया जाता है कि यह कितना होता है ... लेकिन (टीएल; डॉ) वर्तमान में डाउनलोड की जा रही किसी ऑब्जेक्ट को ओवरराइट करना किसी भी अप्रत्याशित दुष्प्रभाव का कारण नहीं बनना चाहिए।

एक ही कुंजी के लिए अपडेट परमाणु हैं। उदाहरण के लिए, यदि आप किसी मौजूदा कुंजी पर डालते हैं, तो बाद वाला पठन पुराने डेटा या अपडेट किए गए डेटा को वापस कर सकता है, लेकिन यह दूषित या आंशिक डेटा कभी नहीं लिख पाएगा।

http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel

+0

आप एक स्रोत का उल्लेख कर सकता है? – PhilT

+2

@ फिलिट किया गया। यदि कोई "बाद वाला" पढ़ा नया या पुराना ऑब्जेक्ट वापस कर सकता है, तो यह अनुमान लगाया जा सकता है कि प्रगति पर एक डाउनलोड पुरानी वस्तु को वापस जारी रखेगा। जब आप किसी ऑब्जेक्ट को "ओवरराइट" करते हैं, केवल इंडेक्स रिकॉर्ड जो एस 3 के फ्रंट-एंड को स्टोरेज से ऑब्जेक्ट लाने के लिए अनुमति देता है, ओवरराइट किया जाता है। नई वस्तु को अलग से लिखा गया है, सूचकांक अद्यतन किया गया है, और फिर पुरानी वस्तु को शुद्ध किया जाता है (जब तक बाल्टी संस्करण सक्षम नहीं होता है, इस मामले में इसे भी बनाए रखा जाता है)। इस प्रकार ओवरराइट्स भौतिक के बजाए तार्किक हैं, और इंडेक्स में संक्षिप्त प्रतिकृति विलंब अंततः स्थिरता का कारण हैं। –

+0

बिल्कुल सही! धन्यवाद। – PhilT

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