1 poin oleh GN⁺ 2025-05-30 | Belum ada komentar. | Bagikan ke WhatsApp
  • Compiler Explorer telah mengubah cara penyimpanan sejak 2012 agar tautan berbagi bisa bertahan lama, tetapi penghentian goo.gl membuat pelestarian tautan lama godbolt.org/g/abc123 menjadi mendesak
  • Pada awalnya, seluruh status kompilator disimpan di dalam URL, lalu pada 2014 ditambahkan layanan pemendek URL Google, dan setelah Stack Overflow melarang URL pendek pada 2016, dibuat tautan perantara godbolt.org/g/abc123
  • Sejak 2018, ketika batas panjang URL menjadi masalah yang lebih besar, sistem beralih ke metode internal yang menyimpan status sebagai dokumen JSON di S3 dan mengelola pemetaan antara hash pendek dan jalur penuh dengan DynamoDB
  • Ketika Google menghentikan tautan goo.gl pada Agustus 2025, interpretasi tautan lama berbasis goo.gl akan menjadi sulit, sehingga sekitar 12.000 tautan g dan target pengalihannya yang ditemukan dari web publik dan log sedang dikumpulkan ke basis data internal
  • Pengguna yang masih memiliki tautan Compiler Explorer lama dapat membantu masuk ke daftar pelestarian dengan mengunjungi tautan itu sekarang, dan pengetahuan bersama yang perlu bertahan lama lebih aman jika infrastruktur inti dimiliki sendiri

Perubahan cara penyimpanan tautan di Compiler Explorer

  • Pada 2012, seluruh status Compiler Explorer disimpan di dalam URL
  • Cara mengodekan seluruh status kompilator ke dalam URL membuatnya sangat panjang dan sulit ditangani, sehingga pada Maret 2014 ditambahkan dukungan untuk URL pendek goo.gl dari Google
  • Saat itu, tautan pendek berbentuk goo.gl/abc123, dan ketika diklik akan dialihkan ke URL penuh situs Compiler Explorer, lalu status di dalam URL didekodekan

Tautan perantara setelah larangan Stack Overflow

  • Pada 2016, Stack Overflow melarang layanan pemendek tautan karena dapat menyembunyikan tujuan sebenarnya
  • Kebijakan ini juga memengaruhi tautan Compiler Explorer, dan saat itu belum ada niat untuk menyimpan data pengguna secara langsung
  • Solusi perantaranya adalah tetap memakai goo.gl, tetapi memberikan tautan berbentuk godbolt.org/g/abc123 kepada pengguna
    • abc123 adalah ID unik milik goo.gl
    • Akses ke /g/abc123 akan dialihkan ke goo.gl/abc123
    • goo.gl lalu mengalihkan lagi ke URL penuh godbolt.org yang berisi status
  • Setelah itu, Google API digunakan untuk menghindari rantai pengalihan berlapis

Peralihan ke penyimpanan internal pada 2018

  • Pada 2018, batas panjang URL menjadi masalah yang lebih besar, dan data di dalam URL saat itu sudah dikompresi
  • Compiler Explorer mengubah strukturnya agar menyimpan status secara langsung
    • masukan di-hash
    • status disimpan sebagai dokumen JSON di S3
    • bentuk pendek dari hash disajikan sebagai URL godbolt.org/z/hashbit
    • DynamoDB digunakan untuk menyimpan pemetaan antara hash pendek dan jalur penuh
  • Hash tautan pendek juga diperiksa agar tidak mengandung kata-kata yang tidak pantas
    • jika muncul kata yang tidak pantas, informasi tambahan sengaja dimasukkan ke dokumen agar menghasilkan hash yang berbeda
    • perilaku ini memicu bug #1297

Masalah pelestarian akibat penghentian goo.gl

  • Compiler Explorer masih mendukung tautan godbolt.org/g/abc123
  • Google mengatakan tautan lama akan tetap mengalihkan ke tujuan semula, tetapi goo.gl sudah menjadi hanya-baca sejak beberapa tahun lalu dan dijadwalkan berhenti total pada Agustus 2025
  • Setelah penghentian itu, tautan berbasis goo.gl tidak lagi bisa diinterpretasikan
  • Tautan goo.gl itu sendiri tidak bisa diselesaikan dari sisi Compiler Explorer, tetapi tautan godbolt.org/g/abc123 bisa dilestarikan lewat basis data internal

Pengumpulan tautan lama dan basis data internal

  • Selama beberapa hari terakhir, tautan lama yang sudah dipublikasikan dan URL target pengalihannya sedang dikumpulkan dari berbagai sumber terbuka
  • Hingga saat ini, sekitar 12.000 tautan telah ditemukan
    • API pencarian web Google
    • API GitHub
    • log web internal
    • dump data Stack Overflow di archive.org
    • daftar halaman web yang diarsipkan oleh Archive.org
  • Secara internal, sistem telah diubah agar memprioritaskan basis data sendiri daripada goo.gl
  • Tautan g baru yang belum ada di basis data juga masih dipantau
  • Secara lokal digunakan basis data sqlite, sedangkan di produksi memakai Dynamo

Hal yang bisa dibantu pengguna

  • Jika Anda menyimpan tautan lama godbolt.org/g/abc123, akan sangat membantu jika setiap tautan itu dikunjungi sekarang
  • Saat tautan dikunjungi, jejaknya akan tercatat di log web dan kemudian bisa ditambahkan ke basis data
  • Jika tidak, tautan tersebut mungkin tidak akan berfungsi setelah Agustus 2025
  • Kasus ini menunjukkan risiko bergantung pada layanan pihak ketiga untuk infrastruktur penting
  • Untuk menepati janji “URL yang bertahan selamanya”, seluruh stack perlu dimiliki sendiri

Belum ada komentar.

Belum ada komentar.