हम जब कोई मोबाइल एप्लिकेशन के लिए एक टेलीमेटरी प्रणाली के निर्माण वास्तव में समस्या थी । हमारे मामले में हम यह भी अनिश्चित थे कि उत्पादक जहां प्रत्येक संदेश को एक बार भेजते हैं, इसलिए प्रत्येक प्राप्त रिकॉर्ड के लिए हमने फ्लाई पर अपने एमडी 5 की गणना की और जांच की कि क्या यह लगातार भंडारण के किसी रूप में प्रस्तुत किया गया है, लेकिन वास्तव में उपयोग करने के लिए कौन सा भंडारण है सबसे मुश्किल बिट।
सबसे पहले, हमने मामूली रिलेशनल डेटाबेस की कोशिश की, लेकिन यह जल्द ही पूरे सिस्टम की एक बड़ी बाधा बन गई क्योंकि यह केवल पढ़ने-भारी नहीं बल्कि लिखने वाला भारी मामला है, क्योंकि डेटा की मात्रा काफी महत्वपूर्ण थी, हालांकि किनेसिस काफी महत्वपूर्ण थीं ।
हमने प्रत्येक अद्वितीय संदेश के लिए MD5 के संग्रहित डायनेमोडीबी तालिका को समाप्त कर दिया। हमारे पास यह मुद्दा था कि संदेशों को मिटाना इतना आसान नहीं था - भले ही हमारी तालिका में विभाजन और सॉर्ट कुंजियां हों, डायनेमो डीबी किसी दिए गए विभाजन कुंजी के साथ सभी रिकॉर्ड्स को छोड़ने की अनुमति नहीं देती है, हमें सभी को पूछताछ करना पड़ता था कुंजी मानों को क्रमबद्ध करें (जो समय और क्षमता बर्बाद करता है)। दुर्भाग्यवश, हमें बस थोड़ी देर में पूरी टेबल को बस छोड़ना पड़ा। एक और तरीका उपोष्णकटिबंधीय समाधान नियमित रूप से डायनेमोडीबी टेबल को घुमाने के लिए है जो संदेश पहचानकर्ता संग्रहीत करता है।
हालांकि, हाल ही में डायनेमोडीबी ने एक बहुत ही आसान सुविधा - Time To Live पेश की, जिसका मतलब है कि अब हम प्रति रिकॉर्ड आधार पर स्वत: समाप्ति सक्षम करके तालिका के आकार को नियंत्रित कर सकते हैं। उस अर्थ में डायनेमोडीबी एलिस्टी कैश के समान ही प्रतीत होता है, हालांकि एलिस्टी कैश (कम से कम मेमकैड क्लस्टर) बहुत कम टिकाऊ है - वहां कोई अनावश्यकता नहीं है, और ऑपरेशन या विफलता में स्केल के मामले में समाप्त नोड्स पर रहने वाले सभी डेटा खो जाते हैं।
स्रोत
2017-04-06 14:30:34
हाय दिमित्री। मैं जस्टगिविंग इंफ्रास्ट्रक्चर के समान कुछ का उपयोग करके कई मानक चला रहा था: https://aws.amazon.com/blogs/compute/serverless-cross-account-stream-replication-using-aws-lambda -मैज़ोन-डायनेमोड-एंड-अमेज़ोन-किनेसिस-फायरहोज/आपने अपनी डीडीबी टेबल के लिए शारिड + सीक्वेंस नम्बर का उपयोग करने के बजाय एमडी 5 चेकसम की गणना क्यों की? – Antonio
हाय @ एंटोनियो। हमारे मामले में यह संभव था कि निर्माता एक ही संदेश पोस्ट करे कई बार। यदि यह मामला था, तो किनेसिस उन्हें किसी भी तरह के अलग-अलग संदेशों के रूप में मानेंगे (बस क्योंकि निर्माता से 2 या अधिक पोस्ट थे)। जैसा कि हम जानते थे कि प्रत्येक संदेश अद्वितीय होना चाहिए, हमने बस उन संदेशों को अवहेलना किया जो एमडी 5 के पास हैं पहले ही देखा जा चुका है। इसके अलावा, एमडी 5 की गणना उत्पादकों द्वारा की गई थी, जो कि कोसमर्स के लिए कुछ गणना समय बचा रहा था (केनेसिस के माध्यम से डेटा की अपेक्षाकृत बड़ी मात्रा में दिया गया था) –
बस वहां फेंकना चाहता था - एडब्ल्यूएस नोट्स अलग उत्पादक त्रुटि मामलों के कारण स्वाभाविक रूप से एक ही रिकॉर्ड को कई बार उत्पादित कर सकते हैं, और अधिक सामान्यतः, कई उपभोक्ता रिकॉर्ड के समान सेट को खींच सकते हैं। मैं अब भी हमारे सिस्टम पर इस से निपट रहा हूं। हम elasticsearch का उपयोग करते हैं, और इस पल के लिए योजना यह सुनिश्चित करने के लिए संस्करण में निर्मित elastics का उपयोग करना है कि एक ही रिकॉर्ड एक ही समय में अपडेट नहीं किया गया है, और उसके बाद रिकॉर्ड पर रिकॉर्ड पर लागू हालिया घटनाओं की एक सूची याद रखें। – genexp