一种模拟证券交易的基准测试方法及系统与流程

文档序号:11285936阅读:360来源:国知局
一种模拟证券交易的基准测试方法及系统与流程

本发明涉及基准测试技术领域,具体为一种模拟证券交易的基准测试方法及系统。



背景技术:

tpc-e(大型企业信息服务测试基准程序)是国际事务处理性能委员会(tpc)根据美国纽约交易所为模型提出的一种重量级的评测oltp(在线事务处理)性能评测标准,sqlite是一种轻量级的数据库,在嵌入式数据库中得到了普遍的应用,在tpc-e负载下,进行sqlite数据库的文件数据库特性和内存数据库特性的研究,为sqlite数据库在未来大数据时代下的应用研究提供重要依据。

根据tpc-e基准的规范,事务生成是基准测试系统重要的部分,直接影响基准测试系统的测试结果。而在tpc-e规范描述中,当客户数量比较庞大时,会有成千上百的客户同时进行访问,即会出现至少成百上千的事务执行请求,那么如何来模拟证券交易中多窗口事务处理、如何来模拟证券交易中客户排队交易场景等才能更有效地更准确地测试出证券交易数据库系统的好坏,有助于使用者挑选最符合自己需求的证券交易数据库系统。

现有的基准测试的方法、系统应用范围较为广泛,如公开号为cn103019921a公开的一种基于故障注入的操作系统容错性测试系统及其方法,该测试系统及方法主要包括数据处理机,集成故障注入平台,基准测试运行控制器、拦截器、监视器以及安装有被测操作系统和数据库的目标机,该测试系统及方法在有故障的情况下,能够提供分类的、可重用的、全面的方式综合检查和度量操作系统的行为,测试目的明确,测试流程清晰、全面,设计的故障类型覆盖模拟硬件故障、操作系统故障和系统组件故障三个类别,能够在有故障存在的情况下找到系统的弱点,指出系统需要调整和改善以加强容错性的方面,甚至用于调整系统的结构以达到合适的容错水平。这种基准测试、系统带有的价值可想而知是非常巨大的。

那么,现在已经有这个非常完善的tpc-e基准的规范,那么在模拟证券交易时候,如何能更好的进行现实情况的模拟,才能得到仿真度高的测试数据结果去评价证券交易数据库系统的优劣是一个亟需解决的问题



技术实现要素:

本发明的一个目的是提供一种仿真度高、易实现且可准确评价目标数据库系统的模拟证券交易的基准测试方法及系统。

本发明的上述技术目的是通过以下技术方案得以实现的:一种模拟证券交易的基准测试方法,

按如下步骤进行:

步骤s1,随机生成任一一种事务的事务信息结构体;

步骤s2,将步骤s1中的所述事务信息结构体封装成事务请求信息对象;

步骤s3,将步骤s2中的所述事务请求信息对象放入到事务缓冲队列中;

步骤s4,并行发送不同所述事务缓冲队列中的所述事务请求信息对象至服务器端进行逻辑操作。

作为对本发明的优选,在步骤s1之前进行步骤:s0,创建用于执行步骤s1、s2的事务模拟器线程。

作为对本发明的优选,所述事务模拟器线程包括并行处理的客户事务模拟器线程、市场事务模拟器线程和数据维护事务模拟器线程。

作为对本发明的优选,所述事务信息结构体中的信息包括事务类型id和事务执行的参数信息。

作为对本发明的优选,在步骤s4中,通过创建多个单独发送事务至服务器端的事务发送线程以并行发送不同所述事务缓冲队列中的所述事务请求信息对象。

作为对本发明的优选,所述事务缓冲队列包括客户事务对象队列、市场事务对象队列、数据维护事务对象队列。

作为对本发明的优选,所述市场事务模拟器线程的运行触发条件包括步骤:

s101,通过监听服务器端客户事务的处理结果;

s102,通过交易请求消息队列缓存s101中的处理结果;

s103,根据s102中的处理结果判断是否运行所述市场事务模拟器线程。

一种模拟证券交易的基准测试系统,包括事务信息结构体生产单元、封装单元、缓存单元和并行发送单元,其中,

所述事务信息结构体生产单元用于随机生成任一一种事务的事务信息结构体;

所述封装单元用于将所述事务信息结构体封装成事务请求信息对象;

所述缓存单元用于将所述事务请求信息对象放入到事务缓冲队列中;

所述并行发送单元用于并行发送不同所述事务缓冲队列中的所述事务请求信息对象至服务器端进行逻辑操作。

作为对本发明的优选,系统还包括监听单元,用于监听所述服务器端的逻辑操作处理结果。

