Bachelor's Thesis

Plugins for Efficient Datastore in the Sysrepo Library

Final Thesis 856.24 kB Appendix 2.25 MB

Author of thesis: Bc. Ondrej Kušnírik

Acad. year: 2023/2024

Supervisor: Ing. Jiří Matoušek, Ph.D.

Reviewer: doc. Ing. Tomáš Martínek, Ph.D.

Abstract:

This work concerns an introduction to the sysrepo library and its datastore plugins, problems with storing data to files and solving these problems by connecting a database to the sysrepo library. In short, this library serves as a complex repository for configuration YANG data on Unix/Linux systems. Data, which the default plugin stores in files, cannot be managed fast and efficiently enough causing overall slowdown of data management. A database connected to the sysrepo library via a datastore plugin could however solve this issue. After comparing different databases, two were selected (MongoDB and Redis) based on work efficiency with YANG data and other qualities. The datastore plugins were then implemented for these databases, optimized and tested for performance at the end. In comparison to the original plugin based on files, the plugins based on databases primarily excel at management of low amounts of data, where for instance the loading of an element from one hundred thousand is faster by up to three orders of magnitude.

Keywords:

sysrepo, YANG, database, datastore plugin, MongoDB, Redis

Date of defence

12.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. Jakým způsobem výkonnost pluginů ovlivňují úpravy spojené s uživatelem řazenými seznamy?
  2. Jaký vliv na výkonnost má samotná knihovna sysrepo? Co se vyplatí optimalizovat jako první?
  3. Co byste optimalizoval jako první?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
Ing. Vladimír Bartík, Ph.D. (člen)
Ing. Jaroslav Dytrych, Ph.D. (člen)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)
Ing. Marcela Zachariášová, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Matoušek, Ph.D.

V rámci bakalářské práce byly vytvořeny pluginy pro úložiště dat v open-source knihovně sysrepo a tyto pluginy byly také úspěšně integrovány do produkční verze uvedené knihovny, která je využívána i velkými telekomunikačními operátory. Řešení bakalářské práce mělo pravidelný průběh, díky čemuž byly veznačném předstihu naplněny všechny body zadání a bylo možné dostatečně zkonzultovat i výslednou podobu technické zprávy k bakalářské práci. S prací studenta jsem tudíž velmi spokojen a navrhuji hodnocení bakalářské práce stupněm výborně / A.

Evaluation criteria Verbal classification
Informace k zadání

Bakalářská práce se zaměřovala na oblast pluginů pro úložiště dat v rámci široce používané open-source knihovny sysrepo, která je  vyvíjena sdružením CESNET. Náročnost bakalářské práce spočívala především v požadavku na kompatibilitu jejích výsledku s existující knihovnou, jež je produkčně využívána komerčními společnostmi, včetně velkých telekomunikačních operátorů. I přes tuto náročnost byly všechny body zadání úspěšně naplněny.

Práce s literaturou

Student si sám aktivně vyhledával studijní materiály a pracoval se zdroji, které jsou relevantní vzhledem k zaměření bakalářské práce (dokumentace knihovny sysrepo a zvažovaných databází, RFC dokumenty, aj.).

Aktivita během řešení, konzultace, komunikace

Postup práce byl průběžně konzultován s odborným konzultantem Mgr. Michalem Vaškem ze sdružení CESNET. Během celé doby řešení bakalářské práce byl student aktivní a na jednotlivé konzultace byl vždy připraven.

Aktivita při dokončování

Bakalářská práce byla dokončena ve značném předstihu, díky čemuž bylo možné její výslednou podobu dostatečně zkonzultovat.

Publikační činnost, ocenění

Vytvořené pluginy pro úložiště dat v knihovně sysrepo byly úspěšně integrovány do veřejného repozitáře open-source knihovny sysrepo.

Points proposed by supervisor: 95
Display more

Grade proposed by supervisor: A

Jedná se o velmi zdařilou bakalářskou práci. Student v ní pečlivě analyzoval a testoval různé databáze a jejich použitelnost ve spojení s knihovnou sysrepo. Výstupní kódy jsou kvalitně napsané a připravené pro použití v praxi. Vytknou lze jen drobné prohřešky v technické zprávě. Souhrnně proto hodnotím stupněm velmi dobře (B).

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Cílem práce bylo vytvořit pluginy pro knihovnu sysrepo zajišťující efektivní komunikaci s databází. Zadání považuji za průměrně obtížné.

Prezentační úroveň technické zprávy

Struktura i rozsah technické zprávy je v pořádku, včetně návaznosti jednotlivých kapitol. Text je pro čtenáře čitelný a dobře pochopitelný. V některých případech by stálo za zvážení sloučit větší množství menších tabulek do jedné větší, ale i aktuální způsob prezentace není pro čtenáře nikterak rušivý.

85
Formální úprava technické zprávy

Po jazykové i typografické stránce je práce na dobré úrovni. Rušivě působí pouze drobné prohřešky typu:

  • Velké počáteční písmeno v odkazech např. viz Výpis, viz Tabulka apod.
  • Tečka před odkazem na literaturu, který je součástí věty.
75
Realizační výstup

Výstupem práce jsou pluginy pro knihovnu sysrepo v jazyce C. Vytvořený kód je ve formě open-source, plně funkční a velmi dobře strukturovaný. Samotný kód pluginů je doplněn řadou experimentů.

95
Využitelnost výsledků

Výstupy práce jsou kompilačního charakteru, avšak předpokládá se jejich přímé nasazení v praxi v rámci knihovny sysrepo

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Literatura je tvořena primárně odkazy na webové stránky, což je z větší části dáno charakterem práce, které se musí odkazovat na řadu existujících nástrojů/databází a jejich vlastností. Na druhou stranu určitě budou existovat i kvalitnější literární zdroje (konferenční nebo časopisecké články) zaměřené např. na měření a analýzu výkonnosti různých databázových systémů.

70
Topics for thesis defence:
  1. Jakým způsobem výkonnost pluginů ovlivňují úpravy spojené s uživatelem řazenými seznamy?
  2. Jaký vliv na výkonnost má samotná knihovna sysrepo? Co se vyplatí optimalizovat jako první?
Points proposed by reviewer: 85
Display more

Grade proposed by reviewer: B