-
Notifications
You must be signed in to change notification settings - Fork 2k
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
[Backport 2.x] Add experimental support for zstd compression. #6982
Conversation
* Add experimental support for zstd and lz4 (native) compression. Add experimental support for zstd (with and without dictionary support) and lz4 (native) compressions as discussed in: #3354. Users would be able to set the index.codec setting with the values "lz4_native" (for lz4 native), "zstd" (for zstd with dictionary), and "zstd_no_dict" (for zstd without a dictionary). Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix license issues, add tests for zstd, zstd_no_dict, and lz4_native compressions. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix DCO and and issues with CodecTests.java. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix forbidden api violation error for lz4-java. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix license headers. Remove and fix unnecessary fields. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix magic numbers. Use more restrictive access modifiers. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Use protected access modifier for Zstd and LZ4 compression mode classes. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Allow negative compression levels for zstd. Use more restrictive access modifiers. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Use a more restrictive permission for loading zstd-jni and lz4-java libraries. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Rename a file (follow a consistent version naming convention). Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Refactor and create a new custom-codecs sandbox module. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Remove blank lines. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Restore Lucene92CustomCodec to extend from FilterCodec. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Make use of the compressionLevel argument. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Make Lucene92CustomCodec abstract and use a package-private access modifier. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix missing JavaDoc issues. Remove unused field in PerFieldMappingPostingFormatCodec. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix lint errors. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix the description for the custom-codecs plugin. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Fix wildcard import and improve documentation. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Access control exception fixed. Removed lz4-java support for now. - PRs were made to zstd-jni and lz4-java to use AccessController.doPrivileged. - The zstd-jni PR is merged since version 1.5.4-1. - The lz4-java support temporarily removed until the PR gets merged. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Upgrade plugin to use Lucene95Codec. Rename files accordingly. - Upgrade plugin to use Lucene95Codec. Rename files accordingly. - Fix lint issue with plugin-security. - Remove thridPartyAudit that was there for supporting lz4-java. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Add test cases for compression/decompression. Other minor changes. - add test cases for compression/decompression. - rename package. - add a CHANGELOG entry. - add more checks for signed integer arithmetic. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Remove ES grant in plugin-security.policy. Fix minor javadoc issue. - Remove ES grant in plugin-security.policy file. - Replace @link and @see to fix javadoc error. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Upgrade jettison version to 1.5.4. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> * Update SHA for jettison 1.5.4. Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> --------- Signed-off-by: Mulugeta Mammo <mulugeta.mammo@intel.com> Co-authored-by: Daniel (dB.) Doubrovkine <dblock@amazon.com> (cherry picked from commit f071c9b) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
So this will ship with 2.7.0, @mulugetam WDYT about writing a blog post or some kind of reference about the advantages of ZSTD and how to try the experimental feature? we can start/should be documenting it in https://github.com/opensearch-project/documentation-website too. |
Gradle Check (Jenkins) Run Completed with:
|
docker pull rate limit ... will need to retry later ... grrr |
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
@dblock Sure, will do that and share. |
Backport f071c9b from #3577.