直击 RediSearch v2.10.30 发布现场
RediSearch 是 RedisLabs 团队开发的一个高性能全文搜索引擎,可作为一个 Redis Module 运行在 Redis 上。RediSearch v2.10.30 现已发布,这是 RediSearch 2.10 的一个维护版本。更新紧迫性为 `HIGH`,存在一个可能影响部分用户的严重漏洞,建议尽快升级。
错误修复情况
此次更新修复了多个错误,具体如下:
- [8948](https://github.com/RediSearch/RediSearch/pull/8948) 当调用方缺乏所需的访问控制列表 (ACL) 权限时,`FT.CURSOR READ`会进入无限循环。(MOD-14479)
- [#8794](https://github.com/RediSearch/RediSearch/pull/8794) `FT.EXPLAIN`在并发模式更改时崩溃或产生错误输出。(MOD-14461)
- [#9176](https://github.com/RediSearch/RediSearch/pull/9176)、[#9314](https://github.com/RediSearch/RediSearch/pull/9314) 在混合 FT.SEARCH 和 FT.AGGREGATE 负载下,协调器发生死锁。(MOD-14268)
- [#9273](https://github.com/RediSearch/RediSearch/pull/9273)、[#9302](https://github.com/RediSearch/RediSearch/pull/9302) 当对等端点不可达时,异步分片连接会无限期挂起;现在连接超时时间已限制为 search-connect-timeout。(MOD-12739)
- [#9167](https://github.com/RediSearch/RediSearch/pull/9167) 当拓扑验证失败时(例如,某些节点不可达),`FT.SEARCH`程序崩溃。(MOD-14475)
- [#9082](https://github.com/RediSearch/RediSearch/pull/9082) 即使提供了 PARAMS,FT.SPELLCHECK 仍会忽略 $param 占位符。(MOD-10596)
- [#9050](https://github.com/RediSearch/RediSearch/pull/9050) 对于缺少字段值的文档,FT.PROFILE 会生成格式错误的输出。(MOD-10560)
- [#9075](https://github.com/RediSearch/RediSearch/pull/9075) 在 FT.CREATE 时,会默认接受无效的模式选项组合。((MOD-14655)
- [#9436](https://github.com/RediSearch/RediSearch/pull/9436) RDB 文件中格式错误的索引定义会导致分片崩溃或加载无效索引。(MOD-13118)
- [#7686](https://github.com/RediSearch/RediSearch/pull/7686) 在某些错误处理路径中未释放游标,导致随时间推移游标槽位泄漏。(MOD-12807)
- [#8465](https://github.com/RediSearch/RediSearch/pull/8465) 垃圾回收器对副本上的内存不足响应处理不当,导致索引不一致。(MOD-14066)
- [#7771](https://github.com/RediSearch/RediSearch/pull/7771) 字符串比较会在嵌入`NULL`字节处截断,导致 TAG 字段和二进制字段返回错误结果。(MOD-13010)
- [#7851](https://github.com/RediSearch/RediSearch/pull/7851) `FT.SUG*`命令未在 Redis 企业版中注册。(MOD-13152)
- [#8154](https://github.com/RediSearch/RediSearch/pull/8154) 集群`FT.PROFILE`输出中每个分片的总运行时间报告不正确。(MOD-13735, MOD-13181)
- [#8084](https://github.com/RediSearch/RediSearch/pull/8084) `FT.INFO`统计信息中的`FULLTEXT`字段计数不准确。(MOD-13432)
新增 Metrics 情况
此次更新还新增了多项 Metrics,具体如下:
- [#7558](https://github.com/RediSearch/RediSearch/pull/7558)、# [7688](https://github.com/RediSearch/RediSearch/pull/7688)、[#7723](https://github.com/RediSearch/RediSearch/pull/7723)、[#7791](https://github.com/RediSearch/RediSearch/pull/7791)、[#7749](https://github.com/RediSearch/RediSearch/pull/7749)、[#7738](https://github.com/RediSearch/RediSearch/pull/7738)、[#7744](https://github.com/RediSearch/RediSearch/pull/7744) 新增`FT.INFO`metrics 会显示 worker、coordinator、IO 和拓扑更新线程池的实时线程池利用率及待处理任务深度(search_active_io_threads、search_active_worker_threads、search_active_coord_threads、search_active_topology_update_threads、search_workers_low_priority_pending_jobs、search_workers_high_priority_pending_jobs、 search_workers_admin_priority_pending_jobs, search_coord_high_priority_pending_jobs)。(MOD-12069, MOD-12695, MOD-12694, MOD-12790, MOD-12791)
- [#7793](https://github.com/RediSearch/RediSearch/pull/7793)、[#7816](https://github.com/RediSearch/RediSearch/pull/7816) 新增`FT.INFO`计数器跟踪每个分片和协调器的查询超时和`MAXPREFIXEXPANSIONS`截断(search_shard_total_query_errors_timeout、search_shard_total_query_warnings_timeout、search_shard_total_query_warnings_max_prefix_expansions 以及等效的 search_coord_total_* 计数器)。(MOD-12419, MOD-12417)
- [#7766](https://github.com/RediSearch/RediSearch/pull/7766) 为 TEXT、TAG、NUMERIC、GEO、GEOSHAPE 和 VECTOR 字段新增了 FT.INFO 字段类型索引操作计数器。(MOD-12070)
- [#7746](https://github.com/RediSearch/RediSearch/pull/7746) 在集群 FT.PROFILE 输出中新增了内部游标读取计数器,该计数器显示每个查询的内部游标跳转往返次数。(MOD-12414)
- [#7593](https://github.com/RediSearch/RediSearch/pull/7593) FT.PROFILE 现在会报告 GIL 时间,从而准确地细分查询时间的消耗情况。(MOD-11987, MOD-12816)
更新说明可查看: