Predstavljena je beta verzija sustava pohrane OrioleDB beta7 i objavljeni su rezultati novih testova koji pokazuju značajno poboljšanje performansi u usporedbi s tradicionalnim PostgreSQL-om. U verziji beta7 implementirane su optimizacije usmjerene na poboljšanje rada s višekratnim opterećenjima i ubrzanje operacija čitanja i pisanja. Prvo stabilno izdanje OrioleDB-a planirano je za 2025. godinu. Sustav je napisan na jeziku C i javno je dostupan pod PostgreSQL licencom, sličnom BSD i MIT licenci.
Projekt OrioleDB razvija alternativni sustav pohrane za PostgreSQL, dizajniran s ciljem prevladavanja ograničenja standardnog mehanizma pohrane i poboljšanja ukupne učinkovitosti sustava. Na primjer, OrioleDB omogućuje izbjegavanje periodičnog izvođenja operacije VACUUM za prikupljanje smeća, zahvaljujući implementaciji MVCC (Multi-Version Concurrency Control) mehanizma temeljenog na zapisima povratka (undo logs) koji djeluju na razini pojedinačnih blokova i redaka, kao i sustava automatskog spajanja stranica koje sadrže podatke. OrioleDB također koristi 64-bitne identifikatore transakcija, što rješava problem prepunjenja brojila.
Kako bi se olakšalo korištenje u distribuiranim sustavima i paralelizirale operacije, u OrioleDB-u je organizirano vođenje WAL loga transakcija na razini redaka. Prilikom izvođenja UPDATE operacije, podržava se zamjena podataka na mjestu (bez oslobađanja trenutnog zapisa i stvaranja novog), što pozitivno utječe na performanse. U OrioleDB-u su također implementirane funkcionalnosti kao što su čitanje stranica s podacima bez korištenja zaključavanja, izravno povezivanje stranica u radnoj memoriji sa stranicama u trajnom spremištu, primjena CoW (copy-on-write) mehanizma pri postavljanju kontrolnih točaka za stvaranje dosljednih snimaka u bilo kojem trenutku te način pohrane podataka u komprimiranom obliku korištenjem ZSTD algoritma.
Među ograničenjima sedme beta verzije OrioleDB ističe se mogućnost korištenja samo indeksa u B-tree formatu (u budućnosti će biti podržani svi tipovi indeksa PostgreSQL), te nedostatak podrške za unaprijed pripremljene transakcije (PREPARE TRANSACTION) i naredbu 'REINDEX' u 'CONCURRENTLY' režimu. OrioleDB je implementiran kao dodatak koji zahtijeva izmjene u osnovnoj kodnoj bazi PostgreSQL.
U TPC-C performansnim testovima, koji simuliraju opterećenje transakcijske obrade u stvarnim uvjetima, sedma beta verzija OrioleDB pokazala je značajno poboljšanje u odnosu na standardni PostgreSQL engine. Testiranje je provedeno s različitim brojem istovremeno aktivnih klijenata kako bi se procijenila skalabilnost i performanse sustava pri povećanju opterećenja.
U testovima koji su ocjenjivali propusnost transakcija, OrioleDB motor postigao je veću propusnost, mjerenu u transakcijama po minuti (tpmC). S povećanjem broja klijenata, performanse OrioleDB su nastavile linearno rasti, dok je motor Heap u PostgreSQL pokazivao tendenciju stagnacije pa čak i opadanja nakon određenog praga.



U testovima vremena odziva, prosječno vrijeme odziva transakcija u OrioleDB bilo je znatno niže u usporedbi s PostgreSQL. Na taj način, sustavi temeljeni na OrioleDB mogu obrađivati više transakcija u istom vremenskom okviru, pri čemu pružaju brže usluge zahtjeva. Kada se mjeri korištenje resursa, OrioleDB motor pokazao je učinkovitije korištenje CPU-a i memorije, zahvaljujući optimiziranom upravljanju resursima.
Izvor: opennet.ru
