3 poin oleh xguru 2025-03-25 | Belum ada komentar. | Bagikan ke WhatsApp
  • bundle-uri adalah fitur baru Git yang mengunduh file cache untuk mengisi lebih dulu data proyek, lalu mengurangi proses fetch yang rumit dengan server
  • Biasanya, perintah git clone bernegosiasi dengan server untuk mengunduh data yang dibutuhkan → ini bisa tidak efisien
  • bundle-uri mengambil data awal yang di-cache dari CDN, lalu setelah itu hanya memperbarui status terbaru dari server → berpotensi menghemat waktu

Apakah kecepatan clone menjadi lebih cepat?

Ya? - Bisa lebih cepat

  • Jika menggunakan opsi file lokal, kecepatan clone menjadi sangat cepat
  • Jika memakai file bundle dari file system yang di-mount di VM atau cache cloud, sinkronisasi bisa berlangsung lebih cepat

Tidak? - Bisa lebih lambat

  • Menerima data yang sama dari CDN terlihat seperti seharusnya lebih cepat, tetapi justru lebih lambat
  • Hasil eksperimen: clone yang memakai bundle lebih lambat daripada clone biasa
    • Clone biasa: 2 menit 36 detik
    • Clone dengan bundle: 3 menit 20 detik
  • Terjadi masalah objek yang sudah diterima dari bundle diunduh lagi

Mungkin? - Bisa juga begitu

  • Masalah terjadi karena Git hanya membaca refs/heads (referensi branch) dari file bundle
  • Referensi lainnya diabaikan sehingga data tambahan harus diunduh lagi dari server
  • Jika kode Git diubah agar menyalin semua referensi, kecepatan clone membaik
    • Waktu clone setelah perbaikan: 2 menit 19 detik (lebih cepat dari 2 menit 36 detik sebelumnya)
    • Jumlah objek yang diunduh tambahan: 43.877 (sekitar 1% dari total)

Cara memperbaiki dan menerapkan patch

  • Memperbaiki bagian di kode bundle-uri.c Git yang mengabaikan referensi selain refs/heads
  • Setelah diubah agar semua referensi disalin → kecepatan clone meningkat
  • Perbaikan ini adalah patch minimal yang hanya terdiri dari perubahan 6 karakter

Apakah fitur ini layak digunakan?

possibly - Mungkin membantu

  • Di platform seperti GitHub dan GitLab, ada keuntungan besar karena bisa mengurangi beban CPU server
    • Server tidak perlu menghitung packfile secara langsung dan bisa menyerahkannya ke CDN → menghemat sumber daya server
  • Ada juga kasus yang bisa berguna bagi pengguna individu:
    • Saat perlu berulang kali melakukan clone skala besar dari server Git internal
    • Saat sistem CI/CD memerlukan pekerjaan full clone berulang

Secara realistis kemungkinan akan dipaksakan

  • Dalam protokol Git terbaru, server dapat memberikan URL bundle kepada klien
  • Jika server memberikan URL file bundle, klien akan otomatis mengunduhnya lalu melanjutkan sinkronisasi
  • Jika fitur ini diaktifkan di GitHub dan layanan serupa, pengguna tidak akan punya banyak pilihan

Kesimpulan

  • Menggunakan file bundle bisa membuat clone lebih cepat, tetapi pada awalnya justru bisa lebih lambat karena cara Git memprosesnya
  • Jika kode Git diubah untuk memperbaiki cara penanganan referensi, kecepatan clone meningkat
  • Jika ke depannya GitHub, GitLab, dan layanan lain mengadopsi fitur ini, kemungkinan besar klien akan memakainya secara otomatis

Belum ada komentar.

Belum ada komentar.