云起云落:从TPC-C到TPC-E
2007年3月,总部位于美国的事务处理性能委员会(Transaction Processing Performance Council)宣布批准了名为TPC-E的全新服务器测评标准。一经推出,便受到诸如IBM、Dell等大型服务器厂商的追捧。如今TPC测试模型已经越来越被大家所熟悉和接受,尤其是TPC-C测试模型,更是在IT圈中“家喻户晓”。那TPC组织又是缘何推出新测试模型TPC-E?同样是针对OLTP数据库模型的测试标准,这个测试到底跟TPC-C是什么样的关系呢?云起云落,推陈出新,TPC-C与TPC-E的内容与关联将在下面的文章中为大家一一阐述。
曾经雄踞OLTP测试历史舞台的TPC-C
OLTP测试模型一直是TPC组织的重点测试标准,TPC-C的前身TPC-A就是TPC组织发布的第一个测试标准。TPC-C发布于1992年7月,至今已有16年的历史。TPC-C测试模拟了一个比较复杂的OLTP应用环境,其操作环境由一系列仓库组成,每个仓库有若干个终端,分别代表销售站点和查询站点,并给出两个基准测试指标——性能指标tpmC和性价比指标$/tpmC。
TPC-C测试的系统所执行的事务处理包括3种“前台”交易和2类“后台”事务处理。3个“前台”交易分别为:送入新订单、查询订单状态和支付款项。2个“后台”事务处理分别为:库存水平查询和产品发送。每个“后台”事务处理的工作量比“前台”交易大得多。例如,库存水平查询需要扫描仓库的整个库存,从中找出已经脱销或即将脱销的货品。每个终端上都需要运行远程终端仿真程序(RTE),用于在性能测试期间内按照规定的混合比例连续向服务器发送5种作业。系统通过连续执行各个终端上RTE发送的5种作业,模拟企业分布式数据库应用系统。每种作业都有一个时间阈值,规定相应类型作业最长的系统响应时间。例如,送入新订单作业的阈值为5秒,即送入新订单的系统响应时间不能超过5秒。系统在保证执行各类作业的时间都不超过阈值的条件下,每分钟所执行的送入新订单作业量即为系统的tpmC基准测试指标。系统的总成本除以tpmC值,即为每个tpmC的价格,称作量度系统的性价比。
TPC-C逼真的模拟了OLTP应用,在发布后逐渐得到广大用户的认可,使用tpmC作为其计算机系统性能评价体系基础的用户数量逐年上升,这大大地鼓舞了软硬件厂商参与TPC-C测试的热情,纷纷斥巨资进行这一测试,随之而来的是测试规模的不断扩大,其中以磁盘数目为最,以目前排名第二的HP测试成绩来说,其中使用了7000多块硬盘,总成本达到了将近1200万美元。
不过,随着信息产业的不断发展,TPC-C的一些问题也慢慢暴露出来。首先,随着B2B、B2C等新型应用逐渐兴起,TPC-C现有的仓库管理系统测试模型已经距离目前的OLTP用户应用模式越来越远,5种作业需求也不足以覆盖用户现有的典型操作;其次,众多的测试设备投入使得TPC-C测试给厂商带来了较大的压力,这并不是TPC组织愿意看到的,因此TPC组织于2007年3月推出了全新的OLTP测试标准——TPC-E,意在用这个测试标准取代TPC-C测试,从而对上述问题起到解决作用。但取代过程不是一蹴而就的,目前状态是TPC-C与TPC-E测试并存。
推陈出新、平易近人的TPC-E测试
TPC-E在测试模型上进行了巨大的革新与改进。TPC-E是以美国纽约证券交易所为模型,该测试模拟了一系列后端处理数据以及证券公司前端客户在股票交易市场的典型行为——账户查询、在线交易和市场调研。该模拟证券公司也与外界的金融市场相联系,根据市场变化执行指令并更新相关的账户和市场信息。它不仅包含了C2B的环境,还包含了B2B的环境,这种商业模型更为人们熟悉也更容易理解,同时更贴近现有用户的应用。
与TPC-C测量事务类型只有四种相比较,TPC-E的事务类型更加丰富,数量达到了十二种,其中包括交易查询事务、交易执行事务、交易结果更新事务等(具体参见下表)。前10种事务按照一定比例混合即成为最终测试事务合集。在这12种事务中数据维护事务、交易清理事务较为特殊,他们不是由客户端发起请求,而是数据库自身维护所要完成的工作,数据维护事务每秒钟执行一次,而交易清理事务每次测试开始时执行一次。每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,单个存储过程称为一个事务帧。TPC-E测试标准要求每项事务中90%的响应时间要在某一个指定时间内完成,这是出于在实际环境中对客户真实应用情况的一个考虑。虽然不同的事务所要求的响应时间约束也不同,但基本上都是要求在3秒钟内完成。