天天看點

分布式資料庫等其它一些基本概念(一)

雲計算

基本概念:通過網絡将大量的計算處理分拆到多部伺服器,在計算之後回傳使用者終端。包括分布存儲、并行計算、虛拟化(存儲雲、計算雲、虛拟雲)。Cloud computing is the use of computing resources (HW and SW) that are delivered as a service using a network of remote servers typically hosted on the internet to store, manage and process data.

虛拟化:個人使用者是将一台實體機器的資源虛拟化成多份,以能同時啟動多個作業系統; 而雲虛拟化是将多個實體機器虛拟成一個大的資源池,讓使用者感覺是在使用一個機器。其有兩種模式,一是運作在作業系統上,支援硬體廣泛;一是直接運作在硬體上,效率更高(e.g. VMware ESX Server)。

雲分層

IaaS: Infrastructure-as-a-Service(基礎設施即服務)

PaaS: Platform-as-a-Service(平台即服務)

SaaS: Software-as-a-Service(軟體即服務)

DaaS: Destop-as-a-Service

Your IT needs are fluctuated, traditional IT capacity is flat.

分布式資料庫

特點:實體上分别存儲在不同的實體節點,這是與集中式資料庫的最主要的差別。資料會分片。

資料分片(Sharding/partition)

1)水準分片

2)垂直分片

3)導出分片

4)混合分片

NoSQL

解釋:即非關系型資料庫,為此我們首先要知道什麼是關系型資料庫,關系型資料庫(RDBMS)特點是建立在關系模型(Entity-Relationship Model,簡稱E-R Model)基礎上,事務符合ACID特性,滿足CAP理論中的CA。

目标:是為了應對大資料情況。

特點:1)能應付大資料,即高性能;2)事務符合BASE特性;3)滿足CAP理論中的AP或CP。

分類:

1)Key-Value存儲(如Bigtable)

2)列存儲(如HBase)

3)文檔型(如MongoDb)

4)圖形存儲

CAP理論

一緻性(Consistency) 

可用性(Availability) 

分區容忍性(Partition tolerance)

CAP原理指的是,對于一個分布式系統,這三個要素最多隻能同時實作兩點,不可能三者兼顧。

對于分布式資料系統,分區容忍性是基本要求。對于大多數web應用,其實并不需要強一緻性,是以犧牲一緻性而換取高可用性,是目前多數分布式資料庫産品的方向。不要求強一緻性,但還是要求最終一緻性eventually consistent

(要求更新過的資料能被後續的通路都能看到,這是強一緻性。如果能容忍後續的部分或者全部通路不到,則是弱一緻性。如果經過一段時間後要求能通路到更新後的資料,則是最終一緻性。)

ACID

1)A (Atomicity) 原子性,一個操作失敗,整個事務就失敗,需要復原。

2)C (Consistency) 一緻性,一直處于一緻,如現有完整性限制a+b=10,如果一個事務改變了a,那麼必須得改變b,使得事務結束後依然滿足a+b=10。

3)I (Isolation) 獨立性,A事務的改動未送出,則B事務未受影響。

4)D (Durability) 持久性,一旦事務送出,則改動會持久化(即儲存到硬碟檔案)。

BASE

由于CAP理論的存在,為了提高性能,出現了與ACID對應的BASE特性。

1)Basic Availability:基本可用

2)Soft-state :軟狀态/柔性事務,可以了解為”無連接配接”的, 而 “Hard state” 是”面向連接配接”的

3)Eventual consistency:最終一緻性,最終整個系統(時間和系統的要求有關)看到的資料是一緻的。

事務隔離級别

READ_UNCOMMITTED 會出現髒讀、不可重複讀、幻讀

READ_COMMITTED   解決髒讀,會出現不可重複讀、幻讀問題

REPEATABLE_READ 解決髒讀、不可重複讀,會出幻讀

SERIALIZABLE 保證所有的情況不會發生(鎖表)

髒讀 : A事務改動未送出,B事務也能讀到改動;

不可重複讀 : A事務update送出,B事務能半路中途讀到改動;

幻讀 : A事務insert或delete送出,B事務能半路中途讀到改動;

OLAP

聯機分析處理(Online Analytical Processing),側重多元分析、決策支援;

相對應的是聯機事務處理OLTP(on-line transaction processing,傳統二維資料)。

繼續閱讀