
Mire képes a PostgreSQL ilyen skálán?
A legtöbb nagyvállalat már jóval azelőtt elindulna az adatbázis-szeletelés vagy elosztott SQL-adatbázisok (például a YugabyteDB) irányába, mielőtt elérné ezt a felhasználói számot. Az OpenAI azonban más utat választott: célzott optimalizációkkal tolta ki a PostgreSQL határait, ahelyett, hogy idő előtt újratervezte volna a teljes rendszert.
Célzott fejlesztésekkel csökkentették a kapcsolatfelépítési időt 50 milliszekundumról 5 milliszekundumra, cache-zárolással megakadályozták a túlterhelő „thundering herd” jelenséget, és sebességkorlátozó (rate limiting) szabályokat vezettek be a különböző rétegekben – az alkalmazás-, a proxy- és a lekérdezésszinten is.
Később, a masszív növekedés ellenére, az OpenAI az új, írásigényes feladatokat eleve szeletelt rendszerekre, például az Azure Cosmos DB-re vitte, a régi adattáblák viszont maradhattak az optimalizált PostgreSQL-en.
Mitől működik ez ilyen hatékonnyan?
Míg az MI-alkalmazások többsége olvasásintenzív, időnként hirtelen nagy írási hullámokat is produkál. A PostgreSQL többverziós konkurenciakezelése nehézzé teheti a nagy mennyiségű írást, hiszen minden frissítés új rekordot hoz létre, feleslegesen duzzasztva az adatbázist és lassítva az olvasást.
Az OpenAI ezt a helyzetet nem próbálta meg erővel kijavítani – ehelyett ehhez igazította a stratégiáját. A nagy írásigényű rétegeket fokozatosan kivitte máshová, a tipikusan olvasásközpontú részeket viszont a lehető legtovább tartotta PostgreSQL-en.
Mi ebből a tanulság?
Megemlíthető továbbá, hogy az OpenAI fontos üzemeltetési szabályokat vezetett be: például szigorúan tiltja a táblák teljes újraírását jelentő sémamódosításokat; minden ilyen műveletnek 5 másodperc alatt végbe kell mennie. Hosszú lekérdezéseket automatikusan megszakítanak, és a háttértöltéseket olyan mértékben korlátozzák, hogy egyes folyamatok akár egy hétig is eltarthatnak.
Következésképpen nem mindig a radikális újratervezés a válasz a skálázási problémákra. A lényeg a kritikus szűk keresztmetszetek felismerése, a bevált infrastruktúra optimalizálása, és csak szükség esetén kell speciális alrendszerekre váltani. Az OpenAI példája azt mutatja, hogy megfelelő fegyelemmel és céltudatos finomhangolással akár egyetlen PostgreSQL-példány is elképesztő terhelést bírhat el.
