Es 会跟踪每个活动分片的索引,分片在五分钟内如果没有收到任何有关索引的操作,则认为分片不活动了;这将给Es机会去减小分片的资源,同时执行一种特殊刷新,成为:同步刷新;同步刷新也是执行普通的刷新,然后给所有的分片添加一个不同的标记;

当没有索引操作时,id 标记会添加到分片上。标记可以作为一个快速的方式来检查两个分片的lucene索引一致是否一致;这种快速的id 比较主要用于 数据恢复或者重启后跳过第一个也是成本最高的阶段;这种情况下,segment 不需要copy,事务日志的重演会立即执行;当id 标记和flush 一起用的时候,事物日志很可能为空,更加加速了数据的恢复;

这对于具有很多很少更新或者不变的索引的情况(如基于时间的数据),将会更有用;查看分片是否被id 标记,用如下命令:

curl -X GET "dmp9:9201/wzp_test/_stats/commit?level=shards"

{"_shards":{"total":10,"successful":10,"failed":0},"_all":{"primaries":{},"total":{}},"indices":{"wzp_test":{"primaries":{},"total":{},"shards":{"0":[{"routing":{"state":"STARTED","primary":true,"node":"8hkDNjDQRrGMWmhUFbhPrA","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQg==","generation":12,"user_data":{"translog_uuid":"OHqJo56NQoqD0vivoRE_-w","sync_id":"AWdPVMGxhBFTwa1Fywjs","translog_generation":"1543159976461"},"num_docs":411901},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}},{"routing":{"state":"STARTED","primary":false,"node":"aagBamD6QZWOm-GF5QPNdg","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQg==","generation":12,"user_data":{"translog_uuid":"OHqJo56NQoqD0vivoRE_-w","sync_id":"AWdPVMGxhBFTwa1Fywjs","translog_generation":"1543159976461"},"num_docs":411901},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}}],"1":[{"routing":{"state":"STARTED","primary":true,"node":"8hkDNjDQRrGMWmhUFbhPrA","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQQ==","generation":13,"user_data":
{"translog_uuid":"r5RMt3ZDS5ip1Il2cldOKA","sync_id":"AWdPVMGxhBFTwa1Fywjr","translog_generation":"1543160040431"},"num_docs":383147},"shard_path":
{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}},{"routing":{"state":"STARTED","primary":false,"node":"aagBamD6QZWOm-GF5QPNdg","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQQ==","generation":13,"user_data":{"translog_uuid":"r5RMt3ZDS5ip1Il2cldOKA","sync_id":"AWdPVMGxhBFTwa1Fywjr","translog_generation":"1543160040431"},"num_docs":383147},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}}],"2":[{"routing":{"state":"STARTED","primary":true,"node":"8hkDNjDQRrGMWmhUFbhPrA","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAPw==","generation":13,"user_data":{"translog_uuid":"EYkaGyrTTPCtgKArFf0Qyw","sync_id":"AWdPVMGxhBFTwa1Fywjp","translog_generation":"1543159976463"},"num_docs":383110},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}},{"routing":{"state":"STARTED","primary":false,"node":"aagBamD6QZWOm-GF5QPNdg","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAPw==","generation":13,"user_data":{"translog_uuid":"EYkaGyrTTPCtgKArFf0Qyw","sync_id":"AWdPVMGxhBFTwa1Fywjp","translog_generation":"1543159976463"},"num_docs":383110},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}}],"3":[{"routing":{"state":"STARTED","primary":true,"node":"8hkDNjDQRrGMWmhUFbhPrA","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQw==","generation":13,"user_data":{"translog_uuid":"livjpLxlRSakLFnCp8n9Jw","sync_id":"AWdPVMGxhBFTwa1Fywjo","translog_generation":"1543160040432"},"num_docs":410859},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}},{"routing":{"state":"STARTED","primary":false,"node":"aagBamD6QZWOm-GF5QPNdg","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQw==","generation":13,"user_data":{"translog_uuid":"livjpLxlRSakLFnCp8n9Jw","sync_id":"AWdPVMGxhBFTwa1Fywjo","translog_generation":"1543160040432"},"num_docs":410859},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}}],"4":[{"routing":{"state":"STARTED","primary":true,"node":"8hkDNjDQRrGMWmhUFbhPrA","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQA==","generation":13,"user_data":{"translog_uuid":"US1IS1LaR5qkwlJwLLs7Vw","sync_id":"AWdPVMGxhBFTwa1Fywjq","translog_generation":"1543159976461"},"num_docs":416518},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}},{"routing":{"state":"STARTED","primary":false,"node":"aagBamD6QZWOm-GF5QPNdg","relocating_node":null},"commit":{"id":"uSW9jUn1xqqvWjl0/SiAQA==","generation":13,"user_data":{"translog_uuid":"US1IS1LaR5qkwlJwLLs7Vw","sync_id":"AWdPVMGxhBFTwa1Fywjq","translog_generation":"1543159976461"},"num_docs":416518},"shard_path":{"state_path":"/data2/es_test/dmp_test/nodes/0","data_path":"/data2/es_test/dmp_test/nodes/0","is_custom_data_path":false}}]}}}}

