Sedma beta verzija OrioleDB, visoko performansnog skladišnog motora za PostgreSQL

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.

Sedma beta verzija OrioleDB, visoko performansnog skladišnog motora za PostgreSQL
Sedma beta verzija OrioleDB, visoko performansnog skladišnog motora za PostgreSQL
Sedma beta verzija OrioleDB, visoko performansnog skladišnog motora za PostgreSQL

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

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster