




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)漫談講師:童家旺,阿里集團(tuán)數(shù)據(jù)庫(kù)架構(gòu)師主題數(shù)據(jù)庫(kù)基本問題調(diào)查關(guān)系數(shù)據(jù)庫(kù)的基本背景ACID基本概念解析范式問題解析(Normalization)數(shù)據(jù)庫(kù)的擴(kuò)展性淺析常見數(shù)據(jù)庫(kù)系統(tǒng)回顧數(shù)據(jù)庫(kù)基本問題調(diào)查大家都使用過哪些數(shù)據(jù)庫(kù)?哪些內(nèi)容是數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)鍵點(diǎn)?常見的數(shù)據(jù)存儲(chǔ)傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)OracleDB2、SQL ServerMySQL、PosgreSQL分布式數(shù)據(jù)庫(kù)Google Spanner & BigTable & MegaStoreOceanBase、Hbase緩存服務(wù)器 KeyValue StoreTairMemcacheDRedis數(shù)據(jù)庫(kù)的主要特性ACID 原子性(Atomi
2、city)完整性(Consistency)隔離性 (Isolation)持久性 (Durability)Relation SQLStructured Query Language (即SQL)A Relational Model of Data for Large Shared Data Banks (By Edgar Codd)RDBMS之前的數(shù)據(jù)庫(kù)的問題不支持?jǐn)?shù)據(jù)獨(dú)立性數(shù)據(jù)庫(kù)與應(yīng)用系統(tǒng)之間的強(qiáng)耦合應(yīng)用系統(tǒng)的復(fù)雜度應(yīng)用系統(tǒng)本身的規(guī)模較小(性價(jià)比?)關(guān)系數(shù)據(jù)庫(kù)的主要業(yè)務(wù)場(chǎng)景Billing (記賬類業(yè)務(wù),電信、銀行)Booking (訂票類業(yè)務(wù),航空)Inventory (庫(kù)存管理,零售)這些業(yè)
3、務(wù)的共同特征是什么啊?關(guān)系數(shù)據(jù)庫(kù)的關(guān)系來自哪里?這是關(guān)系的一個(gè)來源另一個(gè)來源是NormalizationACID的基礎(chǔ)概念Transaction的概念借自Contract Law一手交錢、一手交貨(Atomicity)不會(huì)出現(xiàn)庫(kù)存為負(fù),也不會(huì)出現(xiàn)資金為負(fù)的情況(Consistency)可同時(shí)與多人進(jìn)行交易(Isolation)離柜概不負(fù)責(zé)(Durability)Atomicity要么全部成功,要么全不成功Consistency寫入數(shù)據(jù)庫(kù)的數(shù)據(jù)必須滿足所有定義的約束規(guī)則(主鍵、唯一鍵、外鍵等約束)Isolation確保并發(fā)執(zhí)行的事務(wù)就如同串行執(zhí)行的事務(wù)一樣,保證系統(tǒng)狀態(tài)(state)的一致性。D
4、urability一旦提交,哪怕出現(xiàn)掉電、Crash也不會(huì)丟數(shù)據(jù)幾個(gè)基礎(chǔ)概念Write-Ahead LogRedo LogicalPhysicalPhysiologicalUndo事務(wù)槽事務(wù)標(biāo)識(shí)SCN 系統(tǒng)變更統(tǒng)一時(shí)間戳(邏輯時(shí)鐘)如何實(shí)現(xiàn)原子性一個(gè)簡(jiǎn)單購(gòu)物場(chǎng)景A賣一件衣服給BA的衣服庫(kù)存-1A的資金+NB的衣服庫(kù)存+1B的資金-N如何實(shí)現(xiàn)原子性(2)事務(wù)槽為變更入口,單一入口(原子)每個(gè)變更的記錄都包含事務(wù)槽信息數(shù)據(jù)庫(kù)中如何保證C通過Read Dirty與鎖來解決PK/UK通過Ref檢查來解決FK的問題(需要Index)通過PreCommit trigger來做Null以及Check數(shù)據(jù)庫(kù)中
5、如何保證I鎖控制不同粒度的鎖(表級(jí)、塊級(jí)、記錄級(jí))不同維度的鎖(數(shù)據(jù)相關(guān)鎖,內(nèi)存相關(guān)鎖)MVCCSnapshot IsolationBlock Image + SCN + Undo Image 判斷差別在于讀取哪個(gè)時(shí)間點(diǎn)的Snapshot數(shù)據(jù)庫(kù)中如何保證DLog before DataLGWR before DBWnFlush Log on CommitDurability On CommitCheckpoint Before Redo Log File ReuseACID的代價(jià)不同的Isolation對(duì)應(yīng)不同的代價(jià)SerialiazabilityRead Committed (Through
6、 Snapshot)Read Dirty ? (沒有并發(fā)控制)不同的Durability級(jí)別Flush on CommitFlush on Timeout ( Time Range)Flush on Batch ( commits count?)主題數(shù)據(jù)庫(kù)基本問題調(diào)查關(guān)系數(shù)據(jù)庫(kù)的基本背景ACID基本概念解析范式問題解析(Normalization)數(shù)據(jù)庫(kù)的擴(kuò)展性淺析常見數(shù)據(jù)庫(kù)系統(tǒng)回顧Normalization先做個(gè)小游戲用筆記錄下學(xué)員名單、講師名稱、講師簡(jiǎn)介、課程名稱、課程簡(jiǎn)介調(diào)整下講師(童家旺金光?。┮约皩?duì)應(yīng)的講師簡(jiǎn)介再次調(diào)整下課程 (數(shù)據(jù)庫(kù)概論分布式數(shù)據(jù)庫(kù)原理)簡(jiǎn)介Normalizatio
7、n解決的問題更新一個(gè)源頭不會(huì)出現(xiàn)異常每份數(shù)據(jù)只有一個(gè)源頭如何保證多份數(shù)據(jù)的一致性?一份數(shù)據(jù)有多少個(gè)源頭?同一份數(shù)據(jù)被重復(fù)了多少次?對(duì)應(yīng)的存儲(chǔ)空間?為了存儲(chǔ)耗費(fèi)的其它資源?Normalization帶來的問題表之間的依賴(關(guān)系依賴,耦合)表關(guān)聯(lián)的成本(關(guān)聯(lián)開銷,可能的IO開銷)系統(tǒng)擴(kuò)展的復(fù)雜度(解耦合)如何權(quán)衡Normalization盡量不要對(duì)靜態(tài)數(shù)據(jù)做Normalization除非你希望節(jié)約存儲(chǔ)空間考慮范式化 Vs 反范式化的投入產(chǎn)出為什么很多IT新人喜歡Normalization那是因?yàn)樗麄兊睦蠋煾嬖V他們需要Ali的實(shí)際情況適度的使用關(guān)鍵在于判斷業(yè)務(wù)之間的耦合性主題數(shù)據(jù)庫(kù)基本問題調(diào)查關(guān)系數(shù)
8、據(jù)庫(kù)的基本背景ACID基本概念解析范式問題解析(Normalization)數(shù)據(jù)庫(kù)的擴(kuò)展性淺析常見數(shù)據(jù)庫(kù)系統(tǒng)回顧一個(gè)小實(shí)驗(yàn)如何將2個(gè)人從這里送到楊浦?如何將5個(gè)人從這里送到楊浦?如何將50個(gè)人從這里送到楊浦?如何將500個(gè)人從這里送到楊浦?如何將5000個(gè)人從這里送到楊浦?如何將50000個(gè)人從這里送到楊浦?解決擴(kuò)展性的根本途徑數(shù)據(jù)庫(kù)的擴(kuò)展性問題做數(shù)據(jù)庫(kù)架構(gòu)、系統(tǒng)架構(gòu)與上圖差別在于:如何滿足如下的要求檢索問題Relation并發(fā)問題IsolationConsistency(UK)一致性問題Isolation速度問題Performance,Durability+Isolation數(shù)據(jù)庫(kù)檢索問題如
9、何從班級(jí)的聯(lián)系方式中找到XX的電話號(hào)碼?如何從公司的聯(lián)系方式中找到XX的電話號(hào)碼?如何從移動(dòng)公司的系統(tǒng)中找到XX的電話號(hào)碼?如何從移動(dòng)、電信、聯(lián)通的數(shù)據(jù)庫(kù)找到XX的電話號(hào)碼?數(shù)據(jù)庫(kù)的并發(fā)問題同時(shí)有多個(gè)人要購(gòu)買手機(jī)號(hào)?如何保證大家購(gòu)買的不是同一個(gè)手機(jī)號(hào)?如何支持幾百、幾千、幾萬人同時(shí)購(gòu)買手機(jī)號(hào)?數(shù)據(jù)庫(kù)的一致性問題如何保證大家看到的庫(kù)存有效?如何保證讀取的信息是準(zhǔn)確的?庫(kù)存的變更如何實(shí)時(shí)的提供給每一個(gè)人看到?數(shù)據(jù)庫(kù)的性能問題?如何快速的讓1個(gè)人買到號(hào)碼?有多快?如何快速的讓10個(gè)人買到號(hào)碼?要不要排隊(duì)?一個(gè)服務(wù)員?一個(gè)營(yíng)業(yè)廳?Performance Vs Scalability1.當(dāng)只有一個(gè)人訪問
10、時(shí),速度如何?2.當(dāng)有很多人訪問時(shí),速度如何?大家都同樣快?如果滿足1表示Performance很好?如何能較好的滿足2表示系統(tǒng)有較好的Scalability一致性問題再探討新浪發(fā)的微薄需要強(qiáng)一致嗎?ITPUB的論壇需要強(qiáng)一致嗎?當(dāng)當(dāng)?shù)膱D書描述信息需要強(qiáng)一致嗎?12306的火車票庫(kù)存信息需要強(qiáng)一致嗎?支付寶/財(cái)付通的賬戶余額需要強(qiáng)一致嗎?中行信用卡/招商銀行卡的賬戶信息需要強(qiáng)一致嗎?數(shù)據(jù)狀態(tài)機(jī)的分類何謂狀態(tài)機(jī)簡(jiǎn)單的理解是,計(jì)算機(jī)中會(huì)發(fā)生變化的數(shù)據(jù)都是狀態(tài)機(jī),這個(gè)數(shù)據(jù)的值不同可能會(huì)帶來不同的后果。分類:按照三個(gè)維度:時(shí)間、信息含金量、變更頻率持續(xù)時(shí)間信息含金量變更頻繁度例子瞬時(shí)高少Shoppin
11、g Card Session(分)瞬時(shí)低少Login Cookie(分)中等時(shí)長(zhǎng)高少Ecommerce Billing(天)中等時(shí)長(zhǎng)中少Product Catalog(年)中等時(shí)長(zhǎng)高多Flight/Train Inventory (月)無限時(shí)長(zhǎng)中少User Profile(年)無限時(shí)長(zhǎng)高多Bank Account Balance(年))Cache的基本概念Cache的定義Caching is a temp location where I store data in (data that I need it frequently) as the original data is expensi
12、ve to be fetched, so I can retrieve it faster. 臺(tái)灣的翻譯為“快取”,大陸為“緩存”Cache的特征有Backend的內(nèi)容處理的效率比走Backend要快與Backend的內(nèi)容之間可能會(huì)不一致Cache的本質(zhì)Through Relaxing Consistency to Improve ScalabilityCache的設(shè)計(jì)考慮緩存的一致性維護(hù)問題數(shù)據(jù)的具體讀寫比商品信息?庫(kù)存信息?用戶信息?賬戶余額?Backend數(shù)據(jù)變更頻率業(yè)務(wù)對(duì)一致性的要求使用何種緩存策略Write Through Vs Write Back Vs Write Back wi
13、th CompensateMemcached是Cache嗎?It Depends如果內(nèi)容有Backend?是!如果內(nèi)容沒有Backend?否!案例新浪微博的計(jì)數(shù)器?淘寶、當(dāng)當(dāng)?shù)挠涗浽诰彺嬷械馁?gòu)物車信息?主題數(shù)據(jù)庫(kù)基本問題調(diào)查關(guān)系數(shù)據(jù)庫(kù)的基本背景ACID基本概念解析范式問題解析(Normalization)數(shù)據(jù)庫(kù)的擴(kuò)展性淺析常見數(shù)據(jù)庫(kù)系統(tǒng)回顧數(shù)據(jù)存儲(chǔ)的基本需求存儲(chǔ)數(shù)據(jù)讀寫的性能(Hash查找、B*Tree查找)數(shù)據(jù)的可靠性(Durability)支持如何避免單點(diǎn)故障帶來的數(shù)據(jù)丟失(數(shù)據(jù)保護(hù))是否支持多維查詢(基于關(guān)系的查詢)對(duì)Replication的支持如何?支撐Scalability的復(fù)雜度M
14、ySQL (Innodb) & Oracle傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)支持多維索引Oracle的支持較好MySQL要到5.6才比較好的支持Index內(nèi)Filter較好的支持?jǐn)?shù)據(jù)的一致性成熟的MVCC設(shè)計(jì)成熟的Replication設(shè)計(jì)簡(jiǎn)單查詢的效率略低于MemcachedB*Tree的成本MVCC帶來的額外成本MySQL & Oracle在進(jìn)行數(shù)據(jù)庫(kù)擴(kuò)展時(shí)只能依賴于應(yīng)用層的拆分(即:Sharding)目前Sharding支持由TDDL實(shí)現(xiàn)維護(hù)成本會(huì)相對(duì)較高維護(hù)復(fù)雜度也比較高軟件的成本Oracle為商業(yè)軟件,有License費(fèi)用MySQL為開源軟件,沒有軟件本身的費(fèi)用Tair簡(jiǎn)介Tair主要技術(shù)點(diǎn)主要定位
15、為分布式Key/Value 緩存Data Server的具體實(shí)現(xiàn)Memory Engine的實(shí)現(xiàn)類似于MemCachedConfig Server的實(shí)現(xiàn)基于Consistent Hash實(shí)現(xiàn)集群的數(shù)據(jù)分布基于此做Replication做節(jié)點(diǎn)的故障檢測(cè)與剔除新加入節(jié)點(diǎn)時(shí)需要基于CHash做節(jié)點(diǎn)RebalanceHashmapSlab ListTair mdb內(nèi)存結(jié)構(gòu)Consistent Hash簡(jiǎn)介OceanBase系統(tǒng)架構(gòu)44主控服務(wù)器RootServer:主+備,數(shù)據(jù)定位/全局Schema/機(jī)器管理動(dòng)態(tài)數(shù)據(jù)服務(wù)器UpdateServer:主+備,實(shí)時(shí)修改(內(nèi)存+SSD)靜態(tài)數(shù)據(jù)服務(wù)器Chun
16、kServer:多臺(tái),靜態(tài)數(shù)據(jù)存儲(chǔ) (磁盤或SSD)動(dòng)態(tài)數(shù)據(jù)不斷地被合并到靜態(tài)ChunkServer中實(shí)現(xiàn)分布式存儲(chǔ)JavaClientChunkServerChunkServerChunkServerChunkServerRootServer/ UpdateServer(主)RootServer/ UpdateServer(備)OceanBase簡(jiǎn)介UpdateServer負(fù)責(zé)所有的寫入本質(zhì)上是一個(gè)讀寫分離的技術(shù)對(duì)實(shí)時(shí)更新數(shù)據(jù)的查詢可以在US的備庫(kù)進(jìn)行ChunkServer理論上可以無限擴(kuò)展查詢操作需要合并US+CS的結(jié)果Root Server的職責(zé)類似于Tair的Config Server相對(duì)于Tair的優(yōu)勢(shì)可以進(jìn)行Full Table掃描可以進(jìn)行范圍數(shù)據(jù)查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保潔工資合同范例
- 保修服務(wù)合同范例
- 二手灌裝設(shè)備出售合同范例
- 保障性住房合同范例
- 臨時(shí)合同范例杭州
- 凍庫(kù)建筑合同范例
- 養(yǎng)蜂協(xié)議合同范例
- 兩個(gè)人開店寫合同范例
- 借款合同范例手寫
- 上海 家政 中介合同范例
- 《石油工程事故案例分析》課件
- 金融科技概論-課件 第十五章 金融科技監(jiān)管與監(jiān)管科技
- 初級(jí)咖啡師資格理論考試題及答案
- 2025年中國(guó)廢舊輪胎循環(huán)利用行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2024年09月寧夏寧夏黃河農(nóng)村商業(yè)銀行系統(tǒng)社會(huì)招考筆試歷年參考題庫(kù)附帶答案詳解
- 招標(biāo)代理機(jī)構(gòu)選取突發(fā)情況應(yīng)急處理預(yù)案
- 深筋膜徒手松解療法
- 皮膚病學(xué)測(cè)試題含參考答案
- 《護(hù)理風(fēng)險(xiǎn)評(píng)估》課件
- 《野外求生》課件
- 駕校轉(zhuǎn)租合同范本
評(píng)論
0/150
提交評(píng)論