我使用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來說,花費大量時間獲取基準測試工作可能沒有什麼可感知的價值,可以更好地用於修復錯誤或編寫新功能。對於商業供應商來說,這可能是一個額外的「銷售」論點。 –