2013-06-22 53 views
2

我使用TPC-C基准的开源java实现(称为TCJ-TPC-C,通过JDBC(去年由MMatejka创建))来比较Oracle和2 OSS DBMS的性能。缺少oss数据库系统性能测试的原因?

TPC-C是在私有领域的标准,我的问题是:

主要有哪些原因,有没有系统地实施性能测试OSS数据库系统?

+0

没有人推动它,就没有资金来推动它,所有的平台都稍有不同,而TPC套件任务非常严格的要求(可替代的解决方案可以击败TPC,但允许的arent他们通融一下)不要误会我的意思,我希望有一个更公平的竞争环境。 – rlb

+0

我不知道如果我理解...... 你的意思是有没有钱,有人谁也意识到这一点? 每个数据库系统都略有不同,对吗?那么,为什么它对于OSS来说非常具体? 你是什么意思替代sol可以击败TPC? (什么替代溶胶?什么规则?) 我在这里是新的,所以我很抱歉我的误解。 –

+1

@StevePatris对于OSS来说,花费大量时间获取基准测试工作可能没有什么可感知的价值,可以更好地用于修复错误或编写新功能。对于商业供应商来说,这可能是一个额外的“销售”论点。 –

回答

0

首先,我不确定你的问题是否适合SO,因为它接近询问意见,所以我的答案是更多的意见,而不是事实。这些年来我阅读过的大部分内容,但会努力找到参考/证明了。我不是一名TPC会员,但对TPC-H套件中试图获得经过测试的专卖店数据库进行了大量调查。

基准

这些都是在测试单一功能,并比较它们巨大的,不幸的是,这是无处像听起来那么容易。公司将花费大量精力来获得更好的结果,有时(所以我听说过)在源代码中实现特定的功能来进行基准测试。关于整体可靠的基准测试结果有很多讨论。此外,基准可能是某种产品的完美契合,但不是另一种。

你的例子使用Jdbc,但不是每个数据库都有jdbc,或者更糟糕的是它可能是一个'小小的螺栓',只是为了启用该类应用程序。所以当所有的主要用法都嵌入sql时,通过jdbc执行基准测试可能会不公平地描述某些解决方案。

围绕这些基准有一些争论让厂商从真正的优先考虑中分散注意力,他们花费精力并仅为基准实现功能。

基准,也可以很容易被误解,甚至TPC是不同的基准套件,你需要选择正确的适合您的需要(TPC-C为DSS等OLTP,TPC-H)

TPC

如果这读取为tpc为负值,请原谅我,我是亲tpc。

Tpc定义了一套非常严格的测试要求。你必须遵循这些信件。对于TPC-H,这是你必须做的

  1. 做多的运行,一些并行,
  2. 使用完全相同的SQL提供了一些单个用户的内容的示例,你不能改变它。如果您需要,因为您的系统使用稍微不同的语法,但必须获得豁免。
  3. 您必须使用外部审核员。
  4. 您不可以将colmns等索引超出指定范围。
  5. 为TPCH您必须在指定的方式书写(消除“单一作家”式数据库)

以上确保人们阅读的结果可在结果的完整性,这是伟大的有信任为企业买家。

Tpc是一个非盈利组织,任何人都可以加入。有收费,但它不是一个主要的障碍,除了OSS。如果你认为自己可以取得非常好的成绩,或者你需要公布结果来竞标政府合同等,你才会真实地支付这笔费用。

我发现tpc对于oss最大的问题是它严重偏斜对于关系型供应商而言,很少有oss解决方案可以满足其产品的入门标准,或者如果他们这样做,他们可能在每次测试中表现不佳。做一个基准测试也可能会让一些球队分心。

替代TPC

当然替代品存在TPC,但没有真正获得牵引力,至今,我所知道的。主要供应商通常会规定您不能对其产品进行基准测试并发布结果。因此,任何新的基准都需要在政治上有所帮助才能让他们加入。我同意这里的供应商立场,我会讨厌某个人错误地实施基准并报告我的产品不好。自从tpc启动以来,数据库领域已经断裂了很多,但很多'打赌你的业务'应用程序仍然运行在'传统'数据库上,所以它们仍然有一席之地。然而,随着nosql等的兴起,新基准有了一个地方,但真正的问题变成了衡量 - 甚至选择像'%kitten%'这样的xyz。或xyz像'小猫%'。将对不同的解决方案产生显着影响。如果你解决了这个问题,你会允许哪些常见的接口(odbc,jdbc,http/ajax,嵌入式sql等),这些接口都会极大地影响性能。关于实际模型呢,比如关系模型的ACID和最终的一致性模型呢?那些使用专门设计的硬件的硬件/软件解决方案呢?

每个数据库已经取得设计折衷的不同需求,并以基准试图公平的竞争环境,如果你有共同的东西,或报告许多不同的指标,其是唯一真正可能的。

尝试创建替代方案的问题之一是“谁将支付”?您需要使用Consenus来完成要执行的测试类型,然后您需要审核结果以使其具有意义。这一切都需要花钱。