2013-06-22 54 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來完成要執行的測試類型,然後您需要審覈結果以使其具有意義。這一切都需要花錢。