
Jepsen ParticleDB-nin 1.1.4-dən 1.1.18-ə qədərki versiyalarında 96 problem tapdı
Jepsen-in 1.1.4-dən 1.1.18.11.rc-22-yə qədərki ParticleDB versiyaları üzrə testi qəzalar, deadlock-lar, itirilmiş commit edilmiş yazmalar və izolyasiya anomaliyaları da daxil olmaqla 96 problem aşkar etdi.
Jepsen ParticleDB-nin 1.1.4-dən 1.1.18.11.rc-22-yə qədərki versiyalarını test etdi və verilənlər bazasında qəzalardan və deadlock-lardan məlumat itkisinə və anormal sorğu nəticələrinə qədər 96 problem tapdı. Problemlərin çoxu sağlam tək düyünlü instansiyalarda, tək müştəri ilə və nasazlıq olmadan baş verdi. 1.1.18.11.rc-22 versiyasına qədər həmin problemlərin on istisna olmaqla hamısı həll edilmiş görünürdü, lakin ParticleDB hələ də default occ tranzaksiya rejimində normal iş zamanı commit edilmiş yazmaları itirirdi və ən güclü tənzimləməsi olan serializable rejimində daxili anomaliyalara və Lost Update-ə yol verirdi.
Təhlükəsizlik iddiaları və sənədləşmə
ParticleDB AI iş yükləri üçün çoxmodelli verilənlər bazasıdır; tranzaksiyalı SQL, açar-dəyər anbarı, vektor axtarışı, canlı analitika və Particles adlanan istifadəçi tərəfindən təyin edilən funksiyalar təklif edir. O, Postgres və Redis protokollarını, həmçinin gRPC və HTTP2 API-lərini dəstəkləyir və Rust dilində yazılmışdır. Ana səhifə Full ACID və TLA+ sübutunu reklam edirdi, lakin əməkdaşlıq zamanı TLA+ spesifikasiyası mövcud deyildi. Sənədləşmə həmçinin WAL sinxronizasiya rejimləri və tranzaksiya rejimləri barədə ziddiyyətli məlumat verirdi, SET TRANSACTION ISOLATION LEVEL ifadələrini isə nəzərə almır və ya rədd edirdi.
Test əhatəsi
Testlər konteynerlərdə və EC2 VM-lərdə Debian 13 düyünlərində, Jepsen iş yükləri və yeni ParticleDB-yə xas iş yükləri ilə aparıldı. Test qurğusu proses qəzalarını, LazyFS vasitəsilə hələ fsync edilməmiş yazmaların itirilməsini, disk fayllarının kəsilməsini və ya korlanmasını simulyasiya edə bilirdi. Üç WAL sinxronizasiya rejiminin hamısı və hər tranzaksiya rejimi test edildi. Replikasiya əhatə olunmadı, çünki təqdim edilən yığımlar onu dəstəkləmirdi.
Nəticələr
Problemlərə table-2pl performansının çox aşağı olması, qəfil sirli qəzalar, deadlock-lar, çatışmayan Postgres xüsusiyyətləri, səhv formatlı prepared statement cavabları, autentifikasiya boşluqları və WHERE-i nəzərə almayan SELECT, WHERE 4 = 5 şərtinin sətir qaytarması, tranzaksiyalar daxilində mənasız SELECT nəticələri kimi predikat xətaları daxil idi. Orkes o vaxtdan 1.1.19-rc.13 buraxılışını yayımlayıb və hesabatda müzakirə olunan qalan bütün problemləri həll etdiyini iddia edir. Bu tədqiqat Orkes, Inc. tərəfindən maliyyələşdirilib.
Mənbələr: Lobsters
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.