分布式模型
任何乙個讀操作總是能讀取到之前完成的寫操作結果,也就是在分布式環境中,多點的資料是一致的。
每乙個操作總是能夠在確定的時間內返回,也就是系統隨時都是可用的,並且讀寫操作響應快速。
在出現網路分割槽(比如斷網)的情況下,分離的系統也能正常執行。
cap原理的意思是,乙個分布式系統不能同時滿足一致性,可用性和分割槽容錯性這三個需求,最多只能同時滿足兩個。
可用性與分割槽容忍性在一些情況下很容易混淆。舉個例子,假設系統中有若干個節點宕機了,系統仍然能正常執行,那麼應該說是系統的可用性高還是分割槽容忍性高呢?個人的理解是,這種應該理解為系統的分割槽容忍性高。因為若干個節點宕機,可以理解為這幾個節點與其它正常的節點失去聯絡了,也就是出現了網路分割槽,按照定義,這屬於分割槽容忍性的範疇。那麼可用性是什麼?個人的理解可用性更多強調的是,系統對於讀寫操作的反應快慢,反應越快,可用性越高。
quorum nrw模型:
調整n、w、r的取值,資料庫系統的性質就會發生改變。
n越大,同乙個資料的備份越多,系統相對也就越不容易丟失資料。
w越大,系統的一致性會越高,但更新操作也就越慢。
r越大,系統的一致性會越高,但讀操作也就越慢。
w+r>n,系統是強一致性的。為什麼?舉例來說,假設n=6,w=r=3,當乙個更新操作完成的時候,它至少更新了6個備份中的3個備份,那麼當我們去讀取這個資料的時候,因為r=3,所以我們至少得讀3個資料,並從中選擇最新的資料,而w+r>n就意味著讀取的3個資料跟更新的3個資料至少有乙個是重疊的,所以讀取的3個資料中一定存在最新的資料,因而就能保證系統是強一致性的。
w+r<=n,系統是弱一致性的。
幾種特殊情況:
w = 1,r = n,對寫操作要求高效能高可用。
r = 1,w = n,對讀操作要求高效能高可用,比如類似cache之類業務。
w = r = n / 2 + 1 一般應用適用,讀寫效能之間取得平衡。如n=3,w=2,r=2。
cpu密集型 io密集型 多執行緒
執行緒數=cpu可用核數/(1-阻塞係數) ——其中阻塞係數的取值在0和1之間
阻塞係數=系統io上的時間 / cpu密集任務所耗的時間——只能接近1
一般,cpu密集型的阻塞係數為0,所以一般情況下,cpu密集型的執行緒數隻和cpu可用核數相關。
io密集型任務的阻塞係數則接近1.
一致性hash環
早安心語 2017 6 28
早安心語 疏遠不一定是討厭,可能是太喜歡了吧。有時候啊,老認為別人沒教養,其實就是最大的沒教養。道德是用來約束自己的,而不是用來權衡別人的。嚴於律己,寬於待人,教養同是。19 有時候啊,老認為別人沒教養,其實就是最大的沒教養。道德是用來約束自己的,而不是用來權衡別人的。嚴於律己,寬於待人,教養同是。...
ERP 安心卡功能
安心卡使用流程 一 手動開台的訂單 1 收銀軟體上新增安心卡列印 2 收銀軟體上開台下單 3 填寫安心卡 4 儲存並列印 安心卡使用詳 細步驟 在桌台介面選擇需要填寫安心卡的桌台,點選 安心卡 按鈕。2 填寫安心卡 手動輸入廚師 打包員 配送員的姓名及體溫,最後點選 儲存並列印 即可列印小票。二 自...
果然,還是這樣安心些
今天,看會昨天買的書姐就回來了.做飯吃飯,洗洗襪子.發現才七點多.坐著看起大四時候的書了.因為考研,當時沒怎麼學.書中先說的hibernate 因為是別的框架的持久層.是啊這裡不會有任何東西是能難住我的.像這樣東西就在那.要的就是去理解分析.我對這種形式.額我一這樣就自信心爆棚.就像回到學生年代一樣...