Apa itu UUID v6?
Versi UUID 6 adalah pengenal 128-bit berbasis waktu (string 36-karakter) yang diusulkan sebagai peningkatan dari UUID v1. Ini terdiri dari:
- Timestamp yang diurutkan ulang: timestamp 60-bit dari yang paling signifikan ke yang paling tidak signifikan
- Urutan jam: penghitung 14-bit untuk penyesuaian jam
- ID Node: nilai 48-bit (biasanya alamat MAC)
Contoh format: 1eb527d6-e927-6511-9a03-0242ac130003
Cara kerja UUID v6
- Hitung timestamp saat ini (interval 100ns sejak 1582-10-15)
- Urutkan ulang bit timestamp untuk pengurutan yang lebih baik (bit paling signifikan di depan)
- Dapatkan/tambah urutan jam 14-bit (untuk keunikan jika jam mundur)
- Dapatkan ID node 48-bit (biasanya dari alamat MAC)
- Atur bit versi (0110) dan bit varian (10)
- Susun sebagai 32 digit heksadesimal dengan tanda hubung: format 8-4-4-4-12
Keuntungan & Pertimbangan
Advantages | Considerations |
---|---|
|
|
Struktur UUID v6
Bits | Content |
---|---|
0-47 | 48 bit atas dari timestamp |
48-51 | Versi (0110 untuk v6) |
52-59 | 8 bit bawah dari timestamp |
60-63 | 4 bit atas dari timestamp |
64-65 | Varian (10 untuk RFC4122) |
66-79 | Urutan jam (14 bit) |
80-127 | ID Node (48 bit) |
UUID v6 vs. versi lainnya
Version | Berdasarkan | Kasus penggunaan | Privacy |
---|---|---|---|
UUID v1 | Waktu + MAC | ID berurutan waktu | ⚠️ Mengungkapkan MAC |
UUID v3 | Namespace + MD5 | ID deterministik | ✅ Privat |
UUID v4 | Random | ID acak aman | ✅ Privat |
UUID v5 | Namespace + SHA-1 | ID deterministik | ✅ Privat |
UUID v6 | Waktu (diurutkan ulang) | ID yang dapat diurutkan | ⚠️ Mengungkapkan MAC |
UUID v7 | Waktu + acak | ID yang dapat diurutkan | ✅ Privat |
Kasus Penggunaan Umum
- Kunci database yang dapat diurutkan berdasarkan waktu: Untuk pengurutan kronologis
- Database terdistribusi: Dengan pengindeksan berurutan waktu
- Entri log: Dengan urutan kronologis alami
- Jejak audit: Dengan timestamp tertanam
- Antrian pesan: Untuk pemrosesan berbasis waktu
- Catatan transaksi: Dengan pengurutan kronologis
Pertanyaan yang Sering Diajukan
Apa perbedaan antara UUID v1 dan v6?
UUID v6 mengatur ulang bit timestamp dari UUID v1 agar dapat diurutkan secara alami dalam urutan leksikografis. Isinya identik dengan v1, hanya diurutkan ulang.
Apakah UUID v6 merupakan standar resmi?
UUID v6 saat ini adalah spesifikasi draf dalam dokumen RFC 4122bis yang diusulkan. Belum menjadi standar RFC resmi tetapi sudah diimplementasikan di banyak pustaka UUID.
Bisakah saya mengekstrak waktu pembuatan dari UUID v6?
Ya. Komponen timestamp dapat diekstrak dari bit 0-59 dan dikonversi kembali ke nilai datetime.
Apakah UUID v6 dapat diurutkan berdasarkan waktu pembuatan?
Ya. Berbeda dengan v1, UUID v6 menempatkan bit timestamp dari yang paling signifikan ke yang paling tidak signifikan, memungkinkan perbandingan leksikografis (string) langsung yang sesuai dengan urutan kronologis.
Apakah UUID v6 mengungkapkan alamat MAC saya?
Secara default, ya. Seperti UUID v1, sebagian besar implementasi menggunakan alamat MAC untuk ID node. Implementasi yang fokus pada privasi mungkin menggunakan ID node acak sebagai gantinya.