diff --git a/server/src/main/java/org/opensearch/index/codec/CodecService.java b/server/src/main/java/org/opensearch/index/codec/CodecService.java index 63a32d5d3ca5f..58bc262508d2a 100644 --- a/server/src/main/java/org/opensearch/index/codec/CodecService.java +++ b/server/src/main/java/org/opensearch/index/codec/CodecService.java @@ -72,15 +72,19 @@ public CodecService(@Nullable MapperService mapperService, IndexSettings indexSe } if (mapperService == null) { codecs.put(CodecType.DEFAULT.getName(), new Lucene95Codec()); + codecs.put(CodecType.LZ4.getName(), new Lucene95Codec()); codecs.put(CodecType.BEST_COMPRESSION.getName(), new Lucene95Codec(Mode.BEST_COMPRESSION)); + codecs.put(CodecType.ZLIB.getName(), new Lucene95Codec(Mode.BEST_COMPRESSION)); codecs.put(CodecType.ZSTD.getName(), new ZstdCodec(compressionLevel)); codecs.put(CodecType.ZSTD_NO_DICT.getName(), new ZstdNoDictCodec(compressionLevel)); } else { codecs.put(CodecType.DEFAULT.getName(), new PerFieldMappingPostingFormatCodec(Mode.BEST_SPEED, mapperService, logger)); + codecs.put(CodecType.LZ4.getName(), new PerFieldMappingPostingFormatCodec(Mode.BEST_SPEED, mapperService, logger)); codecs.put( CodecType.BEST_COMPRESSION.getName(), new PerFieldMappingPostingFormatCodec(Mode.BEST_COMPRESSION, mapperService, logger) ); + codecs.put(CodecType.ZLIB.getName(), new PerFieldMappingPostingFormatCodec(Mode.BEST_COMPRESSION, mapperService, logger)); codecs.put(CodecType.ZSTD.getName(), new ZstdCodec(mapperService, logger, compressionLevel)); codecs.put(CodecType.ZSTD_NO_DICT.getName(), new ZstdNoDictCodec(mapperService, logger, compressionLevel)); } diff --git a/server/src/main/java/org/opensearch/index/codec/CodecType.java b/server/src/main/java/org/opensearch/index/codec/CodecType.java index e4ddb97b00def..77be9482192a7 100644 --- a/server/src/main/java/org/opensearch/index/codec/CodecType.java +++ b/server/src/main/java/org/opensearch/index/codec/CodecType.java @@ -22,7 +22,9 @@ public enum CodecType { DEFAULT("default", Set.of()), + LZ4("lz4", Set.of()), BEST_COMPRESSION("best_compression", Set.of()), + ZLIB("zlib", Set.of()), ZSTD("zstd", Set.of(EngineConfig.INDEX_CODEC_COMPRESSION_LEVEL_SETTING)), ZSTD_NO_DICT("zstd_no_dict", Set.of(EngineConfig.INDEX_CODEC_COMPRESSION_LEVEL_SETTING)), /** diff --git a/server/src/main/java/org/opensearch/index/engine/EngineConfig.java b/server/src/main/java/org/opensearch/index/engine/EngineConfig.java index c4f20049e0721..11ccc00c10567 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineConfig.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineConfig.java @@ -131,6 +131,8 @@ public Supplier retentionLeasesSupplier() { public static final Setting INDEX_CODEC_SETTING = new Setting<>("index.codec", "lz4", s -> { switch (s) { case "lz4": + case "default": + case "best_compression": case "zlib": case "zstd": case "zstd_no_dict": @@ -139,7 +141,8 @@ public Supplier retentionLeasesSupplier() { default: if (Codec.availableCodecs().contains(s) == false) { // we don't error message the not officially supported ones throw new IllegalArgumentException( - "unknown value for [index.codec] must be one of [lz4, zlib, zstd, zstd_no_dict] but was: " + s + "unknown value for [index.codec] must be one of [default, best_compression, lz4, zlib, zstd, zstd_no_dict] but was: " + + s ); } return s;