उचित engineering से search की speed 10x तेज़ बनाना
(engineering.ab180.co)यह एक ऐसा उदाहरण है जिसमें परिस्थिति के अनुरूप, ज़रूरत से ज़्यादा नहीं बल्कि संतुलित engineering के जरिए search service में सुधार किया गया।
समस्या की पहचान
- धीमी होती search service
- Join और search के लिए regex के उपयोग से पैदा हुई complexity की समस्या की पहचान
समस्या समाधान की रणनीति
- शुरुआत में Elasticsearch पर विचार किया गया था
- Main DB के साथ real-time sync और बड़ी मात्रा में स्थायी रूप से संरक्षित data को संभालना था, इसलिए cost issue मौजूद था
- एक सरल search-विशेष table बनाकर search query तैयार की गई
- data loading के लिए MySQL Trigger लागू किया गया
परिणाम
- 3 मिनट लगने वाली query को 2 सेकंड तक सुधारा गया
- ज़रूरत से ज़्यादा engineering किए बिना कम समय में customer value पहुँचाई गई
2 टिप्पणियां
ज़्यादा ट्रैफ़िक वाले बड़े पैमाने की साइट बनाते समय एक ही डेटा के लिए कई टेबल बनाकर उनके उपयोग अलग-अलग करने का तरीका अपनाया गया है।
इसे ग्राहक और एडमिन के लिए दो हिस्सों में भी बाँटा जाता है, लेकिन यहाँ सर्च के लिए अलग उपयोग तय करके इसे अच्छी तरह लागू किया गया है।
मुझे DB क्षेत्र की ज़्यादा जानकारी नहीं है, इसलिए ऐसे जानकारीपूर्ण लेख पढ़ना हैरान करने वाला और मज़ेदार लगता है।