नया "S3 बढ़ी हुई दर दर प्रदर्शन" घोषणा का क्या मतलब है


12

17 जुलाई 2018 को एक आधिकारिक एडब्ल्यूएस घोषणा की व्याख्या करते हुए कहा गया कि अधिकतम प्रदर्शन प्राप्त करने के लिए प्रत्येक S3 ऑब्जेक्ट कुंजी के पहले वर्णों को यादृच्छिक करने की कोई आवश्यकता नहीं है: https://aws.amazon.com/about-aws/whats-new / 2018/07 / अमेज़न-S3-घोषणा-वृद्धि हुई अनुरोध-दर प्रदर्शन /

अमेज़न S3 ने अनुरोध दर प्रदर्शन में वृद्धि की घोषणा की

Posted on: जुलाई १ Jul, २०१,

अमेज़न S3 अब डेटा को जोड़ने के लिए प्रति सेकंड कम से कम 3,500 अनुरोधों का समर्थन करने के लिए बढ़ा हुआ प्रदर्शन प्रदान करता है और डेटा को पुनः प्राप्त करने के लिए प्रति सेकंड 5,500 अनुरोध करता है, जो बिना किसी अतिरिक्त शुल्क के महत्वपूर्ण प्रसंस्करण समय को बचा सकता है। प्रत्येक S3 उपसर्ग इन अनुरोध दरों का समर्थन कर सकता है, जिससे प्रदर्शन को महत्वपूर्ण रूप से बढ़ाना सरल हो जाता है।

अमेज़न S3 पर आज चलने वाले एप्लिकेशन बिना किसी बदलाव के इस प्रदर्शन सुधार का आनंद लेंगे, और S3 पर नए एप्लिकेशन बनाने वाले ग्राहकों को इस प्रदर्शन को प्राप्त करने के लिए कोई एप्लिकेशन अनुकूलन नहीं करना होगा। समानांतर अनुरोधों के लिए अमेज़ॅन S3 के समर्थन का मतलब है कि आप अपने आवेदन के लिए कोई अनुकूलन किए बिना, अपने गणना क्लस्टर के कारक द्वारा अपने S3 प्रदर्शन को स्केल कर सकते हैं। उपसर्ग प्रति प्रदर्शन तराजू, ताकि आप आवश्यक थ्रूपुट को प्राप्त करने के लिए समानांतर में जितनी ज़रूरत हो उतना उपसर्गों का उपयोग कर सकें। उपसर्गों की संख्या की कोई सीमा नहीं है।

यह S3 अनुरोध दर प्रदर्शन वृद्धि तेजी से प्रदर्शन को प्राप्त करने के लिए वस्तु उपसर्गों को यादृच्छिक बनाने के लिए किसी भी पिछले मार्गदर्शन को हटा देती है। इसका मतलब है कि अब आप S3 ऑब्जेक्ट नामकरण में बिना किसी प्रदर्शन निहितार्थ के तार्किक या अनुक्रमिक नामकरण पैटर्न का उपयोग कर सकते हैं। यह सुधार अब सभी AWS क्षेत्रों में उपलब्ध है। अधिक जानकारी के लिए, अमेज़न S3 डेवलपर गाइड पर जाएं।

यह बहुत अच्छा है, लेकिन यह भी भ्रामक है। यह कहता है कि प्रत्येक S3 उपसर्ग इन अनुरोध दरों का समर्थन कर सकता है, जिससे प्रदर्शन में उल्लेखनीय वृद्धि करना सरल हो जाता है

लेकिन चूंकि उपसर्गों और सीमांकक केवल GET Bucket (List Objects)बाल्टी की सामग्री को सूचीबद्ध करते समय एपीआई के लिए तर्क हैं , तो यह "प्रति उपसर्ग" ऑब्जेक्ट पुनर्प्राप्ति प्रदर्शन के बारे में बात करने के लिए कैसे समझ सकता है। प्रत्येक कॉल GET Bucket (List Objects)यह चुन सकती है कि जो भी उपसर्ग और सीमांकक चाहता है, इसलिए उपसर्ग एक पूर्व निर्धारित इकाई नहीं है।

उदाहरण के लिए, अगर मेरी बाल्टी में ये वस्तुएं हैं:

a1/b-2
a1/c-3

फिर मैं "/" या "-" को अपने परिसीमन के रूप में उपयोग करना चुन सकता हूं जब भी मैं बाल्टी सामग्री को सूचीबद्ध करता हूं, तो मैं अपने उपसर्गों पर विचार कर सकता हूं

a1/ 

या

a1/b-
a1/c-

लेकिन चूंकि GET ObjectAPI संपूर्ण कुंजी का उपयोग करता है, इसलिए वस्तु पुनर्प्राप्ति के लिए किसी विशेष उपसर्ग या सीमांकक की अवधारणा मौजूद नहीं है। तो क्या मैं उम्मीद कर सकता हूँ कि 5,500 req / sec on a1/या वैकल्पिक रूप से 5,500 req / sec on a1/b-और 5,500 on a1/c-?

तो क्या कोई यह बता सकता है कि घोषणा से क्या मतलब है जब वह "प्रत्येक s3 उपसर्ग" के लिए एक विशेष स्तर के प्रदर्शन (जैसे डेटा के प्रति सेकंड +5,500 अनुरोध) का सुझाव देता है?


मुझे लगता है कि मेरे पास इसके लिए एक स्पष्टीकरण है, लेकिन मैं यह देखना चाह रहा हूं कि क्या मुझे कुछ पुष्टि मिल सकती है। मुझे संदेह है कि इसका सूचकांक विभाजन विभाजन एल्गोरिथ्म के साथ क्या करना है, जो स्वचालित है और ट्रैफिक लोड पर आधारित है ... और हैश आधारित के बजाय लेक्सिकल।
माइकल - sqlbot

