Αρχιτεκτονικές αστοχίες και προβλήματα συνέπειας

Το ParticleDB, γραμμένο σε Rust, στοχεύει στην ενοποίηση OLTP και OLAP workloads για AI εφαρμογές. Ωστόσο, η έρευνα της Jepsen ανέδειξε ότι η υλοποίηση υπολείπεται σημαντικά των υποσχέσεών της. Το σύστημα παρουσίασε φαινόμενα όπως «ζόμπι» δεδομένα, όπου διαγραμμένοι πίνακες επανεμφανίζονταν, και αλλοίωση τύπων δεδομένων (π.χ. strings που μετατρέπονταν σε integers).

Ασάφεια στα επίπεδα απομόνωσης (isolation levels)

Ένα από τα πιο ανησυχητικά ευρήματα αφορά τη διαχείριση των συναλλαγών. Το ParticleDB αγνοούσε συστηματικά τις τυπικές εντολές SQL για τον καθορισμό του επιπέδου απομόνωσης, επιβάλλοντας ρυθμίσεις μέσω παραμέτρων εκκίνησης (CLI flags). Η τεκμηρίωση αυτών των modes ήταν αντιφατική, με όρους όπως occ (Optimistic Concurrency Control) να περιγράφονται με ασαφή τρόπο, αφήνοντας τους χρήστες εκτεθειμένους σε ανωμαλίες όπως το Lost Update, ακόμα και στο υποτιθέμενο «ισχυρότερο» mode serializable.

Προβλήματα στο Postgres wire protocol

Παρά την υπόσχεση για πλήρη συμβατότητα με το οικοσύστημα του PostgreSQL, το ParticleDB απέτυχε να διαχειριστεί σωστά το extended query protocol. Η χρήση prepared statements προκαλούσε συχνά εξαιρέσεις (exceptions) λόγω κακής διαχείρισης των μηνυμάτων στο state machine του πρωτοκόλλου, καθιστώντας τη χρήση standard JDBC drivers προβληματική.

Συμπεράσματα για την παραγωγική χρήση

Η ανάλυση καταδεικνύει ότι το ParticleDB, στις εκδόσεις που εξετάστηκαν, δεν πληρούσε τα κριτήρια για κρίσιμα συστήματα δεδομένων. Η ύπαρξη 96 σφαλμάτων σε ένα single-node περιβάλλον, χωρίς την εισαγωγή τεχνητών σφαλμάτων δικτύου ή δίσκου, υπογραμμίζει την ανάγκη για αυστηρότερο έλεγχο (verification) σε βάσεις δεδομένων που διεκδικούν τον τίτλο «ACID-compliant».