Skip to content

Improve writer and verifier performance by using multiple threads #239

Description

@ifd3f

Is your feature request related to a problem? Please describe.

Both of these are single-threaded operations. This is why decompressed writing is super slow. Yeah, I know, amateur hour.

Describe the solution you'd like

We will split writer and verifier into multiple reusable threads that communicate to each other likely via mpsc::channel<Bytes>() or mpsc::channel<Arc<[u8]>>():

After this, the logic for spawning writer and verifier tasks will just be wiring.

This can be done simultaneously with #234.

Alternatives

Why mpsc::channel<Bytes>() or mpsc::channel<Arc<[u8]>>() instead of some exotic datastructure? Because it's easy to work with. Plus, disk is probably going to be the limiting factor, not atomic reference counts.

I would like to optimize my pipelines later in Exotic Ways. However, we shouldn't do this until we have good benchmarking (see #238)

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature to add to the program itself. Does not include refactors or platform support.performanceRegarding resource usage

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions