下载这些发布说明
PDF (Ltr)- 1.1 mb
PDF (A4)- 1.1 mb
HTML下载(TGZ)- 239.6KB.
HTML下载(邮政编码)- 267.2 kb


MySQL NDB群集8.0发行说明/ Changes in MySQL NDB Cluster 8.0.20 (20-04-27, General Availability)

MySQL NDB Cluster 8.0.20 (2020-04-27, General Availability)

MySQL NDB Cluster 8.0.20是NDB 8.0的一个新版本,基于MySQL Server 8.0,包括版本8.0的特性NDB存储引擎,以及修复最近发现的bug在以前的NDB集群版本。

获取NDB Cluster 8.0。NDB集群8.0源代码和二进制文件可以从中获得10bet博彩公司

有关NDB集群8.0中的更改概述,请参阅NDB集群有什么新变化

这个版本还包含了之前NDB Cluster版本中所有的bug修复和更改,以及在主线MySQL 8.0到MySQL 8.0.20中添加的所有bug修复和特性更改MySQL 8.0.20 (2020-04-27, General Availability))。

添加或更改的功能

  • 重要的变化:现在可以将备份划分为切片并使用为此实现的两个新选项并行恢复这些ndb_restore的多个实例,使其成为可能ndb_restore并行恢复与备份大小大致相同的子集,这应该有助于减少从备份恢复NDB Cluster所需的时间长度。

    ——num-slices选项确定备份应分割的切片数;——slice-id提供待恢复的片ID(小于片数0 ~ 1)ndb_restore

    最多支持1024个切片。

    有关更多信息,请参见——num-slices——slice-id选项。(bug#30383937)

  • 重要的变化:要提高更新操作的处理速度,NDB现在支持并默认使用每个节点组的多个传输程序。默认情况下,集群中每个节点组使用的传输程序数量等于本地数据管理(LDM)线程的数量。虽然这个数字对于大多数用例来说应该是最优的,但是可以通过设置NodeGroupTransporters数据节点配置参数。最大值是LDM线程数或TC线程数中较大的一个,最多为32个传输器。

    看到多种转运蛋白,以获取更多资料。

  • NDB客户端程序:控件添加了两个选项ndb_blob_tool实用程序,使其能够检测存在内联部分的缺失blob部分,并将其替换为正确长度的占位符blob部分(由空格字符组成)。检查是否有缺失的斑点部分,使用ndb_blob_tool——check-missing选择。要用占位符替换任何缺少的blob部分,请使用程序的——添加缺少的选项,也在这个版本中添加。(错误# 28583971)

  • NDB客户端程序:控件中删除了一个依赖项ndb_waiterndb_show_tables实用程序NDBT.图书馆。这个库,用于NDB开发用于测试,不是正常使用所必需的。这一变化对用户的明显影响是,这些程序不再打印NDBT_ProgramExit -状态完成运行后。应更新依赖此行为的应用程序,以在升级到此版本时反映此更改。

  • mysql ndb clusterj:未使用的antlr3插件已从Clusterj中删除砰的一声文件。(错误# 29931625)

  • mysql ndb clusterj:mysql ndb群集8.0的最低java版本群集支持现在是Java 8.(错误#29931625)

  • mysql ndb clusterj:群集使用的一些Java API在最近的Java版本中弃用。这些调整已对Clusterj进行:

    • 替换所有Class.newInstance ()打电话.newInstance Class.getDeclaredConstructor () ()调用。还在需要时更新了异常处理和测试用例。

    • 所有的数字对象实例化对象的类的构造函数字符串或者原语类型被弃用。将所有此类已废弃的实例化调用替换为相应的返回对象的值()方法调用。

    • Proxy.getProxyClass ()现在已经弃用。的DomainTypeHandlerImpl类现在使用该类直接创建一个新实例Proxy.newProxyInstance ()方法;所有对代理人类及其构造函数将从DomainTypeHandlerImpl班级。SessionFactoryImpl类现在使用代理对象底层的接口来标识域类,而不是使用proxy类。也更新了DomainTypeHandlerFactoryTest

    • finalize ()方法现在已弃用。此补丁不会更改覆盖的finalize()方法,只是取消了有关它们的警告。这种弃用将在以后的补丁中单独处理。

    • 更新了CMake配置,在编译ClusterJ时将弃用警告视为错误。

    (错误# 29931625)

  • NDB现在支持版本控制ndbinfo表,并在内部维护其表的当前定义。启动时,NDB比较其支持ndbinfo版本使用版本存储在数据字典中。如果版本有所不同,NDB滴任何旧ndbinfo表并使用当前定义重新创建它们。

  • 许多以前不能下推到数据节点的外部连接和半连接现在可以下推(参见发动机状态下推优化)。

    现在可以推入的外连接包括满足以下条件的连接:

    • 在这张桌子上,没有任何非强加的条件

    • 同一连接嵌套中的其他表中没有未填充的条件,或者在其上加入嵌套

    • 同一连接嵌套或其所依赖的上连接嵌套中的所有其他表也将被推入

    现在可以推动使用索引扫描的Semijoin如果符合推送的外连接刚刚注明的条件,并且它使用firstMatch策略。

    参考:参见:Bug #28728603, Bug #28672214, Bug #29296615, Bug #29232744, Bug #29161281, Bug #28728007。

  • 一个新的和简化的接口实现了使能和配置自适应CPU自旋。的SpinMethod.新增“数据节点参数”,包括以下4项:

    • StaticSpinning:禁用自适应旋转;使用以前NDB Cluster版本中使用的静态旋转

    • CostBasedSpinning.:启用基于成本的自适应旋转

    • LatencyOptimosedSpinning.:开启针对时延优化的自适应旋转

    • DatabaseMachineSpinning:为托管数据库的机器启用自适应旋转,每个线程都有自己的CPU

    这些设置中的每一个都会导致数据节点根据需要使用一组预先确定的值,用于这里列出的一个或多个自旋参数:

    • SchedulerSpinTimer:此名称的数据节点配置参数。

    • EnableAdaptivespinning.:启用或禁用自适应旋转;不能在集群配置文件中直接设置,但可以直接使用控制转储104004.

    • SetAllowedSpinOverhead: CPU时间允许获得延迟;不能直接在config.ini文件,但可以直接更改,使用转储104002.

    可用的预设SpinMethod.应该涵盖大多数用例,但是您可以使用介绍自适应旋转行为SchedulerSpinTimer数据节点配置参数和转储刚刚列出的命令以及其他命令转储命令的ndb_mgm群集管理客户端;查看描述SchedulerSpinTimer获取完整列表。

    NDB 8.0.20还增加了一个新的TCP配置参数TcpSpinTime设置一个给定TCP连接的旋转时间。这可用于为数据节点、管理节点和SQL或API节点之间的任何此类连接启用自适应旋转。

    ndb_top工具还增强以提供每线程的自旋时间信息;这在终端窗口中以绿色显示。

    有关更多信息,请参见SpinMethod.TcpSpinTime配置参数,转储命令前面列出或指示,以及文档10bet官方网站ndb_top

错误修复

  • 重要的变化:lower_case_table_names设置为0,则发出一个查询,如果任何外键名的字母大小写与创建它们时的大小写不同,将导致集群意外关闭。这是由于mysqld将外键名视为不区分大小写的事实,即使是在区分大小写的文件系统上NDB的值所存储的外键名lower_case_table_names,这样,当它设置为0时,在查找期间,NDB预期任何外部键名称的字段,可以匹配它们的创建。然后不能在LetterCase中不同的外键名称NDB字典,即使它可以在MySQL数据字典中找到,导致前面描述的问题NDBCLUSTER

    这个问题没有发生lower_case_table_names设置为1或2。

    通过使外键名不区分大小写和删除对的依赖关系来解决这个问题lower_case_table_names。这意味着以下两项现在总是正确的:

    1. 外键名现在使用创建时使用的相同字母来存储,而不考虑值lower_case_table_names

    2. 查找外键名NDB现在总是大小写不敏感的。

    (错误# 30512043)

  • 包装:控件删除了对Perl的一个不必要的依赖mysql-cluster-community-server-minimalRPM包。(错误# 30677589)

  • 包装:NDB没有成功编译Ubuntu 16.04与GCC 5.4由于使用isnan ()而不是std :: isnan()。(错误# 30396292)

    这个问题是Bug #30338980的回归。

  • OS X:把变量SCHEMA_UUID_VALUE_LENGTH其中只使用一次NDB源代码,并且在Mac OSX上构建时导致编译警告。该变量已被替换为UUID_LENGTH。(错误# 30622139)

  • NDB磁盘数据:现在,表空间数据文件中的扩展区分配在表空间使用的所有数据文件中以循环方式执行。在多个存储设备用于磁盘数据存储的情况下,这应该提供更均匀的数据分发。(bug#30739018)

  • NDB磁盘数据:在某些情况下,无法完成磁盘数据表的检查点,导致计划外的数据节点关闭。(错误# 30728270)

  • NDB磁盘数据:在重新启动群集后执行磁盘数据DDL操作时,未初始化的变量导致发出。(bug#30592528)

  • mysql ndb clusterj:当一个日期值从NDB集群中读取,ClusterJ有时会从行中提取错误的年值。这是因为实用程序班级,打开包装时日期价值,错误地提取了一年的一些额外比特。此补丁使ClusterJ仅提取所需的位。(bug#30600320)

  • mysql ndb clusterj:当群集的时候NdbOperation: AbortOption类型的值为AO_IgnoreOnError,当有读取错误时,Clusterj认为随着行丢失并返回而不是例外。这是因为ao_ignoreonerro.,execute ()方法始终在每次事务后返回成功代码,并且Clusterj应该检查任何单个操作中的任何错误;但是,在案例中未检查读取操作。使用此补丁,查询执行后,现在检查读取操作,从而报告读取错误。(bug#30076276)

  • 修复了MySQL优化器中对引擎条件下推的不利影响NDB存储引擎。(错误# 303756135)

    这个问题是:Bug #97552, Bug #30520749的回归。

  • 恢复签名的自动增量列时,ndb_restore在确定数据中包含的最大值时,错误地处理了负值。(错误# 30928710)

  • 以前(在NDB 7.6.4之前SPJ但是在NDB 7.6和以后的版本中,每个数据节点都会激活一个worker实例,负责该数据节点上的所有片段。

    在进行这种改变之前,每个工人都足够了,以便与所有等于1等于1的平行性扫描片段SPJ工人,以保持所有本地数据管理器线程忙碌。当工人的数量因为改变而减少时,最小的并行度应该增加到等于每个工人的片段数量,以保持并行度。

    此修复确保现在完成此操作。(错误# 30639503)

  • ndb_metadata_sync系统变量设置为true,以触发MySQL数据字典和NDB字典;当同步完成时,该变量将自动重置为false,以表示已经完成同步。一个场景涉及到检测MySQL数据字典中不存在但由NDB字典有时会导致ndb_metadata_sync在属于该模式的所有表都成功同步之前被重置。(错误# 30627292)

  • 当使用共享用户和授权时,所有改变用户语句以快照的形式分发,无论它们是否包含明文密码。

    此外,显示创建用户没有包括资源限制(例如MAX_QUERIES_PER_HOUR)被设置为零,这意味着它们不分布在SQL节点中。(错误# 30600321)

  • 两个用于登录的缓冲区QMGR我们的规模不够。(错误# 30598737)

    参考:参见Bug #30593511。

  • 移除与。相关的无关调试输出SPJ从节点出示日志。(bug#30572315)

  • 执行初始重启NDB群集时,将其作为SQL节点附加到它的每个MySQL服务器识别重启,请重新安装ndb_schema,然后清除重启之前创建的所有NDB模式定义。因为数据字典在此之后才被清除ndb_schema是否重新安装,安装有时失败是因为ndb_schema与执行重启前的某个表具有相同的表ID。操作前清除数据字典可以修复此问题ndb_schema桌子是重新安装。(错误# 30488610)

  • NDB有时会假设包含索引统计信息的节点列表是有序的,但该列表并不总是在所有节点上以相同的方式排序。这意味着在某些情况下NDB忽略更新索引统计信息的请求,这可能导致索引统计表中的数据陈旧。(错误# 30444982)

  • 当优化器决定将一个表预排序到一个临时表时,在随后的表连接之前,要排序的表不应该是推入连接的一部分。虽然抽象查询计划接口中存在检测此类查询计划的逻辑,但这并不能正确检测使用文件导出到临时表。更改为检查文件属形描述符是否已设置;如果是,则表内容被排序到临时文件中作为访问表的第一步,这大大简化了加入结构的解释。我们现在还检测要排序的表格是推送的连接的一部分,这应该防止该接口中的未来回归。(bug#30338585)

  • 当节点ID分配请求失败时NotMaster临时错误,节点ID分配总是立即重试,而不考虑错误的原因。这导致了非常高的重试率,其影响可以观察为数量过多为节点分配节点idNNN.失败的日志消息(大约为每秒15,000条消息)。(错误# 30293495)

  • 为了NDB表格没有显式主键,NdbReceiverBuffer可以用太小的大小分配。这是由于属性位图发送到NDB从数据节点始终包含主键。在这种情况下,现在考虑隐藏主键所需的额外空间。(bug#30183466)

  • 当翻译NDB表创建使用.frmNDB集群的以前版本的文件并将其存储为一个表对象的MySQL数据字典,有可能为表对象承诺即使不匹配被发现之间的MySQL数据字典表索引,这些相同的表的表示NDB字典。在NDB 8.0中创建的表不会出现这个问题,因为在NDB 8.0中没有必要以这种方式更新表元数据。

    通过确保在表对象的实际执行此类比较之前,无论始发表是否是在使用或不使用的情况下创建的.frm用于存储其元数据的文件。(错误# 29783638)

  • 获取集群元数据导致内存泄漏时引发错误。(Bug #97737, Bug #30575163)