本頁說「對於哈希訪問方法,您只需要一個鎖對象」。Berkeley DB:哈希訪問方法的鎖對象數
http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/lock_max.html
這是否意味着所有訪問數據庫的進程/線程將嘗試鎖定同一鎖對象?它不會導致非常高的鎖爭用?
謝謝!
--Michi
本頁說「對於哈希訪問方法,您只需要一個鎖對象」。Berkeley DB:哈希訪問方法的鎖對象數
http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/lock_max.html
這是否意味着所有訪問數據庫的進程/線程將嘗試鎖定同一鎖對象?它不會導致非常高的鎖爭用?
謝謝!
--Michi
就是它的描述在這裏是如何計算應用程序所需的鎖對象的數量,雖然默認的鎖定對象的配置(1000)通常是不夠的。它描述了給定單個數據訪問操作將需要多少個鎖對象,以便您可以乘以併發數據訪問操作的次數並適當地配置鎖對象的數量。這並不是真的在談論鎖爭論。
對於HASH訪問方法,給定的鍵值直接映射到散列桶。只有一個頁面需要查看(並鎖定)才能訪問數據。這與Btree(需要遍歷內部索引節點以獲取數據)和Queue(需要鎖定每條記錄和記錄所在的頁面)不同。
在最近的版本中,我們實際上已經消除了不希望某些鎖,以便把一個簡單的方法將是:
每個數據庫操作將需要
基本上,每個數據訪問典型地2-3鎖定對象GE分裂是必需的,每頁
我希望有幫助。
Dave