ACID
- Atomic 原子性
- Consistent 一致性
- Isolated 隔離性
- Durable 持久性
CAP
- 一致性
- 可用性
- 容錯性
在任何時間點,一個分佈式系統都只能滿足上面三個保障中的兩個
BASE
- 基本可用
- 軟狀態
- 最終一致性
NRW : 描述最終一致性模型在NoSQL 數據庫中的實現
- N 數據庫已經保留的數據副本數量
- R 是在返回一個讀取請求的輸出之前,一個應用程序需要涉及的副本數量
- W 是在一個寫造作被標記位成功完成之前需要對其進行寫入的數據副本數量
- 寫操作
N=W,
返回給客戶端並且將寫操作標記爲成功之前,
寫操作將更新所有的數據副本.
W=1 、R=N,
寫操作僅更新任意一個副本,並且將寫操作標記爲成功,
寫操作快速完成,降低了讀性能
N>W>1
需要成功更新多個節點
並非所有節點都需要同時更新
讀操作
N<W+R
總是確保一個讀操作檢索最新的值
NoSQL優點
- 高擴展性
- 可維護性和管理運營:處理自動修復、分佈式數據以及較簡單的數據模型
- 低成本
- 靈活數據模型
基於文檔形式存儲數據:MongoDB
mongo 將數據存儲爲Binary JSON 、BSON
具有一種主從複製方式
主機接受寫請求
提升寫的性能可以使用分片
分片在mongo中是自動化的,
是一個面向文檔的DBMS,數據被存儲爲文檔
實現Mongo的語言是C++
動態模式
相同集合中的文檔可以具有相同或不同的字段集或結構
- BSON
是JSON數據模型的一種擴展形式
- _id
唯一表示每一行
-
固定集合
-
多態模式
集合具有不同類型或模式的文檔的一種模式