当前位置: > Linux新闻 >

Apache Ignite 2.8.0 版本发布,内存计算平台,里程碑版本更新

时间:2020-03-05 10:42来源:linux.it.net.cn 作者:IT

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)
------分隔线----------------------------
栏目列表
推荐内容