簡體   English   中英

悲觀與樂觀並發控制

[英]Pessimistic vs. optimistic concurrency control

我對悲觀鎖定與樂觀鎖定有疑問。 每個人都說:“當您不希望發生太多沖突時,將使用樂觀鎖定。”例如:

對於一個學校項目,當悲觀鎖定比樂觀鎖定更合適時,我需要找到“收支平衡”點。

現在,我想知道/理解為什么存在這樣的收支平衡點? 悲觀鎖定比樂觀鎖定更可能花費更多的錢(速度或內存使用?)?

我懷疑這是因為悲觀鎖需要額外的讀取操作。 但是通過樂觀鎖定,還需要額外的讀取操作(僅在保存操作之前),對嗎?

希望有人可以解釋一下:)謝謝!

並發控制中的樂觀與樂觀是重新實現交易的干擾。 (盡管您的鏈接或特定產品表達了任何定義。)

所謂的悲觀態度是,有人會干預,因此將他們拒之門外; 假定的樂觀態度是,也許沒有人會干涉,所以繼續進行直到完成,如果有干涉則回滾一些過程。

成本是由於鎖定進程的等待而導致的延遲,而由於回滾進程的重新計算而導致的延遲。 考慮到預期的過程屬性和分布,我們希望優化吞吐量。

(在您的問題中,您只處理給定的過程而不是集合,而忽略了必須等待或不得不放棄回滾工作的過程。)

編輯

考慮一下單詞的含義。 吞吐量涉及工作和時間。 “收支平衡”點假定方案(干擾)的大小(吞吐量),方案之間的數量(吞吐量)不同(悲觀/樂觀)。 您必須想出一種表征和測量工作和干擾的方法。 您可以看到其他人采取了合理的干預措施來從教科書及其書目參考書中進行測試。 例如並發控制的最優方法

通過實驗,計算在不同干擾量下運行DBMS的每個方案的吞吐量。

現實情況是,不同的干擾工作負載(>預期的過程屬性和分布)使問題成為多維。 因此,您可能需要針對不同的干擾情況按上述方法計算吞吐量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM