Ana Sayfa

SpiceDB Query Planner: Yetkilendirmede Veri Yapısına Duyarlı Optimizasyon

1 dk okuma

SpiceDB, ReBAC'ın kurumsal düzeyde ilk uygulaması olarak piyasaya sürülmesinden bu yana, kullanıcıların yetkilendirme modellerini karmaşık yapılarla (özyineleme, derin iç içe geçme ve binlerce nesneyi bir özneye bağlayan ilişkiler) oluşturduğunu gözlemledi. Bu karmaşıklıkla birlikte, kullanıcılar yetkilendirme kontrollerinden daha düşük gecikme süresi talep etti. Bu talepleri karşılamak için SpiceDB, gelen istekleri tekilleştirme, alt sorunlara ayırma ve önbelleğe alma, tutarlı hashing, veritabanı sorgularını toplu işleme, tip tabanlı optimizasyonlar ve kapsamlı SQL optimizasyonları gibi birçok strateji geliştirdi. Bu stratejiler, düşük gecikme süresine ulaşmada en büyük darboğaz olan temel veri deposuna yapılan çağrıların sayısını ve boyutunu azaltmada etkili oldu.

Ancak, bu mevcut stratejilerin genellikle gözden kaçırdığı kritik bir bilgi vardı: müşterinin verilerinin yapısı. Örneğin, bir document:budget için view iznini kontrol ederken (document:budget, view, user:maria), view izni bir "ok" (arrow) işlemi olarak tanımlanır. Bu, document:budget ile ilişkili her grup için üyeleri bulmayı ve ardından user:maria'nın bu üyelerden biri olup olmadığını kontrol etmeyi gerektirir. Basit bir çözüm, bu işlemi doğrudan yapmaktır: document:budget ile ilişkili her grubu aramak ve ardından her grup için user:maria'nın üye olup olmadığını görmek. Eğer bir belge binlerce grupla ilişkiliyse, bu çok fazla iş yükü anlamına gelir ve performansı olumsuz etkiler.

SpiceDB Query Planner, bu tür senaryolarda performansı artırmak için tasarlanmıştır. Mevcut optimizasyonlar genel nitelikteyken, Query Planner, müşterinin veri yapısını ve şemasını anlayarak sorguları daha akıllıca planlar. Bu, özellikle karmaşık ilişki grafikleri ve "ok" operasyonları içeren yetkilendirme kontrollerinde, gereksiz veritabanı sorgularını azaltarak ve en uygun yolu bularak gecikme süresini önemli ölçüde düşürmeyi hedefler. Bu sayede, binlerce ilişki içeren karmaşık yetkilendirme modellerinde bile yüksek performans ve düşük gecikme süresi sağlanabilir.

İçgörü

SpiceDB'ın yeni Query Planner'ı, karmaşık yetkilendirme modellerinde veri yapısını anlayarak performansı ve gecikme süresini önemli ölçüde iyileştiriyor.

Kaynak