当前位置: 首页 > news >正文

利用网站新媒体宣传法治建设临沂做网站建设找哪家

利用网站新媒体宣传法治建设,临沂做网站建设找哪家,汕头网站建站公司,推广网app下载1 前言 在《ElasticSearch降本增效常见的方法》一文中曾提到过zstd压缩算法[1]#xff0c;一步一个脚印我们终于在京东ES上线支持了zstd#xff1b;我觉得促使目标完成主要以下几点原因#xff1a; Elastic官方原因#xff1a;zstd压缩算法没有在Elastic官方的开发计划中一步一个脚印我们终于在京东ES上线支持了zstd我觉得促使目标完成主要以下几点原因 Elastic官方原因zstd压缩算法没有在Elastic官方的开发计划中Elastic的licenes变更很多功能使用受限 ES产品竞争力提升京东ES产品在业界的竞争力两大云友商和其他大厂都在陆续支持在对外比拼的时候我们需要提升我们这方面的能力 信创大背景我们需要对开源组件有更好的自主管控和建设能力 京东零售ES与云ES产品融合有更好的机会去打磨我们的ES内核 降本增效ztsd压缩算法能够在降低存储成本的前提下保证性能几乎不受损写入性能还有所提升 2 测试结果 测试集群配置4c8g; 3个数据节点 测试索引设置3主分片1副本 测试数据mapping: keyword字段14个,geo_point字段3个,integer字段2个,text字段1个,date字段2个,ip类型字段1个,boolean字段1个 在考虑到读写性能和压缩比均衡的情况下我们推荐使用jd_zstd(压缩等级3): jd_zstd(压缩等级3)写入性能相对于best_compression提升38.46%相对于lz提升5.88% jd_zstd(压缩等级3)存储相对于lz4节省24%与best_compression基本持平单位写的gb实际是要比best_compression的存储量小。 下表为es6.8.23版本,在cpu压测到100%时不通压缩算法下ES的bulk、termquery、rangequery、matchquery等TPS以及压缩比测试结果 压缩算法bulktermqueryrangequerymatchquery数据存储大小580W条文档segment forcemerge为1个压缩率基准为lz(ES默认为lz压缩算法)lz434K7.7K79045013gb-best_compression26K4.7K78043010gb76.9%jd_zstd(压缩等级3)36K5.4K79045010gb76.9%jd_zstd(压缩等级6)32K5.6K7904609.8gb75.38%jd_zstd(压缩等级9)25K5.5K7904509.8gb75.38% 注意⚠️测试数据仅供参考实际情况与用户数据有关 3 适用场景 写多读少的场景比如日志和监控场景。 4 使用方法 云上ES等待上线后,可以进行申请 目前我们暂时只在内部泰山零售ES上线支持7.X和6.8.23版本后续会在云舰ES和公有云ES上线由于licenes的限制我们将只推出6.8.23版本。 Q1: 如何申请 **A1:**内部用户之前在泰山平台申请的杰斯ES如果使用的是7.X和6.8.23可以选择版本升级到最新版本。新建集群直接提工单申请 Q2 ztsd如何使用 A2:我们在ES中支持两种zstd压缩等级用户可以根据自己的业务和数据特性选择合适的压缩等级 ES创建索引时指定index.codec:jd_zstd压缩等级为3或者jd_zstd_6压缩等级为6)即可其余没有其他任何特殊之处。 注意⚠️index.codec的压缩算法不支持动态修改必须创建索引时设定好。 # 创建索引zstdtest 压缩等级为 3 PUT zstdtest {settings: {index: {codec: jd_zstd}} }# 创建索引zstdtest_6 压缩等级为 3 PUT zstdtest_6 {settings: {index: {codec: jd_zstd_6}} } 5 技术实现 首先我们介绍下ES与Lucene的关系如下图所示在集群层面一个ES集群由多个节点组成。数据层面1个索引是由多个分片组成的一个分片可以看是一个Lucene实例一个分片包含多个segement一个segement即一组数据的最小单元包含很多的数据文件。 5.1 Lucene文件 lucene[2]的数据文件主要由以下文件组成: NAMEExtensionBrief DescriptionSegments Filesegments_N存储已经落盘数据的位移提交点Lock Filewrite.lock锁文件防止多个 IndexWriters 写同一个文件Segment Info.si存储单个segment的metadataCompound File.cfs, .cfe复合文件主要是为了减少文件描述符在IndexWriterConfig可以配置是否生成复合索引文件复合文件实质是索引文件的组合意思是无论是否设置了使用复合文件总是先生成非复合索引文件随后在flush阶段才将这些文件生成.cfs、.cfe文件其中.liv、.si所以文件不会被组合到.cfs、.cfe中。Fields.fnm存储有关字段的信息Field Index.fdx指向字段数据的指针存储了原文数据在原文存储文件中的位置信息建立起了doc id和原文之间的联系以支持快速访问和定位Field Data.fdt文档的存储字段Term Dictionary.timterm词典存储term信息Term Index.tipTerm词典的索引Frequencies.doc文档列表其中包含每个term以及频率Positions.pos存储term在索引中出现位置的位置信息Payloads.pay存储附加的每个位置元数据信息如字符偏移和用户payloadsNorms.nvd, .nvm编码文档和字段的长度以及权重提升因子Per-Document Values.dvd, .dvm编码额外的评分因子或其他每个文档的信息Term Vector Index.tvx矢量数据的索引文件将偏移量存储到文档数据文件中Term Vector Data.tvdterm矢量数据Live Documents.liv有关哪些文档处于存活的信息当发生标记删除时会产生该文件Point values.dii, .dim保留索引点如果存在 上述的文件大致可以分为以下几类 行存相关文件主要包括原文存储文件.fdt和原文索引文件.fdx。用户写入的原始数据都被存储于.fdt占比是最大的Lucene在原文存储上支持LZ4和ZIP(best_compression)压缩。在写入数据时ES把doc原始数据的整个json结构体当做一个string存储为_source字段因此原文存储文件.fdt中_source字段占比最大部分场景为了节省磁盘存储直接将该字段关闭数据查询时仍可通过ES的docvalue_fields获取所有字段的值 _source: {enabled: false} 注意⚠️关闭_source后 update, update_by_query, reindex等功能无法正常使用因此有update等需求的索引不能关闭_source. 列存相关文件.dvd文件常用于OLAP分析ES使用列存来支持sorting, aggregations和scripts功能。不同文档Document中的同一列(Field)数据相邻存放加速列聚合分析性查询。相邻每列类型相同在存储的时候可以进行统一性的编码优化提高压缩率减少存储磁盘空间的占用。ES中字段使用doc_values字为true即为开启列存储。 索引相关文件主要文件包括字典数据文件.tim和倒排索引.doc文件。ES依靠分词器产生倒排索引从而具备强大的全文检索能力。索引配置分词器后将从摄入文档数据中提取分词信息并存储于.tim文件。同一列的分词信息相邻存放按块组织.doc文件也被称为倒排拉链表记录每一个词项所关联的文档id列表实现词项到文档的快速倒排查找。倒排索引也会进行压缩其压缩算法主要有Frame Of Reference、Roaring Bitmap和fst等。 向量数据文件矢量索引tvx和矢量数据.tvd文件支持以图搜图和音频的查找等。通过对摄入实体进行矢量化然后使用向量搜索算法进行检索。相关向量搜索算法有HNSW[3]近似向量搜索knn[4];elastic公司在今年5月份左右推出用于人工智能的 Elasticsearch相关性引擎ESRE[5]。 zstd主要压缩为行存储相关文件.fdm、.fdt 和.fdx如下代码块为压缩文件对比可以看出在不同的压缩算法中这几个文件的大小是不同的。 # 为了节省篇幅部分文件省略 ## lz4压缩算法索引testlz4 0 号分片 total 2.4G -rw-r--r-- 1 admin admin 1.2K Nov 16 16:19 _32.fdm -rw-r--r-- 1 admin admin 1.3G Nov 16 16:19 _32.fdt -rw-r--r-- 1 admin admin 76K Nov 16 16:19 _32.fdx -rw-r--r-- 1 admin admin 85M Nov 16 16:21 _32.kdd -rw-r--r-- 1 admin admin 149M Nov 16 16:21 _32_Lucene80_0.dvd ......................................... -rw-r--r-- 1 admin admin 401 Nov 16 16:21 segments_b -rw-r--r-- 1 admin admin 0 Oct 16 16:05 write.lock## best_compression压缩算法索引 testbestcompression 0 号分片 total 1.9G -rw-r--r-- 1 admin admin 287 Nov 16 17:01 _2b.fdm -rw-r--r-- 1 admin admin 781M Nov 16 17:01 _2b.fdt -rw-r--r-- 1 admin admin 17K Nov 16 17:01 _2b.fdx -rw-r--r-- 1 admin admin 85M Nov 16 17:03 _2b.kdd -rw-r--r-- 1 admin admin 148M Nov 16 17:03 _2b_Lucene80_0.dvd ......................................... -rw-r--r-- 1 admin admin 401 Nov 16 17:03 segments_a -rw-r--r-- 1 admin admin 0 Oct 16 16:27 write.lock## zstd压缩等级为3 索引testzstd3 0 号分片 total 1.9G -rw-r--r-- 1 admin admin 286 Nov 16 17:26 _8e.fdm -rw-r--r-- 1 admin admin 758M Nov 16 17:26 _8e.fdt -rw-r--r-- 1 admin admin 15K Nov 16 17:26 _8e.fdx -rw-r--r-- 1 admin admin 84M Nov 16 17:29 _8e.kdd -rw-r--r-- 1 admin admin 148M Nov 16 17:29 _8e_Lucene80_0.dvd -rw-r--r-- 1 admin admin 3.5K Nov 16 17:29 ......................................... -rw-r--r-- 1 admin admin 402 Nov 16 17:29 segments_9 -rw-r--r-- 1 admin admin 0 Nov 15 16:50 write.lock## zstd压缩等级为6 索引testzstd6 0 号分片 total 1.9G -rw-r--r-- 1 admin admin 286 Nov 16 16:56 _29.fdm -rw-r--r-- 1 admin admin 742M Nov 16 16:56 _29.fdt -rw-r--r-- 1 admin admin 9.8K Nov 16 16:56 _29.fdx -rw-r--r-- 1 admin admin 86M Nov 16 16:58 _29.kdd -rw-r--r-- 1 admin admin 148M Nov 16 16:58 _29_Lucene80_0.dvd ......................................... -rw-r--r-- 1 admin admin 412 Nov 16 16:58 segments_a -rw-r--r-- 1 admin admin 0 Oct 16 16:04 write.lock## zstd压缩等级为9 索引testzstd9 0 号分片 total 1.9G -rw-r--r-- 1 admin admin 286 Nov 16 17:21 _gp.fdm -rw-r--r-- 1 admin admin 738M Nov 16 17:21 _gp.fdt -rw-r--r-- 1 admin admin 13K Nov 16 17:21 _gp.fdx -rw-r--r-- 1 admin admin 85M Nov 16 17:23 _gp.kdd -rw-r--r-- 1 admin admin 149M Nov 16 17:23 _gp_Lucene80_0.dvd ......................................... -rw-r--r-- 1 admin admin 402 Nov 16 17:23 segments_8 -rw-r--r-- 1 admin admin 0 Nov 15 16:50 write.lock 5.2 ES侧实现 理论上来说index.codec支持的压缩算法最好下沉到lucene代码中目前我们并没有维护lucene代码因此我们直接ES侧面代码实现。 zstd[1]算法是基于C实现而ES是基于java编写因此借助开源的力量引入zstd-jni来实现zstd压缩能力. # zstd_jni版本 1.5.5-1 api com.github.luben:zstd-jni:${versions.zstd_jni} 在ES代码中编写自定义的index.codec;扩展CompressionMode压缩模式自定义实现ZstdCompressor压缩和ZstdDecompressor解压缩方法可以在这设定zstd的压缩等级以及控制读写数据块大小最后通过java的spl机制实现加载我们自定义的压缩算法实现类 在server/src/main/resources/META-INF/services/org.apache.lucene.codecs.Codec文件中定义如下. org.elasticsearch.index.codec.custom.ZstdCodec 注意⚠️由于ES节点启动的时候有security检查机制因此我们需要在server/src/main/resources/org/elasticsearch/bootstrap/security.policy文件中添加代码权限授权策略 grant codeBase ${codebase.zstd-jni} {permission java.lang.RuntimePermission loadLibrary.*;permission java.lang.RuntimePermission libzstd.*; }; 6 参考文档 [1] https://github.com/facebook/zstd [2] https://lucene.apache.org/core/8_11_2/core/org/apache/lucene/codecs/lucene87/package-summary.html#package.description [3] Y. Malkov, D. Yashunin,Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs(2016), IEEE Transactions on Pattern Analysis and Machine Intelligence [4] https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html#approximate-knn [5] https://mp.weixin.qq.com/s/awxgy9pSgv0lVPTfvzfxBw [6] https://mp.weixin.qq.com/s/dmJwEpl6CWtv-MLdvR7g 作者京东科技 杨松柏 来源京东云开发者社区 转载请注明来源
http://www.pierceye.com/news/978802/