作为对本发明的优选,所述并行发送单元中包括多个发送子单元,多个所述发送子单元同时发送不同的事务。

本发明通过产生随机事务信息结构体对象,并保存到对应的事务缓冲队列,然后事务发送线程将事务从对应缓冲队列中获取该事务信息结构体对象,发送到服务器端,驱动事务的底层数据库逻辑操作,可更有效更真实地来模拟证券交易中多窗口事务处理、证券交易中客户排队交易场景等,以获得更优化的测试效果,并最终评判数据库的优劣。

附图说明

图1是本发明实施例1的总的流程图;

图2是本发明实施例1的优化后的流程图;

图3是本发明实施例1的ce事务模拟器线程的实现过程图;

图4是本发明实施例2的系统模块图。

具体实施方式

以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。

实施例1

一种模拟证券交易的基准测试方法,按如下步骤进行:

步骤s1,随机生成任一一种事务的事务信息结构体;

步骤s2,将步骤s1中的所述事务信息结构体封装成事务请求信息对象;

步骤s3,将步骤s2中的所述事务请求信息对象放入到事务缓冲队列中;

步骤s4,并行发送不同所述事务缓冲队列中的所述事务请求信息对象至服务器端进行逻辑操作。

上述方案的流程图如图1所示。

另外,通过随机生成各种事务并进行事务的包装,然后进行队列的等待,最后经过服务器端数据库的逻辑操作处理,完成事务的处理,还有效模拟整个证券交易各个过程。

那么这方法应用于tpc-e(大型企业信息服务测试基准程序)基准的规范,可以发挥更好的效果,从而,本实施例中,做进一步细化的设计,其中包括:

在步骤s1之前进行步骤:

s0,创建用于执行步骤s1、s2的事务模拟器线程;

所述事务模拟器线程包括并行处理的客户事务模拟器线程、市场事务模拟器线程和数据维护事务模拟器线程;

所述事务信息结构体中的信息包括事务类型id和事务执行的参数信息,这里针对每个事务形成的事务信息结构体,在该单独的事务信息结构体中的信息就可以标注具体的事务类型id和事务执行的参数信息,以起到更好的模拟效果,也便于数据的管理;

在步骤s4中,通过创建多个单独发送事务至服务器端的事务发送线程以并行发送不同所述事务缓冲队列中的所述事务请求信息对象,这个设计可以更好地模拟现实中交易中多个事务同时在处理的场景,也即,用来模拟事务处理请求任务的分配机制,这里每一个线程都代表一个事务处理后台程序,通过多线程并行化处理,逼真的模拟证券交易过程中的事务处理场景,当然,最终处理是依靠所测试的目标服务器端的数据库系统,更好地对数据库系统进行评估;

所述事务缓冲队列包括客户事务对象队列、市场事务对象队列、数据维护事务对象队列;

所述市场事务模拟器线程的运行触发条件包括步骤:

s101,通过监听线程监听服务器端客户事务的处理结果;

s102,通过交易请求消息队列缓存s101中的处理结果;

s103,根据s102中的处理结果判断是否运行所述市场事务模拟器线程。

经过这些新的细节进一步设计,如图2所示,形成了本实施例方法的具体的进一步优化的流程图。

那么,这样更加细化的测试是基于tpc-e基准的规范,事务生成是基准测试系统重要的部分,直接影响基准测试系统的测试结果,而在tpc-e规范描述中,当客户数量比较庞大时,会有成千上百的客户同时进行访问,即会出现至少成百上千的事务执行请求,因此本发明将提出关于事务生成的测试方法,在本实施例中,可采用事务模拟驱动器线程、事务发送线程和事务接受线程等多线程技术,循环处理多用用户并发访问和信息反馈机制,来模拟证券交易中多窗口事务处理;同时采用事务缓冲队列算法,处理事务模拟驱动器产生的事务信息结构体,来模拟证券交易中客户排队交易场景,从而更加真实的模拟tpc-e规范中的事务生成机制

在本实施例中,是新设计的面向sqlite数据库的tpc-e基准测试方法,事务生成机制是通过客户端(ce)模拟驱动器线程、市场(mee)模拟器驱动器线程和数据维护(dm)驱动器线程所产生的随机事务信息结构体对象,并保存到对应的事务缓冲队列,然后事务发送线程将事务从对应缓冲队列中获取该事务信息结构对象,发送到服务器端,驱动事务的底层数据库逻辑操作。

其中,是需要通过创建客户事务模拟器(ce)线程、市场事务模拟器(mee)线程和数据维护事务模拟器(dm)线程三种线程的并随机生成tpc-e规范中的12种事务中的任意一种事务的信息结构体对象,其中,

