2013-07-20 23 views
0

我想在某些節點上使用流行的YCSB基準測試工具對一些NoSQL數據庫進行基準測試(CRUD操作)。什麼是nosql dbs的重要性能機制?

但是在我這樣做之前,我想了解這些數據庫在CRUD基準測試中的關鍵機制。例如。像MVCC這樣的併發控制對性能有很大的影響嗎?或...

回答

1

生產一個好的性能測試很難,生產一個可靠的更難。 話雖這麼說,你是對正確的,一個需要

瞭解這些數據庫的關鍵機制

主要瓶頸是什麼總是磁盤I/O。當您瞭解一些NoSQL DB的工作原理時,請查看它如何以及何時寫入磁盤,並將其追蹤到真實的fsync()調用。你可能會感到不愉快的驚訝。然後看看CAP theorem。瞭解數據庫作者遭受的損失。如果他們聲稱,否則,看看代碼來證明他們錯了。清楚地瞭解這個DB是什麼樣的CAP。你無法比較CP和AP並得出任何有意義的結論。雖然按摩和改變你的商業案例是可以的,所以它更適合特定的數據庫。反之亦然 - 如果你的用例確定並說明最終的一致性,那麼你有一個NoSQL dbs選擇,如果不是的話 - 你有另一個。

1

它取決於您要測試的特定NoSQL數據庫。 如果他們在像Redis,CouchBase,Tarantool,Aerospike這樣的持久存儲器中,那麼CRUD操作應該是非常快的,因爲他們所做的只是寫入文件的末尾(通常稱爲預寫日誌)並更改內存結構。

說到併發性,它也取決於。例如,Tarantool是完全非阻塞的,Redis是單線程的,所以你應該並行地發出大量的CRUD操作來測試它。

相關問題