不過對利用步驟進行功能對照則不是那麼簡樸的了。在同一個云算計或跨差異云算計的環境下,對運行此中的差異類型數據庫利用步驟進行功能對照將是獨特具有挑釁性的一項任務。雅虎云算計辦事基準(YCSB)是專為協助用戶了解差異云算計數據庫功能以及在實質負載下儲備數據功能體現的一個測試框架。這個測試框架的源代碼可從GitHub下載牟取。
雅虎云算計辦事基準器具包含有了兩個主要的構造部門:一個任務負載生成器和一組生成器生成的任務負載,以及針對大批NoSQL數據庫的接口,此中包含有Cassandra、DynamoDB、Hbase、MongoDB、Redis以及甲骨文公司的NoSQL數據庫。當然,它還配有一個用于關系型數據庫的JDBC接口。
當面對進行利用步驟條理決策時,諸如YCSB這樣的數據庫測試基準是獨特有用的。比如,一個不再知足功能需要的現有數據庫利用步驟可能會迫使你斟酌擴容硬件物質或者改變根基數據庫。假如額外的硬件或許實現近乎線性的功能增加(比如,雙倍的辦事器可實現雙倍的功能),那麼硬件擴容將是一個適合的抉擇。不過,硬件擴容并不老是或許協助我們實現功能的線性增加,由於不讓控制員充裕施展額外硬件物質優勢的利用步驟中還存在著其他的功能增加瓶頸。
假如你更改了你的數據庫,那麼你就會有許多的抉擇項,獨特是假如你抉擇採用NoSQL數據庫來代替之前的關系型數據庫。固然一開端的功能增加可能并不顯著,不過一些特定類型的NoSQL數據庫將說明疑問。比如,社交網絡解析就正好合適採用圖形數據庫。假如用戶不需求支持復雜查詢利用,那麼諸如Cassandra和Amazon DynamoDB這樣的要害值數據庫則可能比MongoDB這樣的文檔儲備更為合適。測試基準可以通過測試數據來協助你決擇哪一個數據庫最合適你的需要。
雅虎云算計辦事基準的任務負載控制
運行YCSB的第一步即是確認你所但願測試的數據庫類型以及但願在數據庫上運行的任務負載。一旦你已經創造了你的數據庫,那麼你必要創造一個與你的目的任務負載關連的方案。方案的實施細節將隨數據庫類型的差異而有所變動。比如,可能在MySQL中創造一個數據表,而在Cassandra中創造一個列族和要害值空間。
測試基準是對照數據庫功能的一大利器,不過任務負載也必要合作你的實質生產負載,當抉擇數據庫時,除測試結百 家 樂 報 牌局外還需求斟酌其他的設計考量。你可以運行由YCSB提供的核心任務負載或者創造你個人的。核心任務負線上百家樂作弊載包含有一組六個具有差異讀寫操縱特徵的任務負載。一些任務負百家樂 運彩載是以除舊升級為主的,而另一些則是測試讀操縱功能的。假如你創造你個人的任務負載,那麼你就必要開闢一個Java利用步驟,以便于開拓現有YCSB類生成數據并執行讀寫操縱。
任務負載是採用參數開關進行建置的,因此你是可以在差異的線程數和單元時間運行數下測試任務負載的。它分為了兩個階段:創造數據的導入階段,和執行特定任務負載下操縱然后輸出一組功能統計數據的執行階段。除了運行時間和單元時間的運行次數外,還有許多的耽擱丈量數據,此中包含有平均值、最大值、最小值、第95個百分點的耽擱數和99個百分點的耽擱數。
假如你有一個現成的利用步驟,它可能會從功能監控器具中蒐集數據以確認你的利用步驟中讀、寫以及除舊操縱的運行數據。假如你採用了一個關系型數據庫,那麼則需獨特注目運行次數最頻繁和運行時間最長的查詢操縱。
有很好的候選對象可供在自定義任務負載中採用。
假如你開闢了一個新利用步驟,那麼你應該在正式把利用步驟投入生產之前運行一系列的測試基準以便于對大批的差異的可能生產負載進行考核。這可認為差異前提下差異數據庫的功能體現考核提供有代價的信息。假如你但願了解大部門時間的中等機械手臂百家樂作弊任務負載以及設計需要中偶然發作的高峰任務負載的運公價況,可針對兩種場合進行測百家樂看路技巧試。夢想場合下,你所抉擇的數據庫將在所有預期的場合下功能體現良好。
你還應該依據採用頻率來抉擇數據庫。假如一個數據庫在多數預期的任務負載下或許體現良好,但在一個設計范圍外或偶然發作的任務負載下體現糟糕,那麼你可能會抉擇這個數據庫。