Lausete arv: 341 - Sõnade arv: 3882
Analüüsiks kulunud aeg: 152.089 sekundit
Uus analüüs
Vaatleme
Vaatleme saadud tulemusi eraldi joonisel 7.
Ülevaade andmebaasi juhtimissüsteemidest: Post-greSQL ja MariaDB Selles peatükis kirjeldatakse, mis on PostgreSQL ja MariaDB, antakse nende andmebaaside juhtimissüsteemide ülevaade ja võrdlus ning selgitatakse, miks valiti just PostgreSQL ja Ma-riaDB.
1.1 PostgreSQL PostgreSQL on avatud lähtekoodiga objekt-relatsiooniline andmebaasi juhtimissüsteem, mis kasutab ja laiendab SQL-keelt paljude funktsioonidega, mis turvaliselt talletavad andmeid ja kannatavad suure andmevoo koormusi [3].
Tabel 3: Turvameetodid [20] PostgreSQL MariaDB Andmebaasil PostgreSQL on kliendi / serveri kommunikatsiooni krüpteerimiseks olemas na-tiivne SSLJtugi [20]K Andmebaasil PostgreSQL on luba ja päritud rollid õiguste seadmiseks ja säilitamiseks [21]K Lisaks sellele on andmebaasil PostgreSQL kaaJsas sisseehitatud lisaseade SEJPostgreSQL, mis pakub täiendavat juurdepääsu kontrolli, mis põ-hineb SELinuxi turvapoliitikal [22]K Selleks, et tagada turvalisust, kasutab MariaDB siJsemise turvalisuse ja parooli kontrolli [23].
Koormuse testimine tuvastab tavaliselt [28]: 1. rakenduse maksimaalse töövõime; 2. määrab, kas praegune infrastruktuur on rakenduse käivitamiseks piisav; 3. selgitab välja samaaegsete kasutajate arvu, mida rakendus saab toetada, ja laiendata-vuse, et võimaldada rohkematel kasutajatel seda kasutada.
TPC-Ci spetsifikatsiooni rakendamisel on oluline eelis, sest see näitab, et test on usaldusväärne ja tagab, et saadakse täpseid, korduvaid [32].
Termin "Warehouse" („Ladu”) TPC-C kontekstis ei ole seotud "Data Warehousing" („Andmete ladustamine”) töökoormusega, kuna TPC-C määratleb transaktsioonipõhise süsteemi, mitte otsuste tuge [40, 41].
Joonis 3: Muudatused kasutajaliideses Selleks, et vältida “Unmatched Background Error” viga, ei tohi muuta tähendust, mis asub
Kuna HammerDB mõõdab täpsusega 1%, aga antud juhul MariaDB* näitas tulemusi, mis on 0,3% suurem, võib öelda, et MariaDB* ja PostgreSQL andsid sama tulemuse.
Osalause(d), mille ette läheb koma
Originaallause
ladusid ja müügipiirkondi lisanduda [40].
Oluline on märkida, et ettevõtte suurus ei ole fikseeritud ja ettevõtte kas-vades võib ladusid ja müügipiirkondi lisanduda [40].
lisas number IX.
Muudetud failide näide asub lisas number IX.
Poolt-tarind on võõrapärane vorm, mis jätab lauses tegija tagaplaanile.
MariaDBi andmebaasi juh-timissüsteem on loodud MySQLi algsete arendajate poolt ja on tagatud, et see jääb avatud läh-tekoodiga serveriks [5].
1.4.1 PostgreSQL platvormi tugi Platvorm loetakse PostgreSQL arendusringkonna poolt toetatuks, kui kood sisaldab sätteid sel-lel platvormil töötamiseks ja on kontrollitud, et selle platvormi regressiooni testimine (vt lisa I) on läbitud [16].
Öeldistäiteks olev v- või tav- kesksõna võib mõjuda bürokraatlikult.
PostgreSQL, mis töötab kõigis peamistes operatsioonisüsteemides, on ala-tes 2001. aastast ACID (ingl Atomicity, Consistency, Isolation, Durability, vt lisa I) ühilduv [3].
Koormuse testimine tuvastab tavaliselt [28]: 1. rakenduse maksimaalse töövõime; 2. määrab, kas praegune infrastruktuur on rakenduse käivitamiseks piisav; 3. selgitab välja samaaegsete kasutajate arvu, mida rakendus saab toetada, ja laiendata-vuse, et võimaldada rohkematel kasutajatel seda kasutada.
Seda on soovitav teha, kui masin kasutab protsessorit arhitektuuriga Skylake või ut_delay võ-tab liiga palju protsessori (CPU) ressurssi [46, 47].
Märgib omaduste või seisundite juhuslikkust, ajutist iseloomu.
Parem on
kasutada kindlamat kõneviisi.
Viimaste loomiseks ja haldamiseks on olemas palju erinevaid andmebaaside juhtimissüsteeme (ABJS, ingl DMBS).
Tabel 3: Turvameetodid [20] PostgreSQL MariaDB Andmebaasil PostgreSQL on kliendi / serveri kommunikatsiooni krüpteerimiseks olemas na-tiivne SSLJtugi [20]K Andmebaasil PostgreSQL on luba ja päritud rollid õiguste seadmiseks ja säilitamiseks [21]K Lisaks sellele on andmebaasil PostgreSQL kaaJsas sisseehitatud lisaseade SEJPostgreSQL, mis pakub täiendavat juurdepääsu kontrolli, mis põ-hineb SELinuxi turvapoliitikal [22]K Selleks, et tagada turvalisust, kasutab MariaDB siJsemise turvalisuse ja parooli kontrolli [23].
Põhi-lised mõõtmise ühikud andmebaaside juhtimissüsteeme mõõtmiseks on järgnevad [29]: 1.
Koormuse testimine tuvastab tavaliselt [28]: 1. rakenduse maksimaalse töövõime; 2. määrab, kas praegune infrastruktuur on rakenduse käivitamiseks piisav; 3. selgitab välja samaaegsete kasutajate arvu, mida rakendus saab toetada, ja laiendata-vuse, et võimaldada rohkematel kasutajatel seda kasutada.
Erinevate andmebaaside võrdlemiseks on vaja kasutada NOPMi näitajat [38].
Ajalooliselt alustas HammerDB Hammerorana ja toetas ainult Oracle’i andmebaasi, nii et see oli vajalik ainult Oracle TPM esitamiseks.
PostgreSQLi koodi ei olnud muudetud, sest polnud piisavalt informatsiooni ja võimalust jõud-luse parandamiseks koodi muutmise kaudu.
Sammud TPC-Ci käivitamiseks on lisas number VIII (TPC-Hi käivitamiseks on analoogsed sammud).
Sammud TPC-Ci käivitamiseks on lisas number VIII (TPC-Hi käivitamiseks on analoogsed sammud).
Mine-vormi kasutus koos tühiverbiga.
Sel põhjusel võib testiskeem olla kuitahes suur, kuid suurem skeem vajab suuremate transaktsioonide töötlemiseks võimsamat arvutisüs-teemi [40].
Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud.
Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud.
Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV.
Teine mõõtmine toimus pärast juhtimissüsteemi seadistamisest.
Teine mõõtmine toimus pärast juhtimissüsteemi seadistamisest.
PostgreSQLi seadistamine toimub failis postgresql.
MariaDBi seadistamine toimub failis my.
Genereerimise aeg sõltub andmebaasi suurusest ja masinast, kus toimub andmebaasi genereerimine.
|
juhtimissüsteem 39x |
Viimaste loomiseks ja haldamiseks on olemas palju erinevaid andmebaaside juhtimissüsteeme (ABJS, ingl DMBS). Andmebaasi juhtimissüsteemi valimise mõju on pikaaja-line ning selle otsuse muutmine võib hiljem osutuda keeruliseks ja kalliks. Antud töö tegeleb andmebaaside juhtimissüsteemi jõudluse uurimisega, sest jõudlus on üks oluline näitaja, mis mõjutab süsteemi valikut. Käesolevas töös mõõdetakse andmebaaside juhtimissüsteemi jõudluse mõõtmist vabavaraliste vahendite abil. Andmebaasi mõõtmise ja analüüsimise avalikud tulemused võivad rikkuda äri-lisi eesmärke, seega valiti mõõtmiseks mitte firmade tasulisi tooteid, vaid avatud lähtekoodiga tasuta andmebaaside juhtimissüsteeme PostgreSQL ja MariaDB. Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. Kolmandas peatükis kirjeldatakse käesoleva töö raames tehtud andmebaasi juhtimissüsteemi jõudluse mõõtmise ja jõudluse analüüsimise tulemusi. Ülevaade andmebaasi juhtimissüsteemidest : Post-greSQL ja MariaDB Selles peatükis kirjeldatakse, mis on PostgreSQL ja MariaDB, antakse nende andmebaaside juhtimissüsteemide ülevaade ja võrdlus ning selgitatakse, miks valiti just PostgreSQL ja Ma-riaDB. 1.1 PostgreSQL PostgreSQL on avatud lähtekoodiga objekt-relatsiooniline andmebaasi juhtimissüsteem , mis kasutab ja laiendab SQL-keelt paljude funktsioonidega, mis turvaliselt talletavad andmeid ja kannatavad suure andmevoo koormusi [3]. MariaDBi andmebaasi juh-timissüsteem on loodud MySQLi algsete arendajate poolt ja on tagatud, et see jääb avatud läh-tekoodiga serveriks [5]. Põhi-lised mõõtmise ühikud andmebaaside juhtimissüsteeme mõõtmiseks on järgnevad [29]: 1. Andmebaasi juhtimissüsteemi jõudluse mõõtmine Selles peatükis kirjeldatakse andmebaasi juhtimissüsteemi jõudluse mõõtmise protsessi. asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud. Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV. Teine mõõtmine toimus pärast juhtimissüsteemi seadistamisest. Tulemuste analüüs Antud peatükis kirjeldatakse saadud tulemusi, viiakse läbi nende analüüs ning võrreldakse and-mebaaside juhtimissüsteemide jõudlust. Andmebaasi juhtimissüsteemi parameetrid ei olnud seadistatud. Joonis 5: NOPM näitaja sõltuvus virtuaalkasutajate arvust Joonisel 6 on esitatud tulemused pärast andmebaasi juhtimissüsteemi parameetrite muutumist koos tulemusega, mis oli saadud ilma parameetrite muutmiseta. Seega andmebaasi juhtimissüsteemi jõudlust võib tõsta parameetrite muutmisega (lisa-tud parameetrid on lisas number V ja VI). Jooniselt 7 on samuti näha, et andmebaasi juhti-missüsteemide jõudlused erinevad vähem kui varem. Õige seadistamine võib tõsta andmebaasi juhtimissüsteemi jõudlust mitmekordselt. Võrreldakse, kuidas muutus summaarne täitmise aeg pärast andmebaasi juhtimissüsteemi optimeerimist. Kokkuvõte Käesolevas töös võrreldakse PostgreSQLi ja MariaDBi juhtimissüsteeme . Info andmebaaside juhtimissüsteeme võrdlemiseks on võetud ametlikust dokumentatsioonist ja ametlikult wiki lehelt. Töö käigus mõõdeti jõudlust järgmistel andmebaasi juhtimissüsteemidel : PostgreSQL, Ma-riaDB ja MariaDB, mille lähtekoodi oli muudetud. |
|||||||
|
Viimaste loomiseks ja haldamiseks on olemas palju erinevaid andmebaaside juhtimissüsteeme (ABJS, ingl DMBS). Näiteks vajavad masinõppe ja tehisintellekti rakendused palju andmeid ning neid andmeid on vaja kusagil hoida ja kiiresti töödelda. Andmebaasi juhtimissüsteemi valimise mõju on pikaaja-line ning selle otsuse muutmine võib hiljem osutuda keeruliseks ja kalliks. Antud töö tegeleb andmebaaside juhtimissüsteemi jõudluse uurimisega, sest jõudlus on üks oluline näitaja, mis mõjutab süsteemi valikut. Käesolevas töös mõõdetakse andmebaaside juhtimissüsteemi jõudluse mõõtmist vabavaraliste vahendite abil. Andmebaasi mõõtmise ja analüüsimise avalikud tulemused võivad rikkuda äri-lisi eesmärke, seega valiti mõõtmiseks mitte firmade tasulisi tooteid, vaid avatud lähtekoodiga tasuta andmebaaside juhtimissüsteeme PostgreSQL ja MariaDB. Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. | |||||||
|
Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Tutvustada olemasolevaid mõõtmismeetodeid ja tööriistu, millega võib jõudlust mõõta; 4. Leida vabavaraline jõudluse mõõtmise tööriist; 5. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. | |||||||
|
Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Võrreldakse järgmisi parameetreid: hallatavate andmete maksimaalne hulk ehk mahtuvus, platvormi tugi ja turvali-sus. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. | |||||||
|
lähtekood 19x |
Andmebaasi mõõtmise ja analüüsimise avalikud tulemused võivad rikkuda äri-lisi eesmärke, seega valiti mõõtmiseks mitte firmade tasulisi tooteid, vaid avatud lähtekoodiga tasuta andmebaaside juhtimissüsteeme PostgreSQL ja MariaDB. Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. PostgreSQL valiti sellepärast, et see on üks populaarsemaid avatud lähtekoodiga andmebaase [2]. MariaDB valiti, kuna selle populaarsus kasvab kiiresti ja praegu on see samuti üks enim-kasutatavaid avatud lähtekoodiga andmebaase [2]. 1.1 PostgreSQL PostgreSQL on avatud lähtekoodiga objekt-relatsiooniline andmebaasi juhtimissüsteem, mis kasutab ja laiendab SQL-keelt paljude funktsioonidega, mis turvaliselt talletavad andmeid ja kannatavad suure andmevoo koormusi [3]. PostgreSQL on pälvinud hea maine oma asjakohase arhitektuuri, usaldusväär-suse, laiendatavuse (ingl scalability, vt lisa I) poolest ja tarkvara taga oleva kogukonna pühen-dumisele avatud lähtekoodi täiendamisele, et pakkuda järjepidevalt tulemuslikke ja uuendus-likke lahendusi [3]. PostgreSQL avaldatakse PostgreSQLi litsentsi alusel, mis on avatud lähtekoodiga litsents. MariaDBi andmebaasi juh-timissüsteem on loodud MySQLi algsete arendajate poolt ja on tagatud, et see jääb avatud läh-tekoodiga serveriks [5]. PostgreSQL Build Farm on levinud süsteem Post-greSQL lähtekoodi muutuste automaatseks testimiseks paljudel erinevatel platvormidel [17]. HammerDB valiti sellepärast, et see on avatud lähtekoodiga võrdlusuuringute ja koormuse testimise tarkvara ning sellel on aktiivne 16 kogukond. Samuti mõõdetakse kompileeritud andmebaasi MariaDB, mille lähtekoodi oli muudetud. Läh-tekoodis oli muudetud viivituse kordaja, kuna eelnev kordaja võib põhjustada aeglast tööd [46]. MariaDBi lähtekoodis oli muudetud delay (viivituse) kordaja failis ut0ut. MariaDBi lähtekoodi oli muudetud, seega edaspidi „MariaDB*“ tähendab, et MariaDB lähtekoodi oli muudetud (viivituse kordaja on muudetud). „MariaDB*“ tähendab, et MariaDB lähtekoodi oli muudetud. Töö käigus mõõdeti jõudlust järgmistel andmebaasi juhtimissüsteemidel: PostgreSQL, Ma-riaDB ja MariaDB, mille lähtekoodi oli muudetud. MariaDBi lähtekoodis oli muudetud viivi-tuse kordaja, kuna leiti informatsiooni, et viivituse kordaja võib põhjustada aeglast tööd. |
|||||||
|
seadistamine 10x |
Uurida, kuidas muutub andmebaaside jõudlus pärast seadistamist . asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Teine mõõtmine toimus pärast juhtimissüsteemi seadistamisest . PostgreSQLi seadistamine toimub failis postgresql. Probleemid on seotud HammerDBi seadistamisega .
Seadistamise
jaoks peab kood asuma 28 Saadetud tulemusest on nähe, et PostgreSQL ja MariaDB jõudlust sõltub seadistamist . Õige seadistamine võib tõsta andmebaasi juhtimissüsteemi jõudlust mitmekordselt. |
|||||||
|
jõudlus 57x |
Antud töö tegeleb andmebaaside juhtimissüsteemi jõudluse uurimisega, sest jõudlus on üks oluline näitaja, mis mõjutab süsteemi valikut. Käesolevas töös mõõdetakse andmebaaside juhtimissüsteemi jõudluse mõõtmist vabavaraliste vahendite abil. Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. Kaaluti ka MongoDBi1 ja süsteemi Redis2 analüüsimist, aga nende kohta on juba jõudluse uuringud ole-mas. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Tutvustada olemasolevaid mõõtmismeetodeid ja tööriistu, millega võib jõudlust mõõta; 4. Leida vabavaraline jõudluse mõõtmise tööriist; 5. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. Uurida, kuidas muutub andmebaaside jõudlus pärast seadistamist. Esimeses peatükis on antakse ülevaade teoreetilisest lähene-misest jõudluse mõõtmisele. Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. Tuuakse välja ka jõudluse mõõtmise mõisted. Kolmandas peatükis kirjeldatakse käesoleva töö raames tehtud andmebaasi juhtimissüsteemi jõudluse mõõtmise ja jõudluse analüüsimise tulemusi. Percona XtraDB on täiustatud versioon InnoDBi salvestusmootorist, mis on mõeldud kaasaegsele riistvarale pare-maks laiendatavuseks ja sisaldab mitmeid muid funktsioone, mis on kasulikud suure jõudlu-sega keskkonnas [8]. Sageli on võimalik tugineda toetamata CPU tüübile, kuid jõudlus võib olla halb [16]. 3 https://mariadb.atlassian.net/browse/MDEV-4691 13 1.6 Andmebaasi jõudluse mõõtmise meetodeid ja ühikud Andmebaasi jõudluse mõõtmine on tarkvara mittefunktsionaalse testimise vorm, mis kesken-dub sellele, kuidas süsteem töötab etteantud koormuse all ning on mõeldud süsteemi valmiduse määramiseks [24]. Jõudluse mõõtmine määrab kindlaks, kas tarkvara vastab eeldatavate töö koormuste korral laiendatavuse ja stabiilsuse nõuetele [25]. 1.6.1 Jõudluse mõõtmise ühikud ja meetodid Põhilised jõudluse mõõtmise meetodid on koormuse testimine (ingl load testing) ja stressites-timine (ingl stress testing) [27]. Jõudluse mõõtmise ühikud sõltuvad süsteemide eripärasusest ja mõõtmise eesmärkidest. Andmebaasi juhtimissüsteemi jõudluse mõõtmine Selles peatükis kirjeldatakse andmebaasi juhtimissüsteemi jõudluse mõõtmise protsessi. Jõud-luse mõõtmise jaoks kasutatakse koormuse testimismeetodeid. Jõudluse mõõtmiseks kasutatakse teste, mis on tehtud TPCi (ingl Transaction Processing Per-formance Council) jõudlustestide baasil. Jõudluse mõõtmiseks valiti jõudlustes-tid TPCi baasil, sest TPC on andmebaasi tööstuse kõige tuntum viis, et määratleda andmebaasi jõudluse standard, mida tunnustavad kõik juhtivad andmebaasi müüjad [32]. Iseseisvalt luua tööriist, mille abil mõõta andmebaasi jõudlust ; 2. Andmebaasi jõudluse mõõtmiseks valiti HammerDB. Ham-merDBi eesmärk on mõõta suhtelist, mitte absoluutset andmebaasi jõudlust süsteemide vahel [36]. HammerDB annab kaks jõudluse parameetrit TPMi ( ingl Transactions per Minute) ja NOPMi (uusi tellimusi minutis, ingl New Orders per Minute) süsteemide võrdlemiseks [35] . asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Jõudluse mõõtmine koosneb kahest etapist. Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV. PostgreSQLi koodi ei olnud muudetud, sest polnud piisavalt informatsiooni ja võimalust jõud-luse parandamiseks koodi muutmise kaudu. 2.3 Ette tulnud probleemid Selles peatükis kirjeldatakse jõudluse mõõtmisel tekkivaid probleeme ja lahendusi. Tulemuste analüüs Antud peatükis kirjeldatakse saadud tulemusi, viiakse läbi nende analüüs ning võrreldakse and-mebaaside juhtimissüsteemide jõudlust . Käesoleva töö raames oli tehtud MariaDB ja Post-greSQL jõudluse mõõtmine. Keskmiselt on MariaDB* 1,18 korda kiirem ehk viivituse kordaja muutumine tõstis MariaDBi jõudlust 1,18 korda. Seega andmebaasi juhtimissüsteemi jõudlust võib tõsta parameetrite muutmisega (lisa-tud parameetrid on lisas number V ja VI). Jooniselt 7 on samuti näha, et andmebaasi juhti-missüsteemide jõudlused erinevad vähem kui varem. 28 Saadetud tulemusest on nähe, et PostgreSQL ja MariaDB jõudlust sõltub seadistamist. Õige seadistamine võib tõsta andmebaasi juhtimissüsteemi jõudlust mitmekordselt. TPC-H-põhine jõudlustest oli käi-vitatud PostgreSQLi jaoks uuesti, aga saadi samad tulemused. Töö käigus mõõdeti jõudlust järgmistel andmebaasi juhtimissüsteemidel: PostgreSQL, Ma-riaDB ja MariaDB, mille lähtekoodi oli muudetud. Jõudluse mõõtmiseks kasutati tööriista nimega HammerDB. Töö raames kirjeldatakse jõudluse mõõtmise protsessi, seletatakse sellega seotud mõisteid nagu TPC-C ja TPC-H ning kirjelda-takse HammerDB töö põhimõtted. Jõudluse mõõtmine oli tehtud TPC-C- ja TPC-H-põhiste testidega. |
|||||||
|
Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. Kaaluti ka MongoDBi1 ja süsteemi Redis2 analüüsimist, aga nende kohta on juba jõudluse uuringud ole-mas. Antud bakalaureusetöö eesmärgid on: 1. Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Tutvustada olemasolevaid mõõtmismeetodeid ja tööriistu, millega võib jõudlust mõõta; 4. Leida vabavaraline jõudluse mõõtmise tööriist; 5. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. Uurida, kuidas muutub andmebaaside jõudlus pärast seadistamist. | |||||||
|
Esimeses peatükis on antakse ülevaade teoreetilisest lähene-misest jõudluse mõõtmisele. Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Võrreldakse järgmisi parameetreid: hallatavate andmete maksimaalne hulk ehk mahtuvus, platvormi tugi ja turvali-sus. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. Põhjendatakse, miks valiti just sellised mõõtmise meetodid ja tööriistad. Tuuakse välja ka jõudluse mõõtmise mõisted. Kolmandas peatükis kirjeldatakse käesoleva töö raames tehtud andmebaasi juhtimissüsteemi jõudluse mõõtmise ja jõudluse analüüsimise tulemusi. | |||||||
|
3 https://mariadb.atlassian.net/browse/MDEV-4691 13 1.6 Andmebaasi jõudluse mõõtmise meetodeid ja ühikud Andmebaasi jõudluse mõõtmine on tarkvara mittefunktsionaalse testimise vorm, mis kesken-dub sellele, kuidas süsteem töötab etteantud koormuse all ning on mõeldud süsteemi valmiduse määramiseks [24]. Jõudluse mõõtmine määrab kindlaks, kas tarkvara vastab eeldatavate töö koormuste korral laiendatavuse ja stabiilsuse nõuetele [25]. Ebatäpsete või halbade näitajatega turule sisenevad rakendused saavad tõenäoliselt halva maine ja ei vasta oodatavatele müügieesmärkidele [26]. 1.6.1 Jõudluse mõõtmise ühikud ja meetodid Põhilised jõudluse mõõtmise meetodid on koormuse testimine (ingl load testing) ja stressites-timine (ingl stress testing) [27]. Jõudluse mõõtmise ühikud sõltuvad süsteemide eripärasusest ja mõõtmise eesmärkidest. | |||||||
|
Andmebaasi juhtimissüsteemi jõudluse mõõtmine Selles peatükis kirjeldatakse andmebaasi juhtimissüsteemi jõudluse mõõtmise protsessi. Jõud-luse mõõtmise jaoks kasutatakse koormuse testimismeetodeid. Stressitestimise meetodeid ei kasutata sellepärast, et selleks on vaja arvutit, mis talub äärmuslikku koormust kuni süsteemi rikke tekkimiseni. Jõudluse mõõtmiseks kasutatakse teste, mis on tehtud TPCi (ingl Transaction Processing Per-formance Council) jõudlustestide baasil. TPC on mittetulundusühing, mis on keskendunud andmepõhiste võrdlusstandardite väljatöötamisele [31]. Jõudluse mõõtmiseks valiti jõudlustes-tid TPCi baasil, sest TPC on andmebaasi tööstuse kõige tuntum viis, et määratleda andmebaasi jõudluse standard, mida tunnustavad kõik juhtivad andmebaasi müüjad [32]. | |||||||
|
asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Andmebaaside versioonid on järgmised: Post-greSQL 11 (64 bit) ja MariaDB 10.3 (64 bit). Sellised versioonid valiti, sest need on kõige uuemad [44, 45]. Jõudluse mõõtmine koosneb kahest etapist. Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud. Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV. | |||||||
|
Jõudluse mõõtmiseks kasutati tööriista nimega HammerDB. Töö raames kirjeldatakse jõudluse mõõtmise protsessi, seletatakse sellega seotud mõisteid nagu TPC-C ja TPC-H ning kirjelda-takse HammerDB töö põhimõtted. Näidatakse, kuidas genereerida andmeid HammerDB abil. Jõudluse mõõtmine oli tehtud TPC-C- ja TPC-H-põhiste testidega. TPC-Ci väärtus näitab tran-saktsioonide arvu minutis. TPC-Hi meetodit kasutati, et leida iga päringu täitmise aeg. Jõudluse mõõtmise järel analüüsiti tulemusi. | |||||||
|
transaktsioon 8x |
Tööriistu HammerDB kasutatakse testiskeemi loomiseks, andmete laadimiseks ja paljude virtuaalsete kasutajate töökoormuste simuleerimiseks andmebaasi suhtes nii transakt-sioonide (vt lisa I) kui ka analüütiliste stsenaariumide puhul. TPM on konkreetse andmebaasi transaktsiooni mõõtmine, mis on tavaliselt defineeritud kui kasutajate päringute sooritamise (ingl commits) ja / või tagasivõtmiste (ingl rollbacks) arv [37]. TPC-C hõlmab viit erinevat tüüpi ja keerukate samaaegsete transaktsioonide kombinatsiooni, mis on teostatud võrgus või mis on järjekorda pandud edasilükkamiseks [39]. TPC-C väärtust mõõdetakse transaktsioonides minutis (tpmC) [39]. Sel põhjusel võib testiskeem olla kuitahes suur, kuid suurem skeem vajab suuremate transaktsioonide töötlemiseks võimsamat arvutisüs-teemi [40]. Töökoormuse määrab viie transaktsiooni kombinatsioon, mis valitakse juhuslikult vastavalt protsendilise väärtuse tasakaalule, mis on näidatud järgmiselt [40] : 1. Transaktsioonide näide on lisas number II. |
|||||||
|
andmebaas 87x |
Suurem osa tarkvarast kasutab, kogub ja hoiab andmeid, seetõttu kasutavad nad andmebaase . Viimaste loomiseks ja haldamiseks on olemas palju erinevaid andmebaaside juhtimissüsteeme (ABJS, ingl DMBS). Andmebaasi juhtimissüsteemi valimise mõju on pikaaja-line ning selle otsuse muutmine võib hiljem osutuda keeruliseks ja kalliks. Antud töö tegeleb andmebaaside juhtimissüsteemi jõudluse uurimisega, sest jõudlus on üks oluline näitaja, mis mõjutab süsteemi valikut. Käesolevas töös mõõdetakse andmebaaside juhtimissüsteemi jõudluse mõõtmist vabavaraliste vahendite abil. Andmebaasi mõõtmise ja analüüsimise avalikud tulemused võivad rikkuda äri-lisi eesmärke, seega valiti mõõtmiseks mitte firmade tasulisi tooteid, vaid avatud lähtekoodiga tasuta andmebaaside juhtimissüsteeme PostgreSQL ja MariaDB. Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. Uurida, kuidas muutub andmebaaside jõudlus pärast seadistamist. Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. Kolmandas peatükis kirjeldatakse käesoleva töö raames tehtud andmebaasi juhtimissüsteemi jõudluse mõõtmise ja jõudluse analüüsimise tulemusi. Ülevaade andmebaasi juhtimissüsteemidest: Post-greSQL ja MariaDB Selles peatükis kirjeldatakse, mis on PostgreSQL ja MariaDB, antakse nende andmebaaside juhtimissüsteemide ülevaade ja võrdlus ning selgitatakse, miks valiti just PostgreSQL ja Ma-riaDB. PostgreSQL valiti sellepärast, et see on üks populaarsemaid avatud lähtekoodiga andmebaase [2]. MariaDB valiti, kuna selle populaarsus kasvab kiiresti ja praegu on see samuti üks enim-kasutatavaid avatud lähtekoodiga andmebaase [2]. 1.1 PostgreSQL PostgreSQL on avatud lähtekoodiga objekt-relatsiooniline andmebaasi juhtimissüsteem, mis kasutab ja laiendab SQL-keelt paljude funktsioonidega, mis turvaliselt talletavad andmeid ja kannatavad suure andmevoo koormusi [3]. MariaDBi andmebaasi juh-timissüsteem on loodud MySQLi algsete arendajate poolt ja on tagatud, et see jääb avatud läh-tekoodiga serveriks [5]. And-mebaasi MariaDB levitatakse GPLi (vt lisa I) litsentsi versiooni 2 alusel [6]. Tabelis 2 on esitatud andmebaaside PostgreSQLi ja InnoDBi mahtuvused. Tabel 2: PostgreSQL ja MariaDB mahtuvuse võrdlemine PostgreSQL [13] InnoDB [10] Maksimaalne andmebaasi suurus Piirdub vaba kettaruumi ja mäluruumiga Piirdub vaba kettaruumi ja mäluruu-miga Suurim lubatud tabeli maht (vaikimisi suurus) Vaikimisi 32TB Vaikimisi 64TB. 1.5 Turvalisus Andmebaaside turvalisus viitab meetmetele, mida kasutatakse andmebaasi kaitsmiseks ebasea-dusliku kasutamise, ohtude ja rünnakute eest [19]. Andmebaaside turvalisus on lai mõiste, mis sisaldab paljusid protsesse, tööriistu ja metoodikaid, mis tagavad turvalisuse andmebaasi kesk-konnas [19]. Tabelis 3 on kirjas meetodid, mida kasutavad andmebaasid PostgreSQL ja MariaDB 10.1 sel-leks, et tagada andmebaasi turvalisust. Tabel 3: Turvameetodid [20] PostgreSQL MariaDB Andmebaasil PostgreSQL on kliendi / serveri kommunikatsiooni krüpteerimiseks olemas na-tiivne SSLJtugi [20]K Andmebaasil PostgreSQL on luba ja päritud rollid õiguste seadmiseks ja säilitamiseks [21]K Lisaks sellele on andmebaasil PostgreSQL kaaJsas sisseehitatud lisaseade SEJPostgreSQL, mis pakub täiendavat juurdepääsu kontrolli, mis põ-hineb SELinuxi turvapoliitikal [22]K Selleks, et tagada turvalisust, kasutab MariaDB siJsemise turvalisuse ja parooli kontrolli [23]. See annab võimaluse rakendada kahe faktoriga auten-timistK PAM (vt lisa IF ja LDAP autentimine (vt lisa I) võimaldavad seadistada andmebaasi keskkonda, kus kasutajad saavad jagada paroole tavapärastest sisselogimisest [23]. Lisaks olemas Kerberos3, ka-sutaja rollid ja andmebaasi krüpteerimine [23]K PostgreSQL ja MariaDB mõlemad kasutavad kasutaja rolle, sest see on üks tõhusamaid turva-meetodeid. 3 https://mariadb.atlassian.net/browse/MDEV-4691 13 1.6 Andmebaasi jõudluse mõõtmise meetodeid ja ühikud Andmebaasi jõudluse mõõtmine on tarkvara mittefunktsionaalse testimise vorm, mis kesken-dub sellele, kuidas süsteem töötab etteantud koormuse all ning on mõeldud süsteemi valmiduse määramiseks [24]. Põhi-lised mõõtmise ühikud andmebaaside juhtimissüsteeme mõõtmiseks on järgnevad [29]: 1. Andmebaasi juhtimissüsteemi jõudluse mõõtmine Selles peatükis kirjeldatakse andmebaasi juhtimissüsteemi jõudluse mõõtmise protsessi. Jõudluse mõõtmiseks valiti jõudlustes-tid TPCi baasil, sest TPC on andmebaasi tööstuse kõige tuntum viis, et määratleda andmebaasi jõudluse standard, mida tunnustavad kõik juhtivad andmebaasi müüjad [32]. Iseseisvalt luua tööriist, mille abil mõõta andmebaasi jõudlust; 2. Andmebaasi jõudluse mõõtmiseks valiti HammerDB. Lisaks sellele kasutavad seda vahendit kõik juhtivad andmebaasi- ja tehnoloogiaet-tevõtted nagu Oracle, IBM, Intel, Dell / EMC HPE, Huawei ja Lenovo [35]. See toetab Oracle'i andmebaasi , SQL Serverit, IBM Db2, MySQL, MariaDB, PostgreSQL ja Redis [35]. Tööriistu HammerDB kasutatakse testiskeemi loomiseks, andmete laadimiseks ja paljude virtuaalsete kasutajate töökoormuste simuleerimiseks andmebaasi suhtes nii transakt-sioonide (vt lisa I) kui ka analüütiliste stsenaariumide puhul. Ham-merDBi eesmärk on mõõta suhtelist, mitte absoluutset andmebaasi jõudlust süsteemide vahel [36]. HammerDB pakub professionaalset, usaldusväärset ja prognoositavat koormustesti kõikidele andmebaasi keskkondadele [35]. TPM on konkreetse andmebaasi transaktsiooni mõõtmine, mis on tavaliselt defineeritud kui kasutajate päringute sooritamise (ingl commits) ja / või tagasivõtmiste (ingl rollbacks) arv [37]. 17 NOPM on toimivusmõõdik, mis ei sõltu ühestki konkreetse andmebaasi rakendamisest ja on soovitatav peamine meetrika [37]. Erinevate andmebaaside võrdlemiseks on vaja kasutada NOPMi näitajat [38]. Ajalooliselt alustas HammerDB Hammerorana ja toetas ainult Oracle’i andmebaasi , nii et see oli vajalik ainult Oracle TPM esitamiseks. Hiljem lisati tugi teistele andmebaasidele [38]. Kuna andmebaasid salvestavad TPM erinevalt, siis ei saa TPM näitajat võrrelda erinevate andme-baaside , näiteks Oracle ja SQL Serveri vahel [38]. asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Andmebaaside versioonid on järgmised: Post-greSQL 11 (64 bit) ja MariaDB 10.3 (64 bit). Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud. Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV. Samuti mõõdetakse kompileeritud andmebaasi MariaDB, mille lähtekoodi oli muudetud. Ühe andmebaasi suurus on umbes 25 GB. Genereerimise aeg sõltub andmebaasi suurusest ja masinast, kus toimub andmebaasi genereerimine. 8 https://www.webopedia.com/TERM/D/database_server.html 22 TPC-Hi jaoks ei olnud infot vajaliku andmebaasi suuruse kohta, seega oli genereeritud andme-baas , kus „Scale Factor” on 1 ja „Virtual Users to Build Schema” on 2. Amet-likult veebilehelt leiti, et MySQLi saab asendada MySQL-põhiste andmebaasidega nagu Ma-riaDB [46]. Tulemuste analüüs Antud peatükis kirjeldatakse saadud tulemusi, viiakse läbi nende analüüs ning võrreldakse and-mebaaside juhtimissüsteemide jõudlust. Andmebaasi juhtimissüsteemi parameetrid ei olnud seadistatud. 25 Vaadeldakse nüüd andmebaasi MariaDB eraldi. Joonis 5: NOPM näitaja sõltuvus virtuaalkasutajate arvust Joonisel 6 on esitatud tulemused pärast andmebaasi juhtimissüsteemi parameetrite muutumist koos tulemusega, mis oli saadud ilma parameetrite muutmiseta. Seega andmebaasi juhtimissüsteemi jõudlust võib tõsta parameetrite muutmisega (lisa-tud parameetrid on lisas number V ja VI). Jooniselt 7 on samuti näha, et andmebaasi juhti-missüsteemide jõudlused erinevad vähem kui varem. joonis 8: NOPM näitaja sõltuvus virtuaalkasutajate arvust Graafikust on näha, et PostgreSQL võrreldes MariaDB ja MariaDB* andmebaasidega ei tööta ühtlaselt. Õige seadistamine võib tõsta andmebaasi juhtimissüsteemi jõudlust mitmekordselt. 3.2 TPC-H tulemuste analüüs Päringute täitmise aeg tuli väga erinev, seega andmebaaside vahel võrreldakse ainult summaar-set käivitamise aega. Võrreldakse, kuidas muutus summaarne täitmise aeg pärast andmebaasi juhtimissüsteemi optimeerimist. Info andmebaaside juhtimissüsteeme võrdlemiseks on võetud ametlikust dokumentatsioonist ja ametlikult wiki lehelt. Töö käigus mõõdeti jõudlust järgmistel andmebaasi juhtimissüsteemidel: PostgreSQL, Ma-riaDB ja MariaDB, mille lähtekoodi oli muudetud. |
|||||||
|
Suurem osa tarkvarast kasutab, kogub ja hoiab andmeid, seetõttu kasutavad nad andmebaase . Viimaste loomiseks ja haldamiseks on olemas palju erinevaid andmebaaside juhtimissüsteeme (ABJS, ingl DMBS). Näiteks vajavad masinõppe ja tehisintellekti rakendused palju andmeid ning neid andmeid on vaja kusagil hoida ja kiiresti töödelda. Andmebaasi juhtimissüsteemi valimise mõju on pikaaja-line ning selle otsuse muutmine võib hiljem osutuda keeruliseks ja kalliks. Antud töö tegeleb andmebaaside juhtimissüsteemi jõudluse uurimisega, sest jõudlus on üks oluline näitaja, mis mõjutab süsteemi valikut. Käesolevas töös mõõdetakse andmebaaside juhtimissüsteemi jõudluse mõõtmist vabavaraliste vahendite abil. Andmebaasi mõõtmise ja analüüsimise avalikud tulemused võivad rikkuda äri-lisi eesmärke, seega valiti mõõtmiseks mitte firmade tasulisi tooteid, vaid avatud lähtekoodiga tasuta andmebaaside juhtimissüsteeme PostgreSQL ja MariaDB. Kuigi tuntuim vabavaraline andmebaasi juhtimissüsteem on MySQL, valiti MySQLi asemel MariaDB sellepärast, et leidub vähe uuringuid MariaDBi jõudluse kohta ning MySQL on ainult osaliselt tasuta [1]. | |||||||
|
Valida kaks tasuta avatud lähtekoodiga andmebaasi juhtimissüsteemi ja teha valitud andmebaasi juhtimissüsteemi ülevaade; 2. Selgitada, mis on andmebaasi juhtimissüsteemi jõudluse mõõtmine ja miks seda on vaja teha; 3. Tutvustada olemasolevaid mõõtmismeetodeid ja tööriistu, millega võib jõudlust mõõta; 4. Leida vabavaraline jõudluse mõõtmise tööriist; 5. Näidata, kuidas käib jõudluse mõõtmine valitud andmebaasi juhtimissüsteemi näitel; 6. Mõõta valitud andmebaaside juhtimissüsteemide jõudlust ja võrrelda tulemusi; 7. Uurida, kuidas muutub andmebaaside jõudlus pärast seadistamist. | |||||||
|
Selgitatakse, miks valiti just PostgreSQL ja MariaDB ning antakse ülevaade andmebaasi juhtimissüsteemist ja nende jõudluse mõõtmisest. Võrreldakse järgmisi parameetreid: hallatavate andmete maksimaalne hulk ehk mahtuvus, platvormi tugi ja turvali-sus. Edasi selgitatakse, miks on vaja andmebaasi juhtimissüsteemi jõudlust mõõta. Samuti kir-jeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse analüüsimise ja mõõtmise meetodeid ning jõudluse mõõtmise ühikuid. Teises peatükis kirjeldatakse relatsioonilise andmebaasi juhtimissüsteemi jõudluse mõõtmist ja kasutatud tööriistu, selgitatakse tööriistade töötamise põhimõtteid ja mõõtmiste käigus ette tulnud probleeme. | |||||||
|
1.5 Turvalisus Andmebaaside turvalisus viitab meetmetele, mida kasutatakse andmebaasi kaitsmiseks ebasea-dusliku kasutamise, ohtude ja rünnakute eest [19]. Andmebaaside turvalisus on lai mõiste, mis sisaldab paljusid protsesse, tööriistu ja metoodikaid, mis tagavad turvalisuse andmebaasi kesk-konnas [19]. Tabelis 3 on kirjas meetodid, mida kasutavad andmebaasid PostgreSQL ja MariaDB 10.1 sel-leks, et tagada andmebaasi turvalisust. Tabel 3: Turvameetodid [20] PostgreSQL MariaDB Andmebaasil PostgreSQL on kliendi / serveri kommunikatsiooni krüpteerimiseks olemas na-tiivne SSLJtugi [20]K Andmebaasil PostgreSQL on luba ja päritud rollid õiguste seadmiseks ja säilitamiseks [21]K Lisaks sellele on andmebaasil PostgreSQL kaaJsas sisseehitatud lisaseade SEJPostgreSQL, mis pakub täiendavat juurdepääsu kontrolli, mis põ-hineb SELinuxi turvapoliitikal [22]K Selleks, et tagada turvalisust, kasutab MariaDB siJsemise turvalisuse ja parooli kontrolli [23]. | |||||||
|
See annab võimaluse rakendada kahe faktoriga auten-timistK PAM (vt lisa IF ja LDAP autentimine (vt lisa I) võimaldavad seadistada andmebaasi keskkonda, kus kasutajad saavad jagada paroole tavapärastest sisselogimisest [23]. Lisaks olemas Kerberos3, ka-sutaja rollid ja andmebaasi krüpteerimine [23]K PostgreSQL ja MariaDB mõlemad kasutavad kasutaja rolle, sest see on üks tõhusamaid turva-meetodeid. 3 https://mariadb.atlassian.net/browse/MDEV-4691 13 1.6 Andmebaasi jõudluse mõõtmise meetodeid ja ühikud Andmebaasi jõudluse mõõtmine on tarkvara mittefunktsionaalse testimise vorm, mis kesken-dub sellele, kuidas süsteem töötab etteantud koormuse all ning on mõeldud süsteemi valmiduse määramiseks [24]. | |||||||
|
Jõudluse mõõtmiseks valiti jõudlustes-tid TPCi baasil, sest TPC on andmebaasi tööstuse kõige tuntum viis, et määratleda andmebaasi jõudluse standard, mida tunnustavad kõik juhtivad andmebaasi müüjad [32]. TPC jaotab oma võrdlusaluseid avalikkusele tasuta [32]. TPCi liikmed on tehnoloogiaettevõtted nagu Alibaba group, Dell, Huawei, IBM, Intel, Lenovo, Microsoft ja Oracle [33]. Koormuse testimist võib teha kahel viisil: 1. Iseseisvalt luua tööriist, mille abil mõõta andmebaasi jõudlust; 2. | |||||||
|
Andmebaasi jõudluse mõõtmiseks valiti HammerDB. HammerDB valiti sellepärast, et see on avatud lähtekoodiga võrdlusuuringute ja koormuse testimise tarkvara ning sellel on aktiivne 16 kogukond. Lisaks sellele kasutavad seda vahendit kõik juhtivad andmebaasi- ja tehnoloogiaet-tevõtted nagu Oracle, IBM, Intel, Dell / EMC HPE, Huawei ja Lenovo [35]. See toetab Oracle'i andmebaasi , SQL Serverit, IBM Db2, MySQL, MariaDB, PostgreSQL ja Redis [35]. Tööriistu HammerDB kasutatakse testiskeemi loomiseks, andmete laadimiseks ja paljude virtuaalsete kasutajate töökoormuste simuleerimiseks andmebaasi suhtes nii transakt-sioonide (vt lisa I) kui ka analüütiliste stsenaariumide puhul. | |||||||
|
HammerDB pakub professionaalset, usaldusväärset ja prognoositavat koormustesti kõikidele andmebaasi keskkondadele [35]. HammerDB annab kaks jõudluse parameetrit TPMi ( ingl Transactions per Minute) ja NOPMi (uusi tellimusi minutis, ingl New Orders per Minute) süsteemide võrdlemiseks [35] . TPM on konkreetse andmebaasi transaktsiooni mõõtmine, mis on tavaliselt defineeritud kui kasutajate päringute sooritamise (ingl commits) ja / või tagasivõtmiste (ingl rollbacks) arv [37]. 17 NOPM on toimivusmõõdik, mis ei sõltu ühestki konkreetse andmebaasi rakendamisest ja on soovitatav peamine meetrika [37]. Erinevate andmebaaside võrdlemiseks on vaja kasutada NOPMi näitajat [38]. Ajalooliselt alustas HammerDB Hammerorana ja toetas ainult Oracle’i andmebaasi , nii et see oli vajalik ainult Oracle TPM esitamiseks. Hiljem lisati tugi teistele andmebaasidele [38]. Kuna andmebaasid salvestavad TPM erinevalt, siis ei saa TPM näitajat võrrelda erinevate andme-baaside , näiteks Oracle ja SQL Serveri vahel [38]. | |||||||
|
asp 6 https://www.hammerdb.com/docs/ch09s02.html 20 2.2 Andmebaasi juhtimissüsteemi seadistamine Alljärgnevalt kirjeldatakse jõudluse mõõtmise protsessi ja andmebaasi juhtimissüsteemi sea-distamist enne jõudluse mõõtmise käivitamist. Andmebaaside versioonid on järgmised: Post-greSQL 11 (64 bit) ja MariaDB 10.3 (64 bit). Sellised versioonid valiti, sest need on kõige uuemad [44, 45]. Jõudluse mõõtmine koosneb kahest etapist. Esimene mõõtmine toimus pärast andmebaasi juhtimissüsteemi paigaldamist, mis oli automaatselt seadistatud. Informatsioon ar-vuti kohta, kus toimus andmebaasi juhtimissüsteemi jõudluse mõõtmine, on ära toodud lisas number IV. Samuti mõõdetakse kompileeritud andmebaasi MariaDB, mille lähtekoodi oli muudetud. | |||||||
|
joonis 8: NOPM näitaja sõltuvus virtuaalkasutajate arvust Graafikust on näha, et PostgreSQL võrreldes MariaDB ja MariaDB* andmebaasidega ei tööta ühtlaselt. PostgreSQL näitaja kasvab järsku ja siis langeb ühtlaste intervallide kaupa. 28 Saadetud tulemusest on nähe, et PostgreSQL ja MariaDB jõudlust sõltub seadistamist. Õige seadistamine võib tõsta andmebaasi juhtimissüsteemi jõudlust mitmekordselt. PostgreSQL ja MariaDB* näitasid võrdseid tulemusi. MariaDBi ja MariaDBi* tulemustes ei olnud palju eri-nevusi. 3.2 TPC-H tulemuste analüüs Päringute täitmise aeg tuli väga erinev, seega andmebaaside vahel võrreldakse ainult summaar-set käivitamise aega. Võrreldakse, kuidas muutus summaarne täitmise aeg pärast andmebaasi juhtimissüsteemi optimeerimist. | |||||||
|
päring 27x |
Päringute arv (ingl requests per second) sekundi kohta näitab, mitu päringut käivitati ühe sekundi jooksul; 4. Päringu täitmise aeg. Koormuse testimise peamine näitaja on keskmine reageerimisaeg, hallatavate andmete hulk, süsteemi samaaegsete kasutajate arv ja päringute arv sekundis ning päringute täitmise aeg [29]. TPM on konkreetse andmebaasi transaktsiooni mõõtmine, mis on tavaliselt defineeritud kui kasutajate päringute sooritamise (ingl commits) ja / või tagasivõtmiste (ingl rollbacks) arv [37]. TPC-H on jõudlusnäitaja, mis koosneb ärile orienteeritud päringutest ja samaaegsete andmete muutmisest [42]. TPC-H on spetsialiseerunud ärialaste päringute kogum ja seda mõõdetakse nende päringute täitmiseks kuluva ajaga [42]. TPC-H näitab päringute arvu tunnis (QphH), mida arvutatakse konkreetse valemiga6 [43]. Antud jõudlustestimise meetod käivitab 22 päringud . HammerDB annab võimalust vaadata iga päringu täitmise aeg eraldi [42]. Käesolevas töös kasutatakse TPC-Hi meetodit selleks, et leida iga päringu täitmise aeg. Käivitatud päringud on ära toodud lisas number III. Päringute täitmise aeg oli umbes 10 tundi. Võimalik põhjus on halb Post-greSQLi või päringute optimeerimine. 3.2 TPC-H tulemuste analüüs Päringute täitmise aeg tuli väga erinev, seega andmebaaside vahel võrreldakse ainult summaar-set käivitamise aega. Käivitatud päringud on lisas number III. Käivitatud päringud on lisas number III. Tabel 4: Summaarne täitmise aeg MariaDB* op-timeerimata MariaDB* optimeeritud MariaDB opti-meerimata MariaDB opti-meeritud PostgreSQL optimeeri-mata PostgreSQL optimeeritud Sum-maarne täitmise aeg (sek) 177,011 62,336 1226,556 1114,892 41973,578 37670,284 Tabelist 4 on näha, et PostgreSQLis summaarne täitmise aeg on kõige suurem, mida põhjusta-sid päringud 17, 20 ja 21 (vt lisa III). Need päringud (17, 20, 21) moodustavad 99,86% kogu täitmise ajast. Tabelis 5 on näidatud päringute täitmise aeg, kui pole võetud arvesse 3. päringut , mille täitmise aeg kõige suurem. MariaDB* MariaDB PostgreSQL Vahe (sek) 114,675 111.664 4303,294 Vahe (%) 64.78% 9% 10,25% Tabelist 6 on näha, et MariaDB* ja MariaDB päringute täitmise aja vähendamine sekundis sarnane. Pärast optimeerimist päringute täitmise aeg on vähenenud (vt lisa XI). TPC-H-põhisel jõudlus-testil näitas MariaDB* parimat tulemust, seega võib öelda, et viivituse kordaja muutumist võib väheneda päringu täitmise aeg. TPC-Hi meetodit kasutati, et leida iga päringu täitmise aeg. |
|||||||
|
TPC-H on jõudlusnäitaja, mis koosneb ärile orienteeritud päringutest ja samaaegsete andmete muutmisest [42]. TPC-H on spetsialiseerunud ärialaste päringute kogum ja seda mõõdetakse nende päringute täitmiseks kuluva ajaga [42]. TPC-H näitab päringute arvu tunnis (QphH), mida arvutatakse konkreetse valemiga6 [43]. | |||||||
|
Antud jõudlustestimise meetod käivitab 22 päringud . HammerDB annab võimalust vaadata iga päringu täitmise aeg eraldi [42]. Käesolevas töös kasutatakse TPC-Hi meetodit selleks, et leida iga päringu täitmise aeg. Käivitatud päringud on ära toodud lisas number III. | |||||||
|
Tabel 4: Summaarne täitmise aeg MariaDB* op-timeerimata MariaDB* optimeeritud MariaDB opti-meerimata MariaDB opti-meeritud PostgreSQL optimeeri-mata PostgreSQL optimeeritud Sum-maarne täitmise aeg (sek) 177,011 62,336 1226,556 1114,892 41973,578 37670,284 Tabelist 4 on näha, et PostgreSQLis summaarne täitmise aeg on kõige suurem, mida põhjusta-sid päringud 17, 20 ja 21 (vt lisa III). Need päringud (17, 20, 21) moodustavad 99,86% kogu täitmise ajast. Täpne põhjus, miks see juhtus, on teadmata. TPC-H-põhine jõudlustest oli käi-vitatud PostgreSQLi jaoks uuesti, aga saadi samad tulemused. Tabelis 5 on näidatud päringute täitmise aeg, kui pole võetud arvesse 3. päringut , mille täitmise aeg kõige suurem. | |||||||
|
kordaja 10x |
Läh-tekoodis oli muudetud viivituse kordaja , kuna eelnev kordaja võib põhjustada aeglast tööd [46]. MariaDBi lähtekoodis oli muudetud delay (viivituse) kordaja failis ut0ut. Viivituse kordajaks oli pandud 5, for (i = 0; i < delay * 5; i++). MariaDBi lähtekoodi oli muudetud, seega edaspidi „MariaDB*“ tähendab, et MariaDB lähtekoodi oli muudetud (viivituse kordaja on muudetud). Keskmiselt on MariaDB* 1,18 korda kiirem ehk viivituse kordaja muutumine tõstis MariaDBi jõudlust 1,18 korda. TPC-H-põhisel jõudlus-testil näitas MariaDB* parimat tulemust, seega võib öelda, et viivituse kordaja muutumist võib väheneda päringu täitmise aeg. MariaDBi lähtekoodis oli muudetud viivi-tuse kordaja , kuna leiti informatsiooni, et viivituse kordaja võib põhjustada aeglast tööd. |
|||||||
|
Läh-tekoodis oli muudetud viivituse kordaja , kuna eelnev kordaja võib põhjustada aeglast tööd [46]. Seda on soovitav teha, kui masin kasutab protsessorit arhitektuuriga Skylake või ut_delay võ-tab liiga palju protsessori (CPU) ressurssi [46, 47]. MariaDBi lähtekoodis oli muudetud delay (viivituse) kordaja failis ut0ut.cc reas for (i = 0; i < delay * 50; i++). Viivituse kordajaks oli pandud 5, for (i = 0; i < delay * 5; i++). |
|||||||