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 表示数据集的规模.
   232   233   234   235   236   237   238   239   240   241   242