System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于压缩算法的Elasticsearch性能优化方法及装置制造方法及图纸_技高网

一种基于压缩算法的Elasticsearch性能优化方法及装置制造方法及图纸

技术编号:42760769 阅读:0 留言:0更新日期:2024-09-18 13:47
本发明专利技术公开一种基于压缩算法的Elasticsearch性能优化方法及装置,其中,该方法包括:引入zstd‑jni依赖包,提供ZSTD压缩算法的Java语言实现;自定义ZstdCompressionMode压缩类,继承Elasticsearch的CompressionMode抽象类,自定义的ZstdCompressionMode压缩类内部包含压缩参数,调用zstd‑jni依赖包的压缩和解压方法,实现压缩和解压方法;自定义ZstdCodec类,继承Lucene的Codec类,使用自定义的ZstdCompressionMode压缩类为DocValues做压缩;通过插件机制将自定义的ZstdCodec类集成到Elasticsearch,注册自定义的ZstdCodec类;创建Elasticsearch索引时,通过settings指定自定义的压缩模式和压缩参数,实现索引和日志数据的ZSTD压缩;根据不同场景调优压缩参数,实现优化压缩比和存储空间。该方法及装置对ES压缩算法进行整合业内先进的压缩算法ZSTD,以优化ES的存储空间和性能。

【技术实现步骤摘要】

本专利技术涉及elasticsearch存储领域,尤其是一种基于压缩算法的elasticsearch性能优化方法及装置。


技术介绍

1、随着企业业务数据量激增,使用elasticsearch存储相关业务数据已成常态。例如系统日志通常存于es中,在大数据量场景下,日志每天写入量达到pb级别,给es的写入性能和存储成本带来巨大压力。

2、es中的索引由多个分片组成,每个分片包含多个段文件,段文件是最小的存储和搜索单元。段文件主要包含:

3、(1)行存文件:原文存储文件和原文索引文件,原文数据就存于行存文件中。

4、(2)列存文件:专门用于olap分析。

5、(3)索引文件:包含字典数据文件和倒排索引文件,实现全文检索能力。

6、其中,行存文件的比重最大,可占比30%以上。而行存文件当前支持的压缩算法有lz4和deflate,目前es默认支持的压缩算法lz4在性能方面表现出色,但压缩比相对较低。deflate提供了更高的压缩比,但会牺牲一些性能。因此,在选择压缩算法时,需要权衡压缩比和性能之间的取舍,无法很好兼顾压缩比和性能。因此有必要引入新的压缩算法,以优化es的存储空间和性能。


技术实现思路

1、针对上述情况,本专利技术提供一种基于压缩算法的elasticsearch性能优化方法及装置,对es压缩算法进行整合业内先进的压缩算法zstandard(zstd),可以提供更好的压缩比和性能。

2、为实现上述目的,本专利技术采用下述技术方案:

3、在本专利技术一实施例中,提出了一种基于压缩算法的elasticsearch性能优化方法,该方法包括:

4、引入zstd-jni依赖包,提供zstd压缩算法的java语言实现;

5、自定义zstdcompressionmode压缩类,继承elasticsearch的compressionmode抽象类,自定义的zstdcompressionmode压缩类内部包含压缩参数,调用zstd-jni依赖包的压缩和解压方法,实现压缩和解压方法;

6、自定义zstdcodec类,继承lucene的codec类,使用自定义的zstdcompressionmode压缩类为docvalues做压缩;

7、通过插件机制将自定义的zstdcodec类集成到elasticsearch,注册自定义的zstdcodec类;

8、创建elasticsearch索引时,通过settings指定自定义的压缩模式和压缩参数,实现索引和日志数据的zstd压缩;

9、根据不同场景调优压缩参数,实现优化压缩比和存储空间。

10、进一步地,在压缩方法中,调用zstd-jni依赖包的压缩方法,根据压缩参数中的压缩等级和块大小,对数据进行压缩操作;在解压方法中,调用zstd-jni依赖包的解压方法,对数据进行解压操作。

11、进一步地,实现插件的onindexmodule回调函数,并通过函数参数中的codecservice实例调用registercodec方法,将自定义的zstdcodec类进行注册。

12、进一步地,根据不同场景调优压缩参数,实现优化压缩比和存储空间,包括:

13、根据业务需求适当调整块大小,通过增大块大小来提高压缩比;

14、根据cpu使用情况选择合适的压缩等级,通过提高压缩等级来降低存储空间。

15、在本专利技术一实施例中,还提出了一种基于压缩算法的elasticsearch性能优化装置,该装置包括:

16、es整合zstd压缩算法模块,用于引入zstd-jni依赖包,提供zstd压缩算法的java语言实现;自定义zstdcompressionmode压缩类,继承elasticsearch的compressionmode抽象类,自定义的zstdcompressionmode压缩类内部包含压缩参数,调用zstd-jni依赖包的压缩和解压方法,实现压缩和解压方法;自定义zstdcodec类,继承lucene的codec类,使用自定义的zstdcompressionmode压缩类为docvalues做压缩;通过插件机制将自定义的zstdcodec类集成到elasticsearch,注册自定义的zstdcodec类;创建elasticsearch索引时,通过settings指定自定义的压缩模式和压缩参数,实现索引和日志数据的zstd压缩;

