zstd - Facebooki kiire andmete tihendamise algoritm


Zstandard (tuntud ka kui zstd) on Facebooki välja töötatud tasuta avatud lähtekoodiga, kiire reaalajas parema pakkimissuhtega andmete pakkimise programm. See on kadudeta tihendusalgoritm, mis on kirjutatud C-s (Java-s on uuesti rakendamine) - see on seega kohalik Linuxi programm.

Vajadusel saab see vahetada tihenduskiirust tugevamate tihendusastmete jaoks (tihendamiskiiruse ja tihendussuhte kompromissi saab konfigureerida väikeste sammudega), vastupidi. Sellel on väikeste andmete tihendamiseks spetsiaalne režiim, mida nimetatakse sõnastike tihendamiseks, ja see võib sõnastikke koostada mis tahes pakutava näidiskomplekti põhjal. Sellel on käsurea utiliit failide .zst, .gz, .xz ja .lz4 loomiseks ja dekodeerimiseks.

Oluline on see, et Zstandardil on rikkalik API-de kogu, see toetab peaaegu kõiki populaarseid programmeerimiskeeli, sealhulgas Pythoni, Java, JavaScripti, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft ja palju muud.

Seda kasutatakse aktiivselt suurte andmemahtude tihendamiseks mitmes vormingus ja juhtumite kasutamiseks Facebookis; teenused nagu Amazon Redshifti andmeladu; andmebaasid nagu Hadoop ja Redis; Tori võrk ja paljud muud rakendused, sealhulgas mängud.

Järgmised tulemused saadakse Linux Debiani käitavas serveris mitme kiire tihendusalgoritmi testi abil, kasutades avatud lähtekoodiga mälusisese võrdlusuuringu tööriista lzbench.

Kuidas installida Zstandard Compression Tool Linuxi

Zstandardi installimiseks Linuxi jaotusse peate selle kompileerima allikatest, kuid enne seda peate installima oma süsteemi vajalikud arendustööriistad, kasutades oma jaotuspaketi haldurit, nagu näidatud.

$ sudo apt update && sudo apt install build-essential		#Ubuntu/Debian
# yum group install "Development Tools" 			#CentOS/REHL
# dnf groupinstall "C Development Tools and Libraries"		#Fedora 22+

Kui kõik vajalikud arendustööriistad on installitud, saate nüüd allikapaketi alla laadida, liikuda kohalikku repokataloogi, ehitada binaarkaardi ja installida see nagu näidatud.

$ cd ~/Downloads
$ git clone https://github.com/facebook/zstd.git
$ cd zstd
$ make
$ sudo make install 

Kui Zstandard oli installitud, saame nüüd edasi liikuda, et õppida järgmises jaotises mõningaid Zstd käsunäidete põhikasutusi.

Õppige Linuxis 10 Zstd käsu kasutamise näidet

Zstd käsurea süntaks sarnaneb üldiselt gzip- ja xz-tööriistade omaga, väheste erinevustega.

1. Tihendusfaili .zst loomiseks sisestage lihtsalt faili nimi selle tihendamiseks või kasutage lipu -z abil ka pakkimist, mis on vaiketoiming.

$ zstd etcher-1.3.1-x86_64.AppImage 
OR
$ zstd -z etcher-1.3.1-x86_64.AppImage 

2. Tihendusfaili .zst dekompressimiseks kasutage lippu -d või utiliiti unzstd, nagu näidatud.

$ zstd -d etcher-1.3.1-x86_64.AppImage.zst 
OR
$ unzstd etcher-1.3.1-x86_64.AppImage.zst 

3. Lähtefaili eemaldamiseks pärast toimingut vaikimisi lähtefaili pärast edukat tihendamist või dekompressimist ei kustutata. Selle kustutamiseks kasutage valikut --rm .

$ ls etcher-1.3.1-x86_64.AppImage
$ zstd --rm  etcher-1.3.1-x86_64.AppImage
$ ls etcher-1.3.1-x86_64.AppImage

4. Tihendustaseme määramiseks on zstd-l mitu toimingu modifikaatorit, näiteks võite tihendustasemeks määrata -6 (number 1-19, vaikimisi on 3), nagu näidatud.

$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage

5. Pakkimiskiiruse määramiseks on zstd tihenduskiiruse suhe 1–10, vaikimisi tihenduskiirus on 1. Pakkimiskiiruse pakkimise suhet saab kaubelda suvandiga --fast , seda suurem on number, seda kiirem on tihenduskiirus.

$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage

6. Tihendatud faili kohta teabe kuvamiseks kasutage lippu -l , mida kasutatakse näiteks tihendatud faili kohta teabe kuvamiseks.

$ zstd -l etcher-1.3.1-x86_64.AppImage.zst

7. Pakitud failide terviklikkuse testimiseks kasutage lipu -t , nagu näidatud.

$ zstd -t etcher-1.3.1-x86_64.AppImage.zst

8. Verbose režiimi lubamiseks kasutage valikut -v .

$ zstd -v -5 etcher-1.3.1-x86_64.AppImage

9. Muude failide tihendamis- või dekompressioonivormingute, näiteks gzip, xz, lzma ja lz4, kasutamiseks --format = FORMAT , nagu näidatud.

$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
$ zstd -v --format=xz  etcher-1.3.1-x86_64.AppImage

10. Zstd protsessi prioriteedi määramiseks reaalajas saate kasutada valikut –priority = rt, nagu näidatud.

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

Lipp -r juhendab zstd-d sõnaraamatutega rekursiivselt. Zstd manulehelt leiate palju kasulikke ja täpsemaid valikuid, kuidas sõnastikke lugeda või luua.

$ man zstd

Zstandardi Githubi hoidla: https://github.com/facebook/zstd

Zstandard on kiire reaalajas kadudeta andmete tihendamise algoritm ja tihendustööriist, mis pakub kõrgeid tihendusastmeid. Proovige järele ja jagage oma mõtteid selle kohta või esitage küsimusi allpool oleva tagasisidevormi kaudu.