Kullanıcı verileri için bulut eşitleme, yalnızca yükleme ve indirmeden ibaret değildir. Aktarım sırasında özel içeriği korumalı, depolama maliyetini düşük tutmalı, birden fazla cihazdan gelen yazmaları sıraya koymalı, farklı veri yapılarını anlamalı, tehlikeli silmelerden önce onay istemeli ve bir kararın yanlış olduğu anlaşıldığında geri dönüş yolu sunmalıdır.
Orkas, bulut eşitlemeyi arka planda çalışan bir yardımcı işlev değil, ürünün sorumluluk sınırı olarak ele alır. Konuşmalar, ajanlar, beceriler, görev durumu, bilgi dosyaları ve ayarlar cihazlar arasında taşınırken sorumluluk zinciri açık kalmalıdır: cihaz içeriği hazırlar, nesne depolama baytları tutar, esas alınan dizini ise sunucu yönetir.
Sistemi değerlendirirken kullandığımız çerçeve şöyledir: şifrelenmiş içerik akışı, içerik adresli depolama, hesap düzeyinde eşitleme kilidi, sunucu yönetiminde kesinleştirme, deterministik eşitleme kuralları, model destekli çakışma yönetimi, silme onayı, geri dönüşüm kutusu ve kurtarma işaretleri.
Eşitleme sözleşmesi
Her eşitleme turu ürünle ilgili dört soruyu yanıtlar: hangi içerik taşınabilir, nasıl korunur, yeni bir bulut dizini yayımlamaya kim yetkilidir ve eşitleme yanlış karar verirse kullanıcı nasıl geri dönebilir?
Şifrelenmiş içerik yolu
Kullanıcı verileri depolamaya ulaşmadan önce cihazda hazırlanır. Eşitleme motoru aday kümesini normalleştirir, içerik kimliğini hesaplar, veri yüklerini şifreler, kısa ömürlü kimlik bilgileriyle yükler ve indirilen baytları cihaza geri yazmadan önce doğrular.
Depolama ve dizin
Orkas, saklanan baytları bulut dizininden ayırır. İçerik nesneleri şifrelenmiş verileri tutar. Dizin ise hangi mantıksal veri öğelerinin bulunması gerektiğini, bunların içerik kimliğini, sürüm sayaçlarını, depolanan boyutunu, bulut revizyonunu ve silinme işareti durumunu kaydeder. Cihaz ayrıca eski durumu yeni düzenlemelerden ayırt edebilmek için son başarılı turdan bir referans durum tutar.
Bir eşitleme turu
Bir tur düşük maliyetle başlar ve yalnızca yapılacak gerçek iş olduğunda sıkılaşır. Orkas önce bir şeyin değişip değişmediğini kontrol eder, ardından hesap eşitleme kilidini alır, kilit eldeyken değişiklikleri yeniden hesaplar, içeriği taşır, sunucudan dizin işlemlerini kesinleştirmesini ister ve son olarak cihazın referans durumunu günceller.
Eşitleme kilidi ve kesinleştirme
Eşitleme kilidi ve kesinleştirme kontrolü farklı sorunları çözer. Eşitleme kilidi, cihazlar arasında boşa yapılan eşzamanlı işi azaltır. Sunucu tarafındaki kilit, dizine yazma işlemlerini sıraya koyar. Beklenen bulut revizyonu kontrolü, eski bir okumanın yeni doğru durum haline gelmesini önler. Kota ve şema kontrolleri de sunucunun yönettiği aynı kesinleştirme akışında çalışır.
Çakışmalardan önce kurallar
Eşitleme kararlarının çoğu çakışma değildir. Cihaz; referans durumu, güncel cihaz verilerini ve bulut dizinini karşılaştırır. Yalnızca bulut değiştiyse verileri çek. Yalnızca cihaz değiştiyse gönder. İkisi de değiştiyse içerik türüne göre yönlendir. Bir şey kaybolduysa veriyi hemen kaldırmak yerine güvenli silme akışına gir.
Çakışma yönetimi
İki taraf da gerçekten değiştiğinde Orkas her şeyi son yazanın kazandığı bir yaklaşıma indirgemez. Ekleme temelli günlükler, eksik kayıtlar eklenerek birleştirilebilir. Listeler, sabit kayıt kimliklerine göre birleştirilebilir. Yapılandırılmış JSON, sürüm sayaçlarını ve zaman damgalarını kullanabilir. Markdown ve ikili dosyalarda temkinli davranılır: sistem kayıpsız bir birleştirmeyi kanıtlayamıyorsa, seçilmeyen sürümün tam bir kopyasını saklar.
Belirsiz metin veya yapılandırılmış içerik çakışmalarında ürün, ilgili sürümleri model destekli işlem için bir araya getirebilir. Model çakışmayı açıklayabilir, birleştirilmiş bir sürüm taslağı hazırlayabilir veya kullanıcının seçim yapmasına yardımcı olabilir. Tek güvenlik önlemi model değildir: deterministik doğrulama, arşivlenmiş özgün sürümler ve kullanıcının erişebildiği kurtarma olanakları da akışın parçası olmaya devam eder.
Silme onayı
Silmeler durum geçişleri olarak ele alınır. Uzaktaki bir silme, silme işaretine dönüşür. Cihazdaki bir silme ise aday işlem olur. Orkas son yazma işlemlerini kontrol eder, büyük silme dalgalarını izler ve kaybolan kullanıcı verisi miktarı riskli göründüğünde onay almak için eşitleme turunu duraklatır.
Geri dönüşüm kutusu ve kurtarma
Geçerli bir silme işlemi cihazdaki kopyayı kaldırmadan önce Orkas onu eşitleme geri dönüşüm kutusuna taşır. Çakışmada elenen sürümler inceleme için arşivlenir. Bekleyen yüklemeler, kalıcılaştırma başarısız olsa da korunur; böylece sonraki tur aynı baytları yeniden kullanabilir. Kullanıcı bulut verilerini bilerek temizlerse diğer cihazlar bir temizleme işareti görür ve eski içeriği yeniden yüklemeyi durdurur.
Bunun bize kazandırdıkları
Sonuç, sınırları net bir eşitleme sistemidir. Cihazlar içeriği hazırlar ve doğrular. Nesne depolama, şifrelenmiş baytları tutar. Sunucu dizini yayımlar. Hesap eşitleme kilidi ve sunucu kilidi, turları düzenli tutar. Kurallar yaygın durumları ele alır. Model desteği belirsiz çakışmalarda yardımcı olur. Silme onayı ve geri dönüşüm kutusu, kullanıcıları bedeli en ağır hatalardan korur.
Orkas'ın bulut eşitlemesi için ihtiyaç duyduğu standart budur: sihir veya körü körüne yansıtma değil, kullanıcı verilerinin cihazlar arasında taşınırken tutarlılığını korumasını sağlayan özenli bir mekanizma.