Redis उपयोग को थैनोस बनाना
(engineering.ab180.co)Redis में बहुत सारा डेटा बिना compression के JSON फ़ॉर्मेट में स्टोर किया जा रहा था, और Redis सेवाओं के बीच model share न होने से जो लागत बढ़ रही थी, उसे कम करने के लिए की गई engineering यात्रा
- उसी source data के storage method को बदलकर Elasticache की memory usage 52% और लागत 66% बचाई
- JSON की जगह Protobuf का उपयोग करके data spec को स्पष्ट किया, साथ ही services के बीच data read/write का तरीका एकरूप किया
- brotli की तुलना करने पर brotli ने सबसे ऊँचा compression ratio दिखाया। window size और compression level के अनुसार लगने वाले समय और compression ratio की तुलना करके optimal value ढूँढी और लागू की
- Redis की key के रूप में UUID इस्तेमाल करते समय ascii85 का उपयोग कर memory usage को थोड़ा और बचाया जा सका
- यह समझा कि domain से जुड़ा technical debt, infra cost reduction के काम में बाधा बन सकता है, और explicit schema के ज़रिए इसे चुकाया गया
4 टिप्पणियां
जैसे-जैसे server specs दिन-ब-दिन बेहतर होते गए, हम optimization की चिंता करने के बजाय सिर्फ़ जल्दी से product बनाने पर ही ध्यान दे रहे थे, लेकिन काफ़ी समय बाद यह ऐसा अच्छा कंटेंट है जो फिर से optimization के बारे में सोचने पर मजबूर करता है!!
हाँ, सही है। वास्तव में readability और flexible structuring की सुविधा की वजह से JSON ज़्यादातर इस्तेमाल होता है, लेकिन size के लिहाज़ से protobuf जैसे binary protocol का इस्तेमाल करना ज़्यादा सुविधाजनक होता है, और अगर इसे चरम तक ले जाएँ तो पारंपरिक PE structure या TCP protocol जैसे बेहद optimized binary protocol और भी बेहतर होते हैं.
डोमेन से जुड़ा technical debt कहना बिल्कुल सही लगता है.
कमाल है।
बॉस! इनकी सैलरी बहुत ज़्यादा बढ़ा दीजिए!!