स्मॉगमग दो बहुत बड़े ऑनलाइन फोटो प्लेटफॉर्म संचालित करता है, SmugMug और फ़्लिकर, 100 मिलियन से अधिक ग्राहकों को दसियों अरब फ़ोटो को सुरक्षित रूप से संग्रहीत करने, खोजने, साझा करने और बेचने में सक्षम बनाता है। ग्राहकों द्वारा दशकों से फ़ोटो अपलोड करने और खोजने से खोज को महत्वपूर्ण बुनियादी ढांचे में बदलने में मदद मिली, स्मॉगमग के पहली बार उपयोग के बाद से इसमें लगातार वृद्धि हो रही है अमेज़ॅन क्लाउड सर्च 2012 में, उसके बाद अमेज़न ओपन सर्च सर्विस 2018 से, अरबों दस्तावेज़ों और टेराबाइट्स खोज भंडारण तक पहुंचने के बाद।
यहां, स्मॉगमग स्टाफ इंजीनियर, ली शेफर्ड, स्मॉगमग के खोज आर्किटेक्चर को साझा करते हैं जिसका उपयोग कई समूहों में प्रकाशित, बैकफ़िल और लाइव ट्रैफ़िक को मिरर करने के लिए किया जाता है। स्मॉगमग इन पाइपलाइनों का उपयोग बेंचमार्क, सत्यापन और नए कॉन्फ़िगरेशन में माइग्रेट करने के लिए करता है, जिसमें परीक्षण के साथ-साथ i6xlarge से ग्रेविटॉन आधारित r2gd.3.2xlarge उदाहरण भी शामिल हैं Amazon OpenSearch सर्वर रहित. हम प्रकाशन, बैकफ़िलिंग और क्वेरी के लिए उपयोग की जाने वाली तीन पाइपलाइनों को कवर करते हैं, बिना किसी अवास्तविक ट्रैफ़िक पैटर्न को पेश किए, और उत्पादन सेवाओं पर कोई प्रभाव डाले बिना।
इस प्रक्रिया के लिए दो मुख्य वास्तुशिल्प टुकड़े महत्वपूर्ण हैं:
- सूचकांक डेटा के लिए सत्य का एक टिकाऊ स्रोत। यह सर्वोत्तम अभ्यास है और ओपनसर्च इंडेक्स से परे एक टिकाऊ स्टोर रखने की हमारी बैकअप रणनीति का हिस्सा है, और अमेज़ॅन डायनेमोडीबी स्केलेबिलिटी और एकीकरण प्रदान करता है AWS लाम्बा यह बहुत सारी प्रक्रिया को सरल बनाता है। हम अन्य गैर-खोज सेवाओं के लिए DynamoDB का उपयोग करते हैं, इसलिए यह स्वाभाविक रूप से उपयुक्त था।
- सत्य के स्रोत से ओपनसर्च में डेटा प्रकाशित करने के लिए एक लैम्ब्डा फ़ंक्शन। का उपयोग करते हुए फ़ंक्शन उपनाम एक ही समय में एक ही लैम्ब्डा फ़ंक्शन के कई कॉन्फ़िगरेशन को चलाने में मदद करता है और डेटा को सिंक में रखने की कुंजी है।
प्रकाशन
प्रकाशन पाइपलाइन उपयोगकर्ता द्वारा कीवर्ड या कैप्शन दर्ज करने, नए अपलोड करने या लेबल का पता लगाने जैसी घटनाओं से संचालित होती है अमेज़ॅन रेकग्निशन. इन घटनाओं को कुछ अन्य परिसंपत्ति भंडार जैसे डेटा को मिलाकर संसाधित किया जाता है अमेज़ॅन अरोरा MySQL संगत संस्करण और अमेज़न सरल भंडारण सेवा (अमेज़न S3), DynamoDB में एक भी आइटम लिखने से पहले।
DynamoDB को लिखने से लैम्ब्डा प्रकाशन फ़ंक्शन का आह्वान होता है DynamoDB स्ट्रीम्स काइनेसिस एडाप्टर, जो DynamoDB से अद्यतन आइटमों का एक बैच लेता है और उन्हें OpenSearch में अनुक्रमित करता है। DynamoDB स्ट्रीम्स किनेसिस एडाप्टर का उपयोग करने के अन्य लाभ भी हैं जैसे कि आवश्यक समवर्ती लैम्ब्डा की संख्या को कम करना।
प्रकाशन लैम्ब्डा फ़ंक्शन यह निर्धारित करने के लिए पर्यावरण चर का उपयोग करता है कि ओपनसर्च डोमेन और इंडेक्स को किस पर प्रकाशित किया जाए। डायनेमोडीबी तालिका या किनेसिस स्ट्रीम से हटकर, उत्पादन ओपनसर्च डोमेन पर लिखने के लिए एक उत्पादन उपनाम कॉन्फ़िगर किया गया है
नए कॉन्फ़िगरेशन का परीक्षण करते समय या माइग्रेट करते समय, एक माइग्रेशन उपनाम को नए ओपनसर्च डोमेन पर लिखने के लिए कॉन्फ़िगर किया जाता है लेकिन उत्पादन उपनाम के समान ट्रिगर का उपयोग किया जाता है। यह दोनों ओपनसर्च सेवा डोमेन में एक साथ डेटा की दोहरी अनुक्रमणिका को सक्षम बनाता है।
यहां DynamoDB तालिका स्कीमा का एक उदाहरण दिया गया है:
अनुक्रमणित करते समय 'लास्टअपडेटेड' मान का उपयोग दस्तावेज़ संस्करण के रूप में किया जाता है, जिससे ओपनसर्च किसी भी आउट-ऑफ़-ऑर्डर अपडेट को अस्वीकार कर सकता है।
backfilling
अब जबकि परिवर्तन दोनों डोमेन में प्रकाशित किए जा रहे हैं, नए डोमेन (सूचकांक) को ऐतिहासिक डेटा से भरने की आवश्यकता है। नव निर्मित सूचकांक को बैकफ़िल करने के लिए, का एक संयोजन अमेज़न सरल कतार सेवा (अमेज़न SQS) और DynamoDB का उपयोग किया जाता है। एक स्क्रिप्ट एक SQS कतार को उन संदेशों से भर देती है जिनमें इसके लिए निर्देश होते हैं समानांतर स्कैनिंग DynamoDB तालिका का एक खंड।
एसक्यूएस कतार एक लैम्ब्डा फ़ंक्शन लॉन्च करती है जो संदेश निर्देशों को पढ़ता है, डायनेमोडीबी तालिका के संबंधित खंड से आइटम का एक बैच लाता है, और उन्हें ओपनसर्च इंडेक्स में लिखता है। खंड के माध्यम से प्रगति का ट्रैक रखने के लिए एसक्यूएस कतार में नए संदेश लिखे गए हैं। खंड पूरा होने के बाद, SQS कतार में कोई और संदेश नहीं लिखा जाता है और प्रक्रिया स्वयं बंद हो जाती है।
लैम्ब्डा समवर्ती स्केलिंग द्वारा प्रदान किए गए अतिरिक्त नियंत्रण के साथ, समवर्ती खंडों की संख्या से निर्धारित होता है। स्मॉगमग उत्पादन डोमेन पर शून्य प्रभाव डालते हुए अपने ओपनसर्च कॉन्फ़िगरेशन पर प्रति घंटे 1 बिलियन से अधिक दस्तावेज़ों को अनुक्रमित करने में सक्षम है।
SQS कतार को सीड करने के लिए NodeJS AWS-SDK आधारित स्क्रिप्ट का उपयोग किया जाता है। यहां SQS कॉन्फ़िगरेशन स्क्रिप्ट के विकल्पों का एक स्निपेट दिया गया है:
परिणामी SQS संदेश के प्रारूप के साथ:
मिररिंग
अंतिम, हमारा प्रतिबिंबित खोज क्वेरी परिणाम हमारे उत्पादन डोमेन के अलावा, एक SQS कतार में एक OpenSearch क्वेरी भेजकर चलते हैं। एसक्यूएस कतार एक लैम्ब्डा फ़ंक्शन लॉन्च करती है जो क्वेरी को प्रतिकृति डोमेन पर दोबारा चलाती है। इन अनुरोधों के खोज परिणाम किसी भी उपयोगकर्ता को नहीं भेजे जाते हैं, लेकिन उत्पादन प्रणालियों या ग्राहकों पर प्रभाव डाले बिना परीक्षण के तहत ओपनसर्च सेवा पर उत्पादन भार को दोहराने की अनुमति देते हैं।
निष्कर्ष
किसी नए ओपनसर्च डोमेन या कॉन्फ़िगरेशन का मूल्यांकन करते समय, जिन मुख्य मेट्रिक्स में हम रुचि रखते हैं वे हैं क्वेरी विलंबता प्रदर्शन, अर्थात् ली गई विलंबताएं (प्रति समय विलंबताएं), और खोज के लिए सबसे महत्वपूर्ण विलंबताएं। Graviton R6gd की ओर हमारे कदम में, हमने लगभग 40 प्रतिशत कम P50-P99 विलंबता देखी, साथ ही i3 की तुलना में CPU उपयोग में समान लाभ (ग्रेविटॉन की कम लागत को नजरअंदाज करते हुए) देखा। एक और स्वागत योग्य लाभ R1gd और अन्य नए उदाहरणों पर G6GC के जुड़ने से कचरा संग्रहण परिवर्तनों के साथ अधिक पूर्वानुमानित और निगरानी योग्य JVM मेमोरी दबाव था।
इस पाइपलाइन का उपयोग करते हुए, हम ओपनसर्च सर्वरलेस का भी परीक्षण कर रहे हैं और इसके सर्वोत्तम उपयोग-मामलों का पता लगा रहे हैं। हम उस सेवा के बारे में उत्साहित हैं और समय पर पूरी तरह से सर्वर रहित आर्किटेक्चर का इरादा रखते हैं। परिणामों के लिए बने रहें.
लेखक के बारे में
ली शेफर्ड एक स्मॉगमग स्टाफ सॉफ्टवेयर इंजीनियर है
आयडन बेकिरोव एक अमेज़ॅन वेब सेवा प्रधान तकनीकी खाता प्रबंधक है
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/big-data/smugmugs-durable-search-pipelines-for-amazon-opensearch-service/
- :है
- :नहीं
- 1
- 100
- 12
- 14
- 20
- 2012
- 2018
- 40
- 7
- 9
- a
- योग्य
- About
- लेखा
- जोड़ा
- इसके अलावा
- अतिरिक्त
- बाद
- अनुमति देना
- की अनुमति दे
- साथ में
- भी
- वीरांगना
- अमेज़ॅन वेब सेवा
- an
- और
- अन्य
- कोई
- वास्तु
- स्थापत्य
- हैं
- AS
- आस्ति
- At
- अरोड़ा
- एडब्ल्यूएस
- बैकअप
- आधारित
- BE
- से पहले
- जा रहा है
- बेंचमार्क
- लाभ
- लाभ
- BEST
- परे
- बिलियन
- अरबों
- के छात्रों
- लेकिन
- by
- कैप्शन
- परिवर्तन
- संग्रह
- संयोजन
- संयोजन
- तुलना
- संगत
- पूरा करता है
- समवर्ती
- विन्यास
- कॉन्फ़िगर किया गया
- शामिल
- नियंत्रण
- इसी
- लागत
- आवरण
- सी पी यू
- बनाया
- महत्वपूर्ण
- नाजूक आधारभूत श्रंचना
- ग्राहक
- तिथि
- दशकों
- खोज
- निर्धारित करना
- निर्धारित
- दस्तावेज़
- दस्तावेजों
- डोमेन
- डोमेन
- संचालित
- से प्रत्येक
- सक्षम बनाता है
- समर्थकारी
- endpoint
- इंजीनियर
- में प्रवेश
- पूरी तरह से
- वातावरण
- ईथर (ईटीएच)
- का मूल्यांकन
- घटनाओं
- उदाहरण
- उत्तेजित
- कुछ
- फ़ील्ड
- खोज
- प्रथम
- फिट
- पीछा किया
- के लिए
- प्रारूप
- से
- पूरी तरह से
- समारोह
- लाभ
- बढ़ रहा है
- है
- ऊंचाई
- मदद की
- मदद करता है
- ऐतिहासिक
- घंटा
- एचटीएमएल
- http
- HTTPS
- i
- i3
- ID
- प्रभाव
- महत्वपूर्ण बात
- in
- सहित
- अनुक्रमणिका
- अनुक्रमणिका
- इंफ्रास्ट्रक्चर
- उदाहरणों
- निर्देश
- एकीकरण
- इरादा
- रुचि
- में
- शुरू करने
- का आह्वान
- आइटम
- यात्रा
- आईटी इस
- खुद
- जेपीजी
- रखना
- रखना
- कुंजी
- खोजशब्दों
- लेबल
- बड़ा
- विलंब
- शुरूआत
- ली
- पसंद
- जीना
- भार
- लॉट
- कम
- मुख्य
- याद
- message
- संदेश
- मेट्रिक्स
- विस्थापित
- ओर पलायन
- प्रवास
- दस लाख
- लाख ग्राहक
- आईना
- अधिक
- अधिकांश
- चाल
- विभिन्न
- MySQL
- नाम
- यानी
- प्राकृतिक
- की जरूरत है
- नया
- नए नए
- अगला
- नहीं
- संख्या
- of
- बंद
- on
- ऑनलाइन
- संचालित
- ऑप्शंस
- चुनता है
- or
- अन्य
- हमारी
- समानांतर
- भाग
- पैटर्न उपयोग करें
- प्रति
- प्रतिशत
- प्रदर्शन
- फ़ोटो
- तस्वीरें
- टुकड़े
- पाइपलाइन
- प्लेटफार्म
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- उम्मीद के मुताबिक
- दबाव
- पिछला
- प्रिंसिपल
- प्रक्रिया
- संसाधित
- उत्पादन
- प्रगति
- बशर्ते
- प्रदान करता है
- प्रकाशित करना
- प्रकाशित
- प्रकाशन
- तक पहुंच गया
- को कम करने
- उत्तर
- अनुरोधों
- अपेक्षित
- जिसके परिणामस्वरूप
- परिणाम
- रन
- सुरक्षित
- वही
- देखा
- अनुमापकता
- स्केलिंग
- लिपि
- Search
- खोज
- बीज
- खंड
- खंड
- बेचना
- भेजना
- भेजा
- serverless
- सेवा
- सेवाएँ
- Share
- शेयरों
- समान
- सरल
- एक साथ
- के बाद से
- एक
- टुकड़ा
- So
- सॉफ्टवेयर
- स्रोत
- कर्मचारी
- रहना
- तेजी
- बंद हो जाता है
- भंडारण
- की दुकान
- भंडार
- स्ट्रेटेजी
- नदियों
- ऐसा
- सिस्टम
- तालिका
- लेता है
- तकनीकी
- है
- परीक्षण
- परीक्षण
- से
- कि
- RSI
- स्रोत
- लेकिन हाल ही
- उन
- वहाँ।
- इन
- इसका
- तीन
- यहाँ
- पहर
- सेवा मेरे
- ले गया
- ट्रैक
- यातायात
- ट्रिगर
- सच
- मोड़
- दो
- के अंतर्गत
- अद्यतन
- अपडेट
- अपलोड हो रहा है
- यूआरएल
- प्रयोग
- उपयोग
- बक्सों का इस्तेमाल करें
- प्रयुक्त
- उपयोगकर्ता
- का उपयोग करता है
- का उपयोग
- सत्यापित करें
- मूल्य
- संस्करण
- बहुत
- था
- we
- वेब
- वेब सेवाओं
- में आपका स्वागत है
- क्या
- कब
- जब
- साथ में
- बिना
- लिखना
- लिख रहे हैं
- लिखा हुआ
- जेफिरनेट
- शून्य