Settings

Theme

Zstandard v1.5.4

github.com

74 points by ascom 3 years ago · 9 comments

Reader

flykespice 3 years ago

Me being a high perfomance computing enthusiast, it's always an orgasm for me seeing these perfomance improvements releases(and related histories), they are always a unique opportunity for me to learn new optimizations techniques from the commits/PR

londons_explore 3 years ago

I am disappointed that the encoder/decoder state can't be 'checkpointed'.

Imagine this usecase:. We're sending tiny messages over a tiny link. Every byte matters - if we can cut a 10 byte message down to 7, that will really help. So we compress each message as part of a stream, flushing at message boundaries.

However, sometimes messages are lost on the route, and we might decide not to retransmit them - there might now be more relevant stuff to say over the link.

Zstandard has to way to 'undo' a compression operation on a data stream.

  • londons_explore 3 years ago

    Another usecase:. Binary trees of compressed data.

    Imagine you're compressing Wikipedia and want to get the best ratio possible while also being able to access randomly any article.

    If you compress each article individually, words like 'citation needed' will end up replicated in most articles.

    Another approach is to use a dictionary. This solves the citation needed usecase. But we can still do better. There will be lots of common content between the 'general relativity' and 'special relativity' pages, and likewise between the 'France' and 'Germany' pages. Ideally we'd have different dictionaries for different topics. But the dictionaries themselves have overlap, so it would be good to compress them.

    So we end up with a tree-of dictionaries to decode any article.

    However, if you now want to do a full decompression of every article, you ideally don't want to reprocess the dictionary for every decompression. So you want to be able to checkpoint the decompressor state.

  • CodesInChaos 3 years ago

    I think a "flush without updating the state" operation would be enough to handle many use-cases and will probably easier to implement efficiently than full undo or checkpointing support.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection