- Compiler Explorer ने शुरुआत में सभी state को सीधे URL में store करने का तरीका अपनाया था
- URL बहुत लंबे हो जाने पर Google की goo.gl short URL service लाई गई, लेकिन इससे कई redirects वाली जटिल संरचना बन गई
- 2018 से URL length limit और maintenance की कठिनाइयों के कारण अपनी S3 और DynamoDB आधारित storage संरचना पर स्विच किया गया
- लेकिन Google अगस्त 2025 में goo.gl service बंद कर रहा है, इसलिए पुराने short links की स्थायित्व अब खुद संभालनी होगी
- अब तक 12,000 से ज़्यादा legacy links को बचाया जा चुका है, जो programming knowledge preservation और sustainable service operation के महत्व को दिखाता है
Compiler Explorer links की स्थायी गारंटी और इतिहास
शुरुआती डिज़ाइन और goo.gl अपनाने की पृष्ठभूमि
- 2012 में, Compiler Explorer ने सभी compiler state को सीधे URL में encode करने वाली संरचना अपनाई
- state information बढ़ने के साथ URL के अत्यधिक लंबे हो जाने की समस्या सामने आई
- URL को छोटा बनाने के लिए 2014 में Google की goo.gl shortener service लागू की गई
goo.gl/abc123 फ़ॉर्मैट के short links दिए जाते थे, और क्लिक करने पर मूल लंबे URL पर redirect होकर state restore होती थी
- Stack Overflow द्वारा short links पर रोक (2016) लगाए जाने से इस पुराने तरीके पर प्रतिबंध आ गया
- malicious links छिपाने के जोखिम की वजह से सभी goo.gl आधारित links प्रभावित हुए
- user data store न करने की इच्छा के कारण अस्थायी उपाय के रूप में
godbolt.org/g/abc123 फ़ॉर्मैट का अपना path बनाया गया
godbolt.org/g/abc123 पर जाने पर फिर goo.gl/abc123 पर redirect होता था
- इस प्रक्रिया के बाद अंत में वापस लंबे
godbolt.org URL पर पहुँचा जाता था
- कई redirects के कारण संरचना जटिल हो गई
- बाद में Google API के इस्तेमाल से redirect प्रक्रिया कुछ हद तक सरल की गई
अपनी storage संरचना और link management
- 2018 से URL length limit और data compression की असुविधा बार-बार समस्या बनने लगी
- S3 और DynamoDB का उपयोग करने वाली अपनी storage संरचना लागू की गई
- input values को hash करके JSON document के रूप में S3 में store किया गया
- short link (
godbolt.org/z/hashbit) पर पहुँचने पर DynamoDB में mapping lookup की जाती है
- अगर hash value में गाली या अन्य अनुपयुक्त शब्द आ जाएँ, तो random element जोड़कर उसे bypass करने वाली check feature लागू की गई
- hash-based links की अनुपयुक्तता की समस्या का समाधान किया गया और इससे जुड़े bugs का अनुभव भी हुआ (उदाहरण: issue #1297)
- आज भी
godbolt.org/g/abc123 address format supported है
- Google की आधिकारिक घोषणा के बावजूद goo.gl service read-only mode में जा चुकी है, और अगस्त 2025 में पूरी तरह बंद होने वाली है
- goo.gl आधारित short links को आगे interpret नहीं किया जा सकेगा
godbolt.org/g/abc123 फ़ॉर्मैट को सीधे प्रबंधन के जरिए लंबी उम्र दी जा सकती है, इसलिए इस link structure के लिए संगठित rescue work चलाया गया
legacy links का बड़े पैमाने पर संग्रह और archiving
- हाल में सभी संभावित sources (search, data dumps, web logs आदि) से legacy links को crawl करके database में इकट्ठा किया गया
- Google Web Search API
- GitHub API
- अपने server logs
- archive.org का Stack Overflow data dump
- Archive.org के saved webpage data
- लगभग 12,298 short links सफलतापूर्वक recover किए गए
- अंदरूनी तौर पर अब goo.gl की जगह अपनी link database का उपयोग शुरू कर दिया गया है (संबंधित PR: #7724)
- आगे भी अब तक न मिले
godbolt.org/g/abc123 links को लगातार खोजकर सुरक्षित किया जाएगा
- अगर community के पास अब भी ऐसे links हैं जो register नहीं हुए, तो सीधे उन्हें खोलें या admin को बताकर database को और पूरा करने में मदद करें
project philosophy और infrastructure ownership का महत्व
- इस मामले ने फिर दिखाया कि महत्वपूर्ण infrastructure को बाहरी service (जैसे Google) की स्थायित्व पर छोड़ देने का जोखिम कितना बड़ा है
- short links management और backup structure अस्थायी उपाय थे, और पूरी तरह permanent URL का वादा करने के लिए पूरी service को खुद manage करना ज़रूरी है
- digital archaeology की तरह पुराने legacy links को बचाने की प्रक्रिया में यह समझ आया कि हर link किसी के knowledge sharing, सवाल, या concept explanation का निशान है
- यह storage और preservation का काम programming community के historical archiving से भी सीधे जुड़ा है
- अगर आपको कोई पुराना Compiler Explorer link मिले, तो अभी भी उसे एक बार खोलकर देखना internet knowledge preservation में योगदान हो सकता है
- इस बार third-party नहीं, बल्कि सीधे अपने control वाले infrastructure पर निर्भर होकर स्थायित्व के वादे को निभाया जा सकता है
Disclaimer
- यह लेख इंसान द्वारा लिखा गया है, और link recommendation तथा grammar checking की प्रक्रिया में LLM का उपयोग किया गया
1 टिप्पणियां
Hacker News टिप्पणियाँ