A fost lansată versiunea beta a motorului de stocare OrioleDB beta7 și au fost publicate rezultatele noilor teste, care demonstrează o creștere semnificativă a performanței comparativ cu PostgreSQL tradițional. În versiunea beta7 au fost implementate optimizări menite să îmbunătățească performanța cu sarcini de lucru multithreading și să accelereze operațiunile de citire și scriere. Prima versiune stabilă a OrioleDB este planificată pentru lansare în 2025. Motorul este scris în limbajul C și este distribuit sub licența PostgreSQL, similar cu licențele BSD și MIT.
Proiectul OrioleDB dezvoltă un motor de stocare alternativ pentru PostgreSQL, creat în scopul depășirii limitărilor mecanismului standard de stocare și creșterii eficienței generale a sistemului. De exemplu, OrioleDB permite evitarea execuției periodice a operațiunii VACUUM pentru colectarea gunoiului, datorită implementării mecanismului MVCC (Control al Concurenței pe Versiuni Multiple) pe baza jurnalelor de anulare (undo logs), care operează la nivelul blocurilor și rândurilor individuale, precum și a sistemului automat de fuziune a paginilor care conțin date. OrioleDB utilizează, de asemenea, identificatori de tranzacții pe 64 de biți, ceea ce rezolvă problema depășirii contoarelor.
Pentru a simplifica utilizarea în sisteme distribuite și pentru a paraleliza operațiunile în OrioleDB, s-a organizat vedenie a jurnalului WAL de tranzacții la nivelul rândurilor. În timpul executării operațiunii UPDATE, este susținută înlocuirea datelor la loc (fără a elibera înregistrarea curentă și a crea una nouă), ceea ce are un impact pozitiv asupra performanței. În OrioleDB sunt implementate, de asemenea, funcționalități cum ar fi citirea paginilor cu date fără utilizarea blocajelor, legarea directă a paginilor din memorie cu paginile din stocarea permanentă, aplicarea mecanismului CoW (copy-on-write) la fixarea punctelor de control pentru a crea instantanee consistente în orice moment, și modul de stocare a datelor în format comprimat folosind algoritmul ZSTD.
Dintre limitările disponibile în cea de-a șaptea versiune beta OrioleDB se remarcă utilizarea exclusivă a indexurilor în format B-tree (în viitor, va exista suport pentru toate tipurile de indexuri PostgreSQL), precum și lipsa suportului pentru tranzacții pregătite (PREPARE TRANSACTION) și comanda „REINDEX” în modul „CONCURRENTLY”. OrioleDB este implementat ca un plugin care necesită modificări în baza de cod principală PostgreSQL.
În teste de performanță TPC-C, care simulează o încărcare de procesare tranzacțională în condiții reale, cea de-a șaptea versiune beta OrioleDB a demonstrat un avantaj semnificativ față de motorul standard PostgreSQL. Testarea a fost realizată cu un număr variat de clienți activi simultan, pentru a evalua scalabilitatea și performanța sistemului sub o încărcare crescută.
În testele care evaluează lățimea de bandă a tranzacțiilor, motorul OrioleDB a atins o lățime de bandă mai mare, măsurată în tranzacții pe minut (tpmC). Pe măsură ce numărul de clienți a crescut, performanța OrioleDB a continuat să crească liniar, în timp ce motorul Heap din PostgreSQL a arătat o tendință de stagnare și chiar o scădere după un anumit prag.



În testele de timp de răspuns, timpul mediu de răspuns al tranzacțiilor în OrioleDB a fost semnificativ mai mic comparativ cu PostgreSQL. Astfel, sistemele bazate pe OrioleDB pot procesa mai multe tranzacții în aceeași perioadă, oferind în același timp un serviciu mai rapid la cereri. Când s-a măsurat utilizarea resurselor, motorul OrioleDB a demonstrat o utilizare mai eficientă a CPU-ului și memoriei, datorită gestionării optimizate a resurselor.
Sursa: opennet.ro
