0
点赞
收藏
分享

微信扫一扫

3月技术栈更新丨ES、Redis、RocksDB、Logstash、Grafana等版本发布汇总

春意暖洋洋 2022-06-01 阅读 41

本文汇总了数据库、大数据、运维领域近一个月的软件更新信息,包括:Elasticsearch、Redis、RocksDB、SQLite、CrateDB、Logstash、Grafana,供大家参考,紧跟最新技术发展趋势。


Elasticsearch 发布多个版本


2022 年 3 月,Elasticsearch 连续发布了多个版本,主要版本信息如下:

Elastisearch 7.17.1


功能改进:

  • 弃用驼峰格式的日期信息 API
  • 在受限名称中使用相同的系统索引模式
  • 更新 YAML REST 测试,以检查所有响应中的产品标头
  • 根据外部设置调整 indices.recovery.max_bytes_per_sec
  • 弃用 API 中的 Surface 脚本弃用警告


Bug 修复:

  • 向后兼容版本 7.17.0
  • 修复数据流的自动缩放
  • 正确处理具有 500 个或更多实例的大型 GCE 区域
  • 如果它无法计算签名区域,则 GeometryNormalizer 不应失败
  • 不允许 ILM 中的负年龄解释


升级:

  • 将矢量切片 google protobuf 更新为 3.16.1
  • 捆绑的 JDK 升级到 17.0.2+8

lasticsearch 8.0.1


Elasticsearch 8.0.1 是 8.0 的维护版本。


Bug修复:

1、聚合

  • 修复与 7.17.0 的向后兼容性


2、分布式

  • 正确处理具有 500 个或更多实例的大型区域


3、工业光模+SLM

  • 不允许在解释生命周期 API 响应中出现负年龄 (negative age)


4、基础设施/核心

  • 遇到错误的功能迁移时,始终重新运行
  • 复制 trace.id 到 threadcontext stash
  • 在 ResultDeduplicator 中保留上下文
  • 注册命名为 XContent 对象的 SystemIndexMigrationTask
  • 如果 _meta 为空 ,则更新系统索引映射


5、Ingest

  • 修复 GeoIpDownloader 滚动升级期间的启动问题
  • 修复首次匹配后的短路 date 模式


6、机器学习

  • 在迁移过程中重试异常检测任务恢复


7、监控

  • 将 kibana_stats 版本别名添加到 monitoring-kibana-mb 模板


8、打包

  • 添加 log4j-slf4j-impl 到 repository-azure
  • postinst 中的密钥库升级后重启 ES


9、恢复

  • 将缺失的 indices.recovery.internal_action_retry_timeout 添加到设置列表


10、SQL

  • 修复空结果集的 txt 格式


11、搜索

  • 避免在获取阶段急过急地加载 StoredFieldsReader
  • 当没有索引匹配时,返回有效的 PIT


12、安全

  • 将 jANSI 依赖项升级到 2.4.0


13、Snapshot/Restore

  • 将获取快照序列化移动到管理池
  • snapshotDeletionListeners 中保留上下文


14、转变

  • 修复停止转换处理存储桶的条件


15、Watcher

  • 容忍 Watch 定义中的空类型数组


增强功能:

1、基础设施/REST API

  • 更新 YAML REST 测试,以检查所有响应中的产品标头


2、恢复

  • 根据外部设置调整 indices.recovery.max_bytes_per_sec


升级:

1、Geo

  • 将矢量切片 google protobuf 更新为 3.16.1


2、包装

  • 捆绑的 JDK 升级到 17.0.2+8

Elasticsearch 8.1

