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

refactor: remove reverts from compressor using draft pool approach #532

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

crStiv
Copy link

@crStiv crStiv commented Jan 11, 2025

This PR implements #482 by replacing the current revert-based approach with a draft pool strategy.

Key improvements:

  • Removes complex goto-based logic with reverts
  • Uses a pool of draft compressors for better isolation
  • Thread-safe implementation with ConcurrentLinkedQueue
  • Improved testability and maintainability

Implementation details:

  • Each compression attempt uses a separate compressor from the pool
  • Main state is only updated after successful compression
  • Failed attempts don't affect the main state
  • Efficient reuse of compressors through pooling

Based on feedback from @ivokub in #367 regarding state isolation and avoiding reverts.

Tests added:

  • Basic compression scenarios
  • Concurrent compression using pool
  • Pool reuse and efficiency
  • State isolation verification
  • Error handling

All tests passing locally.

Copy link

cla-assistant bot commented Jan 11, 2025

CLA assistant check
All committers have signed the CLA.

Copy link

cla-assistant bot commented Jan 11, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

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

Successfully merging this pull request may close these issues.

1 participant