Rethinking latency-sensitive DynamoDB apps for multicloud, multiregion deployment विज्ञापन वितरित करने की पूरी प्रक्रिया 200 से 300 मिलीसेकंड के भीतर होती है. हमारे डेटाबेस सर्चअप को एक-श्रेष्ठ मिलीसेकंड में पूरा किया जाना चाहिए. एक दिन में अरबों लेनदेन के साथ, डेटाबेस को तेजी से, स्केल करने योग्य और विश्वसनीय होना चाहिए. यदि यह खराब हो जाता है, तो हमारी विज्ञापन सर्विंग इन्फ्रास्ट्रक्चर काम करना बंद कर देगा. " – टोड कोलमैन, Yieldmo के तकनीकी सह-संस्थापक और मुख्य आर्किटेक्ट विज्ञापन वितरित करने की पूरी प्रक्रिया 200 से 300 मिलीसेकंड के भीतर होती है. हमारे डेटाबेस सर्चअप को एक-श्रेष्ठ मिलीसेकंड में पूरा किया जाना चाहिए. एक दिन में अरबों लेनदेन के साथ, डेटाबेस को तेजी से, स्केल करने योग्य और विश्वसनीय होना चाहिए. यदि यह खराब हो जाता है, तो हमारी विज्ञापन सर्विंग इन्फ्रास्ट्रक्चर काम करना बंद कर देगा. " – टोड कोलमैन, Yieldmo के तकनीकी सह-संस्थापक और मुख्य आर्किटेक्ट Yieldmo का ऑनलाइन विज्ञापन व्यवसाय प्रतिदिन सैकड़ों अरब विज्ञापन अनुरोधों को subsecond latency प्रतिक्रियाओं के साथ संसाधित करने पर निर्भर करता है. कंपनी की सेवाएं शुरू में DynamoDB पर निर्भर थीं, जिसे टीम सरलता और स्थिरता के लिए सराहना करती थीं. हालांकि, DynamoDB लागत बड़े पैमाने पर अपर्याप्त हो रही थीं और टीम को नए क्षेत्रों में विस्तार के रूप में मल्टीक्लाउड लचीलापन की आवश्यकता थी. एक बुनियादी विकल्प एक व्यवसाय प्रतिबंध बनने की धमकी दे रहा था. हाल ही में एक बातचीत में , Yieldmo के तकनीकी सह-संस्थापक और मुख्य आर्किटेक्ट, टॉड Coleman ने कंपनी की तकनीकी चुनौतियों को साझा किया और आखिरकार ScyllaDB के DynamoDB संगत एपीआई के साथ टीम ने क्यों आगे बढ़ी। Monster Scale की बैठक आप नीचे उनकी पूरी बातचीत देख सकते हैं या एक पुनरावृत्ति के लिए पढ़ना जारी रख सकते हैं। https://youtu.be/sk0mIiaOwM8?embedable=true Lost business = खोया व्यवसाय Yieldmo एक ऑनलाइन विज्ञापन मंच है जो प्रकाशनकों और विज्ञापनदाताओं को एक पृष्ठ लोड के रूप में वास्तविक समय में कनेक्ट करता है. लगभग हर विज्ञापन अनुरोध एक डेटाबेस पूछताछ को शुरू करता है जो मशीन सीखने के अंतर्दृष्टि और डिवाइस पहचान जानकारी प्राप्त करता है. ये प्रश्न अपने विज्ञापन सर्वर को सक्षम करते हैं: प्रभावी शॉपिंग भागीदारों को यह तय करने में मदद करें कि क्या प्रस्ताव करना है ट्रैक करें कि वे किस विज्ञापन को पहले से ही एक डिवाइस पर दिखा चुके हैं ताकि विज्ञापनदाता फ्रीक्वेंस कैप्स का प्रबंधन कर सकें और विज्ञापन वितरण को अनुकूलित कर सकें पूरे विज्ञापन पाइपलाइन को केवल 200 से 300 मिलीसेकंड में पूरा किया जाता है, जिसके अधिकांश समय को भागीदारों द्वारा मूल्यांकन और पेशकश करने के लिए खर्च किया जाता है। जब कोई उपयोगकर्ता एक वेबसाइट पर जाता है, तो Yieldmo को एक विज्ञापन अनुरोध भेजा जाता है। Yieldmo की मंच अनुरोध का विश्लेषण करती है। यह अपने भागीदारों से संभावित विज्ञापनों की मांग करता है। यह विजेता की पेशकश का निर्धारण करने के लिए एक शॉपिंग आयोजित करता है। डेटाबेस की खोज किसी भी भागीदारों को कॉल करने से पहले होनी चाहिए. और इन खोजों को एक-श्रेष्ठ मिलीसेकंड लाटेंस के साथ पूरा किया जाना चाहिए. कोलेमैन ने समझाया, "प्रतिदिन अरबों लेन-देन के साथ, डेटाबेस को तेज़, स्केल करने योग्य और विश्वसनीय होना चाहिए. यदि यह खराब हो जाता है, तो हमारी विज्ञापन सर्विंग इन्फ्रास्ट्रक्चर काम करना बंद कर देगा। DynamoDB बढ़ते दर्द Yieldmo का उत्पादन बुनियादी ढांचा AWS पर चलता है, इसलिए DynamoDB एक तार्किक विकल्प था क्योंकि टीम ने अपना ऐप बनाया. DynamoDB सरल और विश्वसनीय साबित हुआ, लेकिन दो महत्वपूर्ण चुनौतियां सामने आईं. सबसे पहले, DynamoDB व्यापार के विस्तार के साथ अधिक से अधिक महंगा हो रहा था. दूसरा, कंपनी ने AWS से परे क्लाउड प्रदाताओं पर विज्ञापन सर्वर चलाने का विकल्प चाहते थे। Coleman ने साझा किया, "उदाहरण के लिए, कुछ क्षेत्रों में, यूएस ईस्ट कोस्ट, एडब्ल्यूएस और जीसीपी [Google क्लाउड प्लेटफॉर्म] डेटा सेंटर पर्याप्त करीब हैं ताकि लाटेन कम हो। वहां, हमारे डायनामोडीबी डेटाबेस को जीसीपी में चलने वाले विज्ञापन सर्वर से हिट करने में कोई समस्या नहीं है. हालांकि, जब हमने डबलिन में डायनामोडीबी तक पहुंचने के दौरान एम्स्टर्डम में जीसीपी आधारित विज्ञापन सर्विंग क्लस्टर लॉन्च करने की कोशिश की, तो लाटेन बहुत अधिक था. हम जल्दी से महसूस करते हैं कि यदि हम वास्तव में मल्टीक्लाउड लचीलापन चाहते हैं, तो हमें एक डेटाबेस की आवश्यकता थी जो कहीं भी DynamoDB विकल्प Yieldmo की टीम ने DynamoDB विकल्पों का पता लगाना शुरू कर दिया जो उनके अत्यधिक पढ़ने वाले डेटाबेस कार्य भार के अनुरूप होंगे. उनके लिखने के ऑपरेशन दो श्रेणियों में शामिल हैं: अपने भागीदारों से वास्तविक समय में डेटा का एक निरंतर प्रवाह, जो Yieldmo के डेटा को उनके डेटा के साथ मेल खाने के लिए आवश्यक है बैच अपडेट उनके ऐतिहासिक डेटा से प्राप्त मशीन सीखने के अंतर्दृष्टि से प्रेरित उच्च आवृत्ति पढ़ने और संरचित लिखने के इस संतुलन को देखते हुए, वे एक डेटाबेस की तलाश कर रहे थे जो बड़े पैमाने पर, कम देरी पहुंच को संभाल सकता है, जबकि प्रदर्शन में कमी के बिना समकक्ष अद्यतनों का प्रभावी ढंग से प्रबंधन कर सकता है। टीम ने सबसे पहले DynamoDB के साथ रहने और एक कैशिंग परत जोड़ने पर विचार किया. हालांकि, उन्होंने पाया कि कैशिंग भौगोलिक latency समस्या को ठीक नहीं कर सकता है और कैशिंग मिस इस विकल्प के साथ और भी धीमा होगा. उन्होंने एरोस्पाइक का भी पता लगाया, जो गति और क्रॉस क्लाउड समर्थन प्रदान करता था. हालांकि, उन्हें पता चला कि एरोस्पाइक की स्मृति में इंडेक्सिंग को Yieldmo की बड़ी संख्या में छोटे डेटा वस्तुओं को संभालने के लिए एक बहुत बड़ा और महंगा क्लस्टर की आवश्यकता होगी. इसके अलावा, एरोस्पाइक के लिए माइग्रेशन को व्यापक और समय लेने वाली कोड परिवर्तनों की आवश्यकता होगी. फिर उन्होंने ScyllaDB की खोज की, जो गति और क्रॉस क्लाउड समर्थन भी प्रदान करता था, लेकिन एक DynamoDB संगत एपीआई (अल्टर्नर) और कम लागत के साथ। Coleman ने साझा किया, "ScyllaDB क्रॉस क्लाउड डिप्लोमेंट का समर्थन करता था, एक प्रबंधनीय संख्या में सर्वर की आवश्यकता होती थी और प्रतिस्पर्धी लागत की पेशकश की थी। ScyllaDB मूल्यांकन, प्रवासन और परिणाम यह मूल्यांकन करने के लिए शुरू करने के लिए कि ScyllaDB अपने वातावरण में कैसे काम करता है, टीम ने एक ही क्षेत्र में विज्ञापन सर्वरों के एक उपसेट को स्थानांतरित किया. इसमें वास्तविक समय में अपडेट रखते हुए कई टेराबाइटों को स्थानांतरित करना शामिल था. प्रक्रिया के अनुसार, उन्हें ScyllaDB के स्प्रैक-आधारित स्थानांतरण उपकरण ऐतिहासिक डेटा को कॉपी करना पड़ा, एमएल बैच नौकरियां बंद कर दीं और अपने Kafka आर्किटेक्चर को ScyllaDB में हाल के लेखों को दोहराने के लिए इस्तेमाल किया। अगला कदम पांच AWS क्षेत्रों में सभी डेटा को स्थानांतरित करना था. इस चरण में लगभग दो सप्ताह लग गए. प्रदर्शन का मूल्यांकन करने के बाद, Yieldmo ने ScyllaDB को प्राथमिक स्थिति में बढ़ाया और अंततः अधिकांश क्षेत्रों में DynamoDB पर लिखना बंद कर दिया। लगभग एक साल बाद प्रवास पर विचार करते हुए, कोलेमैन ने संक्षेप में कहा, "सबसे बड़ा लाभ मल्टीक्लाउड लचीलापन है, लेकिन यहां तक कि इसके बिना, प्रवास के लायक था। डेटाबेस लागत DynamoDB की तुलना में लगभग आधा कम की गई थी, यहां तक कि आरक्षित क्षमता मूल्य निर्धारण के साथ, और हमने मामूली लाटेंस में सुधार देखा है। कैसे ScyllaDB DynamoDB के साथ तुलना करता है