17、压缩参数调优模块,用于根据不同场景调优压缩参数,实现优化压缩比和存储空间。

18、进一步地,在压缩方法中,调用zstd-jni依赖包的压缩方法,根据压缩参数中的压缩等级和块大小,对数据进行压缩操作;在解压方法中,调用zstd-jni依赖包的解压方法,对数据进行解压操作。

19、进一步地,实现插件的onindexmodule回调函数,并通过函数参数中的codecservice实例调用registercodec方法,将自定义的zstdcodec类进行注册。

20、进一步地,根据不同场景调优压缩参数,实现优化压缩比和存储空间,包括:

21、根据业务需求适当调整块大小,通过增大块大小来提高压缩比;

22、根据cpu使用情况选择合适的压缩等级,通过提高压缩等级来降低存储空间。

23、在本专利技术一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于压缩算法的elasticsearch性能优化方法。

24、在本专利技术一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于压缩算法的elasticsearch性能优化方法的计算机程序。

25、有益效果:

26、1、提升存储效率:zstd压缩算法采用字典压缩和多级压缩策略,通过引用字典中的匹配项和不同的压缩级别,能够有效减少存储空间的占用。通过使用zstd压缩算法对es中的行存文件进行压缩,可以显著降低存储成本,并提供更高的存储效率。

27、2、提高写入性能:es在处理大数据量场景下的写入性能面临挑战。使用zstd压缩算法可以减少待写入数据的量,从而降低写入操作所需的时间和资源消耗。zstd压缩算法具有快速的压缩和解压速度,通过充分利用硬件并行性和优化的编码过程,可以提高es的写入性能。

28、3、改善查询性能:通过压缩索引文件,特别是倒排索引文件,可以减少磁盘io操作和网络传输开销。zstd压缩算法的高速压缩和解压特性可以加快数据的读取和解析过程,从而提高查询性能和响应速度。

29、4、灵活的压缩策略参数:zstd压缩算法提供一套压缩策略参数,可以根据实际应用场景和业务数据的特点进行调整。例如,可以通过增大块大小来提高压缩比,或提高压缩等级来降低存储空间,根据cpu使用情本文档来自技高网...

【技术保护点】

1.一种基于压缩算法的Elasticsearch性能优化方法,其特征在于,该方法包括:

2.根据权利要求1所述的基于压缩算法的Elasticsearch性能优化方法,其特征在于,在压缩方法中,调用zstd-jni依赖包的压缩方法,根据压缩参数中的压缩等级和块大小,对数据进行压缩操作;在解压方法中,调用zstd-jni依赖包的解压方法,对数据进行解压操作。

3.根据权利要求1所述的基于压缩算法的Elasticsearch性能优化方法,其特征在于,实现插件的onIndexModule回调函数,并通过函数参数中的CodecService实例调用registerCodec方法,将自定义的ZstdCodec类进行注册。

4.根据权利要求1所述的基于压缩算法的Elasticsearch性能优化方法,其特征在于,根据不同场景调优压缩参数,实现优化压缩比和存储空间,包括:

5.一种基于压缩算法的Elasticsearch性能优化装置,其特征在于,该装置包括:

6.根据权利要求5所述的基于压缩算法的Elasticsearch性能优化装置,其特征在于,在压缩方法中,调用zstd-jni依赖包的压缩方法,根据压缩参数中的压缩等级和块大小,对数据进行压缩操作;在解压方法中,调用zstd-jni依赖包的解压方法,对数据进行解压操作。

7.根据权利要求5所述的基于压缩算法的Elasticsearch性能优化装置,其特征在于,实现插件的onIndexModule回调函数,并通过函数参数中的CodecService实例调用registerCodec方法,将自定义的ZstdCodec类进行注册。

8.根据权利要求5所述的基于压缩算法的Elasticsearch性能优化装置,其特征在于,根据不同场景调优压缩参数,实现优化压缩比和存储空间,包括:

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4任一项所述方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-4任一项所述方法的计算机程序。

...

【技术特征摘要】

1.一种基于压缩算法的elasticsearch性能优化方法,其特征在于,该方法包括:

2.根据权利要求1所述的基于压缩算法的elasticsearch性能优化方法,其特征在于,在压缩方法中,调用zstd-jni依赖包的压缩方法,根据压缩参数中的压缩等级和块大小,对数据进行压缩操作;在解压方法中,调用zstd-jni依赖包的解压方法,对数据进行解压操作。

3.根据权利要求1所述的基于压缩算法的elasticsearch性能优化方法,其特征在于,实现插件的onindexmodule回调函数,并通过函数参数中的codecservice实例调用registercodec方法,将自定义的zstdcodec类进行注册。

4.根据权利要求1所述的基于压缩算法的elasticsearch性能优化方法,其特征在于,根据不同场景调优压缩参数,实现优化压缩比和存储空间,包括:

5.一种基于压缩算法的elasticsearch性能优化装置,其特征在于,该装置包括:

6.根据权利要求5所述的基于压缩算法的elas...

【专利技术属性】
技术研发人员:闫一帅
申请(专利权)人:中盈优创资讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1