UUID'lerin Evrimi: Sürüm 1, 6 ve 7'yi Anlamak
Evrensel Benzersiz Tanımlayıcılar (UUID'ler), merkezi bir koordinasyona ihtiyaç duymadan benzersiz anahtarlar oluşturmanın güvenilir bir yolunu sunarak onlarca yıldır dağıtık sistemlerin temel taşı olmuştur. UUID sürüm 4 (tamamen rastgele sayılara dayanır) muhtemelen en ünlü ve en yaygın kullanılan varyant olsa da, ilişkisel veritabanı yönetim sistemlerinde (RDBMS) bir birincil anahtar olarak kullanıldığında doğası gereği bazı sınırlamalar taşır. Rastgelelik öngörülemezlik için harikadır, ancak veritabanı indekslemesi için berbattır. Rastgele bir UUID'yi bir B-tree indeksine eklediğinizde, büyük sayfa bölünmelerine ve indeks parçalanmasına neden olarak zamanla yazma performansının düşmesine yol açar. İşte burada zamana dayalı UUID'ler—özellikle sürüm 1, 6 ve 7—devreye girerek hem benzersizliğe hem de kronolojik sıralamaya saygı duyan yapılandırılmış bir alternatif sunar.
UUID sürüm 1, benzersizliği zamanla birleştiren ilk girişimdi. Mevcut zaman damgasını, bir saat dizisini ve düğümün MAC adresini kullanarak bir tanımlayıcı oluşturur. MAC adresinin dahil edilmesi farklı makineler arasında mekansal benzersizliği garanti ederken, zaman damgası zamansal benzersizliği garanti ediyordu. Ancak, UUID v1'in veritabanı indekslemesi için kritik bir kusuru vardı: zaman damgası, en önemli bitler en düşük zaman hassasiyetini temsil edecek şekilde yapılandırılmıştı. Basit bir ifadeyle, zaman ilerledikçe UUID dizesinin başlangıcı hızla ve öngörülemez bir şekilde değişerek sıralı sıralama potansiyelini yok ediyordu. Ayrıca, MAC adresinin ifşa edilmesi önemli gizlilik ve güvenlik endişelerine yol açarak birçok geliştiricinin v1'i tamamen terk etmesine neden oldu.
Mühendislik topluluğu bu göze batan sorunları çözmek için UUID sürüm 6 ve sürüm 7'yi tanıttı. UUID v6, esasen yeniden düzenlenmiş bir UUID v1'dir. v1'in zaman damgası bileşenlerini alır ve en önemli bitler en yüksek zaman hassasiyetini (yıllar, aylar, günler) temsil edecek şekilde yeniden düzenler ve saniyenin kesirlerine kadar iner. Bu basit yeniden düzenleme, UUID v6 değerlerinin sözlüksel olarak zamana göre sıralanabilmesini sağlar. Bugün bir v6 UUID ve yarın bir tane daha oluşturursanız, yarının UUID'si bugününkinden sonra sıralanacak ve veritabanı B-tree'lerinin verilerin eklenmesini beklediği yolla mükemmel bir şekilde eşleşecektir. Bu, v4 ile ilişkili indeks parçalanmasını ve v1'in sıralama imkansızlığını ortadan kaldırırken, geleneksel UUID yapısını bekleyen sistemlerle geriye dönük uyumlu kalır.
UUID sürüm 7 bu optimizasyonu bir adım öteye taşır ve veritabanı birincil anahtarları için modern altın standardı temsil eder. v1 ve v6 tarafından kullanılan eski Gregoryen dönemi yerine, UUID v7 standart Unix Dönemi zaman damgasını (1 Ocak 1970 UTC gece yarısından bu yana milisaniye) kullanır. Bu zaman damgası tanımlayıcının ilk 48 bitini kaplar. Kalan bitler kriptografik olarak güçlü rastgele verilerle doldurulur. Bu hibrit yaklaşım her iki dünyanın da en iyisini sunar: yüksek performanslı veritabanı eklemeleri iııin gereken sağlam, sıralı sıralanabilirlik, rastgele veri oluşturmanın güvenliği ve gizliliği ile birleştirilmiştir. %100 ücretsiz, gizli tarayıcı içi UUID oluşturucumuzu kullanarak, sıfır sunucu yüklemesi sayesinde verilerinizi riske atmadan bu modern tanımlayıcıları anında oluşturabilirsiniz.