看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/8RyhyTU.jpg https://i.imgur.com/vQC1cCO.jpg 想問這兩題怎麼排 https://i.imgur.com/MhDAV0c.jpg 可以大致提一下各小題的概念嗎Q -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.209.180 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1579191867.A.A40.html
DLHZ: data cache我認為是最簡單 不需要什麼特別的設計 應該說完全01/17 00:34
DLHZ: 無關?然後single issue 再來是pipeline、superscalar、spec01/17 00:34
DLHZ: ulative 最後是out of order01/17 00:34
了解~感謝!
plsmaop: 8.(a)這種交易都很短不會拖太長,在 optimistic lock 加01/17 07:23
plsmaop: 上 priority scheduler 先讓金額高的 commit01/17 07:23
plsmaop: 8(b),用一個 node 給順序,所有人第一步就是去跟那個 no01/17 07:25
plsmaop: de 要一個嚴格遞增的序號,結帳時出示訊號,如果上一個01/17 07:25
plsmaop: 完成結帳是要結帳的人的序號+1才可以結帳01/17 07:25
plsmaop: 8(c)共識演算法或 two phase commit01/17 07:28
plsmaop: 8(d) 大量寫入求 throughput 請參考 LSM 樹01/17 07:29
plsmaop: 8(e) 大量 transaction 不斷 abort 導致 DDoS,用 CDN,r01/17 07:31
plsmaop: ate limiter,或商品預先分區01/17 07:31
DLHZ: 推大神01/17 07:36
mistel: 請問我看書上是寫說樂觀並行控制不適用於大量多筆可能彼01/17 08:42
mistel: 此衝突的交易,所以這時候適合用這個方式嗎? 我自己是寫01/17 08:42
mistel: 利用協調者決定誰可以進入臨界區間(才能扣庫存01/17 08:42
mistel: 但我覺得這樣效能會變差 所以不知道...01/17 08:44
mistel: 咦等等,我看錯題號了 那沒事了01/17 08:47
mistel: 所以第一題是問即使可能交易出錯也沒差的囉?01/17 08:47
plsmaop: 樂觀鎖不會出錯啦,是 commit 時決定可不可以 commit,確01/17 08:55
plsmaop: 實你說大量衝突有可能導致效能不好,那改用悲觀鎖也可,01/17 08:55
plsmaop: 我覺得重點在於 priority scheduler 選賺最多錢的 transa 01/17 08:55
plsmaop: ction01/17 08:55
plsmaop: postgres 就樂觀鎖加上 multiversion concurrency contro01/17 08:55
plsmaop: l01/17 08:55
mistel: 瞭解,那能不能再問一下c小題拿樂觀鎖或類似的機制來作答01/17 09:01
mistel: 可以嗎?不是很懂two-phase commit跟樂觀鎖或two-phase l01/17 09:01
mistel: ocking之間的功能有什麼差異01/17 09:01
plsmaop: two phase commit 是分散式系統之間維持一致性,two phas01/17 09:15
plsmaop: e lock 是同一台電腦上不同 transaction 在存取相同的東01/17 09:15
plsmaop: 西時確保交易正確且不會出現死鎖01/17 09:15
plsmaop: 樂觀鎖跟多版本並行是一起的,transaction 開始時該 tran01/17 09:18
plsmaop: saction 會記住開始時資料的模樣,給一個版號然後直接修01/17 09:18
plsmaop: 改,commit 時檢查自己的版號是不是最新的,不是就得 abo01/17 09:18
plsmaop: rt01/17 09:18
plsmaop: 悲觀鎖則是要存取資料前一定要取得鎖才行,然後加上 2PL01/17 09:21
plsmaop: 來確保同時處理的 transaction 們的執行結果跟一個一個01/17 09:21
plsmaop: 處理時是一樣的(serializable)01/17 09:21
plsmaop: 如果還要考慮 transaction abort 所造成 phantom read,01/17 09:22
plsmaop: 就要採用 strict 2PL01/17 09:22
mistel: 我懂了!!謝謝p大 講的好清楚01/17 09:24
plsmaop: 上面有錯喔,2PL 還是有死鎖,2PL 的重點在於確保 serial01/17 09:24
plsmaop: izability,就是多個 transaction 同時進行,但結果必須01/17 09:24
plsmaop: 跟一個一個處理多個 transaction 一樣 01/17 09:24
感謝p大!!真的很詳細 ※ 編輯: bluesea32541 (123.192.209.180 臺灣), 01/17/2020 10:29:37
ccapricorntw: 4c 我是排container>VM>GPGPU>Hyper-thread>supersc 01/17 16:20
ccapricorntw: aler>pipeline 不過不是很確定 01/17 16:20
ccapricorntw: 另外想問一下一樓D大為何speculative會比superscale 01/17 16:23
ccapricorntw: r難處理exception? 01/17 16:23
DLHZ: 我好像想錯了 speculative的部分應該跟exception的處理沒什 01/17 16:56
DLHZ: 麼關係 而且看起來不代表他有pipeline? 01/17 16:56
DLHZ: 我重新排一次好了 cache無關最簡單 然後我再想了一次認為sin 01/17 16:57
DLHZ: gle issue, speculative, superscalar一樣 讓control signal 01/17 16:57
DLHZ: 去改pc就好 再來pipeline 最後out of order+superscalar 01/17 16:57
DLHZ: 抱歉跟前面差有點多 想的太隨便== 01/17 17:00
DLHZ: superscalar還是複雜一點(unit較多)然後speculative中像BTB 01/17 17:06
DLHZ: 之類的可能還是要處理 但是相對較少 所以那三個再分下來應該 01/17 17:06
DLHZ: 是 single issue, speculative, superscalar 01/17 17:06
DLHZ: 崩潰 大家看看就好 我越想越不對勁 01/17 17:17
ccapricorntw: XD 但我認為pipeline比較簡單耶 pipeline如果在EXE 01/17 17:47
ccapricorntw: 發生exception 頂多flush IF跟ID的指令 01/17 17:48
ccapricorntw: 但是superscalar可能要flush所有unit的指令 01/17 17:48
DLHZ: 我想說以pipeline的設計還要決定flush哪裡 如果比較簡易的只 01/17 21:07
DLHZ: 要讓他全部flush就好 01/17 21:07
ccapricorntw: superscalar也不一定全flush吧?應該只會flush在 01/17 22:15
ccapricorntw: 原本order發生exception的指令後的指令吧? 01/17 22:15
DLHZ: 因為他只有說superscalar 我想說不一定是pipeline吧? 01/17 22:23
ccapricorntw: 也是 不過有沒有pipeline的運作上有甚麼差R? 01/17 22:34
ccapricorntw: 這塊不太熟QQ 01/17 22:35
DLHZ: 有pipeline應該就是單純分階段?不過所有superscalar的例子 01/17 22:38
DLHZ: 都是implement在pipeline上 這也是我的猜測而已 01/17 22:38
dsa66253: 請問p大 這些內容是在分散式系統裡嗎?應該是要修什麼 01/18 23:52
dsa66253: 課程比較能夠有通盤理解? 01/18 23:52