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

[RFC] Hardware-accelerated Compression #130

Open
mulerm opened this issue Mar 26, 2024 · 4 comments
Open

[RFC] Hardware-accelerated Compression #130

mulerm opened this issue Mar 26, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@mulerm
Copy link
Contributor

mulerm commented Mar 26, 2024

PR #122 introduced hardware-accelerated compression, leveraging Intel (R) QAT technology, for DEFLATE and LZ4 compression algorithms. The implementation uses the Qat-Java library to interact with the QAT hardware.

The PR also introduced two additional values for index-codec: qat_deflate and qat_lz4. Both codecs are compatible with their corresponding software counterparts, best_compression and default respectively, but do not override them (at least for the time being).

The new setting index.codec.qatmode defines two modes of execution. A hardware mode exclusively uses QAT while an auto mode may fallback and use a software implementation in cases where hardware resources are not available.

Another approach that could be taken is to override best_compression and default such that, in systems where the hardware is available, hardware acceleration is used.

The purpose of this RFC is to initiate a discussion on the pros and cons this last approach.

@reta @sarthakaggarwal97 @wbeckler @andrross

@akashsha1
Copy link

@backslasht , @dblock as well

@dblock dblock added enhancement New feature or request and removed untriaged labels Jun 24, 2024
@dblock
Copy link
Member

dblock commented Jun 24, 2024

Thanks for opening this RFC. Catch All Triage - 1 2 3 4 5 6

@dblock
Copy link
Member

dblock commented Jun 24, 2024

Did #122 implement what's in this RFC? (Can it be closed?)

@andrross
Copy link
Member

Did #122 implement what's in this RFC? (Can it be closed?)

@dblock I don't think this can be closed. Hardware-accelerated compression has been implemented, but they are distinct codecs, which means the indexes cannot be used on hardware that doesn't support the acceleration. However, the codecs themselves are technically compatible with the existing the best_compression and default codecs. I think there is a valid feature request to make the behavior such that the hardware-accelerated version will be used if running on hardware the supports it, otherwise fallback to the software implementation. The big caveat is that we have to guarantee that the different implementations are in fact 100% interoperable.

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

No branches or pull requests

4 participants