Sepa beta-versio de OrioleDB, alt-efikeca stokadmotoro por PostgreSQL

Beta-versio de la OrioleDB beta7-stoka motoro estis lanĉita kaj novaj komparnormaj rezultoj estis publikigitaj montrante signifajn rendimentajn plibonigojn super tradicia PostgreSQL. En versio beta7, optimumigoj estis lanĉitaj por plibonigi uzadon de plurfadenaj laborkvantoj kaj akceli legadon kaj skriban operaciojn. La unua stabila eldono de OrioleDB estas planita por 2025. La motoro estas skribita en C kaj distribuita sub la licenco PostgreSQL, simila al la licencoj BSD kaj MIT.

La OrioleDB-projekto disvolvas alternativan stokan motoron por PostgreSQL, desegnita por venki la limojn de la norma stoka motoro kaj plibonigi ĝeneralan sisteman efikecon. Ekzemple, OrioleDB ebligas vin sen perioda ekzekuto de la VACUUM-operacio por rubokolektado, danke al la efektivigo de la mekanismo MVCC (Multi-Version Concurrency Control) bazita sur malfaraj protokoloj funkciigantaj ĉe la nivelo de individuaj blokoj kaj vicoj, ankaŭ kiel sistemo por aŭtomate kunfandi paĝojn enhavantajn datumojn. OrioleDB ankaŭ uzas 64-bitajn transakciajn identigilojn, kiuj solvas la problemon de nombrilo superflua.

Por simpligi uzon en distribuitaj sistemoj kaj paraleligi operaciojn, OrioleDB konservas WAL-transakcian protokolon ĉe la vicnivelo. Kiam oni faras ĜISDATIGAN operacion, estas subtenata anstataŭigi datumojn (sen liberigi la nunan rekordon kaj krei novan), kio havas pozitivan efikon al agado. OrioleDB ankaŭ efektivigas funkciojn kiel legado de datumpaĝoj sen uzi serurojn, rekte ligi paĝojn en RAM kun paĝoj en konstanta stokado, uzante la mekanismon CoW (kopi-sur-skribi) kiam riparas kontrolpunktojn por krei konsekvencajn momentfotojn iam ajn, kunpremitan datumstokadoreĝimon. uzante la ZSTD-algoritmon.

Inter la limigoj ĉeestantaj en la sepa beta-versio de OrioleDB, oni rimarkas la eblon uzi nur indeksojn en la formato B-arbo (en la estonteco estos subteno por ĉiuj specoj de PostgerSQL-indeksoj), same kiel la manko de subteno por antaŭpreparitaj transakcioj (PRPARA TRANSACTION) kaj la komando "REINDEX" en la "SUMMEDE" reĝimo " OrioleDB estas efektivigita kiel kromprogramo, kiu postulas ŝanĝojn al la ĉefa kodbazo de PostgreSQL.

En TPC-C-efikectestoj, kiuj simulas realmondajn transakciajn pretigajn laborŝarĝojn, la sepa beta-versio de OrioleDB montris signifan superecon super la akcia motoro PostgreSQL. Testado estis farita kun malsamaj nombroj da samtempaj klientoj por taksi la skaleblon kaj rendimenton de la sistemo dum la ŝarĝo pliiĝis.

En testoj kiuj taksas transakcian trairon, la OrioleDB-motoro atingis pli altan trairon mezurita en transakcioj je minuto (tpmC). Ĉar la nombro da klientoj pliiĝis, la agado de OrioleDB daŭre kreskis linie, dum la Heap-motoro de PostgreSQL emis stagni kaj eĉ malkreski preter certa sojlo.

 Sepa beta-versio de OrioleDB, alt-efikeca stokadmotoro por PostgreSQL
 Sepa beta-versio de OrioleDB, alt-efikeca stokadmotoro por PostgreSQL
 Sepa beta-versio de OrioleDB, alt-efikeca stokadmotoro por PostgreSQL

En respondtempaj testoj, la meza transakcia respondtempo en OrioleDB estis rimarkeble pli malalta kompare kun PostgreSQL. Tiel, OrioleDB-bazitaj sistemoj povas prilabori pli da transakcioj en la sama kvanto de tempo, dum ili provizas pli rapidan demandservon. Dum mezurado de uzado de rimedoj, la motoro OrioleDB montris pli efikan uzadon de CPU kaj memoro pro optimumigita administrado de rimedoj.

fonto: opennet.ru

Aldoni komenton