Den syvende beta-version af OrioleDB, en højtydende lagermotor til PostgreSQL

Beta-version af lagermotoren OrioleDB beta7 er blevet præsenteret, og resultaterne af nye tests, der viser en betydelig stigning i ydeevnen sammenlignet med den traditionelle PostgreSQL, er offentliggjort. I version beta7 er der blevet implementeret optimeringer, der sigter mod at forbedre håndteringen af multitrådede belastninger og fremskynde læse- og skriveoperationer. Den første stabile version af OrioleDB forventes at blive fastlagt i 2025. Motoren er skrevet i sprog C og distribueres under PostgreSQL-licensen, der ligner BSD- og MIT-licenserne.

Projektet OrioleDB udvikler en alternativ lagermotor til PostgreSQL, designet til at overvinde begrænsningerne ved den standardlagermekanisme og forbedre systemets samlede effektivitet. For eksempel gør OrioleDB det muligt at undgå den periodiske udførelse af VACUUM-operationen til affaldssamling ved at implementere en MVCC (Multi-Version Concurrency Control) mekanisme baseret på undo logs, der fungerer på niveauet for individuelle blokke og rækker samt et automatisk sammensmeltning af sider, der indeholder data. OrioleDB bruger også 64-bit transaktions-ID'er, som løser problemet med overløb af tællere.

For at forenkle brugen i distribuerede systemer og parallelisere operationer i OrioleDB er der organiseret en WAL-log for transaktioner på rækker. Ved udførelse af en UPDATE-operation understøttes på-stedet dataskift (uden at frigive den nuværende post og oprette en ny), hvilket positivt påvirker ydeevnen. I OrioleDB er der også implementeret funktioner som læsning af data sider uden brug af låse, direkte binding af sider i RAM til sider i permanent lager, anvendelse af CoW (copy-on-write) mekanisme ved fastsættelse af kontrolpunkter for at skabe konsistente snapshots på ethvert tidspunkt, og en lagringsmetode med komprimerede data ved hjælp af ZSTD-algoritmen.

Bland de begrænsninger, der er til stede i den syvende beta-version af OrioleDB, bemærkes det, at kun indekser i B-tree format kan anvendes (støtte til alle typer indekser i PostgreSQL vil blive tilføjet i fremtiden), og der er heller ikke støtte til forberedte transaktioner (PREPARE TRANSACTION) samt kommandoen «REINDEX» i «CONCURRENTLY» tilstand. OrioleDB er implementeret som en plug-in udvidelse, der kræver ændringer i PostgreSQL's hovedkodebase.

I TPC-C ydeevnetests, der simulerer belastningen af transaktionsbehandling under reelle forhold, har den syvende beta-version af OrioleDB vist en markant overlegenhed i forhold til den oprindelige PostgreSQL-motor. Testningen blev udført med forskellige antal samtidig aktive klienter for at vurdere systemets skalerbarhed og ydeevne under stigende belastning.

Ved tests, der vurderer transaktionsgennemstrømning, opnåede OrioleDB-motoren en højere gennemstrømning, målt i transaktioner pr. minut (tpmC). Efterhånden som antallet af klienter steg, fortsatte OrioleDB's ydeevne med at vokse lineært, mens Heap-motoren i PostgreSQL viste tendenser til stagnation og endda fald efter et bestemt tærskel.

Den syvende beta-version af OrioleDB, en højtydende lagermotor til PostgreSQL
Den syvende beta-version af OrioleDB, en højtydende lagermotor til PostgreSQL
Den syvende beta-version af OrioleDB, en højtydende lagermotor til PostgreSQL

I tests for responstid var den gennemsnitlige responstid for transaktioner i OrioleDB markant lavere sammenlignet med PostgreSQL. Dermed kan systemer baseret på OrioleDB håndtere flere transaktioner inden for samme tidsramme, samtidig med at de sikrer hurtigere behandling af forespørgsler. Ved måling af ressourceforbrug viste OrioleDB-motoren mere effektiv brug af CPU og hukommelse takket være optimeret ressourcehåndtering.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster