13 पॉइंट द्वारा toughrogrammer 2025-08-28 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • समस्या की पहचान
    • Airbridge प्रमाणीकरण सर्वर में बीच-बीच में response delay हो रहा था।
    • API request से पहले authentication/authorization किया जाता है, इसलिए प्रमाणीकरण सर्वर में delay का पूरे service stability पर सीधा असर पड़ता है।
    • Monitoring के नतीजों में 1 सेकंड से अधिक response delay के alerts धीरे-धीरे अधिक बार आने लगे → कारण विश्लेषण और optimization काम शुरू किया गया।
  • कारण विश्लेषण
    • (1) अत्यधिक DB Query: permission check प्रक्रिया में हर request पर बहुत अधिक DB Query हो रहे थे, जिससे DB Connection Pool तेजी से खत्म हो रहा था → response delay हुआ।
    • (2) HikariCP Connection Pool saturation: DB Query के अधिक execution पर HikariCP pool भर गया → 30 सेकंड से अधिक thread wait होने की स्थिति की पुष्टि हुई।
    • (3) कम cache efficiency: TTL को 30 सेकंड जैसा छोटा रखा गया था + अक्षम caching logic → DB Query दोबारा होने की संभावना अधिक थी।
  • सुधार रणनीति
    • (1) permission check और caching structure में सुधार
      • DB bulk lookup(findAllBy~) तरीका अपनाया गया → DB Query 134 बार → 4 बार(-97%) तक कम हुए।
      • application memory-आधारित mutableMap caching लागू की गई।
      • Single Responsibility Principle(SRP) लागू किया गया → methods को अलग किया गया और sub-logic के अनुसार caching strategy सेट की गई।
    • (2) 2-Layer Cache structure अपनाई गई
      • Local Cache(Caffeine, L1) + Remote Cache(Redis, L2) का मिश्रित structure लागू किया गया।
      • cache strategy को L1-Only, L2-Only, Hybrid में विभाजित कर operational efficiency बेहतर की गई।
      • cache memory usage analysis → Redis keys 5 लाख अनुमानित, memory requirement लगभग 190MB, और safety buffer सुरक्षित किया गया।
    • (3) Redis Pub/Sub-आधारित cache invalidation
      • TTL पर निर्भर रहने के बजाय permission information बदलते ही real-time cache synchronization किया गया।
      • एक server पर बदलाव होने पर Redis channel के जरिए सभी servers के Local Cache को synchronous invalidation किया गया।
    • (4) HikariCP connection pool tuning
      • maximum-pool-size 10 → 30 तक बढ़ाया गया।
      • Connection Timeout, Idle Timeout, Max Lifetime जैसे detailed options optimize किए गए → DB I/O contention कम हुआ।
  • Performance test और परिणाम: बड़े पैमाने के traffic में भी stable performance बनाए रखी गई।
  • production environment में सुधार का प्रभाव
    • deployment के बाद response delay alerts गायब हो गए और overall response time स्थिर हो गया।
    • service reliability और operational stability में बड़ा सुधार हुआ।
  • अतिरिक्त optimization: JVM Warm-Up
    • deployment के तुरंत बाद JIT compilation delay के कारण initial requests के response delay की समस्या मिली।
    • Warm-Up Runner लागू किया गया:
      • application start पर dummy requests पहले से execute किए जाते हैं।
      • K8s Pod replacement के समय JIT पूरा होने के बाद traffic process किया जाता है → initial response time 1.07s → 94ms तक घटा।
  • निष्कर्ष और प्रभाव
    • response delay समस्या का समाधान + traffic spike को संभालने वाली structure सुनिश्चित हुई।
    • Airbridge की समग्र service stability और reliability बेहतर हुई।
    • प्रमाणीकरण सर्वर के उपयोग को बढ़ाकर domain service development productivity में सुधार हुआ।

2 टिप्पणियां

 
anona 2025-08-29

हाल ही में Google deep link service के बंद होने से लगता है कि इस सेवा का उपयोग करने वाली कंपनियां बढ़ी होंगी।
स्थिर सेवा की उम्मीद है!

 
daumkakao 2025-08-28

अरे... हमारी कंपनी ने भी हाल ही में यहाँ कॉन्ट्रैक्ट किया है, और आप लोग performance improvement के लिए जमकर मेहनत कर रहे हैं!!!