CN117539732A - Dag分布式账本系统的性能测试方法及系统 - Google Patents

Dag分布式账本系统的性能测试方法及系统 Download PDF

Info

Publication number
CN117539732A
CN117539732A CN202311433148.XA CN202311433148A CN117539732A CN 117539732 A CN117539732 A CN 117539732A CN 202311433148 A CN202311433148 A CN 202311433148A CN 117539732 A CN117539732 A CN 117539732A
Authority
CN
China
Prior art keywords
transaction
sub
data
stage
processing time
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.)
Pending
Application number
CN202311433148.XA
Other languages
English (en)
Inventor
石晶
白晓颖
杨国利
张明韬
吴恺东
张文正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Big Data Advanced Technology Research Institute
Peking University
Original Assignee
Beijing Big Data Advanced Technology Research Institute
Peking University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Big Data Advanced Technology Research Institute, Peking University filed Critical Beijing Big Data Advanced Technology Research Institute
Priority to CN202311433148.XA priority Critical patent/CN117539732A/zh
Publication of CN117539732A publication Critical patent/CN117539732A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种DAG分布式账本系统的性能测试方法及系统,所述方法包括:根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据多个子阶段的处理时间,确定度量指标和交易日志模板;根据交易日志模板,对被测试系统进行插桩;将插桩后的被测试系统批量部署到预先配置的节点;调用节点执行测试任务,并按照交易日志模板生成日志数据;根据日志数据,对度量指标进行数值统计与分析。本申请根据交易过程涉及的子阶段设计了细粒度的度量指标,并通过交易日志模板获取测试系统在运行时交易过程各子阶段的性能数据,进而实现基于交易过程的度量指标对被测试系统的性能进行分析,得到更加准确的性能分析结果。

Description

