CN111488333B - 数据处理方法及装置、存储介质和电子设备 - Google Patents
数据处理方法及装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN111488333B CN111488333B CN202010421090.7A CN202010421090A CN111488333B CN 111488333 B CN111488333 B CN 111488333B CN 202010421090 A CN202010421090 A CN 202010421090A CN 111488333 B CN111488333 B CN 111488333B
- Authority
- CN
- China
- Prior art keywords
- proposal
- end node
- retry
- task
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/024—Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施方式涉及数据库技术领域,更具体地,本发明的实施方式涉及数据处理方法及装置,存储介质和电子设备。所述方法包括:获取Paxos模块在预设监控周期内的历史运行参数;历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;对任务发起端节点和/或任务执行端节点的历史运行参数进行统计,以获取任务发起端节点和/或任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;在提案重试统计结果不满足预设数值范围时,按预设规则调整任务发起端节点和/或任务执行端节点的提案参数,并与当前网络质量相匹配。实现对提案重试参数进行优化,避免频繁、无谓的重试,提高提案成功率,提高网络资源利用率。
Description
技术领域
本发明的实施方式涉及数据库技术领域,更具体地,本发明的实施方式涉及数据处理方法及装置,存储介质和电子设备。
背景技术
本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
MGR(MySQL Group Replication,MySQL集群)具有较高的数据可靠性,被广泛应用。由于MGR支持多主模式,各节点均可进行事务提交;相比使用Raft(分布式一致性)协议的单主系统具备较大的技术优势。
发明内容
但是,在一些技术中,在批量处理数据时,在将多条记录batch(批处理)成一个事务进行批量插入时,若记录本身较大或batch个数较多或并发度较大时,会导致迁移过程中mysqld占用的内存不断增涨,若mysqld增涨的内存超过了系统可用内存,则会引发OOM(OutOf Memory,内存溢出)。对数据库服务的可用性造成严重影响。
为此,非常需要一种改进的数据处理方法及装置、存储介质和电子设备,以解决批处理数据时对内存占用过高的问题。
在本上下文中,本发明的实施方式期望提供一种数据处理方法和装置、存储介质和电子设备。
根据本公开的一个方面,提供一种数据处理方法,包括:获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;
对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;
在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量;
和/或,对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;
在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量。
在本公开的一种示例性实施例中,所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数,批处理后包含一个或多个事务的提案的存储占用参数以及对应的提案编号参数,所述提案由提出至达成一致的提案耗时参数中的任意一项或任意多项;
所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的提案编号参数、存储占用参数、重试次数参数,以及读取重试耗时参数中的任意一项或任意多项。
在本公开的一种示例性实施例中,所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;
在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
在本公开的一种示例性实施例中,所述任务执行端节点的提案重试统计结果包括:执行读取重试的所述提案对应的提案编号参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;
在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
在本公开的一种示例性实施例中,所述任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
在本公开的一种示例性实施例中,所述任务发起端节点的历史运行参数包括:提案由提出至达成一致的提案耗时参数;
所述在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量,包括:
在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;
并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及
根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
在本公开的一种示例性实施例中,所述方法还包括:
获取所述监控周期对应的网络质量参数;
基于所述网络质量参数获取对应参数调节系数,并基于所述参数调节系数调节所述按预设规则调整后的所述任务发起端节点的提案参数,和/或所述任务执行端节点的提案参数。
在本公开的一种示例性实施例中,所述方法还包括:
统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;
在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
在本公开的一种示例性实施例中,所述方法还包括:
响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或所述任务接收端节点的任务运行数据。
根据本公开的一个方面,提供一种数据处理装置,包括:
历史运行参数获取模块,用于获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;
任务发起端节点提案参数优化模块,用于对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量;
任务执行端节点提案参数优化模块,用于对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量。
在本公开的一种示例性实施例中,所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数,批处理后包含一个或多个事务的提案的存储占用参数以及对应的提案编号参数,所述提案由提出至达成一致的提案耗时参数中的任意一项或任意多项;
所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的提案编号参数、存储占用参数、重试次数参数,以及读取重试耗时参数中的任意一项或任意多项。
在本公开的一种示例性实施例中,所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第一处理单元,用于若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
在本公开的一种示例性实施例中,所述任务执行端节点的提案重试统计结果包括:执行读取重试的所述提案对应的提案编号参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第二处理单元,用于基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
在本公开的一种示例性实施例中,所述任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数;
所述任务执行端节点提案参数优化模块包括:任务执行端节点第一处理单元,用于在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
在本公开的一种示例性实施例中,所述任务发起端节点的历史运行参数包括:提案由提出至达成一致的提案耗时参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第三处理单元,用于在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;
并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及
根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
在本公开的一种示例性实施例中,所述装置还包括:
参数调节系数获取模块,用于获取所述监控周期对应的网络质量参数;基于所述网络质量参数获取对应参数调节系数,并基于所述参数调节系数调节所述按预设规则调整后的所述任务发起端节点的提案参数,和/或所述任务执行端节点的提案参数。
在本公开的一种示例性实施例中,所述装置还包括:
重试频率监控模块,用于统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
在本公开的一种示例性实施例中,所述装置还包括:
数据采集任务创建模块,用于响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或所述任务接收端节点的任务运行数据。
根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时上述的数据处理方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据处理方法。
根据本发明实施方式的通过对服务器集群的Paxos模块在预设监控周期的时段内的历史运行参数进行获取和统计,获取对应的提案重试统计结果,并将提案重试统计结果与预设的数值范围进行比较,从而在不满足预设的数值标准时,可以对任务发起端节点和/或任务执行端节点的提案重试参数进行优化,可以与当前的网络质量相匹配;进而提高提案成功率,并提高网络资源利用率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了一种系统的数据迁移测试的内存占用示意图;
图2示意性地示出了一种系统的数据迁移测试的另一内存占用示意图;
图3示意性地示出了一种系统的基于重试初始值产生机制选取的潜在初始值经过多次重试得到的每次重试间隔的增长曲线的示意图;
图4示意性地示出了一种包括3节点的MGR的节点间交互示意图;
图5示意性地示出了一种提案被抢占的节点间交互示意图;
图6示意性地示出了根据本发明实施方式的MGR的架构示意图;
图7示意性地示出了根据本发明实施方式的数据处理方法的流程图;
图8示意性地示出了根据本发明实施方式的一优化前的数据库节点内存状态示意图;
图9示意性地示出了根据本发明实施方式的执行所述数据处理方法后的优化后的内存状态示意图;
图10示意性地示出了根据本发明实施方式的数据处理装置的图;
图11示出了根据本发明实施方式的存储介质的示意图;以及
图12示意性示出了根据发明实施方式的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提供一种数据处理方法、数据处理装置、存储介质和电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。
发明概述
本发明人发现,现有技术中,MGR(MySQL Group Replication)是MySQL官方推出的基于Paxos一致性协议的数据高可靠、服务高可用方案。参考图6所示,MGR是一个MySQL插件(MySQL Group Replication Plugin),其主要包括API层602,用于负责完成和数据库(MySQL Server)601的交互,得到Server状态,完成事务的管理。组件层603主要包括3个特定组件,Capture负责收集事务执行的相关信息,Applier负责应用集群607事务到本地,Recovery负责节点的数据恢复。复制层604用于负责冲突验证,接收和应用集群事务。集群通信层包括基于Paxos协议的集群通信引擎606,以及和上层组件的交互接口(集群通信系统605)。MGR实现分布式数据库架构,底层的分布式基础是Paxos。通过Paxos来保证分布式数据库系统中事务的提交顺序。
在MGR的GCE(Group Communication Engine,集群通信引擎)中,任务发起端(proposer_task)负责发起消息的发起操作(propose)(或预处理操作(prepare))、接收学习端(acceptor_learner_task)负责进行接收操作(accept)和学习操作(learn)、任务执行端(excutor_task)负责执行读取操作(read)和执行操作(execute)。executor_task将已经达成majority的消息按需推送到MGR上层,交由MGR的Applier模块进行事务冲突检测并进行后续处理。
对于MGR,在批量导入、导出数据时,例如在不同MySQL实例间迁移数据,或者使用sqoop工具将数据从大数据系统迁移到MySQL实例上时,为了提高数据迁移效率,常常会将多条记录批处理(batch)成一个事务进行批量插入,同时增加并发度。若记录本身较大、或batch个数较多、或并发度较大时,会导致迁移过程中mysqld(MySQL daemon,MySQL守护进程)占用的内存不断增涨。若mysqld增涨的内存超过了系统可用内存,则会引发OOM(Out OfMemory,内存溢出)。
例如,在一用于不同的数据组件之间进行数据同步和订阅的中间件系统中进行数据迁移时,设置的参数是5个事务并发,每个事务200条记录(约30MB),参考图1所示,展示了3次测试过程中的内存曲线。可以看到整个过程内存非常平稳。参考图2所示,当把并发数从5提高为10时,情况就变得比较糟糕。在10并发场景下,随着测试的进行,mysqld内存线性增涨,从3G暴涨到14G。测试结束后,内存又快速恢复到初始值。如果数据量较大,迁移时间较长,那么就可能导致mysqld OOM。尤其是在云环境下,每个mysqld允许的内存增长空间有限的情况下问题会更加突出。
从其他数据库往MySQL导入数据是很常见的操作,在MGR上执行这些操作时,有较大的概率导致MGR的一个或多个节点mysqld宕机,对数据库服务的可用性造成严重影响。分析其原因,云服务环境的特点是内存相对较小,网络质量相对较差,因而导致了MGR的mysqld内存占用过多。
具体的,对于executor_task来说,其重试实现机制,使用find_value(int n,int*wait)来执行read操作,参数n表示需顺序读取多少个提案,默认为10个,参数*wait表示当前为第几次重试,引入*wait参数的原因是前两次读取时,调用的是read_miss_values();第三次时,如果本节点是leader节点,则采用propose_missing_values()的方式;从第四次开始,所有节点都采用propose_missing_values()方式。每次重试的时间间隔采用指数关系递增,参考图3所示,为基于重试初始值产生机制选取的潜在初始值经过多次重试得到的每次重试间隔。根据上述增长曲线,经过多次增长到3.0s后,在约2.3~3.0之间来回摆动。根据观察、统计,重试机制随机产生的初始值基本上都略大于0.1s(0.102xxx)。
虽然read操作本身网络开销很小,但是所需读取的提案内容(或事务batch)可能很大,比如上述案例中的30MB,假设每次获取10个,那么1s之内(重试3~4次)最多可能会请求约1GB的数据量,也就是说其他节点回复该read消息时需要通过网络传输这么多数据量。参考图4所示的示例,在3节点MGR中,会有1个节点出现该行为,1GB数据量分摊给另外2个节点,每个节点也需要500MB的网络带宽开销。而网络开销也意味着内存开销,在其他节点回复read操作时,需要拷贝一份数据,只有成功发送后,对应内存才能释放。此外,多次read操作获取相同的提案内容,严重减低了网络使用效率。
参考图4所示的示例,假设node2每次请求读取6个提案,第一次请求发给node1。在node1将提案内容发送到node2前,node2采用round robin方式向node3发了相同的第二次请求。又过了一段时间,node1和node3回复的提案内容仍未到node2,于是node2向node1发送第三次请求。显然,后2次请求过于匆忙,消耗了无谓的网络流量和内存资源。
过早从read转为propose(执行时会先进行prepare)会降低原节点propose效率。如前述示例可知,第4次重试从read转为prepare,假设由于提案较大(数十MB或上百MB)且网络性能较差,node1的发起的提案P1从propose操作到learn操作的时间需超过1s,在目前的executor_task代码实现下node2或node3会发起prepare操作来抢占对应编号的提案,由于prepare和后续空提案的propose操作消息都很小,传输效率高于原提案,那么node2和node3节点会先于node1在P1轮次对空提案达成majority,node1不得不重新基于下一个轮次P4来重新进行propose操作。这实际上降低了propose操作的效率,增大了网络开销,导致本就较差的网络质量无法充分利用,反过来又导致网络拥塞,推高了内存占用情况。参考图5所示,为提案被抢占的示例。
对于proposer_task来说,propose时会将同时提交的多个事务批处理(batch)到同一个提案,batch阈值为1G,需要花费更多时间完成提案propose,如前述,在网络质量较差时,会增加本轮次提案被其他节点抢占的概率。即使未被潜在,也会导致read阶段读取的提案内容过大而导致网络拥塞。
鉴于上述内容,本发明的基本思想在于:根据本发明实施方式的数据处理方法和数据处理装置,对服务器集群的Paxos模块在预设监控周期的时段内的历史运行参数进行获取和统计,获取对应的提案重试统计结果,并将提案重试统计结果与预设的数值范围进行比较,从而在不满足预设的数值标准时,可以对任务发起端节点和/或任务执行端节点的提案重试参数进行优化,来满足当前的网络质量;进而提高提案成功率,并提高网络资源利用率,实现基于网络质量自适应的数据一致性优化。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面结合图7来描述根据本发明示例性实施方式的数据处理方法。
参考图7,所述数据处理方法可以包括以下步骤:
S1、获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;
S2、对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;
S3、在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量;
S4,和/或,对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;
S5,在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量。
在本发明实施方式的数据处理方法中,通过对服务器集群的用于节点事务处理Paxos模块在预设监控周期的时段内的历史运行参数进行获取和统计,获取对应的任务发起端节点提案重试统计结果,和/或任务执行端节点提案重试统计结果;并根据实际需求,将任务发起端节点提案重试统计结果和任务执行端节点提案重试统计结果中的一项或两项,与预设的数值范围进行比较;从而可以在提案重试统计结果不满足预设的数值标准时,可以对任务发起端节点和/或任务执行端节点的提案重试参数按预设规则进行优化;一方面,避免任务发起端节点以及任务执行端节点由于过早发起提案重试导致的提案重试成功率较低并堵塞网络的情况,提高提案成功率;另一发面,使得数据迁移过程可以与当前的网络质量状况相匹配,以减少无谓的提案重试次数,并提高网络资源利用率。
在步骤S1中,获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数。
在本公开的示例性实施方式中,参考图6所示MGR系统架构,支持多主模式,各MySQL节点均可进行事务提交。MGR中的事务以Paxos请求的方式发送给Paxos模块,Paxos模块执行Paxos协议,通过两阶段协议(propose、accept)方式使各节点达成一致后返回给MGR在进行后续处理。
在MGR系统的初始运行阶段,可以采用MGR的默认值作用于Paxos模块。另外,可以预先配置一历史数据库,用户存储Paxos模块一段时间内的运行信息。举例来说,可以预先配置监控周期的时长,例如通过参数collect_time_range(采集时间范围)进行设置和动态调整,例如可以设置监控周期的时长为一分钟。
在本公开的示例性实施方式中,可以响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或所述任务接收端节点的任务运行数据。
具体来说,上述的数据处理请求可以是基于用户在进行数据的导入、导出时生成的。根据该数据处理请求,可以创建一独立的线程用于采集任务发起端节点和/或任务接收端节点当前的任务运行数据,并将其作为预设监控周期内的任务运行数据,并存储到配置的历史数据库中,作为历史运行数据。
在步骤S2中,对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对。
在本公开的示例性实施方式中,对于任务发起端节点(proposer_task)来说,采集的信息可以包括:进入Paxos的待处理事务的存储占用参数,即待提交事务大小(p_commit_size);批处理后(batch)包含一个或多个事务的提案的存储占用参数(p_proposal.p_size)以及对应的提案编号参数(p_proposal.p_msgno);所述提案由提出至达成一致的提案耗时参数,即提案从提出到达成一致所用时间(p_proposal.p_time_proposal);可以采集上述各项参数中的任意一项或任意多项的组合。
可以对预设监控周期内的上述参数进行统计,再将提案重试统计结果与预先配置的数值范围进行比较,判断当前监控周期的参数是否满足预设的数值条件。
在步骤S3中,在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量。
在本公开的示例性实施方式中,用户可以仅根据任务发起端节点的提案重试统计结果来调整任务发起端的提案参数。例如,可以优化任务发起端节点的批处理(batch)的阈值大小(p_batch_threshold_size),以及提案重试的时间间隔参数(p_propose_retry_period)。
在本公开的示例性实施方式中,具体来说,对于任务发起端节点来说,其统计的任务发起端节点的历史运行参数可以包括:提案由提出至达成一致的提案耗时参数,即监控完成一个提案所需时间(p_proposal.p_time_proposal)。
具体的,上述的方法可以包括:
步骤S311,在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;
步骤S312,并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及
步骤S313,根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
举例来说,通过对预设监控周期内的数据统计,可以监控完成一个提案所需时间p_proposal.p_time_proposal,即提案耗时参数;并可以在某个提案进行propose(提案)重试前调整p_propose_retry_period(提案重试的时间间隔参数)。例如,可以在预设监控周期内,选择与该提案大小相近的历史提案作为目标提案,如选择提案存储占用参数小于等于该提案的历史提案作为目标提案,并将该目标提案的提案耗时参数配置为p_propose_retry_period(提案重试的时间间隔参数)。
另外,根据对预设监控周期内任务发起端节点的提案耗时参数(p_proposal.p_time_proposal)的统计,可进一步调整任务执行端节点的每次重试的时间间隔,即任务执行端节点的提案读取重试间隔参数(e_read_period)。在获取了前一个提案后,将获取下一个提案的时间跟任务发起端节点的提案耗时参数(p_proposal.p_time_proposal)统计值相关联。通过该方式,可以有效的解决由于proposer_task过早进行提案重试导致提案成功率下降问题。
在步骤S4中,对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对。
在本公开的一些示例性实施例中,也可以仅对任务执行端节点的提案参数进行统计;或者,在执行上述步骤S2-S3对任务发起端的提案参数进行处理的同时,对任务执行端节点的提案参数进行统计,即上述的步骤S2与步骤S4可以是并列、同时执行的。
对于任务执行端(executor_task)来说,在预设监控周期内采集的数据可以包括:待执行读取重试的所述提案对应的提案编号参数(e_proposal.p_msgno)、存储占用参数(即提案大小,e_proposal.p_size)、重试次数参数(e_proposal.p_retry_count),以及读取重试耗时参数(e_proposal.p_time_read)中的任意一项或任意多项。
在步骤S5中,在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量。
在本公开的一些示例性实施例中,对于任务执行端节点(executor_task)来说,优化的运行控制参数可以包括:任务执行端节点的重试提案读取数量(e_read_count),即每次重试读取的提案个数;任务执行端节点的提案读取重试间隔参数(e_read_period),即每次重试的时间间隔。
在本公开的一些示例性实施例中,统计的任务执行端节点的历史运行参数可以包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数。
具体的,上述的方法还可以包括:
步骤S511,若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;
步骤S512,在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
举例来说,上述的第一阈值可以根据实际需求,配置为1、2或3等数值。可以对预设监控周期内,任务执行端节点的提案的读取重试次(e_proposal.p_retry_count)进行监控,如果该值大于1,则表示针对该提案的重试间隔过短,并可以根据该提案对应的待执行读取重试的所述提案对应的提案编号参数(e_proposal.p_msgno)来确定具体的提案。进一步的,可以统计预设监控周期内读取重试次数大于1的提案的比例,如果比例超过第二提案重试阈值(a_retry_per_threshold,重试阈值),便可以调大重试间隔,提案读取重试间隔参数(e_read_period)选取为预设统计周期内任务执行端节点的读取重试耗时参数(e_proposal.p_time_read)的中位数。通过该方式,可以有效的解决由于executor_task过早进行提案重试导致提案成功率下降问题。
在本公开的一些示例性实施例中,任务执行端节点的提案重试统计结果可以是:执行读取重试的所述提案对应的提案编号参数。
上述的方法还可以包括:
步骤S521,基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;
步骤S522,在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
举例来说,可以对预设监控周期内,监控任务执行端节点的2个相邻的待执行读取重试提案(e_proposal)对应的提案编号(e_proposal.p_msgno)是否连续;假设两两读取重试提案的平均间隔(中位数)为重试提案编码间隔(a_retry_msgno_interval),如果a_retry_msgno_interval小于任务执行端节点的重试提案读取数量,即小于每次重试读取的提案个数(e_read_count),则说明单次批量读取的提案个数过多,则可以将重试提案读取数量(e_read_count)调整为(1~a_retry_msgno_interval)之间的任意数值。通过该方式,可以有效的解决任务发起端节点(proposer_task)过度批处理(batch)导致提案过大问题。
在本公开的一些示例性实施例中,统计的历史运行参数可以是任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;以及任务发起端节点的历史运行参数包括:待处理事务的存储占用参数。
具体来说,上述的方法可以包括:
步骤S531,在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
举例来说,对于预设监控周期内,可以监控任务执行端节点待执行读取重试的所述提案对应的存储占用参数(e_proposal.p_size)的中位数,设置为提案大小中位数(a_proposal_size_mid);并将其与任务发起端节点的待提交事务对应的存储占用参数(p_commit_size,即待提交事务大小)的中位数进行对比,若p_commit_size的中位数小于a_proposal_size_mid,则说明任务发起端节点的批处理操作的存储占用阈值(p_batch_threshold_size)过大,可以将其调整为a_proposal_size_mid。通过该方式,可以有效的解决由于读取已完成提案的方式不合理导致网络资源利用率下降问题。
此外,在本公开的一些示例性实施例中,上述的方法还可以包括:
统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;并在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
举例来说,上述的预设频率预设可以为1,或根据当前网络质量、实际业务需要求配置的其他数值。
在根据当前预设监控周期的历史运行参数完成一次参数调整后,可以重新对下一个监控周期进行历史运行参数的采集,并计算该监控周期内任务发起端节点和/或任务执行端节点的提案重试频率,若提案重试频域大于1,则继续根据该监控周期的历史运行参数对任务发起端节点和/或任务执行端节点的提案参数进行调整,直到监控周期内的提案重试频率小于预设的频域阈值,不再出现频繁的任务发起端propose或/和execute重试现象。
此外,考虑到Paxos所运行节点的网络质量可能发生变化。通过上述方法达到稳态,满足当前网络质量后,可以在上述监控项的基础上,进一步监控网络质量,确保在网络质量提升后,能够回调Paxos运行参数。
在本公开的示例性实施方式中,可以利用上述的步骤S2-步骤S5对任务执行端节点和任务发起端节点的各项提案参数同时进行调整;或者,也可以仅对任务执行端节点,或者仅对任务发起端节点的一项或多项提案参数进行调整。
在本公开的示例性实施方式中,基于上述内容,上述的方法还可以包括:
步骤S601,获取所述监控周期对应的网络质量参数;
步骤S602,基于所述网络质量参数获取对应参数调节系数,并基于所述参数调节系数调节所述按预设规则调整后的所述任务发起端节点的提案参数,和/或所述任务执行端节点的提案参数。
举例来说,对于预设监控周期来说,在采集任务发起端节点和/或任务执行端节点的历史运行参数时,还可以对网络质量参数进行采集。举例来说,网络质量参数可以包括:网络信号强度、网络传输时延、网络传输速率、网络丢包率、抖动时长以及网络带宽中的任意一项或任意多项的组合。另外,可以预先建立网络质量参数和对应的参数调节系数的对应关系列表。该对应关系表单中,网络质量参数的各项指标可以采用数值范围的形式,即不同的网络质量参数范围对应于一个参数调节系数。
对于一预设监控周期来说,在根据该监控周期的历史提案参数获取对应的任务发起端节点和/或任务执行端节点的提案参数优化策略后,可以再根据该预设监控周期对应的参数调节系数进一步的调节提案参数,使的调整后的提案参数可以更加的符合网络质量。
或者,在其他示例性实施例中,也可以对网络质量参数进行实时的监控,当网络质量参数由一个数值区间变换到另一数值区间时,实时的获取对应参数调节系数,并将该实时获取的参数调节系统施加于当前的提案参数优化策略。
综上所述,本公开提供的方法最大限度保持了与MGR原方案的兼容,可从原方案在线升级到优化方案,业务端无需调整。参考图8所示,为200+个MGR实例对应的未优化前的数据库节点内存状态。参考图9所示,为通过本公开的数据处理方法优化后的内存状态。可以发现,本公开的优化方案能够有效控制节点的内存增长,做到在同等负载下,内存始终平稳。本公开的方法在MGR基础上做了进一步的优化,在不降低性能的情况下,有效提高了MGR服务稳定性。尤其是在大事务高并发的业务场景,更能体现优化效果。可以证明本公开的方案对MGR的优化是有益的。
本公开提供的方法,针对云环境下运行的MySQL集群,通过对Paxos模块的任务发起(propose)和任务执行(execute)阶段进行历史运行参数的统计,实现了对Paxos的运行监控机制,能够及时的发现任务发起端、任务执行端是否出现重试过于频繁的情况。基于各监控周期的历史运行参数,获取对应的任务发起端节点和/或任务执行端节点的提案参数调整策略,能够对提案(proposal)读取频率、批处理(batch)大小等参数按照预设规则进行调整,以匹配当前的网络质量;实现了对Paxos运行参数的基于网络质量的、自适应的动态调整,有效的避免了频繁重试现象的出现,减少无谓的提案重试次数,提高提案成功率。
示例性装置
在介绍了本发明示例性实施方式的数据处理方法之后,接下来,参考图10对本发明示例性实施方式的数据处理装置进行描述。
参考图10所示,本发明示例性实施方式的数据处理装置10可以包括:历史运行参数获取模块101,任务发起端节点提案参数优化模块102以及任务执行端节点提案参数优化模块103,其中:
所述历史运行参数获取模块101可以用于获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数。
所述任务发起端节点提案参数优化模块102可以用于对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量。
所述任务执行端节点提案参数优化模块103可以用于对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量。
根据本公开的示例性实施例,所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数,批处理后包含一个或多个事务的提案的存储占用参数以及对应的提案编号参数,所述提案由提出至达成一致的提案耗时参数中的任意一项或任意多项;
所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的提案编号参数、存储占用参数、重试次数参数,以及读取重试耗时参数中的任意一项或任意多项。
根据本公开的示例性实施例,所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数;所述任务发起端节点提案参数优化模块101可以包括:任务发起端节点第一处理单元(图中未示出)。
所述任务发起端节点第一处理单元可以用于若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
根据本公开的示例性实施例,所述任务执行端节点的提案重试统计结果包括:执行读取重试的所述提案对应的提案编号参数;所述任务发起端节点提案参数优化模块102包括:任务发起端节点第二处理单元(图中未示出)。
所述任务发起端节点第二处理单元可以用于基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
根据本公开的示例性实施例,所述任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数;所述任务执行端节点提案参数优化模块103包括:任务执行端节点第一处理单元(图中未示出)。
所述任务执行端节点第一处理单元可以用于在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
根据本公开的示例性实施例,所述任务发起端节点的历史运行参数包括:提案由提出至达成一致的提案耗时参数;所述任务发起端节点提案参数优化模块102可以包括:任务发起端节点第三处理单元(图中未示出)。
所述任务发起端节点第三处理单元可以用于在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
根据本公开的示例性实施例,所述装置还包括:参数调节系数获取模块(图中未示出)。
所述参数调节系数获取模块可以用于获取所述监控周期对应的网络质量参数;基于所述网络质量参数获取对应参数调节系数,并基于所述参数调节系数调节所述按预设规则调整后的所述任务发起端节点的提案参数,和/或所述任务执行端节点的提案参数。
根据本公开的示例性实施例,所述装置还包括:重试频率监控模块(图中未示出)。
所述重试频率监控模块可以用于统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
根据本公开的示例性实施例,所述装置还包括:数据采集任务创建模块(图中未示出)。
所述数据采集任务创建模块可以用于响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或所述任务接收端节点的任务运行数据。
由于本发明实施方式的数据处理装置的各个功能模块与上述数据处理方法发明实施方式中相同,因此在此不再赘述。
示例性存储介质
在介绍了本发明示例性实施方式的音频播放方法和装置、音频分享方法和装置之后,接下来,参考图11对本发明示例性实施方式的存储介质进行说明。
参考图11所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图12对本发明示例性实施方式的电子设备进行说明。
图12显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图7中所示的步骤S1至步骤S3。
存储单元820可以包括易失性存储单元,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以包括数据总线、地址总线和控制总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口850进行。电子设备800还包括显示单元840,其连接到输入/输出(I/O)接口850,用于进行显示。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了音频播放装置和音频分享装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (17)
1.一种数据处理方法,其特征在于,包括:
获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;
对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;
在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量;
和/或,对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;
在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量;
其中,所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数,批处理后包含一个或多个事务的提案的存储占用参数以及对应的提案编号参数,所述提案由提出至达成一致的提案耗时参数中的任意一项或任意多项;所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的提案编号参数、存储占用参数、重试次数参数,以及读取重试耗时参数中的任意一项或任意多项。
2.根据权利要求1所述的数据处理方法,其特征在于,所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;
在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
3.根据权利要求1所述的数据处理方法,其特征在于,所述任务执行端节点的提案重试统计结果包括:执行读取重试的所述提案对应的提案编号参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;
在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
4.根据权利要求1所述的数据处理方法,其特征在于,所述任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数;
所述在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量,包括:
在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
5.根据权利要求1所述的数据处理方法,其特征在于,所述任务发起端节点的历史运行参数包括:提案由提出至达成一致的提案耗时参数;
所述在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量,包括:
在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;
并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及
根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
6.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;
在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
7.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或任务接收端节点的任务运行数据。
8.一种数据处理装置,其特征在于,包括:
历史运行参数获取模块,用于获取Paxos模块在预设监控周期内的历史运行参数;其中,所述历史运行参数包括:任务发起端节点和/或任务执行端节点的历史运行参数;
任务发起端节点提案参数优化模块,用于对所述任务发起端节点的历史运行参数进行统计,以获取所述任务发起端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务发起端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务发起端节点的提案参数,以匹配当前网络质量;
任务执行端节点提案参数优化模块,用于对所述任务执行端节点的历史运行参数进行统计,以获取所述任务执行端节点的提案重试统计结果,并与预设数值范围进行比对;并在所述任务执行端节点的提案重试统计结果不满足预设数值范围时,按预设规则调整所述任务执行端节点的提案参数,以匹配当前网络质量;
其中,所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数,批处理后包含一个或多个事务的提案的存储占用参数以及对应的提案编号参数,所述提案由提出至达成一致的提案耗时参数中的任意一项或任意多项;所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的提案编号参数、存储占用参数、重试次数参数,以及读取重试耗时参数中的任意一项或任意多项。
9.根据权利要求8所述的数据处理装置,其特征在于,所述任务执行端节点的历史运行参数包括:待执行读取重试的所述提案对应的重试次数参数和读取重试耗时参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第一处理单元,用于若在所述预设监控周期内所述任务执行端节点存在所述提案的读取重试次数大于第一阈值,则统计在所述预设监控周期内读取重试次数大于所述第一阈值的提案比例;在所述提案比例大于第二提案重试阈值时,则将所述任务执行端节点的提案读取重试间隔参数设置为所述预设监控周期内所述读取重试耗时参数的中位数。
10.根据权利要求8所述的数据处理装置,其特征在于,所述任务执行端节点的提案重试统计结果包括:执行读取重试的所述提案对应的提案编号参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第二处理单元,用于基于提案编号参数获取所述预设监控周期内所述任务执行端节点相邻的两待执行读取重试提案的重试间隔参数;在所述重试间隔参数小于所述任务执行端节点的重试提案读取数量时,则根据所述重试间隔参数配置所述重试提案读取数量。
11.根据权利要求8所述的数据处理装置,其特征在于,所述任务执行端节点的历史运行参数包括:执行读取重试的所述提案对应的存储占用参数;所述任务发起端节点的历史运行参数包括:待处理事务的存储占用参数;
所述任务执行端节点提案参数优化模块包括:任务执行端节点第一处理单元,用于在所述预设监控周期内,若所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数大于所述任务发起端节点的待提交事务对应的存储占用参数的中位数,则将所述任务发起端节点的批处理操作的存储占用阈值设置为所述任务执行端节点待执行读取重试的所述提案对应的存储占用参数的中位数。
12.根据权利要求8所述的数据处理装置,其特征在于,所述任务发起端节点的历史运行参数包括:提案由提出至达成一致的提案耗时参数;
所述任务发起端节点提案参数优化模块包括:任务发起端节点第三处理单元,用于在所述任务发起端节点发起提案重试请求前,根据该所述提案重试请求的提案对应的提案存储占用参数,在所述预设监控周期内选取所述任务发起端节点的存储占用参数在预设误差范围内的目标提案;并将所述目标提案对应的提案耗时参数配置为该所述提案重试请求的提案对应的发起重试周期参数;以及根据所述任务发起端节点的提案耗时参数配置所述任务执行端节点的提案读取重试间隔参数。
13.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
参数调节系数获取模块,用于获取所述监控周期对应的网络质量参数;基于所述网络质量参数获取对应参数调节系数,并基于所述参数调节系数调节所述按预设规则调整后的所述任务发起端节点的提案参数,和/或所述任务执行端节点的提案参数。
14.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
重试频率监控模块,用于统计所述预设监控周期内所述任务发起端节点,和/或所述任务执行端节点的提案重试频率;在所述提案重试频率小于预设频率阈值时,暂停对所述任务发起端节点和/或所述任务执行端节点的提案参数的调整。
15.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
数据采集任务创建模块,用于响应于数据处理请求,创建数据采集线程以采集并存储所述任务发起端节点和/或任务接收端节点的任务运行数据。
16.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任一项所述的数据处理方法。
17.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421090.7A CN111488333B (zh) | 2020-05-18 | 2020-05-18 | 数据处理方法及装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010421090.7A CN111488333B (zh) | 2020-05-18 | 2020-05-18 | 数据处理方法及装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488333A CN111488333A (zh) | 2020-08-04 |
CN111488333B true CN111488333B (zh) | 2023-07-11 |
Family
ID=71795440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010421090.7A Active CN111488333B (zh) | 2020-05-18 | 2020-05-18 | 数据处理方法及装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488333B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122706A1 (en) * | 2012-10-26 | 2014-05-01 | International Business Machines Corporation | Method for determining system topology graph changes in a distributed computing system |
CN108228664A (zh) * | 2016-12-22 | 2018-06-29 | 中国移动通信集团上海有限公司 | 非结构化数据处理方法及装置 |
CN108599996A (zh) * | 2018-04-03 | 2018-09-28 | 武汉斗鱼网络科技有限公司 | 数据库集群的故障处理方法、装置及终端 |
CN110175070A (zh) * | 2019-05-21 | 2019-08-27 | 网易(杭州)网络有限公司 | 分布式数据库的管理方法、装置、系统、介质及电子设备 |
CN110663031A (zh) * | 2017-06-05 | 2020-01-07 | 国际商业机器公司 | 分布式存储网络 |
CN110874272A (zh) * | 2020-01-16 | 2020-03-10 | 北京懿医云科技有限公司 | 资源配置方法及装置、计算机可读存储介质、电子设备 |
-
2020
- 2020-05-18 CN CN202010421090.7A patent/CN111488333B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122706A1 (en) * | 2012-10-26 | 2014-05-01 | International Business Machines Corporation | Method for determining system topology graph changes in a distributed computing system |
CN108228664A (zh) * | 2016-12-22 | 2018-06-29 | 中国移动通信集团上海有限公司 | 非结构化数据处理方法及装置 |
CN110663031A (zh) * | 2017-06-05 | 2020-01-07 | 国际商业机器公司 | 分布式存储网络 |
CN108599996A (zh) * | 2018-04-03 | 2018-09-28 | 武汉斗鱼网络科技有限公司 | 数据库集群的故障处理方法、装置及终端 |
CN110175070A (zh) * | 2019-05-21 | 2019-08-27 | 网易(杭州)网络有限公司 | 分布式数据库的管理方法、装置、系统、介质及电子设备 |
CN110874272A (zh) * | 2020-01-16 | 2020-03-10 | 北京懿医云科技有限公司 | 资源配置方法及装置、计算机可读存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111488333A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7214295B2 (ja) | 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器 | |
US11151137B2 (en) | Multi-partition operation in combination operations | |
US9104572B1 (en) | Automated root cause analysis | |
US7631034B1 (en) | Optimizing node selection when handling client requests for a distributed file system (DFS) based on a dynamically determined performance index | |
CN111752965B (zh) | 一种基于微服务的实时数据库数据交互方法和系统 | |
US20160292249A1 (en) | Dynamic replica failure detection and healing | |
US20080133741A1 (en) | Computer program and apparatus for controlling computing resources, and distributed processing system | |
US11750711B1 (en) | Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
CN112052082B (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN104702592A (zh) | 流媒体下载方法和装置 | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
US11567814B2 (en) | Message stream processor microbatching | |
CN116248699B (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN116360954B (zh) | 基于云边协同技术的工业物联网管控方法和管控系统 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN111488333B (zh) | 数据处理方法及装置、存储介质和电子设备 | |
US11838193B1 (en) | Real-time load limit measurement for a plurality of nodes | |
US9727457B2 (en) | Minimizing latency due to garbage collection in a distributed system | |
JP6127754B2 (ja) | プログラム、排他制御要求振り分け方法およびシステム | |
US20200204482A1 (en) | Batch checkpointing for inter-stream messaging system | |
JP6171494B2 (ja) | 情報処理装置、処理要求プログラム、および処理要求方法 | |
US11886933B2 (en) | Dynamic load balancing by analyzing performance of volume to quality of service | |
CN111143280B (zh) | 一种数据调度方法、系统、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |