Apache Ignite 版本发布说明
Apache Ignite 分布式内存数据库 2.15.0
(!) 警告:
- 删除了Ignite节点的Daemon模式;
- 删除了废弃了的ignitevisorcmd工具;
- 删除了遗留的JMX Beans(
ThreadPoolMXBean
、CacheGroupMetricsMXBean
、CacheMetricsMXBean
、PersistenceMetricsMXBean
、DataStorageMetricsMXBean
、DataRegionMetricsMXBean
); - 删除了多余的
ignite-spring
模块的ignite-indexing
模块依赖,如果需要在Ignite中执行SQL,并且使用了Maven,需要明确指定使用哪个SQL引擎:ignite-indexing
或者ignite-calcite
; - 将
ignite-ssh
模块迁移到扩展库; - 废弃了
SqlFieldsQuery
的lazy
标志,该标志的默认值改为true
; - 事务内操作院子缓存默认会被禁止,如果要允许这样的操作,需要将系统属性
IGNITE_ALLOW_ATOMIC_OPS_IN_TX
配置为true
。
Ignite:
- 新增增量快照功能;
- 新增缓存对象转换功能(可用于加密、压缩或者数据过滤);
- 快照支持开启磁盘页面压缩的缓存;
- 快照支持只复制主分区数据的功能;
- 快照恢复过程新增忽略快照检查的选项;
- 当数据流正在进行数据加载时执行快照会抛出异常,无法保证一致性;
- 将快照操作的警告写入元数据存储;
- 新增快照增量页面排序;
- 创建快照时新增分区大小和计数器检查;
- 新增
CONFIGURATION
系统视图; PAGE_LISTS
系统视图新增页面空闲空间列;- 新增杀死客户端连接的API(瘦客户端、JDBC、ODBC);
- 新增页面读时间和页面替换时间的指标;
- 新增瘦客户端分区感知的相关指标;
- 新增禁用CDC的全局属性;
- 新增最大CDC目录大小的配置属性;
- CDC支持过期策略;
- CDC冲突解决期间支持过期时间配置;
CacheJdbcPojoStore
新增对CLOB
和BLOB
类型的支持;- 在Java 15+的环境中,添加了缺失的
--add-opens
; PlatformDotNetSessionLockResult
新增了默认的构造器以避免在部分应用服务器上中ReflectionFactory
的某些问题;- 网络分区处理支持使用已配置的
FailureHandler
; - .NET和C++计算任务支持授权;
- 集群节点的停止/启动/重启操作支持授权;
- SQL的用户管理操作支持授权;
- 新增
ADMIN_CLUSTER_STATE
权限(这是修改集群状态唯一需要的权限); - 通过FQN授予系统计算任务的权限已被预定义的系统权限所取代;
- 改进了再平衡和PME过程的日志;
- JMX导出器现在是默认的指标导出器;
- 优化了索引的重建过程(索引重建过程中禁用了WAL);
- 优化了开启了持久化的大内存区的冻结过程;
- 优化了内存页面的归零处理;
- 修复了JDK17环境下的lambda序列化问题;
- 修复了Windows环境下的磁盘碎片化问题;
- 修复了开启后写的缓存执行
cache.invoke()
方法时的JDBC连接内存泄漏问题; - 修复了当数据条目大于WAL缓冲区大小时原子缓存的数据损坏问题;
- 修复了在非基线节点创建快照方面的一个问题;
- 修复了缓存正在更新数据时的快照不一致问题;
- 修复了多节点配置同一个路径时快照取消方面的一个问题;
- 修复了如果预处理阶段失败导致快照无法恢复的问题;
- 修复了客户端节点崩溃时
ignite-cdc
停止的问题; - 修复了
ignite-cdc.sh
在非默认工作目录中启动失败的问题; - 修复了索引重建过程中CdcMain的状态提交不正确的问题;
- 修复了
ignite-cdc.sh
停止时CdcConsumer
停止的问题; - 修复了在线客户端会话数相关指标不正确的问题;
- 修复了缓存组存储大小相关指标计算不正确的问题(
PagesFillFactor
、TotalUsedPages
、TotalAllocatedPages
); - 修复了
currentTimeMillis
减少时直方图更新断言处理不正确的问题; - 修复了请求失败时REST状态码不正确的问题;
- 修复了执行REST API的GET操作时可能会略过第三方存储的问题;
- 修复了计算任务中某些参数传递方面的问题;
- 修复了配置成对连接时通信SPI可能断言处理不正确的问题;
- 修复了水平再平衡场景的潜在数据丢失问题;
- 修复了启用磁盘页面压缩时CRC计算断言处理不正确的问题;
- 修复了当
cpMapSnapshot.bin
文件损坏时节点启动失败的问题; - 修复了冻结集群后执行检查点会导致存储损坏的问题;
- 修复了冻结集群后条目过期处理会导致存储损坏的问题;
- 修复了缓存停止时执行再平衡操作导致节点故障的问题;
- 修复了同时销毁缓存和回滚事务时的空指针异常;
- 修复了
ClusterGroup.forNodeId
中ID检查不正确的问题; - 修复了瘦客户端重连后关联关系处理不正确的问题;
- 修复了在非并置节点上近缓存创建处理不正确的问题;
- 修复了由于压缩缓冲区大小不足而可能导致的内存损坏问题;
- 修复了在快照验证过程中跳过索引和元存储分区验证的问题;
- 修复了
IndexQuery
中会忽略第一个IN子句后面的条件的问题; - 修复了
LOG_ONLY
和BACKGROUND
模式下WalWritingRate
指标计算不正确的问题; - 将log4j2依赖更新至2.20.0;
- 将Jetty依赖更新至9.4.49.v20220914;
- 将Jackson Databind依赖更新至2.14.0;
- 将postgresql依赖更新至42.5.0;
- 将Netty依赖更新至4.1.89.Final;
- 将Ant依赖更新至1.10.13;
- 将Apache Calcite依赖更新至1.32.0。
控制脚本:
- 新增缓存清理的命令;
- 新增缓存扫描命令;
- 新增一致性修复命令的多分区支持;
idle-verify
命令支持输出损坏的分区列表;idle-verify
命令支持将结果保存到日志文件;idle-verify
命令改进了数据条目的检查;- 新增了配置直方图和命中率指标的命令;
- 新增了强制重新发送CDC数据的命令;
- 新增了删除删除最后断档的CDC段链接的命令;
- 新增了开始和取消快照操作的统一语法;
- 新增从多节点获取视图数据的功能;
- 将日志机制迁移至
IgniteLogger
。
Java瘦客户端:
- 新增了服务端发现功能;
- 新增了
ClientConfiguration.clusterDiscoveryEnabled
配置参数; - 新增了事件监听功能;
- 新增了连接的负载平衡能力(请求时随机打开连接而不是使用默认值);
- 新增了可配置的日志;
- 修复了关闭时挂起的请求竞争问题。
Ignite .NET:
- 新增了服务的默认接口方法支持;
- 新增了原生AOT支持;
- 新增了
IgniteClientConfiguration.EnableClusterDiscovery
配置属性,用于开启和禁用服务端发现; - 修复了使用不同模式对嵌套的可二进制化结构进行编组的问题;
- 修复了Java 15+环境的启动问题;
- 修复了具有近缓存的客户端节点上的平台缓存无效问题;
- 修复了二进制包缺失DLL的问题。
Ignite C++:
- 新增了C++瘦客户端可以使用Java端的持续查询远程过滤器的功能;
- 修复了瘦客户端连接关闭时的SIGSEGV问题。
ODBC:
- 修复了单引号处理方面的问题。
SQL:
- 修复了注释行的冗余查询结果问题;
- 修复了索引扫描的不正确类型转换(例如,当索引字段具有字符串数据类型而搜索行具有数字数据类型时);
- 修复了更新SQL统计信息时发现线程中可能出现死锁的问题。
基于Calcite的SQL引擎:
- 新增了配置全局堆内存配额和查询级堆内存配额的功能;
- 新增了扫描索引的内联键的功能,而无需对数据页进行额外请求;
- 新增了对
SEARCH/SARG
操作的原生支持(这使得包括IN在内的一些条件可以使用索引扫描); - 新增了对
LocalDate/LocalTime
数据类型的支持; - 新增了对布尔类型字段的索引扫描功能;
- 新增了
EVERY/SOME
聚合函数; - 新增了Calcite解析器异常的细节输出;
- 新增了新的的分布类型(部分关联的并置优化);
- 新增了
COUNT(column)
优化(column加上了索引); - 新增了同一字段的合并索引条件优化;
- 新增了min()/max()聚合函数的优化(使用起始/最后索引值);
- 新增了将不相关的筛选器部分推送到表扫描的优化;
- 实现了ODBC/JDBC需要的元数据查询功能;
- 优化了空值的索引扫描;
- 修复了排除过期条目的扫描问题;
- 修复了带偏移量限制的行数统计问题;
- 修复了将数值型转成布尔型的CAST错误问题;
- 修复了在不存在的表上执行DML的空指针问题。