Page 237 - 《软件学报》2025年第7期
P. 237
3158 软件学报 2025 年第 36 卷第 7 期
(2) 自私挖矿: 攻击者有策略地广播自己的区块, 以获取额外收益. 例如节点在成功获得区块后并不立即广播,
而是在发现网络中产生新区块再广播, 人为地造成分叉竞赛.
(3) 分叉攻击: 攻击者试图在区块链网络中引入分叉来篡改账本内容, 比如重复花费相同的数字货币.
(4) 提案延迟: 攻击者可以故意拖延共识的进程, 比如恶意延迟发送提案、延迟发送投票消息或发起错误的
Viewchange 投票等.
2.2 数据库测试基准
测试基准被广泛应用于软硬件产品的比较和方法评估, 文献 [75] 中将测试基准定义为“根据特定特征 (如性
能、可靠性或安全性) 对竞争系统或组件进行竞争性评估和比较的标准工具”. 理想的测试基准具有 5 个特性: 相
关性、可重复性、公平性、可验证性、经济性 [76] . 测试基准必须以实验的可重复性为目标, 即详细描述各种部署
条件和设置的能力, 以便其他人详细描述、扩展和重现它们.
数据库测试基准是指一套用于评测、比较在相同配置下不同数据库系统性能的规范, 使用基准所生成的性能
指标值能够客观、全面地评测各个数据库系统的性能差距 [77] . 根据应用场景的不同, 数据库的测试基准大致可分
为在线事务处理 (OLTP) 和在线分析处理 (OLAP). 针对 OLTP 应用的基准包括威斯康星基准 (Wisconsin
benchmark) [78,79] 、AS3AP [80] 、TPC-C [34] 、TPC-E [36] 和 OLTP-Bench [81] 等. 针对 OLAP 应用的基包括 SetQuery [82] 、
TPC-H [37] 、TPC-DS [83] 和 SSB [84] 等. 近年来随着 HTAP 数据库的发展, 出现了同时支持 OLTP+OLAP 的测试基准,
例如 CH-Benchmark [85] 和 HATrick [86] 等. 下面我们分别进行简要介绍.
2.2.1 面向 OLTP 的数据库测试基准
威斯康星基准是由威斯康星大学的 Bitton 等人 [78] 共同完成的测试基准. 该基准的数据模型包含 3 个表:
ONEKTUP、TENKTUP1 和 TENKTUP2. 每张表都包含 13 个整数属性和 3 个字符串属性. 数据集设置如下:
ONEKTUP 包含 1 000 条记录, TENKTUP1 和 TENKTUP2 各包含 10 000 条记录, 每条记录总长 208 字节. 数据均
匀分布. 负载包含了 32 条 SQL 语句, 涵盖了 5 种基本操作, 包括: (1) 不同选择率下的选择操作; (2) 不同重复率下
的投影操作; (3) 连接操作; (4) 简单聚集操作与聚集函数; (5) 插入、删除、更新等操作. 测试指标为执行 32 条
SQL 的总时长.
TPC-C 应用最为广泛, 其应用模型是一个大型商品批发销售公司的销售过程. 数据模型包含了仓库、区域、
顾客、订单等 9 个表. TPC-C 定义了数据的分布和倾斜度, 并提供了一个数据集生成工具, 以确保数据的一致性.
TPC-C 的负载包括 5 种类型的事务操作, 即订单管理、库存管理、支付等, 并明确了每种事务的比例和执行顺序.
例如, 订单管理和支付事务分别占据了 45% 和 43% 的负载. TPC-C 的主要性能指标是每分钟的新订单事务数
(transactions per minute, TpmC) 和性价比 (Price/Performance, 通常以 Price/TpmC 表示), 以评估系统的性能和成本
效益. TPC-C 的执行规则明确了测试流程, 包括了数据导入、负载生成和执行、性能监控、环境清理等. 另外要求
测试至少持续 2 h, 以保证测试的公平性和准确性.
TPC-E 是 TPC 组织在 2007 年 2 月推出的以证券交易应用为核心的基准. 它的数据模型比 TPC-C 复杂, 包含
了 33 个表, 188 个字段, 表的类型分为 4 类: 与客户 (customer) 相关的 9 张表, 与经纪公司 (broker) 相关的 9 个表,
与市场 (market) 相关的 11 张表, 与维度 (dimension) 相关的 4 张表. 负载包括了交易查询、交易执行、交易结果
更新、市场观察、证券信息等共 12 种事务. 测试指标包括性能指标 (TpsE, 每秒可以处理多少交易) 和性价比
(美元/TpsE). 执行规则要求每秒执行一次数据维护事务, 并在每次测试开始时执行一次交易清理事务.
2.2.2 面向 OLAP 的数据库测试基准
TPC-H 是一个基于商务采购应用的测试基准, 用于评估数据库管理系统在决策支持系统 (DSS) 场景下的性
能. 其数据模型包含 Part、Region、Nation、Customer 等 8 张表, 代表参与商业领域中采购和订购的实体. 数据集
由标度因子 (scale factor) 决定, 总的数据规模从 1 GB 到 100 TB 不等. 负载包括了 22 个复杂查询语句 (QUERY)
和 2 个更新数据语句 (RF1, RF2). 查询语句涵盖了各种复杂的决策支持查询, 例如销售分析、库存管理、供应链
分析等. 指标为每小时内执行的查询数 (QphH@size). 其中, QphH 表示每小时查询数量, Size 表示数据集的规模.

