Η αποκάλυψη της «τεχνητής» απόδοσης

Η πρόσφατη αφαίρεση του pgrust από το ClickBench αποτελεί ένα διδακτικό παράδειγμα για το πώς η υπερβολική βελτιστοποίηση (over-optimization) για συγκεκριμένα benchmarks μπορεί να οδηγήσει σε παραπλανητικά αποτελέσματα. Η ανάλυση του δυαδικού αρχείου αποκάλυψε ότι το σύστημα δεν εκτελεί δυναμικά τα ερωτήματα, αλλά διαθέτει έναν μηχανισμό που αναγνωρίζει τα 43 ερωτήματα του ClickBench και τα δρομολογεί σε προκατασκευασμένους kernels.

Αρχιτεκτονική «πίνακα αναζήτησης» αντί για βάση δεδομένων

Αντί για έναν γενικό query planner και execution engine, το pgrust χρησιμοποιεί μια προσέγγιση όπου τα ερωτήματα SQL μεταγλωττίζονται (compiled) απευθείας στον κώδικα του executor. Η ανάλυση του πηγαίου κώδικα έδειξε ότι πολλά ερωτήματα απαντώνται μέσω μεταδεδομένων (metadata answers) ή αλγεβρικών αναδιατυπώσεων που έχουν προϋπολογιστεί, καθιστώντας το σύστημα ανίκανο να διαχειριστεί οποιοδήποτε ερώτημα δεν ανήκει στο προκαθορισμένο σύνολο.

Το πρόβλημα του caching και η έλλειψη γενικότητας

Το πιο κρίσιμο τεχνικό εύρημα είναι η αδυναμία απενεργοποίησης του caching. Σε δοκιμές με «ψυχρή» εκκίνηση (cold start), οι χρόνοι απόκρισης αυξάνονται δραματικά, αποδεικνύοντας ότι οι εντυπωσιακές επιδόσεις των λίγων milliseconds οφείλονται αποκλειστικά στην ανάκτηση αποτελεσμάτων από προηγούμενα runs. Επιπλέον, η έλλειψη υποστήριξης για βασικές λειτουργίες όπως INSERT, UPDATE ή ακόμα και απλές παραλλαγές των ερωτημάτων του benchmark, επιβεβαιώνει ότι το pgrust δεν λειτουργεί ως μια πραγματική βάση δεδομένων, αλλά ως ένα στατικό σύστημα αναφοράς (lookup system) για το συγκεκριμένο benchmark.