Rapidgzip – Parallel Decompression and Seeking in Gzip (Knespel, Brunst – 2023) [pdf]

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
sponsored
  1. rapidgzip

    Gzip Decompression and Random Access for Modern Multi-Core Machines

    Hi, author here.

    You are right in the index being the easy-mode. Over the years there have been lots of implementations trying to add an index like that to the gzip metadata itself or as a sidecar file, with bgzip probably being the most known one. None of them really did stick, hence the necessity for some generic multi-threaded decompressor. A probably incomplete list of such implementations can be found in this issue: https://github.com/mxmlnkn/rapidgzip/issues/8

    The index makes it so easy that I can simply delegate decompression to zlib. And since paper publication I've actually improved upon this by delegating to ISA-l / igzip instead, which is twice as fast. This is already in the 0.8.0 release.

    As derived from table 1, the false positive rate is 1 Tbit / 202 = 5 Gbit or 625 MB for deflate blocks with dynamic Huffman code. For non-compressed blocks, the false positive rate is roughly one per 500 KB, however non-compressed blocks can basically be memcpied or skipped over and then the next deflate header can be checked without much latency. On the other hand, for dynamic blocks, the whole block needs to be decompressed first to find the next one. So the much higher false positive rate for non-compressed blocks doesn't introduce that much overhead.

    I have some profiling built into rapidgzip, which is printed with -v, e.g., rapidgzip -v -d -o /dev/null 20xsilesia.tar.gz :

        Time spent in block finder              : 0.227751 s

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • How Gzip Work

    4 projects | news.ycombinator.com | 17 Sep 2024
  • uni-algo v1.0.0: Modern Unicode Library

    6 projects | /r/cpp | 7 Jul 2023
  • Can I include cycfi/elements with CMake in any project or must I build up on example projects?

    1 project | /r/cpp_questions | 8 Jan 2023
  • Can I include cycfi/elements with CMake in any project or must I build up on example projects?

    1 project | /r/cpp | 8 Jan 2023
  • C++ Show and Tell - December 2022

    8 projects | /r/cpp | 2 Dec 2022

Did you know that C++ is
the 7th most popular programming language
based on number of references?