Ringkasan cerita
- Layanan penyeimbang beban internal Cloudflare, Pingora Backend Router (PBR), berhasil menghemat lebih dari 100 terabita RAM di jaringan server global melalui pembaruan pada pustaka hashing konsisten pingora-ketama.
- Insinyur performa menemukan bahwa perataan memori (memory alignment) Rust pada struct titik hash mengonsumsi 8 byte per titik; dengan mengemas hash dan indeks menjadi larik 6 byte mentah [u8; 6], penggunaan memori struct turun 25 persen.
- Analisis probabilitas dan variasi statistik membuktikan penambahan titik hash berlebih mengalami hukum hasil yang menurun (diminishing returns) dan risiko tabrakan 32-bit; Cloudflare memangkas jumlah hash per server hingga 90 persen tanpa mengorbankan keseimbangan beban.
- Pembaruan ini dirilis bertahap tanpa memicu lonjakan beban ke server asal (origin server) dan kini telah dimasukkan ke dalam peti pustaka open-source pingora-ketama crate.
Di tengah tuntutan efisiensi infrastruktur komputasi tepi (edge computing), tim rekayasa performa Cloudflare kembali mencatatkan terobosan efisiensi berskala masif. Melalui serangkaian penyesuaian matematika probabilitas dan perbaikan tata letak memori dalam bahasa pemrograman Rust, Cloudflare berhasil mereklamasi lebih dari 100 terabita (TB) memori akses acak (RAM) di seluruh armada peladen global mereka.
Pencapaian ini diumumkan secara resmi pada Jumat (18/9/2026) waktu setempat melalui publikasi rekayasa yang ditulis oleh Kevin Guthrie, Mariia Iurchenko, Zaidoon Abd Al Hadi, dan Ivan Babrou. Pemotongan jejak memori ini melanjutkan penghematan 100TB serupa yang sebelumnya diraih tim DNS Cloudflare pada bulan sebelumnya.
Akar Masalah pada Penyeimbang Beban PBR
Investigasi bermula dari temuan tiket internal oleh insinyur Ivan Babrou mengenai lonjakan konsumsi memori tak wajar pada layanan Pingora Backend Router (PBR). PBR merupakan komponen penyeimbang beban (load balancer) internal berbasis Pingora yang bertugas merutekan permintaan web yang dapat disimpan (cacheable requests) ke server yang tepat berdasarkan URL.
Sistem ini mengandalkan algoritma consistent hashing yang diimplementasikan melalui pustaka sumber terbuka pingora-ketama. Agar beban terdistribusi merata antar-peladen, setiap peladen dipetakan menjadi banyak titik (virtual nodes/hashes) di sepanjang cincin hash 32-bit. Karena PBR menjalankan puluhan cincin hash terpisah untuk berbagai kombinasi fitur perutean, konsumsi memori untuk menyimpan titik-titik hash tersebut membengkak hingga mencapai 6 GB per proses di sejumlah node.
Pemadatan Struct Rust: Pangkas 25 Persen Memori
Langkah optimasi pertama datang dari pengamatan struktur data internal struct Point di Rust:
struct Point {
hash: u32,
index: u32,
}
Dalam memori, struct ini membutuhkan 8 byte (4 byte untuk nilai hash dan 4 byte untuk indeks peladen). Insinyur Cloudflare menyadari bahwa PBR tidak akan pernah mengoordinasikan lebih dari 65.535 ($2^{16}$) peladen dalam satu waktu, sehingga indeks sebenarnya hanya membutuhkan bilangan bulat 16-bit (u16).
Namun, aturan perataan memori (memory alignment) bawaan Rust mewajibkan ukuran struct menjadi kelipatan dari bidang terbesarnya (4 byte untuk u32), sehingga struct tetap memakan 8 byte karena adanya padding. Untuk menyiasatinya secara aman tanpa risiko perilaku tak terdefinisi (undefined behavior) dari #[repr(packed)], tim merekayasa struct menjadi larik byte mentah 6 byte [u8; 6] dengan metode getter from_ne_bytes:
struct Point([u8; 6]);
impl Point {
fn hash(&self) -> u32 {
u32::from_ne_bytes(self.0[0..4].try_into().unwrap())
}
fn index(&self) -> u16 {
u16::from_ne_bytes(self.0[4..6].try_into().unwrap())
}
}
Perubahan representasi byte yang ringkas ini seketika memangkas konsumsi memori cincin hash sebesar 25 persen.
Matematika di Balik Pengurangan 90 Persen Titik Hash
Langkah penghematan yang jauh lebih radikal dicapai melalui pembedahan matematis terhadap koefisien variasi (coefficient of variation atau CV) distribusi hash. Secara historis, perangkat lunak seperti NGINX dan Pingora menggunakan nilai dasar 160 titik hash per peladen yang kemudian dikalikan faktor bobot, menghasilkan hingga 100.000 titik per mesin.
Perhitungan statistik membuktikan bahwa penambahan titik hash mengalami hukum hasil yang semakin menurun (diminishing returns). Menambahkan 90.000 titik terakhir hanya memberikan penurunan galat pembagian beban sebesar 0,7 persen. Terlebih lagi, pada cincin diskret 32-bit, penumpukan puluhan ribu hash justru meningkatkan probabilitas tabrakan (hash collision) akibat paradoks hari ulang tahun (birthday paradox).
Dengan landasan matematis tersebut, Cloudflare memutuskan memangkas volume pembuatan titik hash per peladen hingga 90 persen. Penurunan drastis ini terbukti tidak menimbulkan ketimpangan beban yang berarti, namun secara instan membebaskan sebagian besar alokasi RAM yang sebelumnya terkunci untuk tabel pencarian Ketama.
Migrasi Bertahap Tanpa Merusak Cache Origin
Tantangan operasional terbesar dari pengubahan topologi cincin hash adalah ancaman cache churn. Mengubah cincin secara serentak akan memindahkan rute URL ke peladen baru, yang secara efektif membatalkan cache lokal dan menyebabkan lonjakan trafik (cache stampede) yang dapat melumpuhkan peladen asal pelanggan (origin servers).
Cloudflare mengatasinya dengan menjalankan arsitektur transisi ganda: PBR menampung cincin lama (v1) dan cincin baru (v2) secara berdampingan dalam memori. Migrasi digulirkan bertahap berdasarkan klaster lokasi pusat data (data center) dan persentase permintaan yang terkontrol. Setelah seluruh pusat data beralih 100 persen dan diverifikasi stabil, cincin lama dinonaktifkan secara permanen, menghasilkan penurunan instan sebesar 100TB RAM di grafik telemetri jaringan.
Seluruh penyempurnaan ini telah disematkan Cloudflare ke dalam crate publik pingora-ketama di bawah fitur cincin v2, membuka peluang bagi organisasi lain yang mengadopsi tumpukan Pingora untuk mereplikasi efisiensi serupa pada arsitektur proksi dan penyeimbang beban mereka.
Yang sudah terverifikasi
- Cloudflare Engineering secara resmi mempublikasikan laporan teknis 'Saving another 100TB of RAM with math (and Rust)' pada 18 September 2026, yang ditulis bersama oleh Kevin Guthrie, Mariia Iurchenko, Zaidoon Abd Al Hadi, dan Ivan Babrou.
- Optimasi tersebut dilakukan pada pustaka pingora-ketama yang digunakan oleh komponen PBR untuk mengarahkan permintaan web cacheable ke server backend.
- Pemadatan representasi byte struct dari 8 byte ke 6 byte serta pengurangan skala replika hash per node sebesar 90 persen diverifikasi menghasilkan penurunan alokasi RAM riil lebih dari 100TB di klaster edge global.
- Pustaka sumber terbuka pingora-ketama di GitHub dan crates.io telah diperbarui dengan fitur cargo v2 ring yang mengintegrasikan seluruh teknik perbaikan tersebut.
Yang masih belum jelas
- Fitur cincin hash v2 saat ini masih berstatus unadvertised cargo feature di pingora-ketama sebelum dijadikan konfigurasi bawaan permanen pada rilis stabil berikutnya.
Percakapan dan penyebaran
Dipublikasikan di Cloudflare Blog dan langsung menyebar di komunitas rekayasa sistem, komunitas bahasa Rust, r/programming, dan tangga diskusi Hacker News.