插入工作负载:只写
插入工作负载用大约 100GB 的原始 XML 数据填充数据库:
首先,83 个并发用户插入所有证券。然后,分阶段插入 CustAcc 和订单文档,从而检验插入性能是可伸缩的。在每个阶段使用 100 个并发用户,见表 4。
| 阶段 | 数据库中的 CustAcc 文档数量 | 数据库中的订单文档数量 |
|---|---|---|
| 1 | 100,000 | 500,000 |
| 2.1 | 200,000 | 1,000,000 |
| 2.2 | 300,000 | 1,500,000 |
| 2.3 | 400,000 | 2,000,000 |
| 2.4 | 500,000 | 2,500,000 |
| 2.5 | 600,000 | 3,000,000 |
| 3.1 | 1,000,000 | 5,000,000 |
| 3.2 | 1,500,000 | 7,500,000 |
| 3.3 | 2,000,000 | 10,000,000 |
| 4.1 | 2,500,000 | 12,500,000 |
| 4.2 | 3,000,000 | 15,000,000 |
| 4.3 | 3,500,000 | 17,500,000 |
| 4.4 | 4,000,000 | 20,000,000 |
| 5.1 | 4,500,000 | 22,500,000 |
| 5.2 | 5,000,000 | 25,000,000 |
| 5.3 | 5,500,000 | 27,500,000 |
| 5.4 | 6,000,000 | 30,000,000 |
查询工作负载:只读
在插入负载填充数据库之后,对数据库执行一个只读的工作负载。这个工作负载由 7 个 XML 查询组成,使用 25、50、75、100、125 和 150 个并发用户以不同的并发度执行。测试的时间长度是这 6 个测试各运行一个小时。
7 个查询都具有以下特征:
表 5 显示这 7 个查询的特征差异和它们涉及的表。
| Q | 查询名 | CustAcc | Security | Order | 特征 |
|---|---|---|---|---|---|
| 1 | get_order | - | - | X | 返回完整的订单文档,但是没有 FIXML 根元素。 |
| 2 | get_security | - | X | - | 返回完整的证券文档。 |
| 3 | customer_profile | X | - | - | 提取 7 个客户元素来构造概况文档。 |
| 4 | search_securities | - | X | - | 根据 4 个谓词从一些证券中提取元素。 |
| 5 | account_summary | X | - | - | 构造一个帐号说明。 |
| 6 | get_security_price | - | X | - | 提取一种证券的价格。 |
| 7 | customer_max_order | X | - | X | 联结 CustAcc 和订单,寻找一位客户的最大订单。 |
混合工作负载:读/写
与只读工作负载相似,混合工作负载针对填充的 600 万个 CustAcc 文档和 3000 万个订单执行,并使用 25、50、75、100、125 和 150 个并发用户产生不同的并发度。测试的时间长度是每个测试各运行一个小时。
混合工作负载由以下操作组成:
查询与上面的只读工作负载中的查询完全一样,下面是定义更新/删除/插入事务时考虑的情况:
通过考虑这些目标,产生了表 6 所示的事务组合。
最新相关文章
发表评论