Από το ANN-centric μοντέλο στην ευελιξία
Το turbopuffer ξεκίνησε ως μία εξειδικευμένη serverless vector database, χρησιμοποιώντας ιεραρχικά clusters (SPANN/SPFresh) πάνω σε object storage. Για μεγάλο διάστημα, η προσέγγιση αυτή ήταν ιδανική, επιτρέποντας κλίμακα 100 δισεκατομμυρίων διανυσμάτων με εξαιρετικό latency. Ωστόσο, η εξέλιξη της πλατφόρμας σε μία γενική μηχανή αναζήτησης (που υποστηρίζει FTS, φιλτράρισμα και aggregations) ανέδειξε τα όρια της αρχιτεκτονικής όπου το ANN index αποτελεί το κεντρικό σημείο αναφοράς.
Τα αρχιτεκτονικά σημεία συμφόρησης (bottlenecks)
Η ομάδα εντόπισε τρία κρίσιμα προβλήματα που εμποδίζουν την περαιτέρω κλιμάκωση:
- Storage Amplification: Η αποθήκευση του πλήρους εγγράφου κάτω από το ANN address οδηγεί σε πλεονασμό δεδομένων, ειδικά σε περιπτώσεις multi-vector αναπαραστάσεων.
- Write Amplification: Η ανάγκη για rebalancing των clusters κατά τις εγγραφές προκαλεί αλυσιδωτές μετακινήσεις δεδομένων, επιβαρύνοντας το throughput.
- Περιορισμένη διανυσματοποίηση (vectorization): Τα σύγχρονα query engines βασίζονται σε επεξεργασία δεδομένων ανά blocks (batching) για την αξιοποίηση των SIMD εντολών. Το τρέχον μοντέλο, περιορισμένο από το μέγεθος των ANN clusters (100-200 εγγραφές), δεν επιτρέπει τον κορεσμό του CPU pipeline για άλλους τύπους ερωτημάτων.
Η μετάβαση στο turbopuffer v3
Η λύση που υιοθετείται στο v3 είναι η αποσύνδεση του ANN index από το πρωτεύον κλειδί. Μετατρέποντας το ANN σε ένα "δευτερεύον" index, το σύστημα αποκτά την ελευθερία να διαχειρίζεται τα δεδομένα με τρόπο που εξυπηρετεί βέλτιστα κάθε query plan. Αν και η μετάβαση αυτή παρουσιάζει προκλήσεις στην απόδοση κατά τη φάση του tuning, αποτελεί το απαραίτητο βήμα για την υποστήριξη πιο σύνθετων και αποδοτικών workloads στο μέλλον.