Kompresia dát trezora trezora je implementovaná na platforme PostgreSQL. Vykonáva optimalizáciu jeho štruktúry a niekoľkokrát zmenší jeho veľkosť. Do komprimovaného trezora už nie je možné zapisovať (ani utilitou arcsynchro). Kompresia dát je dostupná v D2000 verzii 21 a vyššej. Nastavenie parametra TrezorCompress = 1 zapína kompresiu dát trezora po jeho odpojení.
Aj staršie trezory je možné skomprimovať „ručne” pomocou tell príkazu TREZOR COMPRESS. Je podporený aj opačný proces – dekompresia pomocou tell príkazu TREZOR DECOMPRESS.
Rýchlosť čítania z komprimovaných trezorov je porovnateľná s nekomprimovanými. V niektorých hraničných prípadoch (čítanie konkrétnej hodnoty v čase) môžu byť komprimované trezory pomalšie. V iných prípadoch môže byť čítanie komprimovaných dát rýchlejšie (záleží od pomeru rýchlosti a záťaže I/O subsystému a procesora). Navyše kompresia dát umožní uchovávanie väčšieho množstva dát v pamäti (v cache operačného systému a PostgreSQL).
Prácu s komprimovanými trezormi je možné si vyskúšať „na nečisto“. Nastavenie parametra TrezorCompressKeep = 1 spôsobí, že pri kompresii vzniknú tabuľky s komprimovanými dátami (CDATA, DATA0), ale pôvodná tabuľka (DATA) sa nevymaže. Po kompresii sa následne čítajú komprimované dáta. Príkazom TREZOR DECOMPRESS. je možné sa veľmi rýchlo vrátiť k pôvodnej štruktúre trezora, keďže nie je nutné vykonať dekompresiu, ale stačí vymazať tabuľky s komprimovanými dátami.
Praktické testy ukázali, že kompresia dát v trezore prebieha rýchlejšie, ak sú predtým dáta upratané. Preto existuje parameter TrezorCompressReorg, ktorý je prednastavený na hodnotu 1 a ktorý aktivuje reorganizáciu dáta pred kompresiou.
Výpis trezorov príkazom LIST_TREZOR ukazuje pri komprimovaných trezoroch príznak cps:
Received TELL command : LIST_TREZOR
List all
List of existing trezors:
--------------------------------------------------------------------------
ID | Data start(UTC)| Data end(UTC) | Status |
--------------------------------------------------------------------------
0134 31-05-2020 22:00 30-06-2020 22:00 being used for writing
0133 30-04-2020 22:00 31-05-2020 22:00 mounted read-only cps
0132 31-03-2020 22:00 30-04-2020 22:00 mounted read-only cps
0131 29-02-2020 23:00 31-03-2020 22:00 mounted read-only
0130 31-01-2020 23:00 29-02-2020 23:00 mounted read-only
Popis konfiguračných parametrov kompresie dát trezorov pre platformu PostgreSQL:
TrezorCompress - zapnutie kompresie dát trezora. Kompresia dáta prebehne pri odpájaní trezora.
- TrezorCompressKeep - parameter slúži na otestovanie kompresie dát trezora. Ak má hodnotu 1, tabuľka s pôvodnými datami (DATA) nebude vymazaná, ale sa ponechá. Dáta sa budú ale čítať z tabuliek s komprimovanými dátami (CDATA, DATA0). Príkazom TREZOR DECOMPRESS je možné sa veľmi rýchlo vrátiť k pôvodnej štruktúre trezora, keďže nie je nutné vykonať dekompresiu, ale stačí vymazať tabuľky s komprimovanými dátami.
Ak chcete vymazať komprimované dáta a zachovať nekomprimované, použite nasledovný postup:
- Príkazom TREZOR_COMPRESS_KEEP OFF nastavte hodnotu parametra TrezorCompressKeep na 0.
- Príkazom TREZOR DECOMPRESS vykonajte dekompresiu dát trezora (dekompresia prebehne rýchlo, keďže budú iba vymazané tabuľky s komprimovanými dátami - CDATA, DATA0).
Ak chcete zachovať komprimované dáta a vymazať nekomprimované, použite nasledovný postup:
- Príkazom TREZOR DECOMPRESS vykonajte dekompresiu dát trezora (dekompresia prebehne rýchlo, keďže bude iba trezor označený ako dekomprimovaný. Vďaka hodnote parametra TrezorCompressKeep=1 nebudú vymazané tabuľky s komprimovanými dátami - CDATA, DATA0).
- Príkazom TREZOR_COMPRESS_KEEP OFF nastavte hodnotu parametra TrezorCompressKeep na 0.
- Príkazom TREZOR COMPRESS vykonajte kompresiu dát trezora (kompresia prebehne rýchlo, keďže sa použijú existujúce dáta v tabuľkách s komprimovanými dátami).
TrezorCompressReorg - reorganizácia dát trezora pred kompresiou. Tento parameter má prednastavenú hodnotu 1 - v praxi sa ukazuje, že je efektívnejšie a rýchlejšie najskôr zreorganizovať dáta (SQL príkazom CLUSTER DATA) a až následne vykonať ich kompresiu. Hodnota 0 vypína reorganizáciu dát trezora pred kompresiou. Vypnutie reorganizácie pred kompresiou nie je odporúčané.
- TrezorCompressCmt - parameter udáva počet archívnych objektov, po ktorých komprimovaní sa vykoná COMMIT. Prednastavená hodnota je 10. V aplikáciách s intenzívne archivovanými objektami (veľa hodnôt jedného archívneho objektu v trezore) je možné tento parameter znížiť až na hodnotu 1. Naopak, v aplikáciách s veľa archívnymi objektami, ktoré sa menia zriedkavo, je možné hodnotu tohto parametra zvýšiť.
TrezorCompressOrder - parameter sa týka čítania z trezorov s komprimovanými dátami. Tento parameter udáva, či pri čítaní dát z komprimovaného trezora je nutné použiť zoradenie podľa času. Keďže sú dáta zoradené pri kompresii, štandardne je možné nechať parameter na hodnote 0, čo zrýchľuje čítanie z komprimovaného trezora (vynecháva sa ORDER BY).