我使用TPC-C基准的开源java实现(称为TCJ-TPC-C,通过JDBC(去年由MMatejka创建))来比较Oracle和2 OSS DBMS的性能。缺少oss数据库系统性能测试的原因?
TPC-C是在私有领域的标准,我的问题是:
主要有哪些原因,有没有系统地实施性能测试OSS数据库系统?
我使用TPC-C基准的开源java实现(称为TCJ-TPC-C,通过JDBC(去年由MMatejka创建))来比较Oracle和2 OSS DBMS的性能。缺少oss数据库系统性能测试的原因?
TPC-C是在私有领域的标准,我的问题是:
主要有哪些原因,有没有系统地实施性能测试OSS数据库系统?
首先,我不确定你的问题是否适合SO,因为它接近询问意见,所以我的答案是更多的意见,而不是事实。这些年来我阅读过的大部分内容,但会努力找到参考/证明了。我不是一名TPC会员,但对TPC-H套件中试图获得经过测试的专卖店数据库进行了大量调查。
基准
这些都是在测试单一功能,并比较它们巨大的,不幸的是,这是无处像听起来那么容易。公司将花费大量精力来获得更好的结果,有时(所以我听说过)在源代码中实现特定的功能来进行基准测试。关于整体可靠的基准测试结果有很多讨论。此外,基准可能是某种产品的完美契合,但不是另一种。
你的例子使用Jdbc,但不是每个数据库都有jdbc,或者更糟糕的是它可能是一个'小小的螺栓',只是为了启用该类应用程序。所以当所有的主要用法都嵌入sql时,通过jdbc执行基准测试可能会不公平地描述某些解决方案。
围绕这些基准有一些争论让厂商从真正的优先考虑中分散注意力,他们花费精力并仅为基准实现功能。
基准,也可以很容易被误解,甚至TPC是不同的基准套件,你需要选择正确的适合您的需要(TPC-C为DSS等OLTP,TPC-H)
TPC
如果这读取为tpc为负值,请原谅我,我是亲tpc。
Tpc定义了一套非常严格的测试要求。你必须遵循这些信件。对于TPC-H,这是你必须做的
以上确保人们阅读的结果可在结果的完整性,这是伟大的有信任为企业买家。
Tpc是一个非盈利组织,任何人都可以加入。有收费,但它不是一个主要的障碍,除了OSS。如果你认为自己可以取得非常好的成绩,或者你需要公布结果来竞标政府合同等,你才会真实地支付这笔费用。
我发现tpc对于oss最大的问题是它严重偏斜对于关系型供应商而言,很少有oss解决方案可以满足其产品的入门标准,或者如果他们这样做,他们可能在每次测试中表现不佳。做一个基准测试也可能会让一些球队分心。
替代TPC
当然替代品存在TPC,但没有真正获得牵引力,至今,我所知道的。主要供应商通常会规定您不能对其产品进行基准测试并发布结果。因此,任何新的基准都需要在政治上有所帮助才能让他们加入。我同意这里的供应商立场,我会讨厌某个人错误地实施基准并报告我的产品不好。自从tpc启动以来,数据库领域已经断裂了很多,但很多'打赌你的业务'应用程序仍然运行在'传统'数据库上,所以它们仍然有一席之地。然而,随着nosql等的兴起,新基准有了一个地方,但真正的问题变成了衡量 - 甚至选择像'%kitten%'这样的xyz。或xyz像'小猫%'。将对不同的解决方案产生显着影响。如果你解决了这个问题,你会允许哪些常见的接口(odbc,jdbc,http/ajax,嵌入式sql等),这些接口都会极大地影响性能。关于实际模型呢,比如关系模型的ACID和最终的一致性模型呢?那些使用专门设计的硬件的硬件/软件解决方案呢?
每个数据库已经取得设计折衷的不同需求,并以基准试图公平的竞争环境,如果你有共同的东西,或报告许多不同的指标,其是唯一真正可能的。
尝试创建替代方案的问题之一是“谁将支付”?您需要使用Consenus来完成要执行的测试类型,然后您需要审核结果以使其具有意义。这一切都需要花钱。
没有人推动它,就没有资金来推动它,所有的平台都稍有不同,而TPC套件任务非常严格的要求(可替代的解决方案可以击败TPC,但允许的arent他们通融一下)不要误会我的意思,我希望有一个更公平的竞争环境。 – rlb
我不知道如果我理解...... 你的意思是有没有钱,有人谁也意识到这一点? 每个数据库系统都略有不同,对吗?那么,为什么它对于OSS来说非常具体? 你是什么意思替代sol可以击败TPC? (什么替代溶胶?什么规则?) 我在这里是新的,所以我很抱歉我的误解。 –
@StevePatris对于OSS来说,花费大量时间获取基准测试工作可能没有什么可感知的价值,可以更好地用于修复错误或编写新功能。对于商业供应商来说,这可能是一个额外的“销售”论点。 –