當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 物聯(lián)網(wǎng)技術(shù)文庫(kù)
[導(dǎo)讀] 回看這幾年,分布式系統(tǒng)領(lǐng)域出現(xiàn)了很多新東西,特別是云和 AI 的崛起,讓這個(gè)過(guò)去其實(shí)不太 sexy 的領(lǐng)域一下到了風(fēng)口浪尖,在這期間誕生了很多新技術(shù)、新思想,讓這個(gè)古老的領(lǐng)域重新煥發(fā)生機(jī)。站在

回看這幾年,分布式系統(tǒng)領(lǐng)域出現(xiàn)了很多新東西,特別是云和 AI 的崛起,讓這個(gè)過(guò)去其實(shí)不太 sexy 的領(lǐng)域一下到了風(fēng)口浪尖,在這期間誕生了很多新技術(shù)、新思想,讓這個(gè)古老的領(lǐng)域重新煥發(fā)生機(jī)。站在 2010s 的尾巴上,我想跟大家一起聊聊分布式系統(tǒng)令人振奮的進(jìn)化路程,以及談一些對(duì) 2020s 的大膽猜想。

無(wú)論哪個(gè)時(shí)代,存儲(chǔ)都是一個(gè)重要的話(huà)題,今天先聊聊數(shù)據(jù)庫(kù)。在過(guò)去的幾年,數(shù)據(jù)庫(kù)技術(shù)上出現(xiàn)了幾個(gè)很明顯的趨勢(shì)。

存儲(chǔ)和計(jì)算進(jìn)一步分離

我印象中最早的存儲(chǔ) - 計(jì)算分離的嘗試是 Snowflake,Snowflake 團(tuán)隊(duì)在 2016 年發(fā)表的論文《 The Snowflake Elastic Data Warehouse 》是近幾年我讀過(guò)的最好的大數(shù)據(jù)相關(guān)論文之一,尤其推薦閱讀。Snowflake 的架構(gòu)關(guān)鍵點(diǎn)是在無(wú)狀態(tài)的計(jì)算節(jié)點(diǎn) + 中間的緩存層 + S3 上存儲(chǔ)數(shù)據(jù),計(jì)算并不強(qiáng)耦合緩存層,非常符合云的思想。從最近 AWS 推出的 RedShift 冷熱分離架構(gòu)來(lái)看,AWS 也承認(rèn) Snowflake 這個(gè)搞法是先進(jìn)生產(chǎn)力的發(fā)展方向。另外這幾年關(guān)注數(shù)據(jù)庫(kù)的朋友不可能不注意到 Aurora。不同于 Snowflake,Aurora 應(yīng)該是第一個(gè)將存儲(chǔ) - 計(jì)算分離的思想用在 OLTP 數(shù)據(jù)庫(kù)中的產(chǎn)品,并大放異彩。Aurora 的成功在于將數(shù)據(jù)復(fù)制的粒度從 Binlog 降低到 Redo Log ,極大地減少?gòu)?fù)制鏈路上的 IO 放大。而且前端復(fù)用了 MySQL,基本做到了 100% 的應(yīng)用層 MySQL 語(yǔ)法兼容,并且托管了運(yùn)維,同時(shí)讓傳統(tǒng)的 MySQL 適用范圍進(jìn)一步拓展,這在中小型數(shù)據(jù)量的場(chǎng)景下是一個(gè)很省心的方案。

雖然 Aurora 獲得了商業(yè)上的成功,但是從技術(shù)上,我并不覺(jué)得有很大的創(chuàng)新。熟悉 Oracle 的朋友第一次見(jiàn) Aurora 的架構(gòu)可能會(huì)覺(jué)得和 RAC 似曾相識(shí)。Oracle 大概在十幾年前就用了類(lèi)似的方案,甚至很完美的解決了 Cache Coherence 的問(wèn)題。另外,Aurora 的 MulTI-Master 還有很長(zhǎng)的路要走,從最近在 ReInvent 上的說(shuō)法來(lái)看,目前 Aurora 的 MulTI-Master 的主要場(chǎng)景還是作為 Single Writer 的高可用方案,本質(zhì)的原因應(yīng)該是目前 MulTI-Writer 采用樂(lè)觀(guān)沖突檢測(cè),沖突檢測(cè)的粒度是 Page,在沖突率高的場(chǎng)合會(huì)帶來(lái)很大的性能下降。

我認(rèn)為 Aurora 是一個(gè)很好的迎合 90% 的公有云互聯(lián)網(wǎng)用戶(hù)的方案:100% MySQL 兼容,對(duì)一致性不太關(guān)心,讀遠(yuǎn)大于寫(xiě),全托管。但同時(shí),Aurora 的架構(gòu)決定了它放棄了 10% 有極端需求的用戶(hù),如全局的 ACID 事務(wù) + 強(qiáng)一致,Hyper Scale(百 T 以上,并且業(yè)務(wù)不方便拆庫(kù)),需要實(shí)時(shí)的復(fù)雜 OLAP。這類(lèi)方案我覺(jué)得類(lèi)似 TIDB 的以 Shared-nothing 為主的設(shè)計(jì)才是唯一的出路。作為一個(gè)分布式系統(tǒng)工程師,我對(duì)任何不能水平擴(kuò)展的架構(gòu)都會(huì)覺(jué)得不太優(yōu)雅。

