zstd - “Facebook” tarapyndan ulanylýan çalt maglumatlary gysmak algoritmi


Zstandard (zstd hem diýilýär) erkin açyk çeşme, has gowy gysyş gatnaşygy bolan çalt real wagt maglumatlary gysmak programmasy, Facebook tarapyndan işlenip düzüldi. C-de ýazylan ýitgisiz gysyş algoritmi (Java-da täzeden durmuşa geçirilýär) - şeýlelik bilen ýerli Linux programmasy.

Zerur bolanda, has güýçli gysyş gatnaşygy üçin gysyş tizligini söwda edip biler (gysyş tizligi vs gysyş gatnaşygy söwdasy ownuk ululyklar bilen sazlanyp bilner). Sözlük gysyşy diýlip atlandyrylýan kiçi maglumatlary gysmak üçin ýörite re modeim bar we berlen islendik nusga toplumyndan sözlük gurup biler. .Zst, .gz, .xz we .lz4 faýllaryny döretmek we kodlamak üçin buýruk setiriniň kömegi bilen gelýär.

Möhümi, Zstandard-da baý API-ler toplumy bar, Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft we başga-da köp meşhur programma dillerini goldaýar.

Uly göwrümli maglumatlary köp formatda gysmak we Facebook-da ýagdaýlary ulanmak üçin işjeň ulanylýar; Amazon Redshift maglumat ammary ýaly hyzmatlar; Hadoop we Redis ýaly maglumat bazalary; Tor ulgamy we oýunlar ýaly köp sanly programma.

Aşakdaky netijeler, ýatda saklaýan açyk gural bolan lzbench ulanyp, Linux Debian-da işleýän serwerde birnäçe çalt gysyş algoritm synaglaryny geçirmek arkaly gazanylýar.

Linux-da Zstandard gysyş guralyny nädip gurmaly

“Zstandard” -y Linux paýlanyşyna gurmak üçin ony çeşmelerden düzmeli, ýöne ondan ozal paýlanyş bukjasynyň dolandyryjysyny görkezilişi ýaly ulgamyňyza zerur ösüş gurallaryny gurmaly.

$ 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+

Neededhli zerur ösüş gurallary gurlansoň, indi çeşme paketini göçürip alyp, ýerli repo katalogyna geçip, ikili gurup we görkezilişi ýaly gurup bilersiňiz.

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

Zstandard gurlansoň, indiki bölümde Zstd buýruk mysallarynyň käbir ulanylyşyny öwrenmek üçin has öňe gidip bileris.

Linux-da 10 Zstd buýruk ulanylyş mysallaryny öwreniň

Zstd-iň buýruk setiriniň sintaksisi, adatça, birnäçe tapawut bilen gzip we xz gurallaryna meňzeýär.

1. .zst gysyş faýly döretmek üçin, ony gysmak ýa-da -z baýdagyny ulanmak üçin faýl adyny beriň, bu hem adaty hereket bolan gysyşy aňladýar.

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

2. .zst gysyş faýlyny dekompressiýa etmek üçin, görkezilişi ýaly -d baýdagyny ýa-da unzstd kömekçi programmasyny ulanyň.

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

3. Amaldan soň çeşme faýlyny aýyrmak üçin deslapky faýl üstünlikli gysyşdan ýa-da dekompressiýadan soň pozulmaýar, pozmak üçin --rm opsiýasyny ulanyň.

$ 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. Gysyş derejesini kesgitlemek üçin zstd-de birnäçe iş üýtgediji bar, mysal üçin gysyş derejesini görkezilişi ýaly -6 (1-19 belgisi, default 3) görkezip bilersiňiz.

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

5. Gysyş tizligini bellemek üçin zstd-de gysyş tizligi 1-10 bolýar, deslapky gysyş tizligi 1. gysyş tizligini --fast opsiýasy bilen söwda edip bilersiňiz, näçe ýokary bolsa gysyş tizligini has çalt sanlaň.

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

6. Gysylan faýl hakda maglumat görkezmek üçin, meselem, gysylan faýl hakda maglumat görkezmek üçin ulanylýan -l baýdagyny ulanyň.

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

7. Gysylan faýllaryň bitewiligini barlamak üçin, görkezilişi ýaly -t baýdagyny ulanyň.

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

8. Sözlük re modeimini açmak üçin -v opsiýasyny ulanyň.

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

9. Görkezilişi ýaly --format=FORMAT ulanyp, gzip, xz, lzma we lz4 ýaly beýleki faýl gysyş ýa-da dekompressiýa formatlaryny ulanmak.

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

10. Zstd prosesini real wagt üçin ileri tutmak üçin, görkezilişi ýaly –priority=rt opsiýasyny ulanyp bilersiňiz.

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

-r baýdagy zstd-e sözlüklerde yzygiderli işlemegi tabşyrýar. Zstd adam sahypasyna seredip, sözlügi nädip okamalydygyny ýa-da döretmelidigini köp peýdaly we ösen wariantlary tapyp bilersiňiz.

$ man zstd

Zstandard Github ammary: https://github.com/facebook/zstd

Zstandard, ýokary gysyş gatnaşyklaryny hödürleýän çalt real wagt, ýitgisiz maglumatlary gysmak algoritmi we gysyş guralydyr. Synap görüň we bu hakda pikirleriňizi paýlaşyň ýa-da aşakdaky seslenme formasy arkaly sorag beriň.