官方文档给的结果示例:

curl -X GET "localhost:9200/twitter/_stats/commit?level=shards"{..."indices": {"twitter": {"primaries": {},"total": {},"shards": {"0": [{"routing": {...},"commit": {"id": "te7zF7C4UsirqvL6jp/vUg==","generation": 2,"user_data": {"sync_id": "AU2VU0meX-VX2aNbEUsD" ,...},"num_docs": 0}}...],...}}}
}

同步刷新 API

同步刷新API 允许管理员手动刷新。这对于计划的(回滚)集群重启特别有用,您可以停止索引,并且不希望等待默认的5分钟来自动同步刷新空闲索引;

尽管很方便,但是有一些警告:

  1. 同步刷新是个尽最大努力的操作:任何正在执行索引的操作都会造成同步刷新失败;这就一位置有些分片可能刷新成功,而有些分片则刷新失败;

  2. 同步id 的标记在再次刷新是会移除掉;

这是因为刷新会替换低级别的储存标记的lucene 提交点;事物日志中未提交的操作不会移除id 标记;现实中,在任何时间,应该把索引操作视触发的移除标记为刷新一样;

note:有索引操作时,请求同步刷新是无害的;当索引空闲时同步刷新成功,否则失败;任何请求成功的同步刷新在数据恢复时更加迅速;

curl -X POST "localhost:9200/twitter/_flush/synced"返回值将显示有多少分片同步刷新成功,及失败原因;

1)、以下是同步刷新成功的情况;


{"_shards": {"total": 4,"successful": 4,"failed": 0},"twitter": {"total": 4,"successful": 4,"failed": 0}
}

2)、以下是失败情况及其原因;

{"_shards": {"total": 4,"successful": 2,"failed": 2},"twitter": {"total": 4,"successful": 2,"failed": 2,"failures": [{"shard": 1,"reason": "[2] ongoing operations on primary"}]}
}

note:当并行索引操作时,以上错误会出现,且http 状态码将是 409 ;

3)、有时候分片copy的时候错误很特殊;copy失败对于数据的快速恢复没有用,但是如果成功了依然有用;具体错误如下:

{"_shards": {"total": 4,"successful": 1,"failed": 1},"twitter": {"total": 4,"successful": 3,"failed": 1,"failures": [{"shard": 1,"reason": "unexpected error","routing": {"state": "STARTED","primary": false,"node": "SZNr2J_ORxKTLUCydGX4zA","relocating_node": null,"shard": 1,"index": "twitter"}}]}
}

同步刷新时copy失败,http 返回码将是409 ;

4)、同步刷新可以再单一索引上用,也可以在全部索引上用;

单一索引:

POST /kimchy,elasticsearch/_flush/synced

全部索引:

POST /_flush/synced

