10bet网址
MySQL集群NDB 7.4发行说明
下载这些版本说明
PDF (Ltr)- 0.9 mb
PDF (A4)- 0.9 mb


MySQL集群NDB 7.4发行说明/ MySQL集群NDB 7.4.7变化(5.6.25-ndb-7.4.7)(2015-07-13,一般可用性)

MySQL集群NDB 7.4.7变化(5.6.25-ndb-7.4.7)(2015-07-13,一般可用性)

MySQL集群NDB 7.4.7是MySQL NDB集群的新版本7.4,5.6基于MySQL服务器,包括在7.4版本的特性NDB存储引擎,以及修复前NDB集群中最近发现错误版本。

7.4获得MySQL NDB集群。MySQL 7.4 NDB集群可以获得源代码和二进制文件10bet博彩公司

概述的更改在MySQL集群NDB 7.4中,看到的新的NDB集群中的7.4是什么

这个版本还包含了所有的bug修复和更改之前NDB集群版本,以及所有的bug修复和功能变化在主线MySQL通过MySQL 5.6.25(见5.6MySQL 5.6.25变化(2015-05-29,一般可用性))。

功能添加或改变

  • MySQL NDB ClusterJ:在高负载的情况下,这是可能超载直接内存用于域对象,因为直接内存不是垃圾收集以同样的方式作为对象在堆上分配。两种策略已经被添加到ClusterJ实现:第一,直接内存池,所以当域对象被垃圾收集,直接由另一个域对象内存可以重用。此外,一个新的用户级方法,发布(实例)已添加到会话接口,它允许用户发布相应的域对象前的直接内存垃圾收集。请查看描述释放(T)为更多的信息。(错误# 20504741)

  • 弃用MySQL NDB集群节点配置参数表示的ndb_config——configinfo——xml。对于每个参数目前弃用,相应的< param / >标签在XML输出现在包括属性弃用= " true "。(错误# 21127135)

  • 许多改进,列在这里,对于处理有可能引起过载时出现问题,由于大量的插入在当地执行检查点(LCP):

    • 失败有时发生在重启处理试图执行undo日志时,由于发现的最后一个问题日志。发生时仍不成文的页面第一年底撤销文件编写第二个时撤销文件,导致执行undo日志在相反的顺序执行旧甚至不存在的日志记录。

      这是固定的,确保执行的undo日志开始适当的日志,,如果早些时候开始,任何不成文的或错误的页面将被忽略。

    • 有可能失败在连结控制协定,或在执行COPY_FRAGREQ,由于运行的操作记录。我们通过确保连结控制协定和解决这个问题COPY_FRAG使用资源预留给操作记录,就已经有扫描记录。此外,旧代码ACC的操作不再需要,但可能导致失败了。

    • 当一个连结控制协定执行加载一个表时,可以达到活锁在连结控制协定扫描,因为每个记录连结控制协定后插入新页开始的LCP_SKIP国旗。连结控制协定目的等记录被丢弃的扫描,但当插入发生的速度比连结控制协定扫描可以丢弃记录,扫描似乎挂。作为这个问题的一部分,扫描没有报告任何连结控制协定监督进展,70秒后活锁的死亡过程。观察这个问题在执行的每秒250000插入在一段时间(120秒或更多),使用一个LDM。

      这部分的固定数量的变化,这里列出:

      • 我们现在确保页面后成立的连结控制协定已经开始不包括LCP扫描;我们也确保没有记录插入到这些页面有他们LCP_SKIP标记集。

      • 扫描协议改变了这样的处理一定数量的进步是由连结控制协定无论负载;我们现在报告进展的连结控制协定监督,避免失败时,连结控制协定正在取得进展而不是编写任何记录。

      • 我们现在采取措施保证连结控制协定扫描比插入可能发生更快,通过确保扫描优先扫描活动,因此,连结控制协定实际上是(最终)完成。

      • 此外,扫描更有效率,预取元组;这有助于避免,抓取内存的CPU上。

    • 行校验和防止数据损坏现在包括tuple头位。

    (错误# 76373,错误# 20727343,错误# 76741,错误# 69994,错误# 20903880,错误# 76742,错误# 20904721,错误# 76883,错误# 20980229)

错误修复

  • 不兼容的更改;NDB集群api:pollEvents2 ()方法现在返回1,显示一个错误,一个负值时,使用的时间参数。(错误# 20762291)

  • 重要的变化;NDB集群api:Ndb: getHighestQueuedEpoch ()方法返回的事件队列,而不是最大的时代最伟大的时代发现后调用pollEvents2 ()。(错误# 20700220)

  • 重要的变化;NDB集群api:Ndb: pollEvents ()现在是兼容的吗TE_EMPTY,TE_INCONSISTENT,TE_OUT_OF_MEMORY事件类型介绍了MySQL集群NDB 7.4.3。这种变化的详细信息,请参阅该方法的描述MySQL NDB集群API开发者指南。(错误# 20646496)

  • 重要的变化;NDB集群api:添加的方法Ndb: isExpectingHigherQueuedEpochs ()NDB API来检测,另外,新的事件时期被检测到pollEvents2 ()

    的行为Ndb: pollEvents ()也被修改,现在返回吗NDB_FAILURE_GCI(等于~ (Uint64) 0)当一个集群故障被检测到。(错误# 18753887)

  • NDB集群api:添加了专栏::getSizeInBytesForRecord ()方法,该方法返回所需的大小由一列NdbRecord根据列的类型(文本/ blob或其他)。(错误# 21067283)

  • NDB集群api:NdbEventOperation: isErrorEpoch ()错误的返回TE_INCONSISTENT事件类型(见表事件:TableEvent)。这引起了随后的调用getEventType ()失败。(错误# 20729091)

  • NDB集群api:创建和销毁的Ndb_cluster_connection对象由多个线程可以使用相同的应用程序锁定,这在某些情况下导致失败在全球字典缓存。为了缓解这个问题,一些内部NDB API的创建和销毁对象被序列化。(错误# 20636124)

  • NDB集群api:大量的超时没有正确处理NDB API。(错误# 20617891)

  • NDB集群api:当一个Ndb对象创建集群的失败是重用之前,这个对象仍可能包含的事件队列数据节点事件来自之前的失败。这些事件可以参考时期(从失败发生之前),进而违反所做的假设nextEvent ()方法,数字时代总是增加的。这个问题是解决显式地清除事件队列在这种情况下。(错误# 18411034)

    引用:参见:错误# 20888668。

  • MySQL NDB ClusterJ:当使用Java 1.7或更高版本,ClusterJ可能导致Java虚拟机崩溃时查询包含BLOB列的表,因为NdbDictionary: createRecord计算错误的大小需要备案。随后,当ClusterJ调用NdbScanOperation: nextRecordCopyOut缓冲区空间分配,数据泛滥。这个修复ClusterJ检查计算出的尺寸NdbDictionary: createRecord并使用缓冲区大小的值,如果大于ClusterJ本身计算价值。(错误# 20695155)

  • 后恢复数据库元数据(但不是任何数据)通过运行ndb_restore——restore-meta(或- m),SQL节点将挂在试图选择从数据库中的一个表的元数据恢复。在这种情况下表查询现在失败正如所料,由于表之前并不存在ndb_restore执行与——恢复数据(- r)。(错误# 21184102)

    引用:参见:错误# 16890703。

  • 当许多线程开启和关闭块在快速连续NDB API中,内部close_clnt ()函数同步块的关闭一个不够长时间等待self-signal显示潜在的附加信号需要被处理。这导致了过度的CPU使用率ndb_mgmd,阻止其他线程打开或关闭其他街区。这个问题是固定的轮询调用通过改变函数等特定条件醒来(也就是说,当一个信号实际上被执行)。(错误# 21141495)

  • 此前,多个发送线程可以调用处理发送相同的节点;这些线程锁然后争夺相同的发送。发送锁阻止额外发送线程,工作线程可以被传递给其他节点。

    这个问题是固定,确保新发送线程不激活虽然已经积极发送线程分配给相同的节点。此外,一个节点已经积极发送线程分配给它不再是可见的,已经活跃,发送线程;也就是说,这样一个节点不再添加到节点列表中当一个发送线程目前分配给它。(错误# 20954804,错误# 76821)

  • 排队等待操作的重做日志时重载(DefaultOperationRedoProblemActionAPI节点配置参数)可能会导致超时时数据节点的重做日志空间(P_TAIL_PROBLEM错误)。现在重做日志已满时,节点中止而不是排队的请求。(错误# 20782580)

    引用:参见:错误# 20481140。

  • 一个NDB可以使用一个事件缓冲区Ndb对象订阅表级行修改事件流。用户订阅一个现有的事件;这将导致数据节点开始发送事件数据信号(SUB_TABLE_DATA)和时代完成信号(SUB_GCP_COMPLETE)Ndb对象。SUB_GCP_COMPLETE_REP信号可以并发执行的到达接收机线程完成前的内部方法调用用于启动一个订阅。

    执行SUB_GCP_COMPLETE_REP信号取决于的总数SUMA桶(子数据流),但这可能没有设置,导致目前的问题,当计数器用于跟踪SUB_GCP_COMPLETE_REP信号(TOTAL_BUCKETS_INIT)被发现被设置为错误的值。现在TOTAL_BUCKETS_INIT测试之前,确保已经正确地设置使用它。(错误# 20575424,错误# 76255)

    引用:参见:错误# 20561446,错误# 21616263。

  • NDB统计查询错误延迟设置可能被推迟ndb_index_stat_option(默认60秒)索引,查询时已标有内部错误。也可能导致相同的底层问题分析表当执行一个NDB表有多个索引,一个内部错误发生在一个或多个但不是所有索引。

    现在在这种情况下,任何现有的统计数据立即返回,而不等待任何更多的统计数据被发现。(# 20707694,# 20553313,Bug错误# 76325)

  • 多线程调度程序发送到远程节点直接从每个工作线程或专用发送threadsL,根据集群的配置。这发送可能会传播所有、部分或没有可用的数据从发送缓冲区。虽然仍在发送数据之前,职工或发送线程继续尝试发送在一个循环中。数据的实际大小发送的最新尝试执行发送跟踪,和用于检测缺乏发送发送或进展的工作线程。当没有进展,也没有其他工作突出,调度程序需要1毫秒暂停释放CPU供其他线程使用。(错误# 18390321)

    引用:参见:错误# 20929176,错误# 20954804。

  • 在某些情况下,试图恢复以前备份的表与失败文件未找到由于缺少表片段文件错误。这发生的结果NDB内核备份块接收错误在试图获得表描述,由于其他交通从外部客户,而不是重试操作。

    解决这个问题创建了两个单独的队列等等内部客户的要求备份块或ndb_restore等外部客户,一个API节点和优先考虑内部队列。

    注意,它一直都是这样,外部客户端应用程序使用NDB API(包括MySQL运行的应用程序对一个SQL节点)预计将处理稍后重新尝试交易错误;这种期望是改变了这个问题的解决。(错误# 17878183)

    引用:参见:错误# 17916243。

  • 在启动时,API(包括节点mysqld流程运行SQL节点)等与数据节点还没有加入集群。现在他们只有等待已经加入了集群的数据节点。

    对于一个新的数据加入现有的集群节点,节点API仍然试图联系新的数据节点中HeartbeatIntervalDbApi毫秒。(错误# 17312761)

  • 在某些情况下,DBDICT块处理重复失败GET_TABINFOREQ第一个信号后,导致可能的节点故障和重新启动。这可能是在设置足够高值MaxNoOfExecutionThreads和较低的值LcpScanProgressTimeout。(错误# 77433,错误# 21297221)

  • 客户端查找API信号的传递到正确的内部客户TransporterFacade: deliver_signal ()函数没有互斥锁保护,这可能导致在测试过程中遇到的问题,如超时,当其他客户机连接到相同的TransporterFacade。(错误# 77225,错误# 21185585)

  • 是可能最终锁定发送缓冲区互斥时发送缓冲区成了有限资源,由于发送缓冲区的资源配置不足,减缓或失败的通信,这样所有的问题发送缓冲区变得精疲力竭,或减缓接收器不消费,是什么。在这种情况下工作线程失败为信号分配发送缓冲区的内存,并试图迫使发送为了腾出空间,同时发送线程正在忙于发送相同的节点或节点。所有这些线程争夺发送缓冲区互斥锁,导致锁已经描述,报告的监督在发送。这个修复由两部分组成,这里列出:

    1. 发送线程不再持有全球发送线程互斥而得到发送缓冲区互斥对象;现在发布全球互斥锁之前发送缓冲区互斥锁。这使工作线程获得困在发送在这种情况下。

    2. 发送缓冲区锁定的互斥锁现在使用try-lock通过发送线程。如果try-lock失败,使发送的节点的列表的末尾,喂食管发送节点为了稍后重试。这消除了在发送条件发送线程。

    (错误# 77081,错误# 21109605)