SpacetimeDB mimarisindeki teknik tercihler performans iddialarını tartışmalı kılıyor
Öne çıkanlar
- SpacetimeDB 2.0, uygulama kodlarını Wasmtime motoru ile doğrudan veri tabanı içinde çalıştırıyor.
- Tüm sistem tek bir küresel okuma-yazma kilidi üzerinden sıralı yazma mantığıyla yönetiliyor.
- Yazma işlemlerinde disk günlüğü eşzamansız olarak 50 milisaniyelik aralıklarla diske yazılıyor.
SpacetimeDB, uygulama kodunu doğrudan veri tabanı içinde çalıştıran 2.0 sürümünü yayımladı. Şirket, yeni sürümle birlikte rakiplerini geride bıraktığını öne süren kıyaslama testleri ve tanıtım videoları paylaştı. Ancak bağımsız teknik incelemeler, sistemin sunduğu yüksek yazma hızının geleneksel veri tabanı mimarilerinden farklı ve temel kısıtlamalar içeren ödünlere dayandığını ortaya koydu.
Sistemin temel depolama motoru, bellekte tutulan bir veri yapısının önüne yerleştirilen tek bir küresel okuma ve yazma kilidi (RwLock) üzerinden çalışıyor. Bütün yazma işlemleri sıralı biçimde yürütülüyor ve Wasmtime çalışma zamanı üzerinde WebAssembly tabanlı kullanıcı kodları çalıştırılırken veri tabanına başka hiçbir okuma veya yazma işlemi erişemiyor. Verilerin diske kalıcı olarak kaydedilmesi ise eşzamansız bir önceden yazma günlüğü (WAL) ile varsayılan olarak her 50 milisaniyede bir arka planda gerçekleştiriliyor.
Uygulama sunucusu ile veri tabanını tek bir çatı altında birleştiren mimari, ağ gecikmelerini ortadan kaldırarak yapay testlerde yüksek işlem sayılarına ulaşıyor. Buna karşın ağ üzerinden çalışan dağıtık sistemlerle yapılan doğrudan kıyaslamalar, farklı tasarım tercihlerini gizlediği gerekçesiyle geliştiriciler tarafından yanıltıcı bulunuyor. Sistemdeki tek kilitli eşzamanlılık modeli ve gecikmeli disk senkronizasyonu, yüksek tutarlılık gerektiren iş yüklerinde mimari sınırlamalar yaratıyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.