ce线程负责8种事务,包括broker-volume:经纪人交易统计事务,包含1个事务帧;

customer-position:客户价值统计事务,包含3个事务帧;

market-watch:市场观察事务,包含1个事务帧;

security-detail:证券信息事务,包含1个事务帧;

trade-lookup:交易查询事务,包含4个事务帧;

trade-order:交易执行事务,包含6个事务帧;

trade-status:交易状态事务,包含1个事务帧;

trade-update:交易修正事务,包含3个事务帧;

mee线程负责2种事务,包括market-feed:市场跟踪事务,包含1个事务帧,该事务由tradeorder事务引起;

trade-result:交易结果更新事务,包含6个事务帧,该事务由tradeorder事务引起;

dm线程负责2种事务,包括data-maintenance:数据维护事务,包含1个事务帧,每60秒执行一次;

trade-cleanup:交易清理事务,包含1个事务帧。

依此用来模拟tpc-e事务的发起动作,mee和ce运行机制是一样的,本申请中以ce线程为例,ce事务模拟器线程的实现过程如图3所示,而mee线程的运行设计成根据ce线程产生trade_order事务的操作处理结果决定是否执行,当然,所有事务的执行需要满足tpc-e标准的要求。

从图3中可以得到:

第一步:判断事务是否为经纪人交易统计事务,如果是就调用cesutinterface类中的broker_volume()函数并进行封装,然后结束,如果不是就进入第二步;

第二步:判断事务是否为客户价值统计事务,如果是就调用cesutinterface类中的customer_position()函数并进行封装,然后结束,如果不是就进入第三步;

第三步:判断事务是否为市场观察事务,如果是就调用cesutinterface类中的market_watch()函数并进行封装,然后结束,如果不是就进入第四步;

第四步:判断事务是否为证券信息事务,如果是就调用cesutinterface类中的secutiry_detail()函数并进行封装,然后结束,如果不是就进入第五步;

第五步:判断事务是否为交易查询事务,如果是就调用cesutinterface类中的trade_lookup()函数并进行封装,然后结束,如果不是就进入第六步;

第六步:判断事务是否为交易执行事务,如果是就调用cesutinterface类中的trade_order()函数并进行封装,然后结束,如果不是就进入第七步;

第七步:判断事务是否为交易状态事务,如果是就调用cesutinterface类中的trade_status()函数并进行封装,然后结束,如果不是就进入第八步;

第八步:判断事务是否为交易修正事务,如果是就调用cesutinterface类中的trade_update()函数并进行封装,然后结束,如果不是就进入第九步;

第九步:判定事务类型不正确,然后结束。

而对于事务缓冲队列,采用的则是先进先出的fifo队列,对模拟的效果更有帮助。

事务发送线程数量的选择,根据事务类型的不同,设置的数量可以进行调整,比如ce事务和mee事务的线程数量可以均比dm事务线程的数量多等。根据不同是交易场景进行模拟选择。

综上,本发明提出事务生成机制,在该事务生成机制中,采用事务模拟驱动器线程、事务发送线程和事务接受线程等多线程技术,循环处理多用用户并发访问和信息反馈机制,来模拟证券交易中多窗口事务处理;同时采用事务缓冲队列算法,处理事务模拟驱动器产生的事务信息结构体,来模拟证券交易中客户排队交易场景,从而更加真实的模拟tpc-e规范中的事务生成机制。。

实施例2,系统图如图4所示,一种模拟证券交易的基准测试系统,包括事务信息结构体生产单元、封装单元、缓存单元和并行发送单元,其中,

所述事务信息结构体生产单元用于随机生成任一一种事务的事务信息结构体;

所述封装单元用于将所述事务信息结构体封装成事务请求信息对象;

所述缓存单元用于将所述事务请求信息对象放入到事务缓冲队列中;

所述并行发送单元用于并行发送不同所述事务缓冲队列中的所述事务请求信息对象至服务器端进行逻辑操作。

该系统适用于实施例1的方法,能更好地进行证券交易模拟试验。

对上述系统进一步的设计:

系统还包括监听单元,用于监听所述服务器端的逻辑操作处理结果;

所述并行发送单元中包括多个发送子单元,多个所述发送子单元同时发送不同的事务。

本发明通过产生随机事务信息结构体对象,并保存到对应的事务缓冲队列,然后事务发送线程将事务从对应缓冲队列中获取该事务信息结构体对象,发送到服务器端,驱动事务的底层数据库逻辑操作,可更有效更真实地来模拟证券交易中多窗口事务处理、证券交易中客户排队交易场景等,以获得更优化的测试效果,并最终评判数据库的优劣。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1