Apache Ignite 2.14.0 版本发布,小幅改进版本

时间:2022-10-08 09:11:52

Apache Ignite 版本发布说明
===========================

Apache Ignite 分布式内存数据库 2.14.0
-----------------------------------------------------------

(!) 警告:
* 删除了缓存的LOCAL模式;
* 删除了scalar模块。

Ignite:
* 新增了CDC的二进制元数据变更事件;
* 在维护模式中,控制脚本新增了调度索引重建的命令;
* 瘦客户端的分区感知新增了对自定义关联映射函数的支持;
* 新增了快照创建操作指标;
* 控制脚本和JMX新增了获取快照状态的命令;
* SQL_QUERY视图中新增了用户相关的信息;
* IndexQuery新增了对指定分区号的支持;
* CDCConsumer新增了缓存变更事件;
* 控制脚本新增了获取缓存指标的命令;
* SpringResource注解注入时新增了对可选bean的支持;
* 页面内存新增了显示冷热页面分布的系统视图和直方图功能;
* 快照操作新增了自定义路径的功能;
* 服务方法新增了拦截器调用功能;
* 修复了当数据区的最大值足够大时的整型值越界问题;
* 修复了在扩展WAL段大小时的'Invalid cross-device link error'错误;
* 修复了在Java 11.0.16+ 和 17.0.4+环境中,部署管理器停止时的ClassCastException异常;
* 修复了在再平衡过程中的删除操作可能导致不一致的问题;
* 修复了使用clearSync时可能导致管理线程池阻塞的问题;
* 修复了客户端节点可能触发非预期的PME的问题;
* 修复了快照执行错误未传播到发起节点的问题;
* 修复了取消带缓存操作的计算任务时可能导致节点故障的问题;
* 修复了通过IGNITE_LOCAL_HOST配置的IP地址后,主机名解析不正确的问题;
* 修复了GridCacheManager#stop方法参数不正确的问题;
* 修复了节点启动事件通知方面的问题;
* 修复了节点重启之后分区更新计数器校准方面的问题;
* 修复了节点故障时潜在的事务恢复死锁问题;
* 修复了服务调用异常堆栈无法传播到客户端节点的问题;
* 修复了GridNioServer内部的条件争用问题;
* 修复了服务端处理瘦客户端发送的大消息解析方面的问题;
* 修复了"io.datastorage.StorageSize"指标在多持久化数据区场景下的计算问题; 
* 修复了快照还原操作期间远程分区文件移动方面的问题;
* 修复了ignitevisorcmd在JDK17环境下无法运行的问题;
* 修复了空二进制对象写入方面的问题;
* 修复了在锁超时后检查点锁计数器计算不正确(计算错误可能导致节点故障)的问题;
* 改进了REST命令中'Probe'和'Version'命令会忽略认证的问题;
* 改进了控制脚本的`--consistency repair`命令:读修复现在支持数组和集合类型值;
* 改进了控制脚本的`--consistency repair`命令:读修复现在支持二进制主键;
* 改进了控制脚本的`--consistency repair`命令:读修复可以支持原子化缓存的修复;
* 改进了脏页率比较低时的限流行为:
* 改进了一致性检查,现在支持将缓存组作为参数;
* 改进了一致性检查,现在可以修复计数器;
* 改进了index-reader.sh工具,新增了空闲大小计算;
* 改进了index-reader.sh工具:分析并输出索引中的内联空间的实际使用方面的问题;
* 改进了index-reader.sh工具:排除了重复的栈跟踪;
* 改进了固定大小索引项的内联值调整;
* 改进了处理客户端节点时的日志记录级别;
* 改进了注册的服务名检索性能,并且减少了服务关闭时间;
* 改进了注册的服务名检索性能,并且减少了服务启动时间;
* 改进了index-reader.sh工具的性能;
* 将ignite-cloud IP探测器移动到Ignite扩展库;
* 将ignite-mesos模块移动到Ignite扩展库;
* 将ignite-spark模块移动到Ignite扩展库;
* 将ignite-yarn模块移动到Ignite扩展库;
* 将inigte-aop模块移动到Ignite扩展库;
* 删除了废弃的log4j 1.x模块;
* 将Tomcat Servlet API依赖更新至9.0.63版本;
* 将jsonpath依赖更新至2.7.0版本;
* 将Jackson Databind依赖更新至2.12.7 (CVE-2020-36518);
* 将Jetty依赖更新至9.4.43;
* 将Lucene库依赖更新至8.11.2版本;
* 将Spring依赖更新至5.2.22版本;
* 更新MySql connector依赖 (修复了CVE-2021-2471, CVE-2022-21363)。

Java瘦客户端:
* 新增AtomicLong;
* 新增IgniteSet;
* 新增了自动化的二进制配置,部分参数会依据服务端的配置进行设定;
* 新增了AtomicLong的分区感知,会将网络请求直接发给指定实例的主分区;
* 新增了对IndexQuery特性的支持;
* 修复了连接丢失时会触发地址无法从ClientAddressFinder重新加载的问题;
* 修复了当使用废弃的TLS版本时,客户端节点启动崩溃的问题;
* 修复了客户端关闭时潜在的资源竞争问题;

JDBC:
* 修复了JDBC瘦客户端反序列化时处理响应的BinaryObjectException方面的问题;
* 修复了SQL的COPY命令解析字段中的引号分隔符不正确的问题。

.NET瘦客户端:
* 新增AtomicLong。

.NET:
* 新增了服务拦截器;
* 修复了StringComparer的序列化问题;
* 改进了Linux环境下的Java检测。

C++瘦客户端:
* SqlFieldsQuery新增了分区相关的参数;
* 新增了对ScanQuery的支持;
* 公开的配置中新增了对用户线程池大小的配置支持。

SQL:
* 基于Calcite的SQL引擎新增了对分段索引的支持;
* IndexQuery新增了对IN条件的支持:`IndexQuery.setCriteria(in("A", Arrays.asList(1, 2 ,3)))`;
* 基于Calcite的SQL引擎与基于H2的SQL引擎相互独立,不再需要在类路径中引入`ignite-indexing`模块;
* 修复了左关联时,如果一个子查询带有过滤条件时,查询结果不正确的问题;
* 修复了基于Calcite的SQL引擎在新增/删除列之后索引注册方面的问题;
* 修复了通过SQL插入Java的LocalDate、LocalTime、LocalDateTime类型值的问题;
* 改进了基于Calcite的SQL引擎中,COUNT(*)操作的索引计数计算。