Testovaci scenare¶
- Soupis vstupnich pozadavku
- Srovnani existujicich databazovych systemu
- Testovaci scenare
- Testovaci dotazy
- Vysledky testu
- Table of contents
- Testovaci scenare
Puvodni navrh testovacich scenaru¶
TS 1: Zapis dat a indexace¶
TS 1.1: Vliv fragmentace na zapis dat¶
- Postup:
- 1. pred testem je nutne inicializovat datovy adresar (DROP TABLE)
- 2.a spusteni casovace
- 2.b zapis posledni tretiny datasetu pomoci individualnich operaci INSERT
- 2.c ukonceni casovace
- 3. pred testem je nutne inicializovat datovy adresar (DROP TABLE)
- 4. zapis prvnich dvou tretin datasetu pomoci individualnich operaci INSERT, jednotlive casovani
- 5.a spusteni casovace
- 5.b smazani 1/2 zaznamu podle nahodneho vyberu cisel (bulk remove)
- 5.c ukonceni casovace
- 6.a spusteni casovace
- 6.b dohrani posledni tretiny datasetu pomoci individualnich operaci INSERT
- 6.c ukonceni casovace
- Poznámky:
- zkrátit dobu, aby nedocházelo k ovlivnění kvůli nedostatku zdrojů testovacího stroje (32GB RAM):
- dataset je cely nahran do pameti pred zahajenim testu (mongo nevyuziva vsechnu pamet, overit vliv pri ostatnich DB systemech)
- potrebujeme vedet, zdali se jedna v Mentatu o import, copy, insert, bulk insert? - smyčka vykonavající INSERT nad záznamy ze souborů zízkaných pomocí warden-filer
- zjistovani velikosti dat zruseno - wiredTiger pouziva komprimovany storage
- zkrátit dobu, aby nedocházelo k ovlivnění kvůli nedostatku zdrojů testovacího stroje (32GB RAM):
- Vystup:
- doba zapisu posledni tretiny datasetu:
- do prazdne databaze
- do fragmentovane database
- doba zapisu prvni tretiny datasetu do prazdne databaze
- doba zapisu druhe tretiny datasetu do databaze obsahujici prvni tretinu
- doba zapisu posledni tretiny datasetu:
TS 1.2: Vliv fragmentace na zapis dat (s indexem)¶
- Postup:
- 1.a pred testem je nutne inicializovat datovy adresar (DROP TABLE)
- 1.b vytvoreni indexu
- 2.a spusteni casovace
- 2.b zapis posledni tretiny datasetu pomoci individualnich operaci INSERT
- 2.c ukonceni casovace
- 3.a pred testem je nutne inicializovat datovy adresar (DROP TABLE)
- 3.b vytvoreni indexu
- 4. zapis prvnich dvou tretin datasetu pomoci individualnich operaci INSERT, jednotlive casovani
- 5.a spusteni casovace
- 5.b smazani 1/2 zaznamu podle nahodneho vyberu cisel (bulk remove)
- 5.c ukonceni casovace
- 6.a spusteni casovace
- 6.b dohrani posledni tretiny datasetu pomoci individualnich operaci INSERT
- 6.c ukonceni casovace
- Poznámky:
- zkrátit dobu, aby nedocházelo k ovlivnění kvůli nedostatku zdrojů testovacího stroje (32GB RAM):
- dataset je cely nahran do pameti pred zahajenim testu (mongo nevyuziva vsechnu pamet, overit vliv pri ostatnich DB systemech)
- potrebujeme vedet, zdali se jedna v Mentatu o import, copy, insert, bulk insert? - smyčka vykonavající INSERT nad záznamy ze souborů zízkaných pomocí warden-filer
- zjistovani velikosti dat zruseno - wiredTiger pouziva komprimovany storage
- zkrátit dobu, aby nedocházelo k ovlivnění kvůli nedostatku zdrojů testovacího stroje (32GB RAM):
- Problémy:
- urcit seznam indexovanych poli
- Vystup:
- doba zapisu posledni tretiny datasetu:
- do prazdne databaze
- do fragmentovane database
- doba zapisu prvni tretiny datasetu do prazdne databaze
- doba zapisu druhe tretiny datasetu do databaze obsahujici prvni tretinu
- doba zapisu posledni tretiny datasetu:
TS 1.3: Doba zapisu a vliv indexace na velikost DB¶
- Postup
- 1. pred testem je nutne inicializovat datovy adresar
- 2.a spusteni casovace
- 2.b zapis dat z celeho datasetu pomoci operace INSERT
- 2.c ukonceni casovace
- 3.a spusteni casovace
- 3.b vykonani indexace
- 3.c ukonceni casovace
- Poznamky:
- vypustene velkosti dat a indexu, jedna se o vlastnost datasetu
- Vystup:
- doba zapsani celeho datasetu do database
- doba indexace
TS 1.4: Doba zapisu pri vytvorenych indexech¶
- Postup
- 1. pred testem je nutne inicializovat datovy adresar
- 2.a vykonani indexace
- 3.a spusteni casovace
- 3.b zapis dat z celeho datasetu pomoci operace INSERT
- 3.c ukonceni casovace
- Poznamky:
- vypustene velkosti dat a indexu, jedna se o vlastnost datasetu
- Vystup:
- doba zapsani celeho datasetu do database
TS 2: Kompletni cteni¶
Poznámky:- Další scénáře:
- Test vlivu získávání count
- Test přímého vs. opačného řazení (t.j. ten samý dotaz s DESC)
- Problemy
- Spravne pochopeni duvodu mereni hot a cold dotazu? - oprava:
- HOT dotaz proti COLD bude mít malé časové posunutí, napr.: COLD dotaz na 14:00 až 15:00, HOT na 14:15 až 15:15
- předpokládaný vliv diskové cache větší než interní agregační cache DB server, t.j. možnost paradoxu - lepší výkon DB serveru nevyužívajícího všechnu dostupnou paměť.
- HOT dotaz proti COLD bude mít malé časové posunutí, napr.: COLD dotaz na 14:00 až 15:00, HOT na 14:15 až 15:15
- Řazení - vždy jen podle času
- Data v DB by z principu měla být seřazena podle času - je možná nechronologicita? pokud ano, navržený scénář pro import dat by ji měl modelovat
- Spravne pochopeni duvodu mereni hot a cold dotazu? - oprava:
- Vystup:
- cold
- doba vykonani dotazu pro 1 den
- hot
- doba vykonani dotazu pro 3 dny
- doba vykonani dotazu pro 1 den
- cold
TS 2.1: Kompletni “cold” cteni dat¶
- Postup
TS 2.2: Kompletni “hot” cteni dat¶
- Postup
- 1. vyliti cache pameti OS a databazoveho serveru
# service mongodb stop # sync # echo 3 > /proc/sys/vm/drop_caches # service mongodb start
- 2.a spusteni casovace
- 2.b spusteni jednoho dotazu nad casovym oknem 1 hodina (13:00 - 14:00) - HAWAT
- 2.c ukonceni casovace
- 2.d spusteni casovace
- 2.e spusteni jednoho dotazu nad casovym oknem 1 hodina (13:05 - 14:05)
- 2.f ukonceni casovace
- 1. vyliti cache pameti OS a databazoveho serveru
TS 2.3: Mereni vlivu Count¶
- Postup
- 1. vyliti cache pameti OS a databazoveho serveru
# service mongodb stop # sync # echo 3 > /proc/sys/vm/drop_caches # service mongodb start
- 2.a spusteni casovace
- 2.b spusteni jednoho dotazu - HAWAT, SABU - dotaz 1, Ostatni - dotaz 2
- 2.c ukonceni casovace
- 1. vyliti cache pameti OS a databazoveho serveru
- Vystup
- doba trvani ziskani celkoveho poctu vysledku
- speciálně porovnání HAWAT1 vs. Ostatni2 - vliv použití zmíšeného filtru (index/noindex)
TS 2.4: Mereni vlivu opacneho razeni¶
- Postup
- 1. vyliti cache pameti OS a databazoveho serveru
# service mongodb stop # sync # echo 3 > /proc/sys/vm/drop_caches # service mongodb start
- 2.a spusteni casovace
- 2.b spusteni jednoho dotazu - HAWAT, SABU - dotaz 1
- 2.c ukonceni casovace
- 1. vyliti cache pameti OS a databazoveho serveru
- Vystup
- doba trvani dotazu v zavislosti na smeru razeni (porovnani s TS 2.1: Kompletni “cold” cteni dat)
TS 2.5: Mereni skalovani v zavislosti na velikosti seznamu IP adres¶
- Postup - kazdou velikost seznamu (2,4,8,16,32,64,128,256)
- 1. vyliti cache pameti OS a databazoveho serveru
# service mongodb stop # sync # echo 3 > /proc/sys/vm/drop_caches # service mongodb start
- 2.a spusteni casovace
- 2.b spusteni jednoho dotazu - Ostatni
- 2.c ukonceni casovace
- 1. vyliti cache pameti OS a databazoveho serveru
- Vystup
- doba trvani dotazu v zavislosti na velikosti seznamu IP adres
TS 3: Davkove cteni pomoci “SKIP LIMIT”¶
- Postup
- Časování sady dotazů: HAWAT1, HAWAT3, HAWAT4, HAWAT5, HAWAT6
- Poznámky:
- Pro TS3 + TS4 HOT vs COLD: načíst 1., 2., 3., stránku a poté znovu 1. s malou změnou (posun o 5 minut)
- Vystup
TS 3.1: Davkove “cold” cteni pomoci “SKIP LIMIT” posledni stranky¶
TS 3.2: Davkove “cold” cteni pomoci “SKIP LIMIT” posledni strany opacneho poradi¶
TS 3.3: Davkove “hot” cteni pomoci “SKIP LIMIT” od zacatku¶
TS 3.4: Davkove “hot” cteni pomoci “SKIP LIMIT” od konce¶