Bemutatásra került az OrioleDB beta7 tárolómotor bétaverziója, valamint közzétették az új tesztek eredményeit, amelyek jelentős teljesítménynövekedést mutatnak a hagyományos PostgreSQL-hez képest. A beta7 verzióban olyan optimalizációk kerültek bevezetésre, amelyek a több szálon futó terhelések kezelését és az olvasási és írási műveletek felgyorsítását célozzák. Az OrioleDB első stabil kiadását 2025-re tervezik. A motor C nyelven készült, és a PostgreSQL licenc alatt terjesztik, amely hasonló a BSD és MIT licencekhez.
Az OrioleDB projekt egy alternatív tárolómotort fejleszt a PostgreSQL számára, amelynek célja a standard tárolási mechanizmus korlátozásainak leküzdése és a rendszer általános hatékonyságának növelése. Például az OrioleDB lehetővé teszi a VACUUM művelet időszakos végrehajtásának elkerülését a szemétgyűjtéshez, köszönhetően a log-alapú MVCC (Multi-Version Concurrency Control) mechanizmus megvalósításának, amely egyes blokkok és sorok szintjén működik, valamint az adatokkal rendelkező oldalak automatikus egyesítési rendszerének. Az OrioleDB 64 bites tranzakcióazonosítókat is használ, ami megoldja a számlálók túlcsordulásának problémáját.
A felhasználás egyszerűsítése érdekében elosztott rendszerekben és az OrioleDB műveleteinek párhuzamosítása érdekében a WAL tranzakciós naplót sor szinten vezetik. Az UPDATE művelet végrehajtásakor a helyszíni adatcsere támogatott (anélkül, hogy az aktuális rekordot felszabadítanánk és új rekordot hoznánk létre), ami pozitívan hat a teljesítményre. Az OrioleDB-ben olyan lehetőségek is megvalósításra kerültek, mint közvetlen oldalak összekapcsolása a memóriában lévő oldalakkal és a tartós tárolóban, a CoW (copy-on-write) mechanizmus alkalmazása a kontrollpontok rögzítési folyamatában az ellentmondás-mentes pillanatképek létrehozásához bármikor, valamint a ZSTD algoritmussal történő tömörített adatkezelés módja.
A hetedik bétaverzióban elérhető OrioleDB korlátozásaiként megjegyzendő, hogy csak B-fa indexek használata lehetséges (a jövőben támogatni fogják a PostgreSQL összes indextípusát), valamint a PREPARE TRANSACTION előkészített tranzakciók és a CONCURRENTLY módban végrehajtott "REINDEX" parancs nem támogatott. Az OrioleDB egy plug-in bővítmény formájában valósult meg, amely módosításokat igényel a PostgreSQL alap kódalapjában.
A TPC-C teljesítménytesztjeiben, amelyek valós helyzetekben modellezik a tranzakciós feldolgozás terhelését, az OrioleDB hetedik bétaverziója jelentős fölényt mutatott a szokásos PostgreSQL motornál. A tesztelés különböző egymással párhuzamosan dolgozó kliens mennyiségekkel zajlott, hogy felmérje a rendszer skálázhatóságát és teljesítményét terhelés növekedése esetén.
A tranzakciós áteresztőképességet értékelő tesztek során az OrioleDB motor magasabb áteresztőképességet ért el, amit tranzakciók percenkénti számával (tpmC) mértek. A kliensszám növekedésével az OrioleDB teljesítménye továbbra is lineárisan nőtt, míg a PostgreSQL Heap motorjának teljesítménye egy bizonyos küszöb után stagnálni vagy akár csökkenni kezdett.



A válaszidő tesztek során az OrioleDB tranzakcióinak átlagos válaszideje jelentősen alacsonyabb volt a PostgreSQL-hez képest. Így az OrioleDB alapú rendszerek több tranzakciót tudnak kezelni ugyanannyi idő alatt, miközben gyorsabb lekérdezés-kiszolgálást biztosítanak. Az erőforrások használatának mérésekor az OrioleDB motor hatékonyabb CPU- és memóriahasználatot mutatott, köszönhetően az optimalizált erőforráskezelésnek.
Forrás: opennet.ru
