Skip to content

ZSTD Compressor/Decompressor support in Lucene [LUCENE-9919] #10958

@asfimport

Description

@asfimport

Lucene currently supports LZ4 and Zlib compression/decompression for StoredFieldsFormat, DocValuesFormat, TermVectorsFormat and PostingsFormat codecs. We propose Zstandard (https://facebook.github.io/zstd/) compression/decompression for all codecs mentioned earlier for following reasons:

  • ZStandard is being used in some of the most popular open source projects like Apache Cassandra, Hadoop and Kafka.
  • Zstandard, at the default setting of 3, is expected to show substantial improvements in both compression and decompression speed, while compressing at the same ratio as zlib as per study mentioned by Yann Collet at Facebook.
  • Zstandard currently offers 22 different Compression levels, which enable flexible, granular trade-offs between compression speed and ratios for future data. For example, we can use level 1 if speed is most important and level 22 if size is most important.
  • Zstandard designed to scale with modern hardware.
  • Small data

          - It has APIs for dictionary compression as well. Small data compression can range anywhere from 2x to 5x better than compression without dictionaries.

  • Zstandard is being continuously improved by Facebook/Community.

 

Kindly go through below link for more details:       

https://engineering.fb.com/2016/08/31/core-data/smaller-and-faster-data-compression-with-zstandard/


Migrated from LUCENE-9919 by Praveen Nishchal, 1 vote, resolved Apr 15 2021
Linked issues:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions