Apache Ignite 发行注记
Apache Ignite 分布式内存数据库 2.16.0
警告
- 彻底禁止了在事务中操作原子模式缓存,
IGNITE_ALLOW_ATOMIC_OPS_IN_TX
系统属性已经被删除; - 删除了
CacheAtomicityMode#TRANSACTIONAL_SNAPSHOT
缓存模式; - 禁止了混合模式缓存组,但是
IGNITE_ALLOW_MIXED_CACHE_GROUPS
系统属性可以配置临时运行这个模式; ignite-ml
和ignite-cassandra
模块迁移至Ignite扩展库。
Ignite
- 新增了ARM64 Docker 容器镜像;
- 新增了
CLIENT_CONNECTION_ATTRIBUTES
系统视图; - 新增了通过Spring的XML配置文件配置指标导出过滤器的功能;
- 新增了纯内存模式缓存的快照功能;
- 新增了客户端连接的扩展调试日志;
- IndexQuery新增了限制结果集条数的功能;
- 新增了快照检查功能的日志记录;
- 新增了二级缓存操作的相关指标;
- IndexQuery新增了性能统计功能;
- 新增了查询中处理查询属性和处理行计数方面的统计信息;
- 新增了客户端会话出站消息队列的大小限制;
- SERVICES系统视图新增了拓扑快照信息;
- 废弃了传统的通过SecurityContext的认证方式;
- 废弃了ClientCacheConfiguration中和再平衡有关的方法;
- 修复了JDK14及以后得版本中与JavaNioAccess有关的处理;
- 修复了JDK14及以后得版本中与MappedFile.map有关的处理;
- 修复了碎片处理过程中OOM异常处理的空指针异常问题;
- 修复了事务恢复过程中的空指针问题;
- 修复了纯内存集群中快照创建操作的空指针问题;
- 修复了当配置NodeFilter时StoredCacheData删除过程中遇到的问题;
- 修复了节点重启之后WAL记录到存档段中遇到的问题;
- 修复了JDK17中IgniteLock在释放后无法获得锁的问题;
- 修复了通过
insert from select
语句插入数据时,TTL未生效的问题; - 修复了当死锁检测被禁用后,事务在超时后仍然无法结束的问题;
- 修复了持续查询消耗过多内存的问题;
- 修复了空的SQL查询导致断言错误的问题;
- 修复了碎片整理过程中的断言错误;
- 修复了由于GridCacheQueryRequest类编组不正确导致的通信消息无法序列化的问题;
- 修复了持续查询中过期条目副本确认消息的发送问题;
- 修复了PartitionLossPolicy (
READ_ONLY_ALL
、READ_WRITE_ALL
)的废弃问题; - 修复了持续查询的REMOVE/EXPIRY事件中,oldValue属性被序列化两次的问题;
- 修复了在不同的表中执行
CREATE INDEX IF NOT EXISTS
语句,抛出重复索引错误后导致存储损坏的问题; - 修复了索引重建失败后的日志记录问题;
- 修复了获得数据锁之前事务超时的异常消息处理问题;
- 修复了启用sqlOnHeapCache后使用多个索引时的失败问题;
- 修复了节点重启后直方图指标配置恢复的处理问题;
- 修复了纯内存集群中应用了缓存对象转换后调用了
TcpIgniteClient.putAllConflict()
导致节点崩溃的问题; - 修复了快照恢复过程中发送和接收分区文件的日志消息记录问题;
- 修复了快照创建过程中出现警告消息的日志记录问题;
- 修复了SQL_QUERIES视图中持续时间可能为负值的问题;
- 修复了发现消息处理过程中由于SecurityContext找不到导致的节点故障问题;
- 修复了
opencensus-exporter-trace-zipkin
模块的依赖范围; - 修复了同一个schema和相同的索引名可能创建两个缓存的问题;
- 修复了开启分区感知后通过瘦客户端执行缓存操作可能失败的问题;
- 修复了缓存目录包含非法字符导致的节点故障问题;
- 修复了当检查抛出异常后快照创建失败的问题;
- 修复了快照恢复过程在准备阶段出错时的指标处理问题;
- 修复了缓存启动阶段失败导致的快照恢复回滚问题;
- 修复了Java 21环境的节点启动问题;
- 修复了碎片整理过程无法配置使用一个线程的问题;
- 修复了创建CacheStore时使用沙箱的问题;
- 修复了创建H2连接时易受攻击的初始化配置使用问题;
- 修复了NIO服务中写入握手后消息的处理问题;
- 删除了废弃的
ssl.key.algorithm
系统属性,用ssl.KeyManagerFactory.algorithm
替代; - 将GridSslContextFactory从公共API中删除;
- 将Snappy-java依赖更新至1.1.10.4版本;
- 将spring依赖更新至5.2.25.RELEASE版本;
- 将guava依赖更新至32.1.2版本;
- 将jetty依赖更新至9.4.53.v20231009版本;
- 将postgresql依赖更新至42.6.0版本;
- 将snappy依赖更新至1.1.10.4版本;
- 将zookeeper依赖更新至3.8.3版本;
- 将zstd依赖更新至1.5.5版本。
Calcite SQL引擎
- 新增了ENFORCE_JOIN_ORDER提示;
- 新增了FORCE_INDEX/NO_INDEX提示;
- 新增了查询执行过程的事件(
EVT_CACHE_QUERY_OBJECT_READ
、EVT_SQL_QUERY_EXECUTION
); - 新增了显式
commons-codec
依赖; - 新增了
local
模式标志的支持; - 新增了长期运行查询和大结果集查询的警告;
- 新增了
CalciteQueryExecutor
线程池指标输出; - 新增了分区裁剪功能;
- 新增了查询超时处理的功能;
- 新增了
IGNITE_TO_STRING_INCLUDE_SENSITIVE
系统属性支持,当配置成false
时,会隐藏敏感信息; - 新增了在
SqlFieldsQuery
中制定分区的支持; - 修复了
CREATE TABLE ... WITH affinity_key
语句选项验证处理方面的问题; - 修复了往性能统计中输出查询执行计划时的空指针问题;
- 修复了SQL相关的指标处理(基于Calcite的SQL引擎新增了解析方面的指标,修复了执行方面的指标);
- 修复了当缓存大小超过
Integer.MAX_VALUE
时查询计划处理失败的问题; - 修复了保留的关键字列表;
- 修复了
MailboxRegistryImpl#remotes
内存泄漏的问题; - 修复了性能统计收集方面的问题;
- 修复了
ModifyNode
中占位符值处理方面的问题; - 修复了主键内联值计算方面的问题;
- 修复了远程碎片初始化阶段失败时的查询泄漏问题;
- 修复了设置分区时查询冻结的问题;
- 将calcite依赖更新至1.34.0版本。
控制脚本
- 新增了JMX命令调用接口;
idle_verify
命令新增了紧凑页脚使用统计信息;properties list
命令新增了描述和值信息;- index validate命令输出中新增了节点的一致性ID信息;
- index命令输出中新增了索引线程处理的分区号;
- CommandHandler新增了对SslContextFactory的支持(替换了GridSslBasicContextFactory);
- 新增了对自定义SSL工厂类的支持;
- 新增了创建缓存的命令;
indexes_force_rebuild
和schedule_indexes_rebuild
命令新增了对多节点参数的支持;- 修复了可连接的节点列表处理方面的问题;
- 修复了
idle_verify
命令在过期条目的哈希冲突问题; - 修复了性能统计子命令结果集输出处理方面的问题;
- 修复了缓存扫描命令的页面大小以满足限制参数的问题。
Java瘦客户端
- 新增了服务发现功能特性;
- 修复了Java瘦客户端的socket#open超时采用
ClientConfiguration#timeout
属性的问题; - 修复了Java瘦客户端中缓存对象转换处理方面的问题;
- 修复了失败的连接潜在的SocketChannel内存泄漏的问题;
- 删除了端口范围的49151上限。
Ignite .NET
- 修复了
Callbacks.ConsoleWrite
中的OverflowException导致的节点崩溃问题。
Ignite .NET瘦客户端
- 新增了关联键类型的分区感知支持。