CN114676198A - 一种面向多模数据库的基准评测***及其构建方法 - Google Patents
一种面向多模数据库的基准评测***及其构建方法 Download PDFInfo
- Publication number
- CN114676198A CN114676198A CN202210365988.6A CN202210365988A CN114676198A CN 114676198 A CN114676198 A CN 114676198A CN 202210365988 A CN202210365988 A CN 202210365988A CN 114676198 A CN114676198 A CN 114676198A
- Authority
- CN
- China
- Prior art keywords
- evaluation
- database
- module
- workload
- data
- 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
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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种面向多模数据库的基准评测***及其构建方法,***包括:分布式数据库模块、资源监控模块、消息传输模块、工作负载执行模块和评测记录管理模块。方法包括如下步骤:(1)安装部署相关数据库集群;(2)安装部署Prometheus和Grafana资源监控软件;(3)基于Zookeeper和Kafka实现异步消息传输队列;(4)基于Java语言实现负载执行程序,用于连接异步消息传输队列和分布式数据库集群;(5)基于Java语言和前端框架vue实现评测记录管理,为评测任务创建及评测结果查看提供可视化页面。
Description
技术领域
本发明涉及一种面向多模数据库的基准评测***及其构建方法,软件性能评测与度量分析技术领域。
背景技术
分析和处理多模数据的需求日益增多,多模数据可以分为结构化数据、半结构化数据和非结构化数据。结构化数据又包含关系型数据、键值对和图形数据等。当需要管理多模数据时,选用哪一种多模数据库是一个不可回避的关键问题。现有的对多模数据库的研究工作主要聚焦于比较多模数据库在执行时间方面的差异,而没有关注服务器的资源状况。如果服务器内存溢出,数据库也将面临宕机。在分布式的环境下,***失效被认为是常态事件,而不是意外事件,因此对数据库资源消耗的评测至关重要。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种面向多模数据库的基准评测***及其构建方法,为多模数据的处理提供可量化比较的方案。
技术方案:一种面向多模数据库的基准评测***,包括:分布式数据库模块、资源监控模块、消息传输模块、工作负载执行模块和评测记录管理模块。所述消息传输模块为工作负载执行模块提供源数据;所述工作负载执行模块将从消息传输模块读取到的数据存储到分布式数据库模块;所述资源监控模块在工作负载执行期间采集资源数据;所述评测记录管理模块负责管理工作负载执行模块的执行结果。
所述分布式数据库模块包括2种多模数据库:ArangoDB、OrientDB,分布式数据库模块是评测***的基础也是评测***的主体。
所述资源监控模块由分布式监控***Prometheus和Grafana组成,用于对数据库占用的资源进行评测。资源监控模块可以对服务器的CPU、内存、带宽以及吞吐量等资源使用情况进行监测。本***主要对CPU和内存使用情况进行监测。
所述消息传输模块由Zookeeper和Kafka实现异步消息传输队列。在该异步消息传输队列中Zookeeper起到的是注册中心的作用,使得工作负载执行模块可以从Kafka中异步获取数据。Kafka则是作为一个流数据处理平台。在评测开始前,消息传输队列生产者通过Java程序将数据集中的数据存储到Kafka中,为消费者提供数据。由Zookeeper和Kafka实现的消息传输队列不仅实现了生产者与消费者解耦,而且能够适配负载处理速度做到异步通信。
所述工作负载执行模块模拟真实的大数据应用场景设计了大量的负载。大致可以分为三类负载:单表增删改查工作负载、多线程工作负载、多表联合查询工作负载。单表增删改查工作负载每次仅对一个表进行增删改查操作,从而模拟数据迁移和数据实例化的操作;多线程工作负载通过创建多个线程来执行任务,从而模拟大数据应用场景下数据库同时处理多个请求的高并发操作;多表联合查询工作负载通过表与表之间的联合查询,从而模拟大数据场景中具有复杂业务逻辑的操作。
所述评测记录管理模块通过构建易交互的Web页面降低数据库评测门槛,增强数据库评测交互性。评测记录管理模块共分为两个部分:任务提交部分和评测记录查看部分。在任务提交部分用户可以通过Web页面选择相关参数并提交评测任务。在评测记录查看部分用户可以查看所有评测任务的状态及参数。
一种面向多模数据库的基准评测***的构建方法,包括如下步骤:
(1)为提升数据库的可靠性和可用性,同时也为了模拟真实的大数据库应用场景。首先需要为涉及评测的数据库安装部署主从集群。
(2)为了精确地统计服务器的资源占用情况,需要安装分布式资源监控软件Prometheus和Grafana。Prometheus本质上是一个时间序列数据库,通过定时采样服务器的资源情况实现资源监控的目的。Grafana则是一个图形界面化工具,能够将Prometheus采集到的数据呈现到界面上。该资源监控软件提供包含CPU、内存、带宽、吞吐量在内的各种服务器资源监控功能,本***主要监控CPU和内存两类资源。
(3)为了实现数据输入输出解耦并实现异步通信,需要安装部署Zookeeper和Kafka组成的异步消息传输队列。在该消息队列中,Zookeeper作为注册中心,用于实现消息的负载均衡,Kafka作为流数据处理平台。使用消息队列可以解决数据输入输出相互影响的问题,避免了一个环节出错,整个流程都要重新开始,实现了输入输出的解耦。使用消息队列解决数据输入输出的问题。如果不使用消息队列,让程序直接读文件,则整个***耦合在一起,一个环节出现问题评测就要从头再来。使用消息队列之后,输入和输出两个环节是分开的,即使出现问题,也不用全部重做。另外,这样也有利于定位错误位置。其次,消息队列可以缓存数据,生产者提前将数据存储到Kafka中,消费者需要的时候再去取,实现了异步通信的功能。
(4)工作负载执行模块是用Java语言实现的,通过编码的方式将负载转换为可运行的程序。工作负载执行模块需要部署在JDK1.8的环境中。该模块包含了大量的工作负载,主要可以分为三类:单表增删改查工作负载、多线程工作负载、多表联合查询工作负载。
(5)评测记录管理模块是用Java语言和vue前端框架实现的。该模块提供评测任务提交功能和评测记录查看功能。需要部署在JDK1.8和nodeJS的环境中。
所述步骤(3)中,用Zookeeper和Kafka实现异步消息传输队列,该消息传输队列的生产者在评测开始前通过Java程序将多模数据集中的数据写入到Kafka中,评测开始后,工作负载执行模块作为异步消息传输队列的消费者从Kafka中读取数据,具体步骤为:
输入:多模数据集;
输出:Kafka流数据;
首先,输入阶段判断多模数据集文件下一行是否存在,如果存在就读取下一行并发送到Kafka中,如果下一行不存在即读取到文件末尾,则输入阶段结束。其次,在输出阶段,消费者连接Kafka并通过对应的topic消费输入阶段发送到Kafka中的数据,直到消费者主动关闭连接输出结束。
所述步骤(4)中,用Java语言实现的工作负载执行模块,具体算法步骤如下:
输入:负载编号,需要评测的数据库编号;
输出:执行时间、占用的CPU和内存;
在消息队列获取到数据后,工作负载执行模块根据用户选择的负载编号和需要评测的数据库编号开始运行程序。首先***会创建一条标记为待评测的记录,该记录创建时仅包含负载编号和数据库标号。***按照记录提交的先后顺序执行工作负载,并将当前执行的记录标记为评测中。程序运行期间会保存每条记录的运行时间,同时调用由Prometheus和Grafana组成的资源监控模块获取CPU和内存占用情况。执行工作负载程序运行结束后,工作负载执行模块会将执行时间和资源占用情况保存到数据库中,并将当前记录标记为已评测。
所述步骤(5)中,评测记录管理模块为用户提供了易交互的Web界面,一共分为两个部分:
(a)评测任务提交部分,该部分将负载编号、数据库编号等参数以选项的形式呈现出来,供用户选择。同时对于每一个任务都有详细的描述信息。用户通过选择相应的参数并点击执行按钮,工作负载执行模块会创建一条待评测任务并保存在数据库中;
(b)评测记录查看部分,该部分展示了所有的评测记录。用户可以根据评测状态、负载类型、数据库编号来筛选想要查看的评测记录。
为了能够模拟真实的大数据应用场景,本***设计了大量的负载类型,可以分为以下三类:单表增删改查工作负载、多线程工作负载和多表联合查询工作负载。单表增删改查工作负载用于模拟数据迁移、数据持久化的场景;多线程工作负载用于模拟高并发的应用场景;多表联合查询工作负载用于模拟具有复杂业务逻辑的场景。同时为了能够更客观地评测多模数据库处理多模数据的性能,评测的具体步骤为:评测开始前,为所有数据库搭建分布式主从集群,提高***的可靠性和可用性。安装部署分布式资源监控***Prometheus和Grafana监测服务器性能。通过Java实现Kafka生产者将数据集存储在Kafka中,不仅实现了生产者和消费者解耦,而且能够适配负载处理速度做到异步通信。评测开始时,用户通过***提供的Web评测记录管理模块提交评测任务,工作负载执行模块接收到任务后创建新的评测任务并在评测结束后将评测结果更新到数据库中。评测结束后,用户可以通过***提供的Web页面查看评测结果。
本发明的有益效果为:根据多模数据的特性,提出了一种面向多模数据库的基准评测***及其构建方法,根据***提供的负载类型,用户可以模拟真实的大数据应用场景,并从执行时间和资源消耗两方面精准、公平、快速地评测多模数据库。从而为多模数据的管理提供可量化比较的方案。
附图说明
图1为本发明实施例的体系结构示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,一种面向多模数据库的基准评测***,包括:分布式数据库模块、资源监控模块、消息传输模块、工作负载执行模块和评测记录管理模块。
分布式数据库模块一共涉及2种多模数据库:ArangoDB和OrientDB。每种数据库都是以主从分布式集群的形式安装和部署在阿里云服务器上。分布式数据库模块是评测***的基础也是评测***的主体。
资源监控模块由分布式资源监控软件Prometheus和Grafana组成。用于监测评测***执行负载期间的资源占用情况。为了对数据库的性能进行全面的评测,***除了评测各数据库执行负载所需的时间,还评测各数据库执行负载期间所占用的CPU和内存情况。
消息传输模块由Zookeeper和Kafka组成。该消息传输队列不仅实现了***解耦,而且能够适配负载处理速度做到异步通信。生产者在评测开始前将数据集中的数据生成并存储到Kafka中。消费者在评测开始后,根据topic消费队列中的数据。
工作负载执行模块是由Java语言实现的,依赖于JDK1.8版本。该模块模拟真实的大数据应用场景设计了大量的负载。可以分为三类:单表增删改查工作负载、多线程工作负载和多表联合查询工作负载。单表增删改查工作负载用于模拟数据迁移和持久化场景。多线程工作负载用于模拟多线程、高并发的大数据应用场景。多表联合查询工作负载用于模拟真实的复杂业务逻辑应用场景。
评测记录管理模块是用Java语言和vue前端框架实现的。依赖于JDK1.8和nodeJS的基础环境。该模块提供评测任务提交功能和评测记录查看功能。在评测任务提交页面,用户可以选择工作负载以及需要评测的数据库并通过点击执行按钮将评测任务提交给后台。在评测记录查看页面,所有评测记录都将被展示,用户可以根据评测状态、负载类型、数据库编号筛选想要查看的评测记录。
在评测开始之前,需要对各个模块做一系列的准备工作。在分布式数据库模块,需要测试各个数据库的连通性,保证数据库的可用性。同时将数据导入数据库中。在资源监控模块,需要检查Prometheus和Grafana是否正常工作,以及资源监控页面是否能准确监测到服务器的资源情况。在消息传输模块,需要检查Zookeeper和Kafka是否能正常运行,并测试生产者能否将数据存储到消息队列中以及消费者能够根据不同的topic从消息队列中获取数据。在工作负载执行模块,需要测试每一个负载是否能够正常运行以及负载运行后能否获取到执行时间和资源占用。在评测记录管理模块,需要测试评测任务是否能正确提交以及评测列表中的任务状态及信息是否正确。
本发明还公开了一向多模数据库的基准评测***的构建方法,包括如下步骤:
步骤1:在云服务器上下载安装需要评测的数据库,并部署为主从集群。由于不同的多模数据库安装部署和集群搭建的方式不同,以ArangoDB为例,说明多模数据库集群搭建过程如下:根据ArangoDB官网提示,安装对应版本的ArangoDB。
(1)添加存储库密钥;
(2)使用apt-get命令安装ArangoDB。
(3)搭建数据库集群:
首先在作为主节点的服务器上启动ArangoDB。默认情况下,ArangoDB以集群cluster 方式启动。
接着启动剩下的两个从节点,三台虚拟机上的ArangoDB实例全部启动后,会在终端提示可以通过浏览器访问该多模数据库,则ArangoDB的集群搭建成功。
步骤2:安装部署资源监控软件Prometheus和Grafana。Prometheus相当于是一个时间序列数据库,用于存储服务器资源使用情况。Grafana用于将Prometheus中的数据以图表的形式展示在页面中。具体安装过程为:
(1)Prometheus和Grafana安装在其中一台从服务器上;
(2)在被监测的服务器上安装Prometheus的exporter;
(3)将安装有exporter的服务器IP配置到Prometheus配置文件中;
(4)在Grafana中将Prometheus添加为源数据;
最后启动Prometheus和Grafana,在Grafana页面中通过编辑公式可以看到CPU、内存、带宽、吞吐量等资源使用情况。本***主要监测CPU和内存的使用情况。其中CPU利用率的公式为:
((sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) / (sum(increase(node_cpu_seconds_total[1m])) by(instance))))*100//用当前节点被占用的CPU除以当前节点CPU的总和得到CPU的利用率
内存利用率的公式为:
((node_memory_MemTotal_bytes -node_memory_Buffers_bytes -node_memory_Cached_bytes -node_memory_MemFree_bytes -node_memory_Slab_bytes) /node_memory_MemTotal_bytes)*100//用当前节点被占用的内存除以当前节点内存的总和得到内存的利用率
步骤3:安装部署Zookeeper和Kafka。在Zookeeper和Kafka组成的消息队列中,Zookeeper相当于一个注册中心,Kafka相当于一个流数据处理平台。具体安装过程如下:
(1)在三台云服务器中下载并解压Zookeeper和Kafka;
(2)在Zookeeper的配置文件中添加三台服务器的IP和端口信息:
server.1=172.16.150.154:2888:3888
server.2=172.16.150.155:2888:3888
server.3=172.16.150.156:2888:3888
(3)修改Kafka配置文件server.properties中的Zookeeper日志目录和端口信息:
log.dirs=/opt/kafka/data/kafka-logs
zookeeper.connect=localhost:2181
(4)启动Zookeeper和Kafka后,在控制台输入jps命令验证异步消息队列是否成功安装;
用Zookeeper和Kafka实现异步消息传输队列,该消息传输队列的生产者在评测开始前通过Java程序将多模数据集(本实施例的多模数据集为UniBench数据集)中的数据写入到Kafka中,评测开始后,工作负载执行模块作为异步消息传输队列的消费者从Kafka中读取数据,具体步骤为:
输入:UniBench数据集;
输出:Kafka流数据;
首先,输入阶段判断UniBench数据集文件下一行是否存在,如果存在就读取下一行并发送到Kafka中,如果下一行不存在即读取到文件末尾,则输入阶段结束。其次,在输出阶段,消费者连接Kafka并通过对应的topic消费输入阶段发送到Kafka中的数据,直到消费者主动关闭连接输出结束。
步骤4:安装部署工作负载执行模块。工作负载执行模块的实现是通过编写Java代码将工作负载转换为可运行的程序。具体安装部署过程如下:
(1)安装Java语言的依赖环境JDK1.8;
(2)将Java程序打包并上传到服务器;
(3)启动Java程序包;
用Java语言实现的工作负载执行模块,具体算法步骤如下:
输入:负载编号,需要评测的数据库编号;
输出:执行时间、占用的CPU和内存;
在消息队列获取到数据后,工作负载执行模块根据用户选择的负载编号和需要评测的数据库编号开始运行程序。首先***会创建一条标记为待评测的记录,该记录创建时仅包含负载编号和数据库标号。***按照记录提交的先后顺序执行工作负载,并将当前执行的记录标记为评测中。程序运行期间会保存每条记录的运行时间,同时调用由Prometheus和Grafana组成的资源监控模块获取CPU和内存占用情况。执行工作负载程序运行结束后,工作负载执行模块会将执行时间和资源占用情况保存到数据库中,并将当前记录标记为已评测。
步骤5:安装部署评测记录管理模块。评测记录管理模块是用Java语言和vue前端框架实现的。集体安装部署过程如下:
(1)安装Java语言的依赖环境JDK1.8;
(2)安装nodeJS最新版本;
(3)将工作负载执行模块和评测记录管理模块分别打包并上传到服务器;
(4)启动前后端程序。
评测记录管理模块为用户提供了易交互的Web界面,一共分为两个部分:
(a)评测任务提交部分,该部分将负载编号、数据库编号等参数以选项的形式呈现出来,供用户选择。同时对于每一个任务都有详细的描述信息。用户通过选择相应的参数并点击执行按钮,工作负载执行模块会创建一条待评测任务并保存在数据库中;
(b)评测记录查看部分,该部分展示了所有的评测记录。用户可以根据评测状态、负载类型、数据库编号来筛选想要查看的评测记录。
Claims (10)
1.一种面向多模数据库的基准评测***,其特征在于,包括:分布式数据库模块、资源监控模块、消息传输模块、工作负载执行模块和评测记录管理模块;
所述消息传输模块为工作负载执行模块提供源数据;所述工作负载执行模块将从消息传输模块读取到的数据存储到分布式数据库模块;所述资源监控模块在工作负载执行期间采集资源数据;所述评测记录管理模块负责管理工作负载执行模块的执行结果。
2.根据权利要求1所述的面向多模数据库的基准评测***,其特征在于,所述分布式数据库模块包括2种多模数据库:ArangoDB和OrientDB。
3.根据权利要求1所述的面向多模数据库的基准评测***,其特征在于,所述资源监控模块由分布式监控***Prometheus和Grafana组成,用于对数据库占用的资源进行评测,包括CPU和内存使用情况的监测。
4.根据权利要求1所述的面向多模数据库的基准评测***,其特征在于,所述消息传输模块由Zookeeper和Kafka实现异步消息传输队列;在该异步消息传输队列中Zookeeper是注册中心,使得工作负载执行模块能从Kafka中异步获取数据;所述Kafka是流数据处理平台;在评测开始前,消息传输队列生产者通过Java程序将数据集中的数据存储到Kafka中,为消费者提供数据。
5.根据权利要求1所述的面向多模数据库的基准评测***,其特征在于,所述工作负载执行模块模拟负载,包括三类负载:单表增删改查工作负载、多线程工作负载、多表联合查询工作负载;单表增删改查工作负载每次仅对一个表进行增删改查操作,从而模拟数据迁移和数据实例化的操作;多线程工作负载通过创建多个线程来执行任务,从而模拟大数据应用场景下数据库同时处理多个请求的高并发操作;多表联合查询工作负载通过表与表之间的联合查询,从而模拟大数据场景中具有复杂业务逻辑的操作。
6.根据权利要求1所述的面向多模数据库的基准评测***,其特征在于,所述评测记录管理模块通过构建易交互的Web页面降低数据库评测门槛,增强数据库评测交互性;
评测记录管理模块共分为两个部分:任务提交部分和评测记录查看部分;
在任务提交部分用户可以通过Web页面选择相关参数并提交评测任务;
在评测记录查看部分用户可以查看所有评测任务的状态及参数。
7.一种面向多模数据库的基准评测***的构建方法,其特征在于,包括如下步骤:
(1)为涉及评测的数据库安装部署主从集群;
(2)安装分布式资源监控软件Prometheus和Grafana,用于统计服务器的资源占用情况;Prometheus是一个时间序列数据库,通过定时采样服务器的资源情况实现资源监控的目的,包括监控CPU和内存两类资源;Grafana则是一个图形界面化工具,能够将Prometheus采集到的数据呈现到界面上;
(3)安装部署Zookeeper和Kafka组成的异步消息传输队列;在该消息队列中,Zookeeper作为注册中心,用于实现消息的负载均衡,Kafka作为流数据处理平台;
(4)通过编码的方式将负载转换为可运行的程序,得到工作负载执行模块,该模块包含,三类工作负载:单表增删改查工作负载、多线程工作负载、多表联合查询工作负载;
(5)提供评测任务提交功能和评测记录查看功能。
8.根据权利要求7所述的面向多模数据库的基准评测***的构建方法,其特征在于,所述步骤(3)中,用Zookeeper和Kafka实现异步消息传输队列,该消息传输队列的生产者在评测开始前通过Java程序将多模数据集中的数据写入到Kafka中,评测开始后,工作负载执行模块作为异步消息传输队列的消费者从Kafka中读取数据,具体步骤为:
输入:多模数据集;
输出:Kafka流数据;
首先,输入阶段判断多模数据集文件下一行是否存在,如果存在就读取下一行并发送到Kafka中,如果下一行不存在即读取到文件末尾,则输入阶段结束;其次,在输出阶段,消费者连接Kafka并通过对应的topic消费输入阶段发送到Kafka中的数据,直到消费者主动关闭连接输出结束。
9.根据权利要求7所述的面向多模数据库的基准评测***的构建方法,其特征在于,所述步骤(4)中,用Java语言实现的工作负载执行模块,具体算法步骤如下:
输入:负载编号,需要评测的数据库编号;
输出:执行时间、占用的CPU和内存;
在消息队列获取到数据后,工作负载执行模块根据用户选择的负载编号和需要评测的数据库编号开始运行程序;首先***会创建一条标记为待评测的记录,该记录创建时仅包含负载编号和数据库标号;***按照记录提交的先后顺序执行工作负载,并将当前执行的记录标记为评测中;程序运行期间会保存每条记录的运行时间,同时调用由Prometheus和Grafana组成的资源监控模块获取CPU和内存占用情况;执行工作负载的程序运行结束后,工作负载执行模块会将执行时间和资源占用情况保存到数据库中,并将当前记录标记为已评测。
10.根据权利要求7所述的面向多模数据库的基准评测***的构建方法,其特征在于,所述步骤(5)中,评测记录管理模块为用户提供了易交互的Web界面,一共分为两个部分:
(a)评测任务提交部分,该部分将负载编号、数据库编号参数以选项的形式呈现出来,供用户选择;同时对于每一个任务都有描述信息;用户通过选择相应的参数,工作负载执行模块会创建一条待评测任务并保存在数据库中;
(b)评测记录查看部分,该部分展示了所有的评测记录;用户可以根据评测状态、负载类型、数据库编号来筛选想要查看的评测记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365988.6A CN114676198A (zh) | 2022-04-08 | 2022-04-08 | 一种面向多模数据库的基准评测***及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365988.6A CN114676198A (zh) | 2022-04-08 | 2022-04-08 | 一种面向多模数据库的基准评测***及其构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676198A true CN114676198A (zh) | 2022-06-28 |
Family
ID=82078928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210365988.6A Pending CN114676198A (zh) | 2022-04-08 | 2022-04-08 | 一种面向多模数据库的基准评测***及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676198A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794660A (zh) * | 2023-02-06 | 2023-03-14 | 青软创新科技集团股份有限公司 | 一种基于分布式程序评测的控制方法、装置及*** |
-
2022
- 2022-04-08 CN CN202210365988.6A patent/CN114676198A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794660A (zh) * | 2023-02-06 | 2023-03-14 | 青软创新科技集团股份有限公司 | 一种基于分布式程序评测的控制方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7548911B2 (en) | Diagnosing problems in distributed systems | |
US8627317B2 (en) | Automatic identification of bottlenecks using rule-based expert knowledge | |
US20210311858A1 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
US8910166B2 (en) | Automatic transcoding and semantic adaptation between scripting and workflow systems | |
US7627671B1 (en) | Monitoring and performance management of component-based applications | |
US8464224B2 (en) | Integrated performance and load testing tool for application servers | |
US8832662B2 (en) | Rules engine for architectural governance | |
US7747742B2 (en) | Online predicate checking for distributed systems | |
US20090199047A1 (en) | Executing software performance test jobs in a clustered system | |
US20100106678A1 (en) | Monitoring agent programs in a distributed computing platform | |
US20090199160A1 (en) | Centralized system for analyzing software performance metrics | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
US8904357B2 (en) | Dashboard for architectural governance | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
EP3362900B1 (en) | Telemetry system extension | |
US10528456B2 (en) | Determining idle testing periods | |
CN116719622A (zh) | 业务流程的编排方法及业务流程编排*** | |
CN114676198A (zh) | 一种面向多模数据库的基准评测***及其构建方法 | |
US11537576B2 (en) | Assisted problem identification in a computing system | |
CN112559525A (zh) | 数据检查***、方法、装置和服务器 | |
US20180219752A1 (en) | Graph search in structured query language style query | |
US20020143784A1 (en) | Method and system for application behavior analysis | |
CN113535560B (zh) | 测试执行方法、装置、存储介质和计算设备 | |
Rover et al. | Software tools for complex distributed systems: Toward integrated tool environments |
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 |