Teknologi

Jepsen Merilis Laporan Pengujian Basis Data ParticleDB 1.1.4

Daftar Isi
  1. Latar Belakang dan Pengujian
  2. Performa, Kinerja, dan Kendala Transaksi
  3. Pelanggaran Batasan dan Korupsi Status

Perusahaan penguji independen Jepsen merilis laporan hasil analisis terhadap basis data ParticleDB versi 1.1.4 hingga 1.1.18.11. Laporan tersebut mendokumentasikan puluhan temuan masalah terkait performa, fitur yang rusak, kendala predikat, hingga korupsi data pada mesin basis data yang dikembangkan oleh Orkes tersebut.

Latar Belakang dan Pengujian

ParticleDB dirancang oleh Orkes untuk menyatukan berbagai beban kerja seperti SQL transaksional, penyimpanan *key-value*, pencarian vektor, dan analitik langsung, dengan fokus khusus pada agen kecerdasan buatan. Ditulis menggunakan bahasa pemrograman Rust, basis data ini menyediakan berbagai antarmuka termasuk protokol Postgres dan Redis, serta API gRPC dan HTTP2. Meskipun mendukung klaster tereplikasi menggunakan protokol konsensus Raft pada layanan awan perusahaan, pengujian Jepsen hanya mencakup perilaku pada simpul tunggal (single-node) karena keterbatasan rilis yang disediakan.

Jepsen menguji ParticleDB menggunakan pustaka pengujian khusus pada simpul Debian 13 terisolasi, baik di dalam kontainer maupun mesin virtual EC2. Tim penguji menyimulasikan berbagai kondisi termasuk mogok proses (*crash*), kehilangan penulisan yang belum disinkronkan menggunakan LazyFS, serta korupsi berkas diska. Dari pengujian tersebut, Jepsen mencatat sebanyak 96 masalah yang dikelompokkan ke dalam beberapa kategori utama, dengan sebagian besar masalah terjadi pada instans tunggal yang berjalan normal tanpa injeksi gangguan.

Performa, Kinerja, dan Kendala Transaksi

Dalam kondisi operasi normal, Jepsen mencatat bahwa ParticleDB sering kali berjalan lambat, mengalami *deadlock*, dan terhenti tanpa peringatan. Pada versi 1.1.4 hingga 1.1.18.4, mode transaksi *table-2pl* sangat lambat dan sebagian besar transaksi gagal setelah memblokir selama puluhan detik. Pembaruan pada versi selanjutnya memperbaiki latensi tinggi tersebut, tetapi memunculkan masalah baru berupa penghentian mendadak (*crash*) tanpa pesan galat dan kebuntuan (*deadlock*) bahkan hanya dengan pengajuan dua transaksi konkuren.

Klaim kompatibilitas penuh dengan protokol Postgres juga ditemukan memiliki banyak celah. Berbagai kueri penting mengalami kegagalan, pernyataan yang disiapkan (*prepared statements*) memberikan respons cacat yang melumpuhkan penggunaan *driver* JDBC, dan autentikasi bawaan mengalami kendala. Selain itu, penanganan predikat seperti klausa WHERE kerap mengabaikan kondisi, gagal mencocokkan baris yang seharusnya sesuai, atau memproses nilai secara tidak konsisten di dalam transaksi.

Pelanggaran Batasan dan Korupsi Status

Jepsen menemukan bahwa ParticleDB sering kali melanggar batasan data seperti aturan *NOT NULL* atau *UNIQUE*. Versi awal mengabaikan batasan tersebut, memungkinkan kolom yang seharusnya wajib diisi atau unik justru berisi nilai kosong atau duplikat. Operasi penyisipan, pembaruan, dan penghapusan data juga kerap memunculkan baris “zombie” yang tidak dapat dihapus atau dimodifikasi kembali, serta meninggalkan bayangan data setelah perintah penghapusan tabel (*DROP TABLE*) dijalankan.

Lebih lanjut, pengujian mendeteksi adanya korupsi status logika yang serius, seperti konversi nilai *NaN* menjadi nol, penugasan tipe data yang tidak kompatibel tanpa galat, hingga kegagalan urutan kolom saat penyisipan data yang menyebabkan baris data menjadi tidak terbaca atau rusak secara permanen. Pembaruan pada versi-versi berikutnya secara bertahap memperbaiki sebagian besar celah keamanan dan integritas tersebut, dengan beberapa perbaikan lanjutan dilaporkan langsung oleh pihak pengembang.

Laporan lengkap beserta rincian teknis dari seluruh 96 temuan isu yang diidentifikasi selama pengujian dapat diakses melalui situs resmi Jepsen.

Mungkin Anda Suka

Tinggalkan Komentar

Alamat email tidak akan dipublikasikan. Kolom wajib ditandai *