Apache Ignite 2.8版本经过了一年多的开发,现已发布。这是个大版本更新,新增了大量的功能,也解决了近一年中开发者反馈的大量问题,推荐开发者更新,更新内容清单非常长,现把重点内容摘录如下:
Apache Ignite 2.8.0
Ignite 实验性 API:
-
新增了监控API - 向外部接收者输出Ignite指标信息;
-
使用withReadRepair扩展IgniteCache API对每个缓存执行备份节点一致性检查;
-
将MVCC特性标记为试验性 (2.7.0版本新增);
Ignite 监控:
-
新增将对象暴露为系统视图的支持 (直接支持SQL, JMX输出);
-
新增对指标信息进行存储和更新的支持 (直接支持JMX, SQL, Log, OpenCensus的输出);
-
新增SQL_QUERIES系统视图;
-
新增CLIENT_CONNECTIONS系统视图 (JDBC, ODBC, 瘦客户端) ;
-
新增NODES系统视图;
-
新增TABLE_COLUMNS系统视图;
-
新增CONTINUOUS_QUERIES系统视图;
-
新增DATA_REGION_PAGE_LISTS系统视图;
-
新增INDEXES系统视图;
-
新增PME耗时的指标;
-
新增事务持续时间的指标;
-
新增度量缓存API性能的指标;
-
新增显示索引构建过程的指标;
-
新增SCAN_QUERIES系统视图;
-
新增SCHEMAS系统视图;
-
新增STRIPED_THREADPOOL_QUEUE系统视图;
-
新增对通过JMX对指标进行配置的支持;
-
新增TABLES系统视图;
-
如果发生了检查点限流,新增了线程停顿的总时间指标;
-
新增TRANSACTIONS系统视图;
-
将CacheGroupMetrics移到了新的框架;
-
将ClusterMetricsMxBean移到了新的框架;
-
将Communication指标移到了新的框架;
-
将GridJobMetricsProcessor移到了新的框架;
-
将GridLocalMetrics移到了新的框架;
-
将IgniteMXBean移到了新的框架;
-
将QueryMetrics移到了新的框架;
-
将TransactionMetricsMxBean移到了新的框架;
Ignite 核心层:
-
新增@IgniteExperimental注解,用于通知用户可用API的早期状态;
-
新增IGNITE_CONSISTENT_ID系统属性;
-
新增IGNITE_DISCOVERY_DISABLE_CACHE_METRICS_UPDATE系统属性;
-
新增IGNITE_YARN_QUEUE属性,用于覆盖YARN队列名;
-
新增JMX从拓扑中排除节点的功能;
-
新增分区映射耗时的JMX指标;
-
新增ZookeeperSpi的SSL支持;
-
新增Spark SQL表模式规范;
-
新增WAL页面快照记录压缩;
-
新增通过JVM节点参数选项覆盖所有缓存的'rebalanceThrottle'选项的功能;
-
新增在配置中设定索引重建的默认并行度的功能;
-
新增跟踪事务中花费的系统/用户时间的功能;
-
新增数据结构中的Queue的二进制模式 (withKeepBinary) ;
-
新增主节点的缓存验证逻辑;
-
新增集群的激活/冻结事件;
-
新增通过Spring配置文件的显式插件配置;
-
新增磁盘页面压缩的支持;
-
在TcpDiscoverySpi实现中为客户端/服务端连接新增了额外的日志;
-
在检查点启动消息中新增了可能的长时间GC信息;
-
新增了Spark2.4的初始支持;
-
在CacheWriteBehindStore中新增相同键的并行写入&退出功能;
-
集群中的不同节点新增可以有不同的再平衡线程池大小的功能;
-
TcpCommunicationSpi新增TLSv1.3支持;
-
TcpDiscoveryS3IpFinder新增客户端侧加密支持;
-
UriDeploymentSpi新增对JAR文件的支持;
-
缓存支持将数组作为主键;
-
基线拓扑新增对自动调整的支持;
-
Kubernetes发现中新增对非就绪配置组的支持;
-
新增对SpringData更新/删除操作的支持;
-
PME之外新增了逻辑恢复阶段;
-
瘦客户端新增对最优映射的支持 (分区感知);
-
新增通过AWS ELB进行节点发现的支持;
-
新增事务化缓存的相关事件 (比如EVT_TX_STARTED, EVT_TX_COMMITTED);
-
瘦客户端新增了事务支持;
-
为TextQuery的构造函数和构造器新增了'limit'参数;
-
新增ignite-spring-data_2.2模块,用于Spring Framework 5.2.x和Spring Data 2.2.x;
-
新增hibernate 5.3的集成支持;
-
在节点退出时新增对非阻塞PME的支持;
-
在IgniteSpark的内部dataStreamer中新增了skipStore选项(IgniteRdd和Ignite DataFrame);
-
在PME期间避免了存储管理器的同步初始化;
-
禁止将持久化的节点加入内存集群;
-
IGNITE_DISABLE_WAL_DURING_REBALANCING属性默认打开;
-
Ignite内部优化了CRC32算法;
-
改进了LRT诊断消息;
-
改进了全分区映射生成期间的PME速度(并行执行);
-
改进了全分区映射更新期间的PME速度(并行执行);
-
改进了节点加入期间启动多个缓存时的PME速度;
-
改进了大规模集群发现过程中的元数据交换 (通过数据压缩实现);
-
改进了索引重建过程的日志输出;
-
改进了WAL段归档的速度;
-
优化了再平衡过程的GC压力;
-
优化了HistoryAffinityAssignment的堆使用;
-
启动缓存组时的映射初始化性能优化;
-
删除了IGNITE_SERVICES_COMPATIBILITY_MODE系统属性;
-
从IgniteSystemProperties和IgniteProductVersion中删除了Java 7和AI 1.x残留;
-
将IGNITE_BINARY_META_UPDATE_TIMEOUT替换为IGNITE_WAIT_SCHEMA_UPDATE;
-
大量的性能、稳定性改进和错误修复。
SQL:
-
新增了Decimal类型的精度和标度约束;
-
新增了KILL QUERY命令;
-
本地查询新增了行计数统计;
-
CREATE TABLE的WITH子句新增了查询并行度配置的支持;
-
在发生CorruptedTreeException时新增了自动化的页面历史转储;
-
为正在运行的查询新增了集群范围的唯一标识;
-
在缓存组指标中新增了索引重建的分区离开计数;
-
新增了默认的查询超时配置;
-
新增了删除_VER字段的支持;
-
对于整形类型,从BETWEEN和范围条件中抽取了分区信息;
-
从JOIN中抽取了分区信息;
-
为本地查询新增了延迟执行的能力;
-
新增了查询历史统计API;
-
在ScanQuery, SqlQuery 和 SqlFieldsQuery中新增了数据页扫描的支持;
-
刚创建的数据区在第一次分配缓存时新增对内存分配的支持;
-
查询游标迭代器在所有数据读完后支持自动关闭;
-
在查询的发起节点支持对所有正在运行的查询的跟踪;
-
在不使用包装对象时新增了对主键索引的验证;
-
超时时新增了长时间执行的查询的警告信息(而不是查询完成时);
-
当queryParallelizm > 1时,禁用了隐式分布式关联;
-
对于CHAR/VARCHAR 和 DECIMAL类型,在QueryEntity中不再存储默认的精度和标度;
-
在DML操作中禁止混合_key和主键列;
-
将再平衡配置属性移动到IgniteConfiguration层;
-
当只有一个或者没有分区时,优化了查询的执行;
-
通过主键访问缓存时,减少了过多的整形装箱;
-
表合并时删除了索引扫描;
-
将IGNITE模式改名为SYS。
MVCC:
-
对于开启了MVCC的缓存,新增了持续查询的故障转移;
-
新增了死锁检测器;
-
对于键-值API,新增了兼容MVCC的缓存peek操作。
JDBC:
-
新增缓存过期策略;
-
新增JDBC瘦模式驱动的连接超时配置;
-
新增JDBC的数据页扫描支持;
-
新增并行处理多个异步请求的支持;
-
新增支持查询的取消;
-
新增支持查询超时;
-
驱动启动时随机接入一个服务端节点;
-
更新握手协议以使节点返回其UUID。
Web 代理:
-
新增支持集群ID;
-
新增支持2种方式的SSL认证;
-
改进了REST命令执行失败时的信息输出;
-
改进了集群拓扑变更时的日志输出。
Web 控制台:
-
新增TypeScript支持;
-
新增取消查询的功能;
-
新增磁盘页面压缩的相关配置;
-
新增WC启动时检查MongoDB的版本;
-
新增邮件确认功能;
-
新增管理事件(EVT_MANAGEMENT_TASK_STARTED);
-
新增部分缺失的IgniteConfiguration配置项;
-
新增禁用Web控制台的自注册选项;
-
新增分布式MVCC的选项;
-
输入框中新增对"date", "time" 和 "date-and-time"类型的支持;
-
输入框中新增对"type=number"的支持;
-
更新部分细节样式;
-
更新到RxJS 6。
Ignite .NET:
-
新增瘦客户端的分区感知;
-
新增瘦客户端的过期策略;
-
瘦客户端新增Cluster API;
-
新增对.NET Core 3.x的支持;
-
新增Ignite.NET Dockerfile;
-
新增可运行的.NET Core程序集;
-
新增ICache.GetLongSize;
-
新增IClusterNode.Version;
-
新增ICompute.WithExecutor;
-
新增IIgnite.GetVersion;
-
新增IBinaryObjectBuilder.SetField(name, val, type);
-
新增分区预加载API (PreloadPartition, PreloadPartitionAsync)。
Ignite C++:
-
新增BinaryType方法实现(GetTypeId, GetFieldId);
-
C++瘦客户端新实现了部分原子化Cache API(ReplaceIfEquals, RemoveIfEquals等);
-
改进了C++瘦客户端的最优映射;
-
删除了对Boost 1.58.0的强依赖。
REST:
-
top命令新增"caches"参数;
-
REST API新增拓扑相关命令;
-
REST新增内存策略等相关的指标。
Visor:
-
在./control.sh --host HOST --cache idle_verify中,执行VisorIdleVerifyDumpTask时可以指定nodeId;
-
Visor中新增缓存统计的动态打开和关闭的功能;
-
在Visor的任务执行中新增了缓存重启过程的向导。
控制脚本工具:
-
新增存储页面的CRC校验和检查功能;
-
新增从输出文件中排除缓存的功能;
-
新增输出更多缓存配置信息的功能;
-
在control.sh --cache idle_verify中新增了同步缓存过滤器的选项;
-
新增处理共享缓存组中缓存销毁后留下的分区中的垃圾的命令;
-
在control.sh的输出中新增关于协调器的信息;
-
处理基线配置时新增对SSL的支持(CommandHandler);
-
在console.sh中新增了对调整基线自动调整相关参数的支持;
-
新增对请求SSL Keystore 密码和 SSL truststore 密码的支持;
-
在console.sh中显示基线自动调整的时间;
-
通过console.sh记录所有执行的动作。
机器学习:
-
新增了固定分量的高斯混合模型(GMM)训练器;
-
在Spark ML解析器中新增了ML日志记录器和相关的环境变量;
-
在模型中用NamedVectors替换了HashMap;
-
新增OneVsRest训练器用于处理一个数据集中有多个类标签的场景;
-
交叉验证过程中新增了对管道的支持;
-
新增了Ignite SQL和Ignite ML之间的集成;
-
在遗传算法中新增了超参数调整;
-
在Spark ML的DecisionTreeClassificationModel实例中新增了parquet文件的解析器;
-
在Spark ML的DecisionTreeRegressor实例中新增了parquet文件的解析器;
-
在Spark ML的GBTRegressionModel实例中新增了parquet文件的解析器;
-
在Spark ML的GradientBoostedTreesModel实例中新增了parquet文件的解析器;
-
在Spark ML的KMeansModel实例中新增了parquet文件的解析器;
-
在Spark ML的LinearRegressionModel实例中新增了parquet文件的解析器;
-
在Spark ML的LinearSVCModel实例中新增了parquet文件的解析器;
-
在Spark ML的RandomForestClassificationModel实例中新增了parquet文件的解析器;
-
在Spark ML的RandomForestRegressionModel实例中新增了parquet文件的解析器;
-
新增在Ignite数据上使用H2O MOJO模型进行推断和预测的功能;
-
在预处理训练器中新增了新特性标签提取的API(Vectorizers);
-
新增了各种朴素贝叶斯分类器;
-
新增了向量投影;
-
分类功能的高级支持 (在矢量器中的LabelEncoding, Strings);
-
实现了分布式估计器;
-
支持从XGBoost中导入模型;
-
改进从目录加载模型,而不是使用模型文件的完整路径;
-
改进了和ML相关的lambdas的对等类加载;
-
改进了用于IgniteModel和SQL功能的IgniteModelStorage;
-
Spark ML的初始集成 (从ML包中解析Spark ML模型);
-
合并了InfModel和Model;
-
将XGBoost和Ignite ML树合并在一起;
-
新增了用于评价模型质量的指标;
-
新增推荐引擎,以便通过Ignite缓存和SQL操作构建推荐系统;
-
在新的矢量器中替换所有的标签/特性提取器;
-
训练推理叠加;
-
统一集成训练算法的API。
依赖更新:
-
新增了spring-data-2.2依赖;
-
新增了hibernate-5.3依赖;
-
新增了spark-2.4依赖;
-
新增了spring-5.2依赖;
-
更新Jetbrains Annotations到16.0.3;
-
更新Kafka到2.0.1;
-
更新RocketMQ到4.4.0;
-
更新Commons Beanutils到1.9.4;
-
更新Jackson到2.9.10;
-
更新Jetty到9.4.25;
-
更新Spring到4.3.26;
-
更新spring-5.0到5.0.16;
-
更新spring-data-2.0到2.0.13;
-
将Flink移动到ignite-extension中。
参考消息:https://ignite.apache.org/releases/2.8.0/release_notes.html
(责任编辑:IT) |