Version beta7 e motorit të ruajtjes OrioleDB është prezantuar dhe janë publikuar rezultatet e testimeve të reja që demonstrojnë një rritje të konsiderueshme të performancës krahasuar me PostgreSQL-in tradicional. Në versionin beta7 janë implementuar optimizime për të përmirësuar funksionimin me ngarkesa me shumë pjesëmarrës dhe për të përshpejtuar operacionet e leximit dhe shkruajtur. Lëshimi i parë stabil i OrioleDB pritet të formohet në vitin 2025. Motorri është shkruar në gjuhën C dhe shpërndahet nën licencën PostgreSQL, e ngjashme me licencat BSD dhe MIT.
Projekti OrioleDB zhvillon një motor alternativ të ruajtjes për PostgreSQL, i zhvilluar me qëllim për të kapërcyer kufizimet e mekanizmit standard të ruajtjes dhe për të rritur efikasitetin e përgjithshëm të sistemit. Për shembull, OrioleDB lejon shmangien e ekzekutimit periodic të operacionit VACUUM për grumbullimin e mbeturinave, falë implementimit të mekanizmit MVCC (Kontrolli i Konkurencës me Versione të Shumta) mbi bazën e regjistrave të tërheqjes (undo logs), që punojnë në nivelin e blloqeve dhe rreshtave individualë, si dhe një sistemi automatik të bashkimit të faqeve që përmbajnë të dhëna. OrioleDB gjithashtu përdor identifikues 64-bitësh të transaksioneve, që zgjidh problemin e mbushjes së numëruesve.
Për të thjeshtuar përdorimin në sisteme të shpërndara dhe për të paralelizuar operacionet, OrioleDB ka organizuar mbajtjen e regjistrit WAL të transaksioneve në nivelin e rreshtave. Kur ekzekutohet operacioni UPDATE, mbështetet zëvendësimi i të dhënave në vend (pa çliruar regjistrin aktual dhe krijuar një të ri), çka ka një ndikim pozitiv në performancë. Në OrioleDB gjithashtu janë implementuar mundësi të tilla si leximi i faqeve me të dhëna pa përdorur bllokime, lidhja direkte e faqeve në memorjen operative me faqet në ruajtjen e përhershme, aplikimi i mekanizmit CoW (copy-on-write) gjatë konfirmimit të pikave kontrolluese për të krijuar snapshot-e të qëndrueshme në çdo moment dhe mënyra e ruajtjes së të dhënave në format të kompresuar duke përdorur algoritmin ZSTD.
Nga kufijtë e pranishëm në versionin e shtatë beta të OrioleDB, është i dukshëm mundësia e përdorimit vetëm të indekseve në formatin B-tree (në të ardhmen do të ketë mbështetje për të gjitha llojet e indekseve PostgreSQL), si dhe mungesa e mbështetjes për transaksionet e parapara (PREPARE TRANSACTION) dhe komandës 'REINDEX' në modin 'CONCURRENTLY'. OrioleDB është implementuar si një zgjerim i lidhur, duke kërkuar ndryshime në bazën e kodit të PostgreSQL.
Në testet e performancës TPC-C, të cilat simulojnë ngarkesën e përpunimit të transaksioneve në kushte reale, versioni i shtatë beta i OrioleDB tregoi një superioritet të dukshëm mbi motorin standard PostgreSQL. Testimi u realizua me një numër të ndryshëm klientësh që punonin njëkohësisht, për të vlerësuar shkallëzueshmërinë dhe performancën e sistemit me rritjen e ngarkesës.
Në testet që vlerësojnë kapacitetin e transaksioneve, motori OrioleDB arrin një kapacitet më të lartë, i matur në transaksione për minutë (tpmC). Ndërsa rritej numri i klientëve, performanca e OrioleDB vazhdoi të rritet në mënyrë lineare, ndërsa motori Heap në PostgreSQL tregonte një tendencë për stagnim dhe madje rënie pas një kufiri të caktuar.



Në testet për kohën e përgjigjes, koha mesatare e përgjigjes për transaksionet në OrioleDB ishte dukshëm më e ulët në krahasim me PostgreSQL. Kështu, sistemet e bazuara në OrioleDB mund të përpunojnë më shumë transaksione brenda të njëjtës periudhë kohe, duke ofruar gjithashtu një shërbim më të shpejtë të kërkesave. Kur maten përdorimet e resurseve, motori OrioleDB tregoi një përdorim më efikas të CPU dhe memories, falë menaxhimit të optimizuar të resurseve.
Burimi: opennet.ru