जवाबों:


9

क्या वास्तव में यहाँ उपसर्ग के रूप में संदर्भित किया जा रहा है एक ओवरसिम्प्लीफिकेशन प्रतीत होता है जो वास्तव में बकेट इंडेक्स के प्रत्येक विभाजन को संदर्भित करता है। सूचकांक शाब्दिक है, इसलिए विभाजन कुंजी में प्रमुख वर्णों के आधार पर विभाजित होते हैं। इसलिए, इसे उपसर्ग कहा जाता है ।

S3 इंडेक्स विभाजन को स्वचालित और पारदर्शी रूप से प्रबंधित करता है, इसलिए यहां "उपसर्ग" की सटीक परिभाषा वास्तव में कुछ हद तक असंभव है: यह "जो कुछ भी S3 का फैसला करता है वह आपके बाल्टी के कार्यभार का समर्थन करने के लिए आवश्यक है।" एस 3 कार्यभार के जवाब में सूचकांक के विभाजन को विभाजित करता है, इसलिए आज दो "समान" उपसर्ग वाले दो ऑब्जेक्ट अलग-अलग उपसर्ग हो सकते हैं, सभी पृष्ठभूमि में किए गए हैं।

अभी, a1 / a -... और a1 / b -... और a1 / c -... सभी एकल उपसर्ग हो सकते हैं। लेकिन बाल्टी पर पर्याप्त ट्रैफ़िक फेंकें, और एस 3 तय कर सकता है कि विभाजन विभाजित किया जाना चाहिए, ताकि कल, a1 / a- और a1 / b- एक उपसर्ग में हो, जबकि a1 / c- अपने स्वयं के उपसर्ग में हो। (अर्थात, कुंजी <a1 / c- एक विभाजन में हैं, जबकि चाबियाँ> = a1 / c- अब एक अलग विभाजन में हैं)।

कहाँ और कब और क्या विशेष रूप से थ्रेशोल्ड ट्रिगर व्यवहार को ट्रिगर करता है, लेकिन यह केवल अनुरोधों की संख्या से संबंधित नहीं है, और वस्तुओं की संख्या या आकार से संबंधित प्रतीत होता है। पहले, ये विभाजन प्रति सेकंड कुछ सौ अनुरोधों तक सीमित थे और यह काफी बढ़ गया था।


1
बहुत ही रोचक और विश्वसनीय। हालाँकि, चूंकि उपसर्ग लोड के आधार पर गतिशील होते हैं, निश्चित रूप से यह "प्रति उपसर्ग" किसी भी विशिष्ट प्रदर्शन माप को निर्दिष्ट करने के लिए अर्थहीन बनाता है। यदि आपकी बाल्टी के उपसर्ग गतिशील रूप से बदलते हैं, तो कोई विश्वसनीय प्रदर्शन उपाय नहीं है। या शायद मैं यह अनुमान लगा सकता हूं कि उपसर्गों को सिद्धांत रूप से तब तक बदलना चाहिए जब तक कि मैं प्रति S3 ऑब्जेक्ट में 5,500 प्रति सेकंड / सेकंड की उम्मीद नहीं कर सकता?
जॉन रीस

1
प्रदर्शन माप अभी भी उपयोगी है क्योंकि बाल्टी स्केलिंग केवल एक दिशा में जाने के लिए होती है - ऊपर, नीचे नहीं। विभाजन के प्रति एकल वस्तु को स्केल करने की स्पष्ट असावधानी काफी हद तक गायब हो जाती है जब आपको पता चलता है कि यदि आप 5k + req / s प्रति वस्तु के लिए भुगतान कर रहे थे तो AWS कितना पैसा कमा रहा होगा।
माइकल - sqlbot

1
हाँ, मैं प्रति विभाजन एक वस्तु के साथ थोड़ा पांडित्यपूर्ण हो रहा था। :-) हालाँकि, अधिक गंभीरता से, मुझे लगता है कि इसका मतलब यह है कि मैं उम्मीद कर सकता था कि अगर मेरी 10000 ऑब्जेक्ट बकेट में सिर्फ 10 लोकप्रिय वस्तुएं हैं, तो उम्मीद है कि S3 अंततः प्रतिकार करेगा जब तक कि 10 में से प्रत्येक 5k req / sec प्राप्त नहीं कर सकता है जब तक कि दूसरे को नष्ट न कर दें। बड़े विभाजन के एक जोड़े में। प्रशंसनीय?
जॉन रीस

2
मुझे पूरा भरोसा है कि S3 वर्कलोड के अनुकूल होगा, हाँ। अनुरोध पक्ष पर उच्च ट्रैफ़िक के लिए आधिकारिक मार्गदर्शन, पहले की तरह, क्लाउड 3 के साथ S3 के साथ संयोजन के रूप में उपयोग करने के लिए है, क्योंकि क्लाउडफ्रंट को Gobally-वितरित किया गया है और किनारों में ऑब्जेक्ट्स को कैश करेगा जो उन्हें अनुरोध करते हैं। मूल्य निर्धारण ऐसा है कि अक्सर S3 में CloudFront को शामिल करने से समग्र लागत पर कोई प्रभाव नहीं पड़ता है (क्योंकि S3 किसी भी बैंडविड्थ के लिए बिल नहीं करता है जब अनुरोध CloudFront से कैश मिस में सेवा के लिए आता है)।
माइकल - साइक्लबोट

धन्यवाद माइकल। वास्तव में अच्छा सावधान जवाब बहुत सराहना की।
जॉन रीज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.