相关文章:

  • 网站权重是怎么提升的node怎么做网站
  • 珠海哪家做企业网站公司好网站开发常用图标 图像
  • 上海先进网站设计丹阳如何做百度的网站
  • dw免费网站模板下载ui设计培训课程
  • 襄城县城乡建设管理局网站网站推广要具备什么
  • 用vue做网站的实例wordpress redis缓存
  • dedecms模板站源码wordpress上传主题错误
  • 网站需求方案手机网站加载效果
  • 国外空间网站源码网站电子备案
  • 最好网站建设公司运营团队南山医院网站建设
  • 微小店网站建设官网杭州网站设计上市公司
  • 合肥装饰公司做的好的网站采购销售管理软件
  • wordpress做后端wordpress的seo优化
  • 学术会议网站怎么做教学工作总结
  • 可以在线做试卷的网站互联网营销与管理
  • 国际重大新闻湛江做网站优化
  • 做app的模板下载网站有哪些长春网上建设网站
  • 建网站多少钱 万户项目管理软件手机版
  • 福州做网站需要多少钱win10 安装wordpress
  • 网站建设大约需要多少钱软文推广平台排名
  • 开发公司 网站建设价格seo优化排名怎么做
  • 网站开发如何使用微信登录鞍山专业做网站公司
  • 电子商务网站建设设计报告关于网站建设的指标
  • 电子商务网站建设实训展示网络技术就业方向
  • 乐清装修网站哪个好wordpress文章商品模板
  • 可以做超链接或锚文本的网站有哪些张店网站制作哪家好
  • 企业商城网站建设价格怎么自己建立公司网站
  • 网站上的广告怎么做工业设计是什么
  • 制作网站用c#做前台设计师合作网站
  • 做网站具体流程wordpress octopress