DAG分布式账本系统的性能测试方法及系统
技术领域
本申请涉及分布式账本技术领域,特别涉及一种DAG分布式账本系统的性能测试方法及系统。
背景技术
分布式账本系统使得数据在分布式环境中可靠管理,数据可以通过在多个节点之间进行的共识机制来共同维护。基于有向无环图(Directed Acyclic Graph,DAG)的分布式账本系统采用DAG作为底层账本结构,用于存储交易数据。
然而,有向无环图的账本结构(DAG账本)消除了链式账本的区块顺序,从而影响了分布式账本系统上层的交易处理过程。这意味着上层系统需要验证前置区块是否存在,并对区块进行排序,以消除因时序带来的双花问题。因而DAG账本的设计使得其交易处理过程更加复杂,传统的度量指标(例如,吞吐量、延迟等)难以准确评估DAG分布式账本系统内部的性能情况,难以深入探索系统的性能瓶颈。
发明内容
鉴于上述问题,本申请实施例提供了一种DAG分布式账本系统的性能测试方法及系统,以便克服上述问题或者至少部分地解决上述问题。
本申请实施例的第一方面,公开了一种DAG分布式账本系统的性能测试方法,所述方法包括:
根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段;
根据所述多个子阶段的处理时间,确定度量指标和交易日志模板;
根据所述交易日志模板,对被测试系统进行插桩;
将插桩后的被测试系统批量部署到预先配置的节点;
调用所述节点执行测试任务,并按照所述交易日志模板生成日志数据;
根据所述日志数据,对所述度量指标进行数值统计与分析。
可选地,根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,包括:
根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为数据准备流程、数据验证流程和数据确认流程;
分别对所述数据准备流程、所述数据验证流程和所述数据确认流程进行子阶段划分,得到多个子阶段。
可选地,所述交易日志模板中规定记录的内容包括:当前时间、消息的子阶段级别、当前交易的子阶段名称、阶段开始的时间戳、阶段结束的时间戳、交易标识符。
可选地,根据所述日志数据,对所述度量指标进行数值统计与分析,包括:
从所述日志数据中过滤出冗余数据;
将过滤出冗余数据的日志数据按照交易过程的各子阶段进行分类,得到每个子阶段的测试数据;
将所述每个子阶段的测试数据处理为结构化的数据;
根据所述结构化的数据,确定度量指标数值,并对所述度量指标数值进行统计分析。
可选地,根据所述结构化的数据,确定度量指标数值,包括:
确定子阶段类型,所述子阶段类型包括:无节点通信子阶段、两个节点通信子阶段和大于两个节点通信子阶段;
根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,以作为所述度量指标数值。
可选地,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述无节点通信子阶段的情况下;根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据交易开始处理子阶段的时间戳,和交易结束所述子阶段的时间戳,确定每个交易的第一处理时间;
根据mk个交易的第一处理时间,计算出所述无节点通信子阶段的平均交易处理时间。
可选地,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,第二个节点接收所述交易的时间戳,确定每个交易的第二处理时间;
根据mk个交易的第二处理时间,计算出所述两个节点通信子阶段的平均交易处理时间。
可选地,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述大于两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,最后一个节点接收所述交易的时间戳,确定每个交易的第三处理时间;
根据mk个交易的第三处理时间,计算出所述大于两个节点通信子阶段的平均交易处理时间。
可选地,根据所述结构化的数据,确定所述度量指标,包括:
根据数据准备流程内各子节点的平均交易处理时间,确定数据准备时间;
根据数据验证流程内各子节点的平均交易处理时间,确定数据验证时间;
根据数据确认流程内各子节点的平均交易处理时间,确定数据确认时间;
将所述数据准备、所述数据验证时间和所述数据确认时间确定时间的比率,作为所述度量指标数值。
本申请实施例的第二方面,公开了一种DAG分布式账本系统的性能测试系统,所述系统包括:
指标和日志确定模块,用于根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据所述多个子阶段的处理时间,确定度量指标和交易日志模板;
日志模板插桩模块,用于根据所述交易日志模板,对被测试系统进行插桩;
分布式节点管理模块,用于将插桩后的被测试系统批量部署到预先配置的节点,并调用所述节点执行测试任务,并按照所述交易日志模板生成日志数据;
系统化分析模块,用于根据所述日志数据,对所述度量指标进行数值统计与分析。
本申请实施例的第三方面,公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例第一方面所述的DAG分布式账本系统的性能测试方法的步骤。
本申请实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所述的DAG分布式账本系统的性能测试方法的步骤。
本申请实施例的第五方面,公开了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所述的DAG分布式账本系统的性能测试方法的步骤。
本申请实施例包括以下优点:
在本申请实施例中,根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据多个子阶段的处理时间,确定度量指标和交易日志模板,进而根据交易日志模板,对被测试系统进行插,并将插桩后的被测试系统批量部署到预先配置的节点,接着调用节点执行测试任务,并按照交易日志模板生成日志数据,最后根据日志数据,对度量指标进行数值统计与分析。由于度量指标是根据交易过程涉及的子阶段的处理时间确定而设计的,因此该度量指标是更细粒度的度量指标;并且交易日志模板是根据交易处理过程而设计,因而能够获取测试系统在运行时交易过程各子阶段的性能数据(即日志数据),进而实现基于交易过程的度量指标对被测试系统的性能进行分析,得到更加准确的性能分析结果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种DAG分布式账本系统的性能测试方法的步骤流程图;
图2是本申请实施例提供的一种DAG分布式账本系统的交易处理过程图;
图3是本申请实施例提供的一种对交易处理过程度量指标的统计与分析方法的步骤流程图;
图4是本申请实施例提供的一种DAG分布式账本系统的性能测试方法流程图;
图5是本申请实施例提供的一种IOTA性能测试结果图。
图6是本申请实施例提供的一种DAG分布式账本系统的性能测试系统的结构示意图;
图7是本申请实施例提供的一种DAG分布式账本系统的性能测试系统的部件图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本专利,对分布式账本系统进行简要的介绍:
分布式账本系统主要包括基于链式和DAG的分布式账本系统,在基于链式的分布式账本系统中,区块之间的时间关系严格按照顺序排列,每个区块都有一个前置区块,所有区块按照时间顺序排列。为了防止双重支付,采用了保守策略,选择最长/最重的子链,并放弃由并发引起的分叉链,导致存储和计算资源的浪费较多。基于DAG的分布式账本系统放弃了链式结构,采用了多前置区块的设计,从而形成了一个具有偏序关系的网状账本。它乐观地接受所有区块,并通过区块之间的偏序关系来校验每个区块数据,从而消除了放弃分叉链所造成的浪费,实现了并发数据执行,提高了记账效率。然而,DAG账本结构的变化要求上层系统考虑前置区块选择、防止双重支付以及前序区块的验证等问题。
相关技术中,对分布式账本系统性能分析研究(例如,BLOCKBENCH、Bctmark和Hyperledger Caliper等),存在以下三个方面的共同点:1)性能度量指标主要包括每秒交易数(TPS)、区块传播延迟和交易延迟,通过这些度量指标评估系统的整体性能;然而,这些度量指标无法深入探测系统内部的性能,无法在DAG分布式账本系统的复杂交易处理工作流中检测潜在的性能瓶颈。2)大部分研究集中在基于链式的分布式系统上;然而,DAG账本结构中的多前置区块设计增加了交易处理过程的复杂性,引入了额外的排序和前置区块验证等步骤,因此基于链式的分布式账本系统的现有细粒度性能指标不足以检测DAG分布式账本系统中的性能瓶颈。3)一些研究采用马尔可夫链和排队理论等理论工具对系统进行建模,并分析影响TPS和延迟的因素,且这些方法无法充分检测真实系统的复杂性。可见,相关技术中尚未有工作对DAG分布式账本系统的性能进行细粒度的度量分析和测试。
因此,为了克服现有技术的局限性,申请人提出以下发明构思:根据交易数据在DAG分布式账本系统中的状态,设置基于交易处理过程的度量指标,进而设计对应的交易日志模板,对被测试系统进行插桩,并将插桩后的被测试系统批量部署到预先配置的节点,接着调用节点执行测试任务,并按照交易日志模板生成的日志数据,最后根据日志数据,对交易处理过程的度量指标进行统计与分析。
参照图1所示,图1是本申请实施例提供的一种DAG分布式账本系统的性能测试方法的步骤流程图。如图1所示,本申请实施例提供的一种DAG分布式账本系统的性能测试方法可以包括步骤S110至步骤S160:
步骤S110:根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段。
步骤S120:根据所述多个子阶段的处理时间,确定度量指标和交易日志模板。
本申请实施例中,为了探索DAG分布式账本系统的性能,根据交易数据在DAG系统中的状态,对交易过程进行细粒度的划分,即将交易过程划分为多个子阶段。同时,由于时间具有可比性,因此将交易过程子阶段的处理时间相关联的数据作为度量指标。
参照图2所示,图2是本申请实施例提供的一种DAG分布式账本系统的交易处理过程图。具体地,根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,包括:根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为数据准备流程、数据验证流程和数据确认流程;分别对所述数据准备流程、所述数据验证流程和所述数据确认流程进行子阶段划分,得到多个子阶段。
因此,交易处理时间根据数据准备流程、数据验证流程和数据确认流程三部分的处理时间而确定的,交易记录流程的时间表示为:
其中,Tprocessing为交易处理时间,Tprep为数据准备时间,Tvali为数据验证时间,Tconf为数据确认时间。
进一步地,数据准备流程表征交易在DAG分布式账本系统中创建,并且打包到区块的过程,数据准备阶段的子阶段包括状态同步、数据签名、交易累积、前置区块选择和共识准备5个子阶段。其中,状态同步用于构建交易数据;数据签名是对交易数据进行哈希处理,保证交易数据的所有权和合法性;交易累计是等待一定数量的交易,并将其通过默克尔树结构来组织;前置区块选择是基于规则来从账本中选择若干个前置区块的过程;共识准备是为共识机制提供必要的参数的过程。进而数据准备表示为:
Tprep=tsync+tsig+tacc+tpre+tcons_prep
其中,tsync、tsig、tacc、tpre、tcons_prep分别为状态同步时间、数据签名时间、交易累积时间、前置区块选择时间和共识准备时间。
进一步地,数据验证是指未记录的数据通过系统传播到各个节点,并经过多个节点的验证过程,即使得数据被添加到每个节点的账本中的过程。数据验证分为4个子阶段,包括数据传输、前置区块验证、共识验证和数据持久化。其中,数据传输是指采用跨多个节点的P2P网络实现消息传递,系统主要传输两种类型的数据:一种是用于共识算法(如PBFT)中节点之间的决策数据,另一种是用于同步和传播的区块数据。前置区块验证是指验证当前DAG账本中是否存在相应的前置区块。共识验证是指验证当前的共识结果是否符合系统指定的条件。数据持久化是将一个数据添加到DAG分布式账本系统数据层中的过程。进而数据验证表示为:
Tvali=tprop+tone_pre_val*pre_num+tcons_val+tpers
其中,tprop、tcons_val、tpers分别表示数据传输时间、共识验证时间、数据持久化时间;tone_pre_val为验证一个前一区块的时间,pre_num为区块头中前一区块的数量。
进一步地,数据确认流程是指验证这些数据的时间顺序关系,并根据它们的区块数据修改系统状态,使其生效的过程。数据确认流程主要分为数据等待、数据排序和状态更新3个子阶段,进而数据确认流程的时间表示为:
Tconf=twait+torde+tupda
其中,twait、torde、tupda分别为数据等待时间、数据排序施加和状态更新时间。
在一种具体的实施方式中,所述交易日志模板中规定记录的内容包括:当前时间、消息的子阶段级别、当前交易的子阶段名称、阶段开始的时间戳、阶段结束的时间戳、交易标识符。
示例地,交易日志模板表示:
Log=(t_current,log_level,stage_name,t_start,t_end,tx_id)
其中,当前时间t_current采用标准化格式表示,例如,采用北京时间来表示当前时间2023/9/3 17:27:39。消息的子阶段级别log_level是日志数据对应的子阶段级别,在完整的交易过程中包括不同级别的子阶段,子阶段的级别分为一级子阶段和二级子阶段。例如,交易过程包括“数据准备”、“数据验证”和“数据确认”,而“数据验证”包括“前置区块验证”和“共识验证”,则“数据准备”、“数据验证”和“数据确认”为一级子阶段,“前置区块验证”和“共识验证”为二级子阶段。当前交易的子阶段名称stage_name是指当前交易正在进行的子阶段名称,例如,当前交易正在进行“交易签名”,则当前交易的子阶段名称为“交易签名”。阶段开始的时间戳t_start是指一个交易的某个子阶段的开始时间,阶段结束的时间戳t_end是指一个交易的某个子阶段的结束时间,根据阶段开始的时间戳t_start和阶段结束的时间戳t_end能够确定出子阶段的处理时间。交易标识符tx_id是指用于表征交易的唯一标识符,每个交易标识符tx_id对应于一个交易。
本申请实施例中,根据交易数据在DAG分布式账本系统中的状态,对交易过程进行细粒度划分,进而根据多个子阶段确定度量指标和交易日志模板,以便于后续获取日志数据,并根据日志数据,对交易处理过程的度量指标进行数值统计与分析,实现对被测试系统的细粒度分析,得到更加准确的性能分析结果。
步骤S130:根据所述交易日志模板,对被测试系统进行插桩。
本申请实施例中,交易日志模板是根据交易过程的子阶段而设计的,在该交易日志模板中规定了被测试系统运行过程中需要记录的内容。通过将交易日志模板插桩到被测试系统(即待测试的DAG分布式账本系统)的源码中,得到插桩后的被测试系统,进而在插桩后的被测试系统运行时,能够获取被测试系统交易过程的性能数据。
步骤S140:将插桩后的被测试系统批量部署到预先配置的节点。
本申请实施例中,节点是指参与分布式账本系统的计算机,预先配置是指对节点的身份、网络连接参数、共识算法、区块大小进行配置。在配置好节点后,通过批量部署的方式将插桩后的被测试系统部署到预先配置的各节点。在具体实施时,将插桩后的被测试系统转换为二进制代码,进而将二进制代码部署到预先配置的各节点。例如,预先配置有100个节点,则通过批量部署的方式,将二进制代码部署到100个节点上。由于是采用批量部署的方式部署被测试系统,因而提升了被测试系统的测试效率。
步骤S150:调用所述节点执行测试任务,并按照所述交易日志模板生成的日志数据。
本申请实施例中,测试任务是预先测试者预先编辑确认的测试任务,通过在被测试系统中运行测试任务,以获得按照交易日志模板生成的日志数据(即测试系统的性能数据)。具体地,调用所述节点执行测试任务的过程为:批量启动节点,进而在启动节点中发起测试任务,并执行测试任务,在测试任务执行完毕后,停止节点。
步骤S160:根据所述日志数据,对所述度量指标进行数值统计与分析。
本申请实施例中,日志数据包括各节点的日志数据,在收集到各节点的日志数据后,对细粒度的度量指标(即交易过程各子阶段的处理时间相关联的数据)进行统计和分析,以探索被测试系统性能瓶颈,通过对被测试系统的系统进行比较,得到被测试系统的性能分析结果。
综上所述,在本申请实施例中,根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据多个子阶段的处理时间,确定度量指标和交易日志模板,进而根据交易日志模板,对被测试系统进行插,并将插桩后的被测试系统批量部署到预先配置的节点,接着调用节点执行测试任务,并按照交易日志模板生成日志数据,最后根据日志数据,对度量指标进行数值统计与分析。由于度量指标是根据交易过程涉及的子阶段的处理时间确定而设计的,因此该度量指标是更细粒度的度量指标;并且交易日志模板是根据交易处理过程而设计,因而能够获取测试系统在运行时交易过程各子阶段的性能数据(即日志数据),进而实现基于交易过程的度量指标对被测试系统的性能进行分析,得到更加准确的性能分析结果。
在一种可选的实施例中,参照图3所示,根据所述日志数据,对所述度量指标进行数值统计与分析,包括步骤S310至步骤S340:
步骤S310:从所述日志数据中过滤出冗余数据。
本申请实施例中,冗余数据是指与交易过程各子阶段无关的数据或重复数据,在日志数据中包含了大量的冗余数据,为了便于分析,需要从日志数据中过滤出冗余数据,进而得到滤出冗余数据的日志数据。在具体实施时,首先对日志数据进行识别处理,以识别出日志数据中的冗余数据,进而执行过滤操作,得到滤出冗余数据的日志数据。
步骤S320:将过滤出冗余数据的日志数据按照交易过程的各子阶段进行分类,得到每个子阶段的测试数据。
本申请实施例中,在滤出冗余数据的日志数据中包含了交易过程各子阶段的测试数据,为了实现各子阶段的性能分析,需要按照每个子阶段对测试数据进行分类,得到每个子阶段的测试数据。例如,交易过程包括子阶段1、子阶段2、子阶段3,则对过滤出冗余数据的日志数据进行分类,分别得到子阶段1的测试数据、子阶段2的测试数据和子阶段3的测试数据。在具体实施时,考虑到日志数据是按照交易日志模板生成的,因此在日志数据中包含有当前交易的子阶段名称,因此根据子阶段名称对过滤出冗余数据的日志数据进行过滤,进而得到每个子阶段的测试数据。
步骤S330:将所述每个子阶段的测试数据处理为结构化的数据。
本申请实施例中,结构化数据是指按照日志模板组织成可以查询、检索、统计的数据,并可以以表格的形式存储在关系型的数据库中,利用SQL这种语言来查询和操作数据,结构化的数据可以更好地统计和分析数据的变化。因此,为了更好的对测试系统的性能进行分析,将每个子阶段的测试数据处理为结构化的数据。
步骤S340:根据所述结构化的数据,确定度量指标数值,并对所述度量指标数值进行统计分析。
本申请实施例中,结构化的数据能够更好地分析数据的变化,进而根据结构化的数据,对基于交易处理过程的度量指标进行计算,得到度量指标数值(例如,计算出子阶段1的平均处理时间10秒),并对度量指标进行比较,得到被测试系统的性能分析结果。
在一种可选的实施例中,考虑在被测试系统中的交易处理的子阶段涉及不同数量的节点,进而根据涉及的不同节点数量来确定度量指标数值。具体地,根据所述结构化的数据,确定度量指标数值,包括步骤S410和步骤S420:
步骤S410:确定子阶段类型,所述子阶段类型包括:无节点通信子阶段、两个节点通信子阶段和大于两个节点通信子阶段。
步骤S420:根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,以作为所述度量指标数值。
其中,无节点通信子阶段是指该子阶段不涉及节点通信;两个节点通信子阶段是指该子阶段涉及两个节点之间的通信,即在两个节点之间进行数据传输;大于两个节点通信子阶段是指该子阶段至少涉及三个节点之间的通信,即在至少三个节点之间进行数据传输。
本申请实施例中,被测试系统在一个固定的时间段内处理mk个交易,将该固定的时间段内每个子阶段对应的平均交易处理时间作为度量指标数值。由于被测试系统中的交易处理的子阶段涉及不同数量的节点,涉及的节点数量不同,对应的子阶段的平均交易处理时间的确定方式不同,因此根据子阶段类型(即子阶段涉及的节点数量)确定对应的平均交易处理时间的确定方式,进而确定出度量指标数值。
在一种可选的实施例中,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述无节点通信子阶段的情况下;根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据交易开始处理子阶段的时间戳,和交易结束所述子阶段的时间戳,确定每个交易的第一处理时间;
根据mk个交易的第一处理时间,计算出所述无节点通信子阶段的平均交易处理时间。
本申请实施例中,由于被测试系统在一个固定的时间段内处理mk个交易,则在一个固定的时间段内无节点通信子阶段处理mk个交易,进而计算出mk交易的第一处理时间以作为该无节点通信子阶段对应的度量指标数值。
示例地,无节点通信子阶段的平均交易处理时间NPT表示为:
其中,NC表示无节点通信子阶段的集合,tki,s表示第i个交易开始处理无节点通信子阶段k的时间戳,tki,e表示第i个交易结束无节点通信子阶段k的时间戳。
在一种可选的实施例中,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,第二个节点接收所述交易的时间戳,确定每个交易的第二处理时间;
根据mk个交易的第二处理时间,计算出所述两个节点通信子阶段的平均交易处理时间。
本申请实施例中,由于被测试系统在一个固定的时间段内处理mk个交易,则在一个固定的时间段内两个节点通信子阶段处理mk个交易,进而计算出mk交易的第二处理时间以作为该两个节点通信子阶段对应的度量指标数值。
示例地,两个节点通信子阶段的平均交易处理时间TPT表示为:
其中,TC表示两个节点通信子阶段集合,j表示第一个节点,j'表示第二个节点,k表示涉及第一个节点j和第二个节点j'之间发送和接收数据的当前两个节点通信子阶段,tkj,j表示第一个节点j在第k个两节点通信子阶段发送交易给第二个节点j'的时间戳,tkj,j′是第二个节点j'在第k个两节点通信子阶段接收交易的时间戳。
在一种可选的实施例中,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述大于两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,最后一个节点接收所述交易的时间戳,确定每个交易的第三处理时间;
根据mk个交易的第三处理时间,计算出所述大于两个节点通信子阶段的平均交易处理时间。
本申请实施例中,由于被测试系统在一个固定的时间段内处理mk个交易,则在一个固定的时间段内大于两个节点通信子阶段处理mk个交易,进而计算出mk交易的第三处理时间以作为该大于两个节点通信子阶段对应的度量指标数值。
示例地,大于两个节点通信子阶段的平均交易处理时间BPT表示为:
其中,MC表示大于两个节点通信子阶段集合;在大于两个节点通信子阶段处理过程中,每个交易从第一个节点广播,并在最后一个节点接收到最终的广播消息,tki,1,s表示第一个节点发送第i个交易的时间戳,tki,1,r表示最后第一节点j中接收第i个交易的时间戳。
在一种可选的实施例中,根据所述结构化的数据,确定所述度量指标,包括:
根据数据准备流程内各子节点的平均交易处理时间,确定数据准备时间;
根据数据验证流程内各子节点的平均交易处理时间,确定数据验证时间;
根据数据确认流程内各子节点的平均交易处理时间,确定数据确认时间;
将所述数据准备、所述数据验证时间和所述数据确认时间确定时间的比率,作为所述度量指标数值。
本申请实施例中,为了评估交易确认机制的有效性,将交易记录过程所需的时间和交易的确认过程所需时间的比率作为衡量确认机制效率的度量指标,其中交易记录主要包括数据准备和数据验证两部分。示例地,采用数据准备时间、数据验证时间和数据确认时间来计算时间的比率CRR,可表示为:
其中,Tprep表示数据准备时间,Tvali表示数据验证时间,Tconf表示数据确认时间。
示例地,图4是本申请实施例提供的一种DAG分布式账本系统的性能测试方法流程图。具体地,在确定度量指标和交易日志模板后,根据交易日志模板,对被测试系统的源码进行插桩,进而将插桩后的被测试系统批量部署到预先配置的各节点;编辑测试任务,并启动节点执行测试任务,并按照交易日志模板生成的日志数据,在测试结束后停止节点;最后从日志数据中过滤出冗余数据,并将过滤出冗余数据的日志数据按照交易过程的各子阶段进行分类,得到每个子阶段的测试数据,进而将每个子阶段的测试数据处理为结构化的数据,根据结构化的数据,确定度量指标数值,并对度量指标数值进行统计分析,以探索被测试系统性能瓶颈、对被测试系统性能比较和被测试系统性能分析。由于交易日志模板是根据交易处理过程而设计,因而能够获取测试系统在运行时交易过程各子阶段的性能数据(即日志数据),进而基于交易过程的度量指标对被测试系统的性能进行分析,得到更加准确的性能分析结果。
进一步地,为了对本申请实施例提供的DAG分布式账本系统的性能测试方法的测试效果进行分析,测试不同负载压力下的开源DAG系统IOTA的性能,探索系统性能瓶颈。图5是本申请实施例提供的一种IOTA性能测试结果图。具体地,在不同的线程数(2、4、6、8)下进行了四组负载压力条件下的实验,在收集每个子阶段的处理时间数据后,将其表示为每个子阶段处理时间与总交易记录时间的比例,并使用箱线图表示,比较了不同线程压力下客户端和服务器节点各阶段处理时间的百分比,图5中包含了4个子图,分别表示2、4、6和8个线程工作负载下每个子阶段的时间百分比。
可以发现:随着工作负载的增加,状态同步和前置区块选择的处理时间变得更加严重,并成为性能瓶颈。在使用2个线程的压力下,共识准备子过程的处理时间百分比最高,主要集中在50%至60%之间。其次,状态同步的处理时间百分比较高,大约在35%至45%之间。在4个线程的压力下,共识准备和状态同步的时间占比仍然较高,并与2个线程的情况相比变化不大。然而,当线程压力增加到6时,状态同步的时间占比显著增加,成为最高的子阶段,中位数百分比为69%。前置区块选择的时间占比也显著增加,其中位数百分比为19%。共识准备的处理时间占比降至约18%。当线程数为8时,状态同步的时间占比增加到69%,而共识准备和前置区块选择的时间占比分别约为13%和16%。因此,IOTA的性能瓶颈在不同的工作负载下有所不同。当工作负载较轻时,共识准备的时间开销相对较高。然而,随着工作负载的增加,状态同步的处理时间也增加。
本申请实施例还提供了一种DAG分布式账本系统的性能测试系统,参照图6所示,图6是本申请实施例提供的一种DAG分布式账本系统的性能测试系统的结构示意图,所述系统包括:
指标和模板确定模块610,用于根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据所述多个子阶段的处理时间,确定度量指标和交易日志模板;
日志模板插桩模块620,用于根据交易处理过程的交易日志模板,对被测试系统进行插桩;
分布式节点管理模块630,用于将插桩后的被测试系统批量部署到预先配置的节点,并调用所述节点执行测试任务,并按照所述交易日志模板生成日志数据;
系统化分析模块640,用于根据所述日志数据,对所述度量指标进行数值统计与分析。
本申请实施例中,基于指标和模板确定模块确定出被测试系统的度量指标和日志模板,进而基于日志模板插桩模块能够实现被测试系统的插桩,以在被测试系统运行是获取测试数据。分布式节点管理模块能够涉及管理和控制分布式账本系统中的多个节点,以确保系统的正常运行和有效性能测试,具体地,对节点的配置,批量节点的启停,节点的监控。其中,节点的配置包括设置节点的身份、网络连接参数、共识算法、区块大小等;批量节点的启停主要是提高性能测试的效率,方便测试人员控制;节点监控是确保其正常运行,以防节点宕机导致测试数据不准确。系统化分析模块结合系统的交易处理过程,处理节点性能数据,通过计算基于交易处理过程的度量指标,系统化地分析性能瓶颈,探索性能变化情况。
示例地,图7示意出了DAG分布式账本系统的性能测试系统的部件图。在具体实施时,指标和模板确定模块预先确定出度量指标和日志模板,日志模板插桩模块根据交易日志模板对DAG分布式账本系统(即被测试系统)的源码进行插桩。分布式节点管理模块通过批量部署的方式将二进制代码的被测试系统部署到分布式节点上,进而根据测试者部署的测试任务,分布式节点管理模块启动节点执行测试任务,在测试结束后停止节点。最后系统化分析模块对测试生成的日志数据进行数据过滤、结构化处理、以及交易处理过程的度量指标进行统计与分析,得到性能测试结果,并将性测试结果反馈给测试者。
本申请实施例还提供了一种电子设备,参照图8,图8是本申请实施例提供的一种电子设备结构示意图。如图8所示,电子设备700包括:存储器810和处理器820,存储器810与处理器820之间通过总线通信连接,存储器810中存储有计算机程序,该计算机程序可在处理器820上运行,进而实现本申请实施例所述的DAG分布式账本系统的性能测试方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例所述的DAG分布式账本系统的性能测试方法的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例所述的DAG分布式账本系统的性能测试方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、系统和电子设备的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种DAG分布式账本系统的性能测试方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种DAG分布式账本系统的性能测试方法,其特征在于,所述方法包括:
根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段;
根据所述多个子阶段的处理时间,确定度量指标和交易日志模板;
根据所述交易日志模板,对被测试系统进行插桩;
将插桩后的被测试系统批量部署到预先配置的节点;
调用所述节点执行测试任务,并按照所述交易日志模板生成日志数据;
根据所述日志数据,对所述度量指标进行数值统计与分析。
2.根据权利要求1所述的方法,其特征在于,根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,包括:
根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为数据准备流程、数据验证流程和数据确认流程;
分别对所述数据准备流程、所述数据验证流程和所述数据确认流程进行子阶段划分,得到多个子阶段。
3.根据权利要求1所述的方法,其特征在于,所述交易日志模板中规定记录的内容包括:当前时间、消息的子阶段级别、当前交易的子阶段名称、阶段开始的时间戳、阶段结束的时间戳、交易标识符。
4.根据权利要求1所述的方法,其特征在于,根据所述日志数据,对所述度量指标进行数值统计与分析,包括:
从所述日志数据中过滤出冗余数据;
将过滤出冗余数据的日志数据按照交易过程的各子阶段进行分类,得到每个子阶段的测试数据;
将所述每个子阶段的测试数据处理为结构化的数据;
根据所述结构化的数据,确定度量指标数值,并对所述度量指标数值进行统计分析。
5.根据权利要求4所述的方法,其特征在于,根据所述结构化的数据,确定度量指标数值,包括:
确定子阶段类型,所述子阶段类型包括:无节点通信子阶段、两个节点通信子阶段和大于两个节点通信子阶段;
根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,以作为所述度量指标数值。
6.根据权利要求5所述的方法,其特征在于,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述无节点通信子阶段的情况下;根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据交易开始处理子阶段的时间戳,和交易结束所述子阶段的时间戳,确定每个交易的第一处理时间;
根据mk个交易的第一处理时间,计算出所述无节点通信子阶段的平均交易处理时间。
7.根据权利要求5所述的方法,其特征在于,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,第二个节点接收所述交易的时间戳,确定每个交易的第二处理时间;
根据mk个交易的第二处理时间,计算出所述两个节点通信子阶段的平均交易处理时间。
8.根据权利要求5所述的方法,其特征在于,所述被测试系统在一个固定的时间段内处理mk个交易,在所述子阶段类型为所述大于两个节点通信子阶段的情况下,根据所述子阶段类型对应的平均交易处理时间的确定方式,确定所述子阶段的平均交易处理时间,包括:
根据第一个节点发送交易的时间戳,以及,最后一个节点接收所述交易的时间戳,确定每个交易的第三处理时间;
根据mk个交易的第三处理时间,计算出所述大于两个节点通信子阶段的平均交易处理时间。
9.根据权利要求1所述的方法,其特征在于,根据所述结构化的数据,确定所述度量指标,包括:
根据数据准备流程内各子节点的平均交易处理时间,确定数据准备时间;
根据数据验证流程内各子节点的平均交易处理时间,确定数据验证时间;
根据数据确认流程内各子节点的平均交易处理时间,确定数据确认时间;
将所述数据准备、所述数据验证时间和所述数据确认时间确定时间的比率,作为所述度量指标数值。
10.一种DAG分布式账本系统的性能测试系统,其特征在于,所述系统包括:
指标和日志确定模块,用于根据交易数据在DAG分布式账本系统中的状态,将交易过程划分为多个子阶段,并根据所述多个子阶段的处理时间,确定度量指标和交易日志模板;
日志模板插桩模块,用于根据所述交易日志模板,对被测试系统进行插桩;
分布式节点管理模块,用于将插桩后的被测试系统批量部署到预先配置的节点,并调用所述节点执行测试任务,并按照所述交易日志模板生成日志数据;
系统化分析模块,用于根据所述日志数据,对所述度量指标进行数值统计与分析。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述的DAG分布式账本系统的性能测试方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-9任一项所述的DAG分布式账本系统的性能测试方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-9任一项所述的DAG分布式账本系统的性能测试方法的步骤。
CN202311433148.XA 2023-10-31 2023-10-31 Dag分布式账本系统的性能测试方法及系统 Pending CN117539732A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311433148.XA CN117539732A (zh) 2023-10-31 2023-10-31 Dag分布式账本系统的性能测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311433148.XA CN117539732A (zh) 2023-10-31 2023-10-31 Dag分布式账本系统的性能测试方法及系统

