[問題] 磁碟的 consisitency model
遇到的問題: (題意請描述清楚)
我不確定 disk 的 behavior
假設有一個 disk 原本的資料是 A A A A A (5 個 cluster)
經過對不同位置的 write/read 如下
original A A A A A
write B B B
write C C C
read _ _ _ _ _
最後一個 read 的結果,有可能有哪些?
顯然, B C C C A 是合理的結果。下面這些呢?
B B B A A (CCC 尚未寫入)
A A A A A (BBB, CCC 均尚未寫入)
A C C C A (CCC 已寫入,BBB尚未寫入)
B C B A A (BBB已寫入,CCC正在寫入當中)
B C A A A (BBB,CCC 均正在寫入中)
....
.... (有什麼是保證不會出現的嗎?)
就我所知,disk "有權"調換 io request 的順序,例如:
磁頭先移到的先 service
read request 先 service
但是更細節的的部分我就不太清楚了。
此外我也不知道要怎麼找這方面的資料~
還請各位指點~謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.18.132
→
08/14 21:32, , 1F
08/14 21:32, 1F
→
08/14 21:33, , 2F
08/14 21:33, 2F
那些 request 是微觀的 3 個 request 喔,假設時間間隔很近,
甚至,read 與 write 不是同一 process
會這麼問,是想瞭解 disk 的 behavior / consistency model
→
08/14 21:42, , 3F
08/14 21:42, 3F
→
08/14 21:42, , 4F
08/14 21:42, 4F
lock 是 OS / database 提供的功能,是嗎?
我想問的比較不是:「要怎樣實作能保證正確」(雖然這方面我也不太瞭解)
而是:「disk 理應提供怎樣的 model,它有確保什麼樣的 behavior」
(或不確保)
感覺應該有 spec 有說明,但不知如何找起..
※ 編輯: zstar 來自: 203.73.18.132 (08/14 21:49)
※ 編輯: zstar 來自: 203.73.18.132 (08/14 21:50)
推
08/14 22:18, , 5F
08/14 22:18, 5F
→
08/14 22:21, , 6F
08/14 22:21, 6F
→
08/14 22:23, , 7F
08/14 22:23, 7F
推
08/15 12:31, , 8F
08/15 12:31, 8F
→
08/15 12:31, , 9F
08/15 12:31, 9F
→
08/15 12:32, , 10F
08/15 12:32, 10F
→
08/15 12:33, , 11F
08/15 12:33, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章