ES版本升级后出现Trying to create too many scroll contexts. Must be less than or equal to: [500]异常

2023-11-02

从一个异常说起:

[I/O dispatcher 79] WARN RestClient - request [POST http://xx.xx.xxx.xxx:8080/index/_search?scroll=600s] returned 1 warnings: [299 Elasticsearch-6.8.5-78990e9 "Trying to create more than 500 scroll contexts will not be allowed in the next major version by default. You can change the [search.max_open_scroll_context] setting to use a greater default value or lower the number of scrolls that you need to run in parallel."]

 

1.当前版本6.8.5,这个异常的描述是scroll快照太多,同时存在的context数量超过500导致异常。(首先肯定是使用的问题,但是之前的5.3.2版本为什么没异常?该如何解决?)

2.先看下5.3.2的源码,如果是查询是scroll,则进行如下操作:

发现5.3.2版本的默认值是Integer的最大值,如果大于500则一个warn,大于Integer最大值才抛异常

所以也就解释了为什么之前版本不出问题

3.再看一下6.8.5源码:

final SearchContext createAndPutContext(ShardSearchRequest request) throws IOException {
        if (request.scroll() != null && openScrollContexts.get() >= maxOpenScrollContext) {
            throw new ElasticsearchException(
                "Trying to create too many scroll contexts. Must be less than or equal to: [" +
                    maxOpenScrollContext + "]. " + "This limit can be set by changing the ["
                    + MAX_OPEN_SCROLL_CONTEXT.getKey() + "] setting.");
        }

        SearchContext context = createContext(request);
        boolean success = false;
        try {
            putContext(context);
            if (request.scroll() != null) {
                openScrollContexts.incrementAndGet();
                context.indexShard().getSearchOperationListener().onNewScrollContext(context);
            }
            context.indexShard().getSearchOperationListener().onNewContext(context);
            success = true;
            return context;
        } finally {
            if (!success) {
                freeContext(context.id());
            }
        }
    }
maxOpenScrollContext = MAX_OPEN_SCROLL_CONTEXT.get(settings);
public static final Setting<Integer> MAX_OPEN_SCROLL_CONTEXT =
    Setting.intSetting("search.max_open_scroll_context", 500, 0, Property.Dynamic, Property.NodeScope);

所以,maxOpenScrollContext=500,所以到500就报错了

 

 

今天又看到一个问题:

Trying to create too many scroll contexts. Must be less than or equal to: [500]

也是版本升级5->7之后就报错了

ES7版本,7版本每次scroll请求使用的scrollId是同一个(7版本一下,一次scroll中每次查都生成不同的scrollId),所以不是ID的问题

本质原因和以上分析一致

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES版本升级后出现Trying to create too many scroll contexts. Must be less than or equal to: [500]异常 的相关文章

随机推荐

  • idea中快捷键Ctrl+Shift+F冲突

    Ctrl Shift F在idea中的作用是全文或全项目搜索某个词的使用 windows系统自带的微软输入法中简繁体切换的快捷键也是Ctrl Shift F 会导致冲突 如果对简繁体切换需求没那么大 建议将输入法的快捷键关闭 具体操作为 在
  • 三阶矩阵求特征值的快速算法

    一般的三阶矩阵求特征值其实是解析不了的 因为特征方程对应的是三次方程 对于一般的三次方程 是很难求解的 要想方程有三个整数根 并且能够不用完全暴力展开三阶行列式这样的矩阵实际是很特殊的 1 某一行有两个0的情况是最好算的情况 分块上 下三角
  • 2023.7.13

    代码讲解01 PTA 7 38 等边三角形面积 数学基础对于程序设计能力而言很重要 对于等边三角形面积 请选择合适的方法计算之 输入格式 测试数据有多组 处理到文件尾 每组测试输入1个实数表示等边三角形的边长 输出格式 对于每组测试 在一行
  • 开源考试系统

    项目介绍 学之思开源考试系统是一款 java vue 的前后端分离的考试系统 主要优点是开发 部署简单快捷 界面设计友好 代码结构清晰 支持web端和微信小程序 能覆盖到pc机和手机等设备 支持多种部署方式 集成部署 前后端分离部署 doc
  • 为什么推荐编程初学者学习C(C++)/Python?

    人类走进信息化时代 掌握计算机编程是一项不错的技能 培养逻辑思维 解决现实中实际问题的能力 学会将计算机作为人类思想和能力的延展性工具 计算机行业寒冬 但AI和互联网仍然是未来发展的大趋势 学习C语言和Python的区别在哪 为什么选这俩
  • (CVPR2019)图像语义分割(18) DANet-集成双路注意力机制的场景分割网络

    论文地址 Dual Attention Network for Scene Segmentation 工程地址 github链接 1 介绍 该论文提出新型的场景分割网络DANet 利用自注意力机制进行丰富语义信息的捕获 在带有空洞卷积的FC
  • 详解BGP 双平面

    拓扑描述 上平面为A 面 AS1 下平面为B 面 AS2 左边用户群 AS3 右边用户群 AS4 组成两个平面的原因 两个城市之间的数据交互 分为业务流量和办公流量 于此同时 希望业务流量走 上面 办公流量走下面 流量的组成会很清晰 同时两
  • 用windows系统做服务器配置,windows系统做服务器配置

    windows系统做服务器配置 内容精选 换一换 迁移前 您需要设置目的端服务器 该目的端用来接收源端的数据 同时您也可以使用该目的端进行迁移测试和启动目的端 只有 迁移阶段 gt 迁移实时状态 为时才可设置目的端 进入 主机迁移服务 页面
  • Windows10神州网信政府版的配置修改

    Windows10神州网信政府版初始安装完成后 在有些界面上呈现 某些设置已隐藏或由你的组织管理 这就意味着有很多属性并不能由使用者修改 这对用户来说很不不方便 下面是经常用到的一些属性修改 1 修改屏幕保护属性 按Win键 R键调出运行框
  • 排序算法之分治排序

    归并排序是基于分治法实现的 归并排序将待排序的元素序列分为两个长度相等的子序列 为每一个子序列排序 然后再将它们合并成一个序列 合并两个子序列的过程称为两路归并 在执行两路归并算法时 先把待归并元素序列L1复制到辅助数组L2中 再从L2归并
  • Selenium隐藏浏览器特征

    Selenium隐藏浏览器特征 Selenium特征 1 CDP 2 stealth min js 3 undetected chromedriver 4 操作已开启的浏览器 4 常见的隐藏Selenium特征的方法 4 1 修改navig
  • hadoop集群优化(四):开启历史任务服务器

    文章目录 说明 分享 操作 修改配置 同步配置 启动历史服务器 查看jobHistory 总结 说明 hadoop支持历史服务器功能 默认关闭 开启后 通过web可查看完成运行的MapReduce做的的信息记录 如Map和Reduce使用情
  • Python进阶学习(一)

    背景 在编程语言的大背景下 Python普遍被认为是一门易上手的脚本语言 而随着Python的应用越来越广泛 仅仅停留在会跑Python程序是不够的 本篇专栏主要记录一些高阶的用法以及Python语言的一些机制 Python语言掌握需要具备
  • matlab改进秃鹰算法IBES 可直接运行 包括23个测试函数 提供与原算法对比~Matlab

    文章目录 效果一览 文章概述 部分源码 参考资料 效果一览 文章概述 matlab改进秃鹰算法IBES 可直接运行 包括23个测试函数 提供与原算法对比 Matlab 部分源码 清空环境变量 warning off 关闭报警信息 close
  • 威联通qnap SMB速度慢 只有30M、50M的解决方法

    首先 保证NAS与电脑处于千兆以上的局域网中 其次 然后就没有然后了 mmp 研究了一晚上 客服一问三不知 补充一下 有可能这个方法改完无效 这时候你先把 限制匿名用户访问 选择启动 默认是启动严格 然后把否决文件再勾上 然后再取消掉 目前
  • GESP C++ 四级样题卷

    一 单选题 每题 2 分 共 30 分 1 在 C 中 指针变量的大小 单位 字节 是 A 2 B 4 C 8 D 与编译器有关 答案 D 解析 在大多数现代的 32 bit 和 64 bit 的 C 编译器中 指针变量的大小通常是 4 字
  • iOS进阶—Runtime源码解析:动态方法解析

    GitHub参考 PS 参考GitHub分享的objc runtime master代码 及Runtime003代码 iOS进阶 目录 接上文iOS进阶 Runtime源码解析 消息发送 查看Runtime源码 No implementat
  • JS 统计字符串

    function getLength val var str new String val var bytesCount 0 for var i 0 n str length i lt n i var c str charCodeAt i
  • 用watch监听this.$store数据的变化

    如监听this store state username的值 在watch对象中写 watch store state username 你需要执行的代码
  • ES版本升级后出现Trying to create too many scroll contexts. Must be less than or equal to: [500]异常

    从一个异常说起 I O dispatcher 79 WARN RestClient request POST http xx xx xxx xxx 8080 index search scroll 600s returned 1 warni