看板 PttCurrent 關於我們 聯絡資訊
※ 引述《lxb.bbs@ip-212-80-134-202.rev.dyxnet.com (努力! 根性戰隊)》之銘言: : ※ 引述《in2.bbs@ptt.cc (敬請期待 :P)》之銘言: : : 這個其實很簡單, : : 因為在推文或是修改文章這一類動作時, : : 會重新將 fileheader_t 寫入 .DIR 原位置中. : 即是沒有 lock 好? 那太過慘了, 我們這邊 database 派系已經經常取笑系統 : concurrency 弱雞... 我們也是打算檢討一下那些放 lock 的東西, 時序是否 : 設得不好. 我是覺得還好, bbs 上面應該不太需要很強的 lock , 或是說目前我們的資源也沒有辦法做太強的 lock . : : 如果說這時 .DIR 突然被刪掉一些 (不管是 expire 或是刪掉) : : 那個程式並不知道, 又將資料寫回原來的地方, : : 就會造成這種效果 :p : 我們沒有啟動 expire , 猜想會砍真實 file 的 unlink / rm , : 只會在 mbbsd 去執行. 若說 .DIR 被刪掉一些, 除非 i/o 很有問題吧, 例如說現在 .DIR 有 1000 篇, 我刪掉第 500-510 篇, 於是就會把 1~499 & 511 ~ 1000 重新寫到 .DIR 裡面. 如果這個時候有人的游標在第 1000 , 又使用推文/ 修改文章, 就會出現前面說的那個情況. : 不然不該會出現砍掉全板文章實體這種事. 我倒沒有碰過砍掉全板文章實體~ :Q : 倒是, 我相信 i/o 可以很有問題, 因為我也見識過錯位的 .DIR 為了節省資源, 推文的時候只把推文數寫進去 (只寫 1byte) 碰到前面那種情況, 就會出現你所謂的 "錯位的 .DIR" -- 「假設上天只給我愛情或微積分, 我願選擇一生的幸福」 -- ψ 中華人民共和國 1981-未決 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.144