NoSQL數據庫:數據的一致性


NoSQL數據庫:數據的一致性

讀取一致性

  • 強一致性
    在任何時間訪問集群中任一結點,得到的數據結果一致;

  • 用戶一致性
    對同一用戶,訪問集群期間得到的數據一致;
    解決用戶一致性:使用粘性會話,將會話綁定到特定結點來處理;
    這樣會降低負載均衡器的性能;

  • 最終一致性
    集群中各結點間由於數據同步不及時造成暫時的數據不一致,但數據同步完成后,最終具有一致性;

更新一致性

  • 悲觀方式
    使用寫鎖
    大幅降低系統響應能力
    可能導致死鎖
  • 樂觀方式
    先讓沖突發生,再檢測順序
    自動合並的處理方式極具“領域特定”問題

放寬“一致性約束”

  • CAP定理
    一致性(Consistency)、可用性(Availability)和分區耐受性(Partition tolerance),3個屬性只可能同時滿足2個;

分區耐受性的解釋:集群因通信故障而划分為多個時仍然可用

  • CA系統
      單服務器
      集群中出現”分區“,就不可用
  • PA/PC
      集群出現”分區“時,需要在”一致性“ 和“可用性”間權衡
      一般會犧牲部分一致性(eg:使用最終一致性),保證可用性

放寬“持久性”約束

更嚴格的持久性,意味着更多的性能損失;

  • 犧牲“持久性”換取更好的性能
  • 復制“持久性”故障
      主節點故障,未同步到從節點的數據丟失
      主節點恢復,故障期間更新的數據沖突
      解決方案:針對單個請求指定其所需的持久性

附思維導圖

NoSQL:數據的一致性

參考

《NoSQL精粹》

Posted by: 大CC | 30JUN,2014
博客:blog.me115.com [訂閱]
微博:新浪微博


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM