{"id":53906,"date":"2019-12-13T00:00:00","date_gmt":"2019-12-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie"},"modified":"2020-02-18T14:01:51","modified_gmt":"2020-02-18T11:01:51","slug":"skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","title":{"rendered":"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ten artyku\u0142 jest drug\u0105 cz\u0119\u015bci\u0105 cyklu dotycz\u0105cego szybkiej kompresji danych. W pierwszym artykule opisano kompresor dzia\u0142aj\u0105cy z pr\u0119dko\u015bci\u0105 10 GB\/s na jedno rdzenie procesora (minimalna kompresja, RTT-Min). <\/p>\n<p>Ten kompresor zosta\u0142 ju\u017c wdro\u017cony w sprz\u0119cie kryminalistycznych duplikator\u00f3w do szybkiej kompresji zrzut\u00f3w informacji oraz wzmacniania odporno\u015bci kryptografii. Mo\u017ce r\u00f3wnie\u017c by\u0107 u\u017cywany do kompresji obraz\u00f3w maszyn wirtualnych i plik\u00f3w swap pami\u0119ci operacyjnej przy ich zapisywaniu na szybkich dyskach SSD.<\/p>\n<p>W pierwszym artykule zapowiedziano r\u00f3wnie\u017c opracowanie algorytmu kompresji do kompresji kopii zapasowych dysk\u00f3w HDD i SSD (\u015brednia kompresja, RTT-Mid) z niezwykle ulepszonymi parametrami kompresji danych. Do tej pory ten kompresor jest w pe\u0142ni gotowy i ten artyku\u0142 dotyczy w\u0142a\u015bnie jego. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKompresor realizuj\u0105cy algorytm RTT-Mid zapewnia stopie\u0144 kompresji por\u00f3wnywalny ze standardowymi archiwizatorami, takimi jak WinRar czy 7-Zip, dzia\u0142aj\u0105cymi w trybie szybkiej kompresji. Przy tym jego pr\u0119dko\u015b\u0107 dzia\u0142ania jest co najmniej o rz\u0105d wy\u017csza. <\/p>\n<p>Szybko\u015b\u0107 pakowania\/rozpakowywania danych jest krytycznym parametrem okre\u015blaj\u0105cym obszar zastosowania technologii kompresji. Ma\u0142o kto pomy\u015bla\u0142by o kompresji terabajta danych z pr\u0119dko\u015bci\u0105 10-15 MB na sekund\u0119 (taka w\u0142a\u015bnie pr\u0119dko\u015b\u0107 archiwizator\u00f3w w standardowym trybie kompresji), poniewa\u017c zajmie to prawie dwadzie\u015bcia godzin przy pe\u0142nym obci\u0105\u017ceniu procesora...<\/p>\n<p>Z drugiej strony ten sam terabajt mo\u017cna skopiowa\u0107 z pr\u0119dko\u015bci\u0105 rz\u0119du 2-3 GB na sekund\u0119 w ci\u0105gu oko\u0142o dziesi\u0119ciu minut. <\/p>\n<p>Dlatego kompresja du\u017cych ilo\u015bci danych jest istotna, je\u015bli odbywa si\u0119 z pr\u0119dko\u015bci\u0105 nie mniejsz\u0105 ni\u017c rzeczywista pr\u0119dko\u015b\u0107 wej\u015bcia\/wyj\u015bcia. Dla nowoczesnych system\u00f3w oznacza to co najmniej 100 MB na sekund\u0119. <\/p>\n<p>Takie pr\u0119dko\u015bci nowoczesne kompresory mog\u0105 osi\u0105gn\u0105\u0107 tylko w trybie 'fast'. I w\u0142a\u015bnie w tym aktualnym trybie b\u0119dziemy por\u00f3wnywa\u0107 algorytm RTT-Mid z tradycyjnymi kompresorami.<\/p>\n<h4>Por\u00f3wnawcze testowanie nowego algorytmu kompresji<\/h4>\n<p>\n Kompresor RTT-Mid dzia\u0142a\u0142 w ramach programu testowego. W rzeczywistej 'roboczej' aplikacji dzia\u0142a znacznie szybciej, gdzie zyskuje si\u0119 na wielow\u0105tkowo\u015bci i wykorzystuje 'normalny' kompilator, a nie C#. <\/p>\n<p>Poniewa\u017c u\u017cywane w te\u015bcie por\u00f3wnawczym kompresory dzia\u0142aj\u0105 na r\u00f3\u017cnych zasadach, a r\u00f3\u017cne typy danychCompressuj\u0105 r\u00f3\u017cnie, do obiektywno\u015bci testu zastosowano metod\u0119 pomiaru \u201e\u015bredniej temperatury w szpitalu\u201d...<\/p>\n<p>Stworzono plik sekcyjnego zrzutu logicznego dysku z systemem operacyjnym Windows 10, jest to najbardziej naturalna mieszanka r\u00f3\u017cnych struktur danych, kt\u00f3re mo\u017cna znale\u017a\u0107 na ka\u017cdym komputerze. Kompresja tego pliku pozwoli por\u00f3wna\u0107 szybko\u015b\u0107 i stopie\u0144 kompresji nowego algorytmu z najbardziej zaawansowanymi kompresorami u\u017cywanymi w nowoczesnych archiwizatorach.<\/p>\n<p>Oto ten plik zrzutu:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/39fc5bfe9812ac2417d6eb8ef1dde0a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPlik zrzutu by\u0142 kompresowany przez kompresory RTT-Mid, 7-zip, WinRar. Kompresor WinRar i 7-zip zosta\u0142y ustawione na maksymaln\u0105 pr\u0119dko\u015b\u0107 pracy.<\/p>\n<p>Kompresor dzia\u0142a <b>7-zip<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/1b088a99fb7b04d5b6ccb500ff74c73e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nObci\u0105\u017ca procesor na 100%, podczas gdy \u015brednia pr\u0119dko\u015b\u0107 odczytu oryginalnego zrzutu wynosi oko\u0142o 60 MegaBajt\u00f3w\/s.<\/p>\n<p>Kompresor dzia\u0142a <b>WinRar<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/462024e8304a90a885ef3857fbd119e1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSytuacja analogiczna, obci\u0105\u017cenie procesora prawie 100%, \u015brednia pr\u0119dko\u015b\u0107 odczytu zrzutu wynosi oko\u0142o 125 MegaBajt\u00f3w\/s.<\/p>\n<p>Jak w poprzednim przypadku, szybko\u015b\u0107 pracy archiwizatora jest ograniczona przez mo\u017cliwo\u015bci procesora.<\/p>\n<p>Teraz dzia\u0142a program testowy kompresora <b>RTT-Mid<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/f46fabcbb362dcf99a8b55877954c3a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZrzut ekranu pokazuje, \u017ce procesor jest obci\u0105\u017cony w 50% i reszt\u0119 czasu jest bezczynny, poniewa\u017c nie ma mo\u017cliwo\u015bci zrzutu skompresowanych danych. Dysk zrzutu danych (Dysk 0) jest prawie w pe\u0142ni obci\u0105\u017cony. Szybko\u015b\u0107 odczytu danych (Dysk 1) waha si\u0119, ale \u015brednio wynosi ponad 200 MegaBajt\u00f3w\/s.<\/p>\n<p>Szybko\u015b\u0107 pracy kompresora jest w tym przypadku ograniczana przez mo\u017cliwo\u015bci zapisu skompresowanych danych na Dysku 0.<\/p>\n<p>Teraz stopie\u0144 kompresji otrzymanych archiw\u00f3w:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/1e0740937909c6a5860ef35d15da9e7f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/6e74c8ceab741943a59eca87f092e25b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/3b2f8bed83ea72917f87a3a9813294fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWida\u0107, \u017ce kompresor RTT-Mid poradzi\u0142 sobie najlepiej z kompresj\u0105, archiwum stworzone przez niego jest o 1,3 GigaBajta mniejsze od archiwum WinRar i o 2,1 GigaBajta mniejsze od archiwum 7z.<\/p>\n<p>Czas po\u015bwi\u0119cony na utworzenie archiwum:<\/p>\n<ul>\n<li> 7-zip \u2013 26 minut 10 sekund;<\/li>\n<li> WinRar \u2013 17 minut 40 sekund;<\/li>\n<li> RTT-Mid \u2013 7 minut 30 sekund.<\/li>\n<\/ul>\n<p>\nTak wi\u0119c, nawet testowy, nieoptymalizowany program, wykorzystuj\u0105c algorytm RTT-Mid, m\u00f3g\u0142 stworzy\u0107 archiwum ponad dwa i p\u00f3\u0142 razy szybciej, a archiwum okaza\u0142o si\u0119 znacznie mniejsze ni\u017c u konkurencji\u2026<\/p>\n<p>Ci, kt\u00f3rzy nie wierz\u0105 w zrzuty ekranu, mog\u0105 sami sprawdzi\u0107 ich wiarygodno\u015b\u0107. Program testowy jest dost\u0119pny pod <noindex><a rel=\"nofollow\" href=\"https:\/\/yadi.sk\/d\/9CkY30b1lRcLYw\">linkiem<\/a><\/noindex>, pobieraj i sprawdzaj.<\/p>\n<p>Jednak tylko na procesorach z obs\u0142ug\u0105 AVX-2, bez wsparcia dla tych instrukcji kompresor nie dzia\u0142a, i nie testuj algorytmu na starych procesorach AMD, s\u0105 wolne w zakresie wykonywania komend AVX...<\/p>\n<h4>U\u017cywana metoda kompresji<\/h4>\n<p>\nW algorytmie stosuje si\u0119 metod\u0119 indeksowania powtarzaj\u0105cych si\u0119 fragment\u00f3w tekstu w granicach bajtowych. Taka metoda kompresji jest znana od dawna, ale nie by\u0142a wcze\u015bniej stosowana, poniewa\u017c operacja wyszukiwania dopasowa\u0144 by\u0142a bardzo kosztowna pod wzgl\u0119dem wymaganych zasob\u00f3w i zajmowa\u0142a znacznie wi\u0119cej czasu ni\u017c budowanie s\u0142ownika. Tak wi\u0119c algorytm RTT-Mid jest klasycznym przyk\u0142adem ruchu \"wstecz w przysz\u0142o\u015b\u0107\"...<\/p>\n<p>W kompresorze RTT zastosowano unikalny szybki skaner wyszukiwania dopasowa\u0144, to w\u0142a\u015bnie on pozwoli\u0142 przyspieszy\u0107 proces kompresji. Skaner w\u0142asnej produkcji, to \"moja \u015bwieczka...\", \"cena nie jest ma\u0142a, poniewa\u017c jest to w pe\u0142ni r\u0119czna robota\" (napisany w asemblerze).<\/p>\n<p>Skaner wyszukiwania dopasowa\u0144 jest oparty na dwupoziomowej prawdopodobie\u0144stwowej strukturze, najpierw skanowane jest wyst\u0105pienie \"znaku\" dopasowania, a dopiero po zidentyfikowaniu \"znaku\" w tym miejscu uruchamiana jest procedura wykrywania rzeczywistego dopasowania. <\/p>\n<p>Okno wyszukiwania dopasowa\u0144 ma nieprzewidywalny rozmiar, zale\u017cny od poziomu entropii w przetwarzanym bloku danych. Dla ca\u0142kowicie losowych (niekompresowalnych) danych ma rozmiar megabajtu, dla danych zawieraj\u0105cych powt\u00f3rzenia zawsze ma rozmiar wi\u0119kszy ni\u017c megabajt.<\/p>\n<p>Jednak wiele nowoczesnych format\u00f3w danych nie da si\u0119 skompresowa\u0107 i \"przesuwanie\" po nich zasobo\u017cernym skanerem jest bezsensowne i marnotrawne, dlatego w skanerze stosuje si\u0119 dwa tryby pracy. Najpierw wyszukiwane s\u0105 fragmenty oryginalnego tekstu z mo\u017cliwymi powt\u00f3rzeniami, ta operacja r\u00f3wnie\u017c przeprowadzana jest metod\u0105 probabilistyczn\u0105 i wykonywana jest bardzo szybko (z pr\u0119dko\u015bci\u0105 4-6 Gigabajt\u00f3w\/s). Nast\u0119pnie fragmenty z mo\u017cliwymi dopasowaniami s\u0105 przetwarzane przez g\u0142\u00f3wny skaner. <\/p>\n<p>Kompresja indeksowa nie jest zbyt efektywna, trzeba zast\u0119powa\u0107 powtarzaj\u0105ce si\u0119 fragmenty indeksami, a tablica indeks\u00f3w znacznie obni\u017ca wsp\u00f3\u0142czynnik kompresji. <\/p>\n<p>Aby zwi\u0119kszy\u0107 stopie\u0144 kompresji, indeksowane s\u0105 nie tylko pe\u0142ne dopasowania ci\u0105g\u00f3w bajt\u00f3w, ale tak\u017ce cz\u0119\u015bciowe, gdy w ci\u0105gu znajduj\u0105 si\u0119 dopasowane i niedopasowane bajty. W tym celu do formatu indeksu w\u0142\u0105czono pole maski dopasowa\u0144, kt\u00f3re wskazuje na dopasowane bajty dw\u00f3ch blok\u00f3w. Dla jeszcze wi\u0119kszej kompresji stosuje si\u0119 indeksowanie z nak\u0142adaniem kilku cz\u0119\u015bciowo dopasowanych blok\u00f3w na aktualny blok. <\/p>\n<p>Wszystko to pozwoli\u0142o uzyska\u0107 w kompresorze RTT-Mid stopie\u0144 kompresji por\u00f3wnywalny z kompresorami dzia\u0142aj\u0105cymi w oparciu o metod\u0119 s\u0142ownikow\u0105, ale dzia\u0142aj\u0105cym znacznie szybciej.<\/p>\n<h4>Pr\u0119dko\u015b\u0107 dzia\u0142ania nowego algorytmu kompresji<\/h4>\n<p>\nJe\u015bli kompresor pracuje przy monopolnym wykorzystaniu pami\u0119ci podr\u0119cznej (na jeden w\u0105tek wymaga 4 MB), to pr\u0119dko\u015b\u0107 pracy waha si\u0119 w zakresie 700-2000 MB\/s na jedno rdze\u0144 procesora, w zale\u017cno\u015bci od rodzaju kompresowanych danych i nieznacznie od cz\u0119stotliwo\u015bci pracy procesora. <\/p>\n<p>W przypadku wielow\u0105tkowej realizacji kompresora efektywna skalowalno\u015b\u0107 jest okre\u015blana przez obj\u0119to\u015b\u0107 pami\u0119ci podr\u0119cznej trzeciego poziomu. Na przyk\u0142ad, maj\u0105c \u201ena pok\u0142adzie\u201d 9 MB pami\u0119ci podr\u0119cznej, uruchamianie wi\u0119cej ni\u017c dw\u00f3ch w\u0105tk\u00f3w kompresji nie ma sensu, poniewa\u017c pr\u0119dko\u015b\u0107 od tego nie wzro\u015bnie. Ale przy pami\u0119ci podr\u0119cznej o pojemno\u015bci 20 MB mo\u017cna ju\u017c uruchamia\u0107 pi\u0119\u0107 w\u0105tk\u00f3w kompresji.<\/p>\n<p>Istotnym parametrem wp\u0142ywaj\u0105cym na pr\u0119dko\u015b\u0107 dzia\u0142ania kompresora jest r\u00f3wnie\u017c latencja pami\u0119ci RAM. Algorytm wykorzystuje losowe odwo\u0142ania do RAM, z kt\u00f3rych cz\u0119\u015b\u0107 nie trafia do pami\u0119ci podr\u0119cznej (oko\u0142o 10%) i musi czeka\u0107 na dane z RAM, co obni\u017ca pr\u0119dko\u015b\u0107 pracy. <\/p>\n<p>Na pr\u0119dko\u015b\u0107 kompresora znacz\u0105co wp\u0142ywa r\u00f3wnie\u017c praca systemu wej\u015bcia\/wyj\u015bcia danych. \u017b\u0105dania do RAM od wej\u015bcia\/wyj\u015bcia blokuj\u0105 dost\u0119p do danych ze strony CPU, co r\u00f3wnie\u017c obni\u017ca pr\u0119dko\u015b\u0107 kompresji. Problem ten jest znacz\u0105cy dla laptop\u00f3w i komputer\u00f3w stacjonarnych, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/\"   title=\"serwer\u00f3w\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1458\">serwer\u00f3w<\/a> jest mniej istotny dzi\u0119ki bardziej zaawansowanemu blokowi zarz\u0105dzania dost\u0119pem do magistrali systemowej i pami\u0119ci RAM wielokana\u0142owej.<\/p>\n<p>W ca\u0142ym tek\u015bcie artyku\u0142u mowa jest o kompresji, dekompresja nie jest poruszana, poniewa\u017c tam \u201ewszystko jest w porz\u0105dku\u201d. Dekompresja przebiega znacznie szybciej i ogranicza si\u0119 do pr\u0119dko\u015bci wej\u015bcia\/wyj\u015bcia. Jedno fizyczne rdze\u0144 w jednym w\u0105tku swobodnie zapewnia pr\u0119dko\u015bci rozpakowywania na poziomie 3-4 gigabajty\/sek.<\/p>\n<p>Jest to zwi\u0105zane z brakiem w procesie rozpakowywania operacji wyszukiwania dopasowa\u0144, kt\u00f3ra \u201ezabiera\u201d g\u0142\u00f3wne zasoby procesora i pami\u0119ci podr\u0119cznej podczas kompresji. <\/p>\n<h4>Niezawodno\u015b\u0107 przechowywania skompresowanych danych<\/h4>\n<p>\nJak wynika z nazwy ca\u0142ej klasy oprogramowania wykorzystuj\u0105cego kompresj\u0119 danych (archiwizatory), s\u0105 one przeznaczone do d\u0142ugoterminowego przechowywania informacji, nie na lata, ale na wieki i tysi\u0105clecia...<\/p>\n<p>W trakcie przechowywania no\u015bniki informacji trac\u0105 cz\u0119\u015b\u0107 danych, oto przyk\u0142ad:<\/p>\n<p><img decoding=\"async\" alt=\"Szybkie odporne na awarie kompresowanie (Cz\u0119\u015b\u0107 2)\" src=\"\/wp-content\/uploads\/2019\/12\/b85564e175204e70ed7c3c3ed0fbf008.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTemu \u201eanalogowemu\u201d no\u015bnikowi informacji jest tysi\u0105c lat, niekt\u00f3re fragmenty s\u0105 utracone, ale og\u00f3lnie informacja jest \u201eczytelna\u201d\u2026<\/p>\n<p>\u017baden z odpowiedzialnych producent\u00f3w nowoczesnych cyfrowych system\u00f3w przechowywania danych oraz cyfrowych no\u015bnik\u00f3w do nich nie daje gwarancji pe\u0142nej trwa\u0142o\u015bci danych na wi\u0119cej ni\u017c 75 lat.<br \/>\nI to jest problem, ale problem od\u0142o\u017cony, jego rozwi\u0105zaniem zajm\u0105 si\u0119 nasi nast\u0119pcy...<\/p>\n<p>Systemy przechowywania danych cyfrowych mog\u0105 traci\u0107 dane nie tylko po 75 latach, b\u0142\u0119dy w danych mog\u0105 pojawi\u0107 si\u0119 w ka\u017cdej chwili, nawet podczas ich zapisu, te zniekszta\u0142cenia staraj\u0105 si\u0119 zminimalizowa\u0107, stosuj\u0105c nadmiarowo\u015b\u0107 i poprawiaj\u0105c dzi\u0119ki systemom korekcji b\u0142\u0119d\u00f3w. Nadmiarowo\u015b\u0107 i systemy korekcji mog\u0105 przywr\u00f3ci\u0107 utracon\u0105 informacj\u0119 nie zawsze, a je\u015bli ju\u017c przywracaj\u0105, to nie ma gwarancji, \u017ce operacja przywracania przebieg\u0142a poprawnie.<\/p>\n<p>I to te\u017c jest du\u017cy problem, ale nie od\u0142o\u017cony, a bie\u017c\u0105cy.<\/p>\n<p>Nowoczesne kompresory u\u017cywane do archiwizacji danych cyfrowych opieraj\u0105 si\u0119 na r\u00f3\u017cnych modyfikacjach metody s\u0142ownikowej i w przypadku takich archiw\u00f3w utrata fragmentu informacji b\u0119dzie wydarzeniem katastroficznym, istnieje nawet ustalony termin dla takiej sytuacji - \u201ezepsute\u201d archiwum\u2026<\/p>\n<p>Niska niezawodno\u015b\u0107 przechowywania informacji w archiwach z kompresj\u0105 s\u0142ownikow\u0105 jest zwi\u0105zana z struktur\u0105 skompresowanych danych. Informacja w takim archiwum nie zawiera oryginalnego tekstu, przechowywane s\u0105 numery rekord\u00f3w w s\u0142owniku, a sam s\u0142ownik jest dynamicznie modyfikowany przez aktualnie kompresowany tekst. W przypadku utraty lub uszkodzenia fragmentu archiwum, wszystkie subsequent records in the archive cannot be identified either by content or by length in the dictionary, since it is unclear what the dictionary entry number corresponds to.<\/p>\n<p>Odzyskanie informacji z takiego \"zepsutego\" archiwum jest niemo\u017cliwe.<\/p>\n<p>Algorytm RTT oparty jest na bardziej niezawodnej metodzie przechowywania skompresowanych danych. Wykorzystuje on indeksow\u0105 metod\u0119 \u015bledzenia powtarzaj\u0105cych si\u0119 fragment\u00f3w. Takie podej\u015bcie do kompresji minimalizuje skutki zniekszta\u0142cenia informacji na no\u015bniku i w wielu przypadkach automatycznie koryguje zniekszta\u0142cenia, kt\u00f3re powsta\u0142y podczas przechowywania informacji.<br \/>\nJest to zwi\u0105zane z tym, \u017ce plik archiwum w przypadku kompresji indeksowej zawiera dwa pola:<\/p>\n<ul>\n<li>pole oryginalnego tekstu z usuni\u0119tymi fragmentami powtarzania;<\/li>\n<li>pole indeks\u00f3w. <\/li>\n<\/ul>\n<p>\nKrytycznie wa\u017cne dla odzyskiwania informacji pole indeks\u00f3w, nie jest du\u017ce pod wzgl\u0119dem rozmiaru i mo\u017cna je zduplikowa\u0107 dla niezawodno\u015bci przechowywania danych. Dlatego nawet je\u015bli fragment oryginalnego tekstu lub tablica indeks\u00f3w zostanie utracona, ca\u0142a pozosta\u0142a informacja b\u0119dzie mog\u0142a by\u0107 odzyskiwana bez problem\u00f3w, jak na obrazku z \"analogowym\" no\u015bnikiem informacji.<\/p>\n<h4>Wady algorytmu<\/h4>\n<p>\nZalety nie istniej\u0105 bez wad. Indeksowa metoda kompresji nie kompresuje powtarzaj\u0105cych si\u0119 sekwencji ma\u0142ej d\u0142ugo\u015bci. Jest to zwi\u0105zane z ograniczeniami metody indeksowej. Indeksy maj\u0105 rozmiar nie mniejszy ni\u017c 3 bajty i mog\u0105 mie\u0107 rozmiar do 12 bajt\u00f3w. Je\u015bli wyst\u0119puje powt\u00f3rzenie o mniejszym rozmiarze ni\u017c opisuj\u0105cy je indeks, to nie jest brane pod uwag\u0119, niezale\u017cnie od tego, jak cz\u0119sto takie powt\u00f3rzenia wyst\u0119puj\u0105 w kompresowanym pliku.<\/p>\n<p>Tradycyjna metod\u0105 kompresji oparta na s\u0142owniku skutecznie kompresuje wielokrotne powt\u00f3rzenia ma\u0142ej d\u0142ugo\u015bci, osi\u0105gaj\u0105c wi\u0119kszy wsp\u00f3\u0142czynnik kompresji ni\u017c kompresja indeksowa. Niestety, jest to uzyskiwane kosztem wysokiego obci\u0105\u017cenia procesora centralnego; aby metoda s\u0142ownikowa mog\u0142a efektywniej kompresowa\u0107 dane w por\u00f3wnaniu do metody indeksowej, musi obni\u017cy\u0107 szybko\u015b\u0107 przetwarzania danych do 10-20 megabajt\u00f3w na sekund\u0119 w rzeczywistych instalacjach obliczeniowych przy pe\u0142nym obci\u0105\u017ceniu CPU.<\/p>\n<p>Tak niskie pr\u0119dko\u015bci s\u0105 nieakceptowalne dla nowoczesnych system\u00f3w przechowywania danych i maj\u0105 wi\u0119ksze zainteresowanie \u00abakademickie\u00bb ni\u017c praktyczne.<\/p>\n<p>Stopie\u0144 kompresji informacji zostanie znacznie zwi\u0119kszony w nast\u0119pnej modyfikacji algorytmu RTT (RTT-Max), kt\u00f3ry jest ju\u017c w fazie rozwoju.<\/p>\n<p>Tak wi\u0119c, jak zawsze, ci\u0105g dalszy nast\u0105pi\u2026<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/479888\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0443\u0436\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0432 \u0442\u0435\u043c\u0435 \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 10\u0413\u0431\u0430\u0439\u0442\/\u0441\u0435\u043a. \u043d\u0430 \u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u044f\u0434\u0440\u043e (\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, RTT-Min). \u042d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440, \u0443\u0436\u0435 \u0432\u043d\u0435\u0434\u0440\u0435\u043d \u0432 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043b\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043c\u043f\u043e\u0432 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0442\u0430\u043a\u0436\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53906","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0443\u0436\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0432 \u0442\u0435\u043c\u0435 \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 10\u0413\u0431\u0430\u0439\u0442\/\u0441\u0435\u043a. \u043d\u0430 \u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u044f\u0434\u0440\u043e (\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, RTT-Min).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u0430\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0430\u044f \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f (\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0443\u0436\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0432 \u0442\u0435\u043c\u0435 \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 10\u0413\u0431\u0430\u0439\u0442\/\u0441\u0435\u043a. \u043d\u0430 \u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u044f\u0434\u0440\u043e (\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, RTT-Min).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Szybkie, niezawodne kompresje (Cz\u0119\u015b\u0107 2) | ProHoster","description":"Ten artyku\u0142 jest drug\u0105 cz\u0119\u015bci\u0105 cyklu dotycz\u0105cego szybkiej kompresji danych. W pierwszym artykule opisano kompresor dzia\u0142aj\u0105cy z pr\u0119dko\u015bci\u0105 10 GB\/s na jedno rdzenie procesora (minimalna kompresja, RTT-Min).","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u0430\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0430\u044f \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f (\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435) | ProHoster","og:description":"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0443\u0436\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0432 \u0442\u0435\u043c\u0435 \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u044b\u043b \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 10\u0413\u0431\u0430\u0439\u0442\/\u0441\u0435\u043a. \u043d\u0430 \u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u044f\u0434\u0440\u043e (\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, RTT-Min).","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53906","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 18:05:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:15:55","updated":"2026-02-09 18:05:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/53906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=53906"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/53906\/revisions"}],"predecessor-version":[{"id":158702,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/53906\/revisions\/158702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=53906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=53906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=53906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}