ElasticSearch 升级过程中给涉及到的术语-1、同步刷新synced  flush相关推荐

  1. 【Elasticsearch】Elasticsearch 查询过程中的 pre-filter 原理

    1.概述 转载:添Elasticsearch 查询过程中的 pre-filter 原理 大家都知道在对索引执行查询的时候,需要在所有的分片上执行查询,因为无法知道被查询的关键词位于哪个分片,对于全文查 ...

  2. elasticsearch安装过程中的license问题解决办法

    elasticsearch安装过程中的license问题解决办法 参考文章: (1)elasticsearch安装过程中的license问题解决办法 (2)https://www.cnblogs.co ...

  3. linux中license路径,Elasticsearch安装过程中的license问题解决办法

    Elasticsearch安装过程中的license问题解决办法 1.git clone git://github.com/mobz/elasticsearch-head.git 2.cd elast ...

  4. 用户使用计算机从输入,[多选] 用户使用计算机从输入汉字到输出汉字的过程中,涉及到的编码有()...

    [多选] 用户使用计算机从输入汉字到输出汉字的过程中,涉及到的编码有() 更多相关问题 The mistake I made last week has been a timely reminder ...

  5. Confluence 6 在升级过程中查看合并日志

    为了监控升级的过程,你应该查看 application log 日志中的输出. 通常日志经常将会显示多个日志实例,这个实例是定义在日志的 INFO 级别的,通常格式如下: WikiToXhtmlMig ...

  6. elasticsearch部署过程中各种报错解析

    elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as r ...

  7. 苹果手机升级13无法开机_iOS13.5正式更新,升级过程中死机怎么解决?

    今天凌晨,苹果正式推送了 iOS13.5 正式版的更新,此次更新主要优化了戴口罩解锁体验.当 iPhone 检测到用户戴着口罩时,会直接弹出密码输入界面,不需要反复向上滑动. 一般来说,升级更新iPh ...

  8. 网站开发建设过程中所涉及到的技术问题应当如何面对?

    随着当下网络信息技术的迅速发展,几乎当下大部分国内企业都有属于自家的官方网站,也正是在网站如此普及的程度下,让我们意识到网站建设技术的重要性.那么在网站建设中所涉及到的技术上问题也有很多,下面我们可以 ...

  9. ElasticSearch 实践过程中遇到的几个小问题

    ulimit "不生效" 有一台机器的在启动 ES 的时候始终报错 1 max file descriptors [65000] for elasticsearch process ...

最新文章

  1. Quality Certificate Check at Goods Receipt
  2. linux追加内核参数,Linux设置内核参数的方法
  3. AI 会替代程序员?超好用的自动补全代码工具 Deep TabNine!
  4. 重庆市南川隆化职业学校计算机,重庆市第十三届中等职业学校职业技能大赛“web前端开发”赛项在南川隆化职中举行...
  5. 强化学习的基础总结(一)
  6. 五步完成Spring整合Mybatis的完整示例
  7. 【转】Myeclipse2017破解:成功解决me Trial expired 0 days ago mgeclipse It's now time to buy the best IDE for y
  8. layui自定义表单验证无效
  9. Android 测试机选购指南
  10. 计算机毕业设计django基于python仓库管理系统(源码+系统+mysql数据库+Lw文档)
  11. python中右对齐_python右对齐的实例方法
  12. 点击电脑版微信一直打不开解决方案
  13. 正则表达式-验证座机号码
  14. 锐捷无线AC虚拟化配置-VAC
  15. 使用OpenGL,在窗口中绘制两个立体图形,位置分别为窗口的左侧和右侧,添加光照,两个图形分别绕x轴和y轴旋转。
  16. 商城-下单-订单结算页
  17. 深信服2018校园招聘C++工程师编程题 - 题解
  18. 虚拟机安装时黑屏的解决办法
  19. 魔兽世界官方小说android,魔兽世界官方小说(套装共6册)
  20. url链接还原:将url 短链接(加密、压缩后的链接)还原出原始链接

热门文章

  1. 互联网创业公司是否需要技术外包?
  2. 智能运营新功能,多波次营销全触达
  3. ubuntu 11.10使用fcitx双拼输入法
  4. 暴力搜索---新技能get
  5. 第 12 章 武装飞船
  6. idea设置黑色经典样式Darcula
  7. 【笔记】创新思维工作坊(一)
  8. 执行celery -A tasks worker --loglevel=info报错
  9. C# 计算字符串里的汉字多少个.数字多少个.英文多少个.符号和空格多少个
  10. 企业微信如何建立部门?