已知问题:

  • 在 8.1 中,当 xpack.security.audit.logfile.events.emit_request_body 集群设置为 true 时,一个错误(#84784)会导致使用过滤字段的 API 返回一个带有 401 HTTP 状态码的 null_pointer_exception 错误


重要变化:

1、Geo

  • Fields API 应返回规范化的几何图形


错误修复:

1、Aggregations

  • 重新启用 BooleanTermsIT
  • 向后兼容 7.17.0 版本
  • 将浮点数和半浮点数减少到其存储的精度


2、Allocation

  • 修复 updateMinNode 条件
  • 使 *.routing.allocation.* 成为基于列表的设置
  • 允许在 flood-stage-blocked 索引上进行元数据更新
  • 集群恢复后重新路由


3、Authorization

  • 创建 API 密钥时捕获匿名角色
  • 扩展 fleet-server 服务账户的权限


4、Distributed

  • [GCE Discovery] 正确处理具有 500 个或更多实例的大型区域


5、Engine

  • 当分片失败时分叉到 WRITE 线程


6、ILM+SLM

  • 修复 PolicyStepsRegistry 的 cachedSteps null 处理


更多详情可查看:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/es-release-notes.html


Redis 发布 7.0-rc2


2022 年 2 月 28 日,Redis 发布了 7.0-rc2 版本,具体更新内容如下:


新特性:

  • 添加 stream 消费者组滞后跟踪和报告
  • 为函数和评估 Lua 脚本添加 API 以明确检查 ACL


新的用户命令或命令参数:

  • COMMAND GETKEYSANDFLAGS 子命令
  • INFO 命令可以采用多个部分参数
  • XGROUP CREATE 和 SETID:新的 ENTRIESREAD 可选参数
  • XSETID 新的 ENTRIESADDED 和 MAXDELETEDID 可选参数


已扩展的 Command replies:

  • XINFO 报告消费者组滞后和其他一些字段
  • XAUTOCLAIM 返回一个带有删除 ID 列表的新元素


性能和资源利用改进:

  • 减少客户端回复的系统调用和小数据包
  • 减少陈旧客户端的内存使用量
  • 修复 Redis 6.2 中引入的 Z[REV]RANGE 命令(按等级)中的回归


Bug 修复:

  • Modules:修复模块线程添加错误回复时的线程安全违规
  • Lua:修复 Eval scripts active defrag
  • 修复地理搜索边界框检查导致丢失结果
  • Lua:在评估 Lua 脚本和函数时添加对 min-slave-* 配置的检查
  • Modules:在具有挂起计时器的模块上使用 MODULE UNLOAD 时防止崩溃和内存泄漏
  • 修复被阻止客户端的错误统计信息和失败的命令统计信息
  • Lua/Modules:修复脚本和模块的缺失和重复错误统计信息
  • 在集群 setslot 期间检查目标节点是否为主节点
  • Sentinel:如果配置保存失败返回错误


更多详情可查看:https://github.com/redis/redis/releases/tag/7.0-rc2


RocksDB 发布多个版本


2022 年 3 月,RocksDB 连续发布了多个版本,其中更新较多的版本信息如下:

RocsDB 7.0.0


Bug修复:

  • 修复了当启用 memtable Bloom 过滤器 (memtable_prefix_bloom_size_ratio > 0) 时,批量 MultiGet 可能返回由 DeleteRange 删除的键的旧值的主要错误
  • 修复了更多 EventListener::OnTableFileCreated 调用的情况,状态为 OK,file_size==0,且没有保留 SST 文件
  • 修复了DB::GetMergeOperands().
  • 修复并发事务提交和 memtable 切换导致的 2PC 写提交事务的数据丢失问题
  • 修复了 NUM_INDEX_AND_FILTER_BLOCKS_READ_PER_LEVEL、NUM_DATA_BLOCKS_READ_PER_LEVEL 和 NUM_SST_READ_PER_LEVEL 统计信息,每个级别的每个 MultiGet 批次报告一次


性能改进:

  • 减少了构建在线 LSM 树一致性检查所使用的文件位置哈希表的开销,这可以提高某些工作负载的性能
  • 切换到使用排序std::vector而不是std::map存储 blob 文件的元数据对象,可以提高某些工作负载的性能,尤其是当 blob 文件的数量很大时
  • DisableManualCompaction() 不必等待计划的手动压缩在线程池中执行以取消作业


行为改变:

  • 禁止 DBOptions.use_direct_io_for_flush_and_compaction == true 和 DBOptions.writable_file_max_buffer_size == 0 的组合,这种组合会导致 WritableFileWriter::Append() 永远循环,在直接 IO 中没有多大意义
  • ReadOptions::total_order_seek不再影响 DB::Get(),这种交互已经过时,因为 RocksDB 已经能够检测当前的前缀提取器是否与用于生成表文件的前缀提取器兼容


新特性:

  • 引入了BlockBasedTableOptions::detect_filter_construct_corruption在 Bloom Filter (format_version >= 5) 和 Ribbon Filter 构建期间检测损坏的选项
  • 改进了 SstDumpTool 以从表属性中读取比较器,并使用它来读取 SST 文件
  • 扩展了信息日志中的列族统计信息,还会记录 blob 文件中的垃圾总量和 blob 文件空间放大系数,还通过rocksdb.blob-stats DB 属性公开了 blob 文件空间放大器
  • 在 ch 中引入 APIrocksdb_create_dir_if_missing,调用底层文件系统的 CreateDirIfMissing API 来创建目录
  • 添加了最后一级和非最后一级读取统计信息:LAST_LEVEL_READ_* 、 NON_LAST_LEVEL_READ_*
  • 实验性:在 FSRandomAccessFile 中添加对新 API ReadAsync 的支持,以异步读取数据,并在 FileSystem 中添加 Poll API 以检查请求的读取请求是否已完成。ReadAsync 采用回调函数。轮询 API 检查读取 IO 请求的完成情况,并应调用回调函数来指示读取请求的完成

RocksDB 7.0.1


Bug 修复:

  • 修复使用 DisableManualCompaction 取消手动压缩时的竞争条件,DB close 也可以取消手动压缩线程
  • 修复了 DBImpl::ResumeImpl() 和等待恢复完成的线程之间的 versions_ 数据竞争
  • 修复了由刷新、传入写入和拍摄快照之间的竞争导致的错误,对使用这些竞争条件创建的快照查询可能会返回不正确的结果,例如重新显示已删除的数据

RocksDB 7.0.3


Bug 修复:

  • 修复了一个重大的性能错误,由于在 #9590 中对 FilterPolicy::Name() 的更改,早期 7.0.x 版本无法读取 7.0 之前的版本生成的 Bloom 过滤器(反之亦然)。这会严重影响现有数据库升级或降级时的读取性能和读取 I/O,但不会影响数据正确性
  • 修复了Iterator::Refresh()在执行 DeleteRange() 后读取 stale keys 的错误


Public API changes:

  • 添加了纯虚拟 FilterPolicy::CompatibilityName(),这是修复涉及 SST 元数据中 FilterPolicy 命名的主要性能错误所需要的,而不影响 FilterPolicy 的 Customizable 方面。对于源代码来说,这一变化只影响到那些拥有自己的自定义或包装 FilterPolicy 类的用户,但在补丁版本中确实破坏了编译库的二进制兼容性
  • 从 RocksDB 7 开始,RocksJava 现在需要 Java 8(以前是 Java 7)

RocksDB 7.0.4


Bug 修复:

  • 修复了禁用和重新启用 manual compaction 时的 race condition
  • 修复了非双写队列模式下alive_log_files_的 race condition。该 race 在 WriteToWAL() 中的 write_thread_ 和另一个正在执行FindObsoleteFiles()的线程之间进行。如果启用__glibcxx_requires_nonempty,将捕获 race condition
  • 修复了在 POSIX 上映射 WritableFile 时的 race condition
  • 修复了禁用 2PC 并启用 MANIFEST 中的 WAL 跟踪时的一个 race condition。该 race condition 发生在试图安装刷新结果的两个后台刷新线程之间,导致未在 MANIFEST 中跟踪 WAL 删除。未来的 DB 打开可能会失败
  • 修复了 DropColumnFamily 的 heap use-after-free race
  • 修复了rocksdb.read.block.compaction.micros无法跟踪 compaction stats 的错误


更多详情可查看:https://github.com/facebook/rocksdb/releases


SQLite 发布两个版本


2022 年 3 月,SQLite 发布了两个小版本,更新内容如下:

SQLite 3.38.1


  • 修复了新的 Bloom 过滤器优化的问题,该问题可能会导致一些模糊的查询得到不正确的答案
  • 修复日期和时间函数的 localtime 修饰符,以便它保留小数秒
  • 修正 sqlite_offset SQL 函数,使其即使在极端情况下也能正确工作
  • 修复了虚拟表的行值 IN 运算符约束,这样即使虚拟表的实现依赖于字节码来过滤不满足约束的行,它们也能正确工作
  • 对 assert() 语句、测试用例和文档进行了小的修复

SQLite 3.38.2


  • 修复了另一个用户所发现的新 Bloom 过滤器优化问题
  • 不允许在 assert() 中使用 #ifdef
  • 强化 unix 和 Windows VFSes 的 xShmLock 方法,使其在 SHM 文件未打开时不会被调用
  • 在 btree 模块的 sqlite3BtreeInsert() 函数中加强对损坏的数据库的保护
  • 修复 zipfile 扩展,使其知道零长度的 BLOB 返回一个 NULL 指针
  • 运行 sqlite3_declare_vtab() 时禁用触发器编码


更多详情可查看:https://sqlite.org/changes.html


CrateDB 发布 4.7.1


2022 年 3 月 11 日,分布式 SQL 数据库 CrateDB 正式发布 4.7.1 版本,该版本更新内容如下:


修复:

  • 修复了来自COPY FROM的一个问题,该问题导致表的默认表达式仅计算一次,从而导致整个表使用一个单一的值而不是每一行。这仅影响 non-deterministic 函数,例如,gen_random_text_uuid()、random()等
  • 修复了从 CrateDB 版本 < 4.0 读取 translog 文件时可能导致错误的问题
  • 修复了在使用引用多个其他关系的连接条件时可能导致Couldn't create execution plan的错误问题
  • 修复了当在文件系统中不存在父目录的 globbed URI 下执行COPY FROM时导致 NPE 的问题
  • 修复了在CREATE VIEW语句的查询部分使用标量子查询时,会导致在CREATE VIEW中使用Invalid query错误
  • 修复了在上层查询中未使用分区上的 window function 时导致失败的问题。例如:select x from (select x, ROW_NUMBER() OVER (PARTITION BY y) from t) t1
  • 修复了导致错误结果集的显式转换参数的比较函数参数的不正确优化。例如:`WHERE strCol::bigint > 3`
  • 将捆绑的 JDK 更新为 17.0.2+8


更多详情可查看:https://github.com/crate/crate/releases/tag/4.7.1


Logstash 发布 8.1.1


2022 年 3 月,Logstash 发布了 8.1.1 版本,带来如下变更:


修复:

  • bin/logstash-plugin uninstall <plugin> 命令按预期运行,可成功卸载指定插件
  • Logstash CLI 工具现在可以在 Windows 上使用选定的 JDK
  • Logstash 可以成功定位到 Windows JVM,即使路径中包含空格
  • GeoIP 数据库查找现在将正常使用 http_proxy 环境变量定义的代理


依赖项升级:

  • 捆绑的 JDK 版本更新为 11.0.14.1+1


除此之外,该版本还包含一些插件问题修复,详情可查看:https://www.elastic.co/guide/en/logstash/8.1/logstash-8-1-1.html#_plugins


Grafana 发布 8.4.4


2022 年 3 月 16 日,Grafana 8.4.4 正式发布,更新内容如下:


功能和改进:

  • Loki:将 unpack 添加到自动完成建议
  • Plugins:允许将函数和类组件用于应用程序插件
  • TimeSeries:为图形面板的 transform series override 添加迁移
  • TimeSeries:在进行负 Y 转换时保留空值/未定义值


Bug 修复:

  • CloudWatch:使用 aws-sdk-go 的默认 http 客户端
  • Dashboards:修复了按行重复且不刷新的问题
  • Gauge:当数据链接存在且方向为水平时修复了 blank viz
  • Search:使用 postgres 时正确排序结果
  • TagsInput:修复标签删除按钮的可访问性问题
  • TextPanel:在 markdown 被渲染成 html 后进行清理


更多详情可查看:https://github.com/grafana/grafana/releases/tag/v8.4.4


dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn


3月技术栈更新丨ES、Redis、RocksDB、Logstash、Grafana等版本发布汇总_.net


举报

相关推荐

0 条评论