
Jepsen, ParticleDB'nin 1.1.4 ile 1.1.18 Sürümlerinde 96 Sorun Buldu
Jepsen, ParticleDB'nin 1.1.4 ile 1.1.18.11.rc-22 arasındaki sürümlerinde çökmelerden kayıp yazmalara ve izolasyon anomalilerine uzanan 96 sorun buldu; Full ACID iddialarına karşın sorunların çoğu sağlıklı tek düğümlü sistemlerde görüldü.
Jepsen, ParticleDB'nin 1.1.4 ile 1.1.18.11.rc-22 arasındaki sürümlerini test etti ve veritabanında çökmelerden kilitlenmelere, veri kaybına ve anormal sorgu sonuçlarına uzanan 96 sorun buldu. Sorunların çoğu, sağlıklı tek düğümlü örneklerde, tek istemci ve hata olmadan ortaya çıktı. 1.1.18.11.rc-22 sürümüne gelindiğinde bu sorunların on tanesi hariç tümü çözülmüş görünüyordu, ancak ParticleDB varsayılan occ işlem modunda normal çalışma sırasında işlenmiş yazmaları yine de kaybediyordu ve en güçlü ayarı olan serializable ile içsel anomalilere ve Lost Update'e izin veriyordu.
Güvenlik iddiaları ve belgeler
ParticleDB, AI iş yükleri için çok modelli bir veritabanıdır; işlemsel SQL, anahtar-değer deposu, vektör araması, canlı analitik ve Particles adlı kullanıcı tanımlı işlevler sunar. Postgres ve Redis protokollerini, ayrıca gRPC ve HTTP2 API'lerini destekler ve Rust ile yazılmıştır. Ana sayfa Full ACID ve bir TLA+ kanıtı tanıtıyordu, ancak iş birliği sırasında TLA+ belirtimi mevcut değildi. Belgeler ayrıca WAL senkronizasyon modları ve işlem modları konusunda kendi içinde çelişiyordu ve SET TRANSACTION ISOLATION LEVEL ifadelerini yok sayıyor ya da reddediyordu.
Test kapsamı
Testler, Debian 13 düğümlerinde konteynerlerde ve EC2 VM'lerinde çalıştırıldı; Jepsen iş yükleri ve yeni ParticleDB'ye özgü iş yükleri kullanıldı. Test düzeni, süreç çökmelerini, LazyFS kullanarak henüz fsync edilmemiş yazmaların kaybını ve disk dosyalarının kısaltılmasını veya bozulmasını simüle edebiliyordu. Üç WAL senkronizasyon modunun tümü ve her işlem modu test edildi. Sağlanan yapılar çoğaltmayı desteklemediği için çoğaltma kapsam dışı bırakıldı.
Bulgular
Sorunlar arasında table-2pl performansının çok kötü olması, kendiliğinden ortaya çıkan gizemli çökmeler, kilitlenmeler, eksik Postgres özellikleri, bozuk prepared statement yanıtları, kimlik doğrulama açıkları ve SELECT'in WHERE'yi yok sayması, WHERE 4 = 5'in bir satır döndürmesi, işlemler içinde anlamsız SELECT sonuçları gibi koşul hataları yer aldı. Orkes o zamandan beri 1.1.19-rc.13 sürümünü yayımladı ve raporda tartışılan kalan tüm sorunları çözdüğünü iddia ediyor. Bu araştırma Orkes, Inc. tarafından finanse edildi.
Kaynaklar: Lobsters
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.