A turbopuffer búcsút int a vektorokra épülő elsődleges indexnek

A turbopuffer v3 új alapokra helyezi a szolgáltatás tárolási architektúráját: az ANN vektorindex másodlagos indexszé válik. A cég szerint ezzel gyorsabbá tehető a szöveges, reguláris kifejezéses és vektoros keresés, valamint több SQL-lekérdezés is.
- A turbopuffer v3 új elsődleges indexre épül.
- Az ANN vektorindex másodlagos indexszé válik.
- A fejlesztés a szöveges, reguláris kifejezéses és vektoros keresést is érinti.
- A vállalat szerint a v3 alapot adhat több SQL-lekérdezés támogatásához.
- A v3 CI-tesztjeinek 100 százaléka sikeresen lefutott.
A vektoros adatbázistól az általánosabb keresésig
A turbopuffer szeptember 30-i bejegyzésében Dan Harrison mérnök azt írta, hogy a vállalat megváltoztatja a szolgáltatás tárolási architektúráját. A turbopuffer v1 szerver nélküli vektoros adatbázisként indult, amelynek célja az olcsó és kellően gyors vektoros keresés volt.
A rendszer gazdaságosságát az objektumtároló használata adta, a teljesítményről pedig többszintű NVMe SSD- és memóriagyorsítótárak gondoskodtak. A turbopuffer szerint a megközelítést korai ügyfelei, köztük a Cursor és a Notion is igazolták. A szolgáltatás később erős szöveges és reguláris kifejezéses keresést kapott, és a Linear szinkronizációs motorjában is használják.
Miért okozott gondot a vektorokra épülő felépítés?
A korábbi architektúrában az ANN, vagyis a közelítő legközelebbi szomszéd keresésére szolgáló vektorindex volt az elsődleges index. Erre épült minden más index és lekérdezési terv, például a szűrés, a teljes szöveges keresés, az aggregáció, a reguláris kifejezéses keresés és a ritka vektoros keresés.
Ez a kialakítás jól működött a vektoros keresésnél. A turbopuffer szerint egyetlen indexben több mint 100 milliárd vektort is kezeltek, 200 ezredmásodperces p99 olvasási késleltetéssel és másodpercenként több mint 1000 lekérdezéssel. A vállalat ugyanakkor három korlátot emel ki.
- Tárolási többlet: több vektorral reprezentált dokumentumoknál a nem vektoros tartalmat minden vektorhoz meg kellett ismételni.
- Írási többlet: a vektorok újrarendezésekor a teljes dokumentumtartalom és az azt hivatkozó attribútum- és teljes szöveges indexek is mozoghattak.
- Korlátozott vektorizálás: az egyes lekérdezések az ANN-index klaszterméretéhez igazodtak, amely jellemzően 100 és 200 dokumentum közötti blokkokat jelentett.
A vállalat példaként említi, hogy a teljes szöveges keresés első változatában egy blokk medián mérete körülbelül 1,5 találat volt. A rögzített, körülbelül 256 dokumentumos blokkokra épülő FTS v2 az index méretét tízszeresére csökkentette, a lekérdezéseket pedig akár hússzorosára gyorsította.
A v3-ban másodlagos szerepet kap az ANN-index
A turbopuffer v3 alapvető változtatása, hogy a dokumentumokat többé nem az ANN-cím alapján kulcsolja. A vállalat új elsődleges indexet alakít ki, miközben az ANN vektorindexet „csak egy újabb” másodlagos indexként kezeli.
A cég szerint ez új alapot teremt a szolgáltatás minden lekérdezési tervének teljesítményjavításához, és megnyithatja az utat ahhoz is, hogy több SQL-lekérdezést helyezzenek át a turbopufferbe. A fejlesztés nem egyszerű átalakítás, mivel az ANN-keresés korábbi teljesítményét is meg kell őrizni.
A fejlesztők először a helyességre összpontosítottak. A turbopuffer közlése szerint a hónap elején fontos mérföldkőhöz értek: a folyamatos integrációs tesztek 100 százaléka sikeresen lefutott a v3-on. A következő feladat a rendszer gyorsítása. A bejegyzés további teljesítményméréseket ígér, de ezek részletei a közölt szövegben még nem szerepelnek.
turbopuffer: RIP, vector database


