Beta-version av lagringsmotorn OrioleDB beta7 har presenterats och resultaten av nya tester har publicerats, som visar en betydande prestandaökning jÀmfört med traditionell PostgreSQL. I version beta7 har optimeringar implementerats för att förbÀttra hanteringen av flertrÄdade belastningar och pÄskynda lÀs- och skrivoperationer. Den första stabila versionen av OrioleDB planeras att slÀppas 2025. Motorn Àr skriven i C och distribueras under PostgreSQL-licensen, som liknar BSD och MIT-licenserna.
Projektet OrioleDB utvecklar en alternativ lagringsmotor för PostgreSQL, utformad för att övervinna begrÀnsningarna hos den standardiserade lagringsmetoden och öka systemets övergripande effektivitet. Till exempel, OrioleDB gör det möjligt att undvika att köra VACUUM-operationen regelbundet för att rensa upp, tack vare implementeringen av MVCC (Multi-Version Concurrency Control) med hjÀlp av ÄterstÀllningsloggar (undo logs), som fungerar pÄ nivÄer av individuella block och rader, samt ett automatiskt sammanfogningssystem för datainnehÄllande sidor. OrioleDB anvÀnder ocksÄ 64-bitars transaktionsidentifierare, vilket löser problemet med överfulla rÀknare.
För att förenkla anvÀndningen i distribuerade system och parallellisera operationer i OrioleDB har en WAL-logg för transaktioner organiserats pÄ radnivÄ. Vid utförandet av UPDATE-operationer stödjs platsÀndring av data (utan att frigöra den aktuella posten och skapa en ny), vilket har en positiv inverkan pÄ prestanda. I OrioleDB har ocksÄ funktioner sÄsom att lÀsa datasidor utan att anvÀnda lÄs, direktkoppla sidor i RAM-minnet med sidor i bestÀndigt lagring, samt tillÀmpa CoW (copy-on-write) vid skapande av kontrollpunkter för att generera konsekventa ögonblicksbilder vid vilken tidpunkt som helst, implementerats, liksom lagring av data i komprimerad form med hjÀlp av ZSTD-algoritmen.
Bland de begrĂ€nsningar som finns i sjunde beta-versionen av OrioleDB mĂ€rks möjligheten att endast anvĂ€nda index i B-tree-format (stöd för alla typer av index i PostgreSQL kommer att tillkomma i framtiden), samt avsaknaden av stöd för förberedda transaktioner (PREPARE TRANSACTION) och kommandot âREINDEXâ i lĂ€get âCONCURRENTLYâ. OrioleDB Ă€r implementerat som ett tillĂ€gg som krĂ€ver Ă€ndringar i den centrala kodbasen av PostgreSQL.
I prestandatesterna TPC-C, som simulerar belastningen frÄn transaktionsbearbetning under verkliga förhÄllanden, visade sjunde beta-versionen av OrioleDB betydande överlÀgsenhet jÀmfört med den standard PostgreSQL-motorn. Tester genomfördes med olika antal samtidiga klienter för att bedöma skalbarheten och prestandan hos systemet under ökad belastning.
I tester som utvÀrderar transaktionsgenomströmningen uppnÄdde OrioleDB en högre genomströmning, mÀtt i transaktioner per minut (tpmC). NÀr antalet klienter ökade fortsatte prestandan hos OrioleDB att vÀxa linjÀrt, medan Heap-motorn i PostgreSQL visade en tendens till stagnation och till och med nedgÄng efter en viss grÀns.



I testerna för svarstid var den genomsnittliga svarstiden för transaktioner i OrioleDB tydligt lÀgre jÀmfört med PostgreSQL. DÀrför kan system baserade pÄ OrioleDB hantera fler transaktioner under samma tidsperiod, samtidigt som de erbjuder snabbare svar pÄ förfrÄgningar. Vid mÀtning av resursanvÀndning visade OrioleDB en mer effektiv anvÀndning av CPU och minne, tack vare optimerad resursförvaltning.
KĂ€lla: opennet.ru