Publications (1)

Publication Number Publication Date
CN117539732A true CN117539732A (zh) 2024-02-09

Family

ID=89787163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311433148.XA Pending CN117539732A (zh) 2023-10-31 2023-10-31 Dag分布式账本系统的性能测试方法及系统

Country Status (1)

Country Link
CN (1) CN117539732A (zh)

Similar Documents

Publication Publication Date Title
CN110287052B (zh) 一种异常任务的根因任务确定方法及装置
US11023358B2 (en) Review process for evaluating changes to target code for a software-based product
EP2447838B1 (en) Technique for efficient parallelization of software analysis in a distributed computing environment through intelligent dynamic load balancing
JP2018185808A (ja) ブロックチェーンに基づくスマート契約をテストする装置及び方法
CN108459966B (zh) 测试组件的调度方法、装置、设备和计算机可读存储介质
CN110740079B (zh) 一种面向分布式调度系统的全链路基准测试系统
CN111611236A (zh) 一种数据分析方法及系统
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
CN111797604A (zh) 报表生成方法、装置、设备及计算机可读存储介质
CN111752850A (zh) 区块链系统的测试方法及相关设备
CN112202647B (zh) 区块链网络中的测试方法、装置及测试设备
EP2447839A1 (en) Efficient partial computation for the parallelization of software analysis in a distributed computing environment
CN112765014B (zh) 一种用于多用户同时操作的自动测试系统及工作方法
CN111897725B (zh) 中台服务自动化测试方法、介质、设备及系统
CN117539732A (zh) Dag分布式账本系统的性能测试方法及系统
ter Hofstede et al. Generating a process model from a process audit log
CN109471709B (zh) 基于Apache Oozie框架处理大数据的流程任务的调度方法
CN115185825A (zh) 接口测试的调度方法及装置
CN112132544B (zh) 业务系统的巡检方法及装置
CN115564410A (zh) 一种继电保护设备的状态监测方法及装置
CN114741300A (zh) 基于测试用例的测试方法及装置
CN110046809B (zh) 作业调度方法及装置
US8631391B2 (en) Method and a system for process discovery
CN114201404A (zh) 一种区块链网络的压力测试系统及方法
Zhu et al. Automated Generation of Digital Models for Production Lines Through State Reconstruction

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