分布式 SQL 數(shù)據(jù)庫(kù)登上舞臺(tái),ACID 全面回歸

回想幾年前 NoSQL 最風(fēng)光的時(shí)候,大家恨不得將一切系統(tǒng)都使用 NoSQL 改造,雖然易用性、擴(kuò)展性和性能都不錯(cuò),但是多數(shù) NoSQL 系統(tǒng)都拋棄掉了數(shù)據(jù)庫(kù)最重要的一些東西,例如 ACID 約束,SQL 等等。NoSQL 的主要推手是互聯(lián)網(wǎng)公司,互聯(lián)網(wǎng)公司的簡(jiǎn)單業(yè)務(wù)加上超強(qiáng)的工程師團(tuán)隊(duì),NoSQL 丟掉的東西當(dāng)然能用某些工具簡(jiǎn)單搞定。但最近幾年大家漸漸發(fā)現(xiàn)低垂的果實(shí)基本上沒(méi)有了,剩下的都是硬骨頭。

最好的例子就是作為 NoSQL 的開(kāi)山鼻祖,Google 第一個(gè)搞了 NewSQL (Spanner 和 F1)。在后移動(dòng)時(shí)代,業(yè)務(wù)變得越來(lái)越復(fù)雜,要求越來(lái)越實(shí)時(shí),同時(shí)對(duì)于數(shù)據(jù)的需求也越來(lái)越強(qiáng)。尤其對(duì)于一些金融機(jī)構(gòu)來(lái)說(shuō),一方面產(chǎn)品面臨著互聯(lián)網(wǎng)化,一方面不管是出于監(jiān)管的要求還是業(yè)務(wù)本身的需求,ACID 是很難繞開(kāi)的。更現(xiàn)實(shí)的是,大多數(shù)傳統(tǒng)公司并沒(méi)有像頂級(jí)互聯(lián)網(wǎng)公司的人才供給,大量歷史系統(tǒng)基于 SQL 開(kāi)發(fā),完全遷移到 NoSQL 上肯定不現(xiàn)實(shí)。

在這個(gè)背景下,分布式關(guān)系型數(shù)據(jù)庫(kù),我認(rèn)為這是我們這一代人,在開(kāi)源數(shù)據(jù)庫(kù)這個(gè)市場(chǎng)上最后一個(gè) missing part,終于慢慢流行起來(lái)。這背后的很多細(xì)節(jié)由于篇幅的原因我就不介紹,推薦閱讀 PingCAP TiFlash 技術(shù)負(fù)責(zé)人 maxiaoyu 的一篇文章《從大數(shù)據(jù)到數(shù)據(jù)庫(kù)》,對(duì)這個(gè)話(huà)題有很精彩的闡述。

云基礎(chǔ)設(shè)施和數(shù)據(jù)庫(kù)的進(jìn)一步整合

在過(guò)去的幾十年,數(shù)據(jù)庫(kù)開(kāi)發(fā)者都像是在單打獨(dú)斗,就好像操作系統(tǒng)以下的就完全是黑盒了,這個(gè)假設(shè)也沒(méi)錯(cuò),畢竟軟件開(kāi)發(fā)者大多也沒(méi)有硬件背景。另外如果一個(gè)方案過(guò)于綁定硬件和底層基礎(chǔ)設(shè)施,必然很難成為事實(shí)標(biāo)準(zhǔn),而且硬件非常不利于調(diào)試和更新,成本過(guò)高,這也是我一直對(duì)定制一體機(jī)不是太感興趣的原因。但是云的出現(xiàn),將 IaaS 的基礎(chǔ)能力變成了軟件可復(fù)用的單元,我可以在云上按需租用算力和服務(wù),這會(huì)給數(shù)據(jù)庫(kù)開(kāi)發(fā)者在設(shè)計(jì)系統(tǒng)的時(shí)候帶來(lái)更多的可能性,舉幾個(gè)例子:

1、 Spanner 原生的 TrueTime API 依賴(lài)原子鐘和 GPS 時(shí)鐘,如果純軟件實(shí)現(xiàn)的話(huà),需要犧牲的東西很多(例如 CockroachDB 的 HLC 和 TiDB 的改進(jìn)版 Percolator 模型,都是基于軟件時(shí)鐘的事務(wù)模型)。但是長(zhǎng)期來(lái)看,不管是 AWS 還是 GCP 都會(huì)提供類(lèi)似 TrueTime 的高精度時(shí)鐘服務(wù),這樣一來(lái)我們就能更好的實(shí)現(xiàn)低延遲長(zhǎng)距離分布式事務(wù)。

2、 可以借助 Fargate + EKS 輕量級(jí)容器 + Managed K8s 的服務(wù),讓數(shù)據(jù)庫(kù)應(yīng)對(duì)突發(fā)熱點(diǎn)小表讀的場(chǎng)景(這個(gè)場(chǎng)景幾乎是 Shared-Nothing 架構(gòu)的老大難問(wèn)題),比如在 TiDB 中通過(guò) Raft Learner 的方式,配合云的 Auto Scaler 快速在新的容器中創(chuàng)建只讀副本,而不是僅僅通過(guò) 3 副本提供服務(wù);比如動(dòng)態(tài)起 10 個(gè) pod,給熱點(diǎn)數(shù)據(jù)創(chuàng)建 Raft 副本(這是我們將 TiKV 的數(shù)據(jù)分片設(shè)計(jì)得那么小的一個(gè)重要原因),處理完突發(fā)的讀流量后再銷(xiāo)毀這些容器,變成 3 副本。

3、冷熱數(shù)據(jù)分離,這個(gè)很好理解,將不常用的數(shù)據(jù)分片,分析型的副本,數(shù)據(jù)備份放到 S3 上,極大地降低成本。

4、 RDMA/CPU/ 超算 as a Service,任何云上的硬件層面的改進(jìn),只要暴露 API,都是可以給軟件開(kāi)發(fā)者帶來(lái)新的好處。

例子還有很多,我就不一一列舉了。總之我的觀(guān)點(diǎn)是云服務(wù) API 的能力會(huì)像過(guò)去的代碼標(biāo)準(zhǔn)庫(kù)一樣,是大家可以依賴(lài)的東西,雖然現(xiàn)在公有云的 SLA 仍然不夠理想,但是長(zhǎng)遠(yuǎn)上看,一定是會(huì)越來(lái)越完善的。

所以,數(shù)據(jù)庫(kù)的未來(lái)在哪里?是更加的垂直化還是走向統(tǒng)一?對(duì)于這個(gè)問(wèn)題,我同意這個(gè)世界不存在銀彈,但是我也并不像我的偶像,AWS CTO Vogels 博士那么悲觀(guān),相信未來(lái)是一個(gè)割裂的世界(AWS 恨不得為了每個(gè)細(xì)分的場(chǎng)景設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù))。過(guò)度地細(xì)分會(huì)加大數(shù)據(jù)在不同系統(tǒng)中流動(dòng)的成本。解決這個(gè)問(wèn)題有兩個(gè)關(guān)鍵:

數(shù)據(jù)產(chǎn)品應(yīng)該切分到什么粒度?

用戶(hù)可不可以不用知道背后發(fā)生了什么?

第一個(gè)問(wèn)題并沒(méi)有一個(gè)明確的答案,但是我覺(jué)得肯定不是越細(xì)越好的,而且這個(gè)和 Workload 有關(guān),比如如果沒(méi)有那么大量的數(shù)據(jù),直接在 MySQL 或者 PostgreSQL 上跑分析查詢(xún)其實(shí)一點(diǎn)問(wèn)題也沒(méi)有,沒(méi)有必要非去用 Redshift。雖然沒(méi)有直接的答案,但是我隱約覺(jué)得第一個(gè)問(wèn)題和第二個(gè)問(wèn)題是息息相關(guān)的,畢竟沒(méi)有銀彈,就像 OLAP 跑在列存儲(chǔ)引擎上一定比行存引擎快,但是對(duì)用戶(hù)來(lái)說(shuō)其實(shí)可以都是 SQL 的接口。

SQL 是一個(gè)非常棒的語(yǔ)言,它只描述了用戶(hù)的意圖,而且完全與實(shí)現(xiàn)無(wú)關(guān),對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),其實(shí)可以在 SQL 層的后面來(lái)進(jìn)行切分,在 TiDB 中,我們引入 TiFlash 就是一個(gè)很好的例子。動(dòng)機(jī)很簡(jiǎn)單:

1、用戶(hù)其實(shí)并不是數(shù)據(jù)庫(kù)專(zhuān)家,你不能指望用戶(hù)能 100% 在恰當(dāng)?shù)臅r(shí)間使用恰當(dāng)?shù)臄?shù)據(jù)庫(kù),并且用對(duì)。

2、數(shù)據(jù)之間的同步在一個(gè)系統(tǒng)之下才能盡量保持更多的信息,例如,TiFlash 能保持 TiDB 中事務(wù)的 MVCC 版本,TiFlash 的數(shù)據(jù)同步粒度可以小到 Raft Log 的級(jí)別。另外一些新的功能仍然可以以 SQL 的接口對(duì)外提供,例如全文檢索,用 SQL 其實(shí)也可以簡(jiǎn)潔的表達(dá)。這里我就不一一展開(kāi)了。

我其實(shí)堅(jiān)信系統(tǒng)一定是朝著更智能、更易用的方向發(fā)展的,現(xiàn)在都 21 世紀(jì)了,你是希望每天拿著一個(gè) Nokia 再背著一個(gè)相機(jī),還是直接一部手機(jī)搞定?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