{"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\/en\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","title":{"rendered":"High-speed fault-tolerant compression (Continued)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>This article is the second in a series about high-speed data compression. The first article discussed a compressor operating at a rate of 10GB\/sec per CPU core (minimum compression, RTT-Min). <\/p>\n<p>This compressor has already been integrated into the equipment of forensic duplicators for rapid compression of data storage dumps and enhancing cryptographic strength. It can also be used for compressing virtual machine images and swap files of RAM when stored on high-speed SSDs.<\/p>\n<p>The first article also announced the development of a compression algorithm for backing up HDD and SSD drives (average compression, RTT-Mid) with significantly improved data compression parameters. This compressor is now fully ready, and this article is specifically about it. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nThe compressor implementing the RTT-Mid algorithm achieves compression rates comparable to standard archivers like WinRar or 7-Zip operating in high-speed mode, while its processing speed is at least an order of magnitude higher. <\/p>\n<p>The speed of packing\/unpacking data is a critical parameter determining the application area of compression technologies. It\u2019s unlikely anyone would think of compressing a terabyte of data at a speed of 10-15 MB per second (the speed of archivers in standard compression mode), as it would take nearly twenty hours with the CPU fully loaded...<\/p>\n<p>On the other hand, the same terabyte can be copied at speeds of about 2-3 GB per second in about ten minutes. <\/p>\n<p>Therefore, compressing large volumes of information is relevant only if it is done at a speed no lower than real I\/O speeds. For modern systems, this is at least 100 MB per second. <\/p>\n<p>Such speeds can only be achieved by modern compressors in 'fast' mode. It is in this relevant mode that we will compare the RTT-Mid algorithm with traditional compressors.<\/p>\n<h4>Comparative testing of the new compression algorithm<\/h4>\n<p>\n The RTT-Mid compressor operated as part of the test program. In a real 'working' application, it operates significantly faster, as it efficiently utilizes multithreading and employs a 'normal' compiler, not C#. <\/p>\n<p>Since the compressors used in the comparative test are based on different principles and compress various types of data differently, a method of measuring the 'average temperature in the hospital' was used for objectivity in the test...<\/p>\n<p>A sector dump file of the logical disk with the Windows 10 operating system was created; this is the most natural mix of various data structures that exist on every computer. Compressing this file will allow a comparison of the speed and compression level of the new algorithm with the most advanced compressors used in modern archivers.<\/p>\n<p>Here is the dump file:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/39fc5bfe9812ac2417d6eb8ef1dde0a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe dump file was compressed using the RTT-Mid, 7-Zip, and WinRar compressors. The WinRar and 7-Zip compressors were set for maximum speed.<\/p>\n<p>The compressor is operating <b>set now=%TIME:~0,-3%<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/1b088a99fb7b04d5b6ccb500ff74c73e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIt loads the CPU to 100%, while the average reading speed of the original dump is about 60 Megabytes\/sec.<\/p>\n<p>The compressor is operating <b>WinRar<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/462024e8304a90a885ef3857fbd119e1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe situation is similar, the CPU load is almost 100%, with the average reading speed of the dump around 125 Megabytes\/sec.<\/p>\n<p>As in the previous case, the speed of the archiver is limited by the capabilities of the CPU.<\/p>\n<p>Now the compressor test program is running <b>RTT-Mid<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/f46fabcbb362dcf99a8b55877954c3a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe screenshot shows that the CPU is loaded to 50% and idles the rest of the time because there is nowhere to unload the compressed data. The output disk (Disk 0) is nearly fully loaded. The reading speed of data (Disk 1) fluctuates significantly but averages over 200 Megabytes\/sec.<\/p>\n<p>The compressor's operating speed is limited in this case by the ability to write the compressed data to Disk 0.<\/p>\n<p>Now let's look at the degree of compression of the resulting archives:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/1e0740937909c6a5860ef35d15da9e7f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/6e74c8ceab741943a59eca87f092e25b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/3b2f8bed83ea72917f87a3a9813294fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIt can be seen that the RTT-Mid compressor performed the best in terms of compression, with the archive it created being 1.3 Gigabytes smaller than the WinRar archive and 2.1 Gigabytes smaller than the 7z archive.<\/p>\n<p>Time spent creating the archive:<\/p>\n<ul>\n<li> 7-Zip \u2013 26 minutes 10 seconds;<\/li>\n<li> WinRar \u2013 17 minutes 40 seconds;<\/li>\n<li> RTT-Mid \u2013 7 minutes 30 seconds.<\/li>\n<\/ul>\n<p>\nThus, even the test, non-optimized program, using the RTT-Mid algorithm, was able to create an archive over two and a half times faster, while the archive turned out to be significantly smaller than those of its competitors...<\/p>\n<p>Those who do not believe the screenshots can verify their validity themselves. The test program is available at <noindex><a rel=\"nofollow\" href=\"https:\/\/yadi.sk\/d\/9CkY30b1lRcLYw\">this link<\/a><\/noindex>, download it and check.<\/p>\n<p>But only on processors that support AVX-2; without support for these instructions, the compressor does not work, and do not test the algorithm on old AMD processors, as they are slow in executing AVX commands\u2026<\/p>\n<h4>Compression Method Used<\/h4>\n<p>\nThe algorithm uses a method of indexing repeating text fragments in byte granularity. This compression method has been known for a long time but was not used, as the operation of finding matches was very resource-intensive and took much more time than building a dictionary. Therefore, the RTT-Mid algorithm is a classic example of the 'back to the future' movement\u2026<\/p>\n<p>The RTT compressor utilizes a unique fast matching scan scanner, which significantly speeds up the compression process. This custom-made scanner is 'my precious\u2026', 'it comes at a high price because it is completely handcrafted' (written in assembly).<\/p>\n<p>The matching search scanner is designed on a two-level probabilistic scheme: first, it scans for the presence of a 'marker' of a match, and only after identifying the 'marker' at that location does it initiate the procedure for detecting the actual match. <\/p>\n<p>The search window for matches has an unpredictable size that depends on the level of entropy in the processed block of data. For completely random (non-compressible) data, it is megabytes in size; for data containing repeats, it is always greater than one megabyte.<\/p>\n<p>However, many modern data formats are non-compressible, and 'running' a resource-intensive scanner on them is pointless and wasteful. Therefore, the scanner operates in two modes. First, areas of the original text with possible repeats are identified; this operation is also performed probabilistically and executed very quickly (at a speed of 4-6 Gigabytes\/sec). Then, the areas with possible matches are processed by the main scanner. <\/p>\n<p>Index-based compression is not very efficient, as it requires replacing repeating fragments with indexes, and the index array significantly reduces the compression ratio. <\/p>\n<p>To increase the degree of compression, not only full byte string matches are indexed, but also partial ones, where matched and unmatched bytes are present in the string. For this purpose, the index format includes a mask field that indicates the matching bytes of two blocks. To achieve even greater compression, indexing is performed with overlapping partially matching blocks on the current block. <\/p>\n<p>All this has allowed the RTT-Mid compressor to achieve a compression ratio comparable to dictionary method compressors while operating much faster.<\/p>\n<h4>The speed of the new compression algorithm<\/h4>\n<p>\nIf the compressor operates with exclusive use of cache memory (4 Megabytes is required per thread), the working speed fluctuates in the range of 700-2000 Megabytes\/sec. per CPU core depending on the type of compressed data and is minimally affected by the CPU's clock frequency. <\/p>\n<p>In the multithreaded implementation of the compressor, effective scalability is determined by the amount of level three cache memory. For example, with 9 Megabytes of cache memory on board, it makes no sense to run more than two compression threads, as the speed will not increase. However, with 20 Megabytes of cache, it's possible to run five compression threads.<\/p>\n<p>Another significant parameter that determines the compressor's speed is the latency of the RAM. The algorithm makes random accesses to RAM, part of which does not hit the cache (about 10%), causing it to stall waiting for data from RAM, which reduces the working speed. <\/p>\n<p>The operation of the data input\/output system also significantly affects the speed of the compressor. Requests to RAM from input\/output block the CPU's data requests, which also reduces compression speed. This issue is particularly critical for laptops and desktops, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/\"   title=\"servers\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1458\">servers<\/a> where it is less significant due to a more advanced access control block to the system bus and multi-channel memory.<\/p>\n<p>Throughout the article, there is a discussion about compression; decompression falls outside the scope of this article because \"everything is fine\". Decompression occurs significantly faster and is limited by the input\/output speed. One physical core in a single thread easily achieves unpacking speeds of 3-4 gigabytes per second.<\/p>\n<p>This is due to the absence of a matching search operation in the decompression process, which \"consumes\" the main resources of the processor and cache memory during compression. <\/p>\n<h4>Reliability of storing compressed data<\/h4>\n<p>\nAs indicated by the name of the entire class of software that uses data compression (archivers), they are designed for long-term information storage, not for years, but for centuries and millennia\u2026<\/p>\n<p>Over time, storage media lose some data; here's an example:<\/p>\n<p><img decoding=\"async\" alt=\"High-speed fault-tolerant compression (Continued)\" src=\"\/wp-content\/uploads\/2019\/12\/b85564e175204e70ed7c3c3ed0fbf008.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis \"analog\" storage medium is a thousand years old; some fragments are lost, but overall, the information is still \"readable\"\u2026<\/p>\n<p>None of the responsible manufacturers of modern digital storage systems and the digital media associated with them provide guarantees of complete data preservation for more than 75 years.<br \/>\nAnd this is a problem, but a deferred one; our descendants will have to solve it\u2026<\/p>\n<p>Digital data storage systems can lose data not only after 75 years; data errors can occur at any time, even during recording. These distortions are attempted to be minimized by using redundancy and correcting with error correction systems. Redundancy and correction systems cannot always recover lost information, and if they do restore it, there are no guarantees that the recovery operation was successful.<\/p>\n<p>And this is also a major problem, but not a deferred one; it's a current issue.<\/p>\n<p>Modern compressors used for archiving digital data are built on various modifications of the dictionary method, and for such archives, the loss of even a fragment of information can be a fatal event. There is even an established term for such a situation \u2014 a \"corrupted\" archive...<\/p>\n<p>The low reliability of information storage in archives with dictionary compression is related to the structure of the compressed data. Such an archive does not contain the original text; it stores index numbers in the dictionary, which is dynamically modified by the current compressible text. If a fragment of the archive is lost or distorted, all subsequent records in the archive cannot be identified by either content or length because it is unclear what the dictionary entry number corresponds to.<\/p>\n<p>It is impossible to recover information from such a 'broken' archive.<\/p>\n<p>The RTT algorithm is based on a more reliable method of storing compressed data. It employs an indexing method to account for repeated fragments. This approach to compression minimizes the effects of information distortion on the medium and, in many cases, automatically corrects distortions that arise during information storage.<br \/>\nThis is because an archive file in the case of indexed compression contains two fields:<\/p>\n<ul>\n<li>the field of the original text with removed repeated sections;<\/li>\n<li>the index field. <\/li>\n<\/ul>\n<p>\nThe index field, which is critically important for information recovery, is not large in size and can be duplicated for reliability in data storage. Therefore, even if a fragment of the original text or index array is lost, all other information can be restored without issues, similar to the image with an 'analog' information medium.<\/p>\n<h4>Disadvantages of the algorithm<\/h4>\n<p>\nThere are no advantages without disadvantages. The indexing method of compression does not compress repeated sequences of small length. This is due to the limitations of the indexing method. Indexes have a size of at least 3 bytes and can be up to 12 bytes in size. If a repetition occurs with a smaller size than that described by its index, it is not accounted for, no matter how frequently such repetitions are found in the compressed file.<\/p>\n<p>The traditional dictionary-based compression method effectively compresses multiple short repetitions, achieving a greater compression ratio than index compression. However, this comes at the cost of high CPU usage; for the dictionary method to compress data more efficiently than the index method, it has to reduce its processing speed to 10-20 megabytes per second on real computational setups when the CPU is fully loaded.<\/p>\n<p>Such low speeds are unacceptable for modern data storage systems and are of more \"academic\" interest than practical use.<\/p>\n<p>The degree of information compression will be significantly increased in the next modification of the RTT algorithm (RTT-Max), which is already in development.<\/p>\n<p>So, as always, to be continued\u2026<br \/>\n<br \/>Source: <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.2 - 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\/en\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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\udd47High-speed fault-tolerant compression (Continuation) | ProHoster","description":"This article is the second in a series about high-speed data compression. The first article discussed a compressor operating at a rate of 10GB\/sec per CPU core (minimum compression, RTT-Min).","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/skorostnaya-otkazoustojchivaya-kompressiya-prodolzhenie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/53906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=53906"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/53906\/revisions"}],"predecessor-version":[{"id":158702,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/53906\/revisions\/158702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=53906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=53906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=53906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}