Generator UUID Versi 6 (Timestamp Terurut)

Hasilkan UUID yang diurutkan berdasarkan timestamp dan dioptimalkan untuk pengindeksan basis data

Coba contoh ini:

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

  1. Hitung timestamp saat ini (interval 100ns sejak 1582-10-15)
  2. Urutkan ulang bit timestamp untuk pengurutan yang lebih baik (bit paling signifikan di depan)
  3. Dapatkan/tambah urutan jam 14-bit (untuk keunikan jika jam mundur)
  4. Dapatkan ID node 48-bit (biasanya dari alamat MAC)
  5. Atur bit versi (0110) dan bit varian (10)
  6. Susun sebagai 32 digit heksadesimal dengan tanda hubung: format 8-4-4-4-12

Keuntungan & Pertimbangan

AdvantagesConsiderations
  • Dapat diurutkan secara leksikografis
  • Waktu pembuatan tertanam
  • Generasi berkinerja tinggi
  • Generasi terdistribusi
  • Kekhawatiran privasi alamat MAC
  • Masalah sinkronisasi jam
  • Lebih dapat diprediksi daripada UUID acak
  • Status spesifikasi draf

Struktur UUID v6

BitsContent
0-4748 bit atas dari timestamp
48-51Versi (0110 untuk v6)
52-598 bit bawah dari timestamp
60-634 bit atas dari timestamp
64-65Varian (10 untuk RFC4122)
66-79Urutan jam (14 bit)
80-127ID Node (48 bit)

UUID v6 vs. versi lainnya

VersionBerdasarkanKasus penggunaanPrivacy
UUID v1Waktu + MACID berurutan waktu⚠️ Mengungkapkan MAC
UUID v3Namespace + MD5ID deterministik✅ Privat
UUID v4RandomID acak aman✅ Privat
UUID v5Namespace + SHA-1ID deterministik✅ Privat
UUID v6Waktu (diurutkan ulang)ID yang dapat diurutkan⚠️ Mengungkapkan MAC
UUID v7Waktu + acakID 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.

Resources