Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement filter pipeline framework #912

Merged
merged 1 commit into from
Aug 27, 2018
Merged

Implement filter pipeline framework #912

merged 1 commit into from
Aug 27, 2018

Conversation

tdenniston
Copy link
Contributor

Currently used only for compression. Groundwork for #156.

Besides the filter and filter pipeline implementations, the changes to existing functionality by this PR are:

  • Tile byte layout is changed for persisted tiles. That means this PR is a breaking change for existing arrays: arrays will have to be recreated.
  • Compression is now performed via a pipeline with CompressionFilter.
  • Attribute and ArraySchema now store their compression parameters in memory as FilterPipelines. No changes to metadata serialization or format with this PR.
  • TileIO now only used for generic tiles.

Copy link
Member

@stavrospapadopoulos stavrospapadopoulos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome work!


// Run each chunk through the entire pipeline.
parallel_for(0, chunks.size(), [&](uint64_t i) {
// TODO(ttd): can we instead allocate one FilterStorage per thread?
Copy link
Contributor

@jakebolewski jakebolewski Aug 27, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noting here after a discussion with @tdenniston that probably the easiest way forward is to do static work partitioning and allocate one Filter storage class per work partition (thread). As the work across threads is equally proportional, it should perform well.

@tdenniston tdenniston merged commit 833dcfe into dev Aug 27, 2018
@tdenniston tdenniston deleted the ttd/filter-pipeline branch August 27, 2018 22:18
@tdenniston
Copy link
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants