UUID v7 Nedir?

UUID v7, RFC 9562'de tanımlanan Evrensel Benzersiz Tanımlayıcıların en yeni sürümüdür. UUID v4 (tamamen rastgele) veya UUID v1 (MAC adresi kullanır) gibi eski sürümlerin aksine, UUID v7 milisaniye cinsinden 48 bitlik bir Unix Epoch zaman damgasını doğrudan tanımlayıcının içine gömer. Bu sayede UUID v7 değerleri, oluşturulma zamanına göre doğal olarak sıralanabilir hale gelir; bu özellik, kronolojik sıralamanın önem taşıdığı veritabanı indeksleme, dağıtık sistemler ve olay günlüğü tutma işlemleri için büyük bir avantaj sağlar.

UUID v7, MAC adreslerini içermediğinden UUID v1 ile ilişkili gizlilik endişelerini ortadan kaldırır. Zaman damgası ve sürüm/varyant alanlarından sonra kalan bitler rastgele veya monoton verilerle doldurularak aynı milisaniye içinde birden fazla UUID üretildiğinde bile benzersizlik güvence altına alınır.

UUID v7 Nasıl Oluşturulur?

Bir UUID v7, 128 bitten oluşur ve aşağıdaki şekilde düzenlenir:

  • Bit 0–47: Milisaniye cinsinden 48 bitlik big-endian işaretsiz Unix Epoch zaman damgası
  • Bit 48–51: 0111 (7) olarak ayarlanmış 4 bitlik sürüm alanı
  • Bit 52–63: Milisaniye altı hassasiyet veya benzersizlik için 12 bit rastgele ya da monoton veri
  • Bit 64–65: 10 (RFC 9562) olarak ayarlanmış 2 bitlik varyant alanı
  • Bit 66–127: Ek benzersizlik için 62 bit rastgele ya da monoton veri

Bu yapı sayesinde daha sonra oluşturulan UUID'ler, milisaniye düzeyinde her zaman daha önce oluşturulanlardan sonra sıralanır; bu da onları B-tree indeksli veritabanlarında birincil anahtar olarak kullanmak için ideal kılar.

Araç Açıklaması

Bu UUID v7 üreteci, gömülü zaman damgasının görsel dökümüyle birlikte RFC 9562 uyumlu sürüm 7 UUID'leri oluşturur. Tek seferde bir veya 100'e kadar UUID üretin, büyük/küçük harf biçimlendirmesi arasında geçiş yapın ve kısa çizgi eklenip eklenmeyeceğini seçin. Araç aynı zamanda ilk oluşturulan UUID'den gömülü Unix Epoch zaman damgasını çıkarıp görüntüleyerek her tanımlayıcıda kodlanmış oluşturma zamanını doğrulamanıza olanak tanır.

Örnekler

Biçim Örnek çıktı
Standart 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Büyük harf 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Kısa çizgisiz 019544a23b4c7d8e9f012a3b4c5d6e7f

Özellikler

  • Toplu üretim: Miktar kaydırıcısıyla tek seferde 1 ile 100 arasında UUID v7 değeri üretin
  • Büyük harf geçişi: Küçük harf ve büyük harf çıktısı arasında geçiş yapın
  • Kısa çizgi geçişi: Kompakt biçimler için kısa çizgileri ekleyin veya kaldırın
  • Zaman damgası çıkarma: Oluşturulan UUID'den gömülü Unix Epoch zaman damgasını otomatik olarak görüntüler
  • İndirme desteği: Oluşturulan UUID'leri toplu kullanım için metin dosyası olarak dışa aktarın

Kullanım Alanları

  • Ekleme performansının ve yerelliğin önem taşıdığı büyük ölçekli veritabanları için zamana göre sıralanabilir birincil anahtarlar oluşturun
  • Kafka veya Pulsar gibi dağıtık olay akışı sistemleri için monoton artan tanımlayıcılar oluşturun
  • Ayrı bir zaman damgası sütununa gerek kalmadan kronolojik sıralamaya ihtiyaç duyan uygulamalarda UUID v4'ün yerini alın

UUID v7 ile Diğer Sürümlerin Karşılaştırması

Sürüm Zaman tabanlı Sıralanabilir Gizlilik güvenli Rastgelelik
v1 Evet Hayır Hayır (MAC kullanır) Düşük
v4 Hayır Hayır Evet Yüksek
v6 Evet Evet Hayır (MAC kullanır) Düşük
v7 Evet Evet Evet Orta

UUID v7, en iyi özellikleri bir araya getirir: donanım tanımlayıcılarını açığa çıkarmadan zaman tabanlı sıralanabilirlik ve dağıtık düğümler arasında çakışmaları önleyecek yeterli düzeyde rastgelelik.

Seçeneklerin Açıklaması

  • Miktar (1–100): Tek bir toplu işlemde kaç UUID v7 değeri üretileceği. Bir toplu işlemdeki tüm UUID'ler yaklaşık olarak aynı zaman damgasını paylaşır ancak rastgele bitleri bakımından birbirinden farklıdır.
  • Büyük harf: Etkinleştirildiğinde, UUID'leri büyük harf hex karakterleriyle (a–f yerine A–F) çıktılar.
  • Kısa çizgiler: Etkinleştirildiğinde (varsayılan), UUID'ler standart 8-4-4-4-12 kısa çizgi gruplandırmasını içerir. Kompakt 32 karakterlik hex string için devre dışı bırakın.

SSS

UUID v7 çakışabilir mi? Çakışmalar son derece düşük bir ihtimaldir. Aynı milisaniye içinde bile 74 bitlik rastgele/monoton veri, 18 kentilyon'dan fazla olası kombinasyon sunar. uuid kütüphanesi ayrıca bir süreç içinde benzersizliği garanti etmek için monoton sayaçlar kullanır.

UUID v7, UUID v4 ile geriye dönük uyumlu mudur? Evet. UUID v7, aynı 128 bitlik 8-4-4-4-12 biçimini izler ve UUID'lerin kabul edildiği her yerde geçerlidir. Mevcut UUID sütunları, ayrıştırıcılar ve doğrulayıcılar herhangi bir değişiklik yapılmadan çalışır.

UUID v7'yi UUID v4 yerine ne zaman kullanmalıyım? Kullanım senaryonuz zamana göre sıralanmış anahtarlardan fayda sağlıyorsa UUID v7'yi kullanın; örneğin sıralı eklemelerle B-tree indeks performansının iyileştiği veritabanı birincil anahtarları olarak. Sıralama önemli değilse ve maksimum rastgelelik istiyorsanız UUID v4'ü kullanın.