BeyondtheCache——阿里云Tair云內(nèi)存數(shù)據(jù)庫(kù)場(chǎng)景解讀

來(lái)源: 阿里云數(shù)據(jù)庫(kù)
作者:黃鵬程(馬格)
時(shí)間:2021-07-27
17535
阿里云Tair云原生內(nèi)存數(shù)據(jù)庫(kù)線(xiàn)上名字為阿里云數(shù)據(jù)庫(kù)Redis企業(yè)版(又稱(chēng)阿里云Tair),從2009年開(kāi)始正式承載集團(tuán)業(yè)務(wù),是一款歷經(jīng)磨練的企業(yè)級(jí)產(chǎn)品。它完全兼容Redis的數(shù)據(jù)結(jié)構(gòu)和通訊協(xié)議,包括API接口,并且在內(nèi)部逐步打磨的過(guò)程中,基于Tair研發(fā)云上托管云內(nèi)存數(shù)據(jù)庫(kù)。

一、Tair背景介紹

(一)什么是阿里云Tair云原生內(nèi)存數(shù)據(jù)庫(kù)


阿里云Tair云原生內(nèi)存數(shù)據(jù)庫(kù)線(xiàn)上名字為阿里云數(shù)據(jù)庫(kù)Redis企業(yè)版(又稱(chēng)阿里云Tair),從2009年開(kāi)始正式承載集團(tuán)業(yè)務(wù),是一款歷經(jīng)磨練的企業(yè)級(jí)產(chǎn)品。它完全兼容Redis的數(shù)據(jù)結(jié)構(gòu)和通訊協(xié)議,包括API接口,并且在內(nèi)部逐步打磨的過(guò)程中,基于Tair研發(fā)云上托管云內(nèi)存數(shù)據(jù)庫(kù)。



如上圖所示,Tair產(chǎn)品分為三個(gè)類(lèi)型,從性能到性?xún)r(jià)比有不同的產(chǎn)品排布,下面用1.0X表示開(kāi)源的Redis的性能與價(jià)格,從性能和價(jià)格上與三個(gè)類(lèi)型的Tair產(chǎn)品進(jìn)行對(duì)比。


  1. Tair性能增強(qiáng)型

    性能約為開(kāi)源Redis的兩倍,支持多種常見(jiàn)數(shù)據(jù)結(jié)構(gòu),在天貓/淘寶/高德/優(yōu)酷中大規(guī)模使用,并擁有任意時(shí)間點(diǎn)恢復(fù)/全球分布式/熱點(diǎn)散列等特性。


  2. Tair持久內(nèi)存型

    基于Intel傲騰持久內(nèi)存做的數(shù)據(jù)庫(kù),后文會(huì)重點(diǎn)闡述其特點(diǎn)。


  3. Tair容量存儲(chǔ)型

    直接對(duì)標(biāo)社區(qū)Pika等開(kāi)源存儲(chǔ)型Redis產(chǎn)品。然后因?yàn)槲覀儠?huì)用阿里云的高效的高效云盤(pán),所以說(shuō)整個(gè)的功能和性能都會(huì)比Pika強(qiáng)很多。



如上圖所示,從內(nèi)存存儲(chǔ)方面,Tair三個(gè)類(lèi)型的產(chǎn)品適應(yīng)不同的場(chǎng)景。



  • Tair性能增強(qiáng)型

1)數(shù)據(jù)讀寫(xiě)頻繁,要求低延遲,支持大連接;

2)成本相對(duì)不敏感,以滿(mǎn)足業(yè)務(wù)性能需求為主。


  • Tair持久內(nèi)存型

1)數(shù)據(jù)讀寫(xiě)較頻繁,延遲要求可稍微放寬,存儲(chǔ)數(shù)據(jù)量有一定較大容量要求;

2)成本控制較之熱數(shù)據(jù)要求更高。


  • Tair容量存儲(chǔ)型

1)數(shù)據(jù)讀寫(xiě)密集程度低,延遲要求不高,整體存儲(chǔ)容量要求高;

2)成本是最大考量因素。


(二)阿里云Tair面向業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)讓業(yè)務(wù)創(chuàng)新更容易


在業(yè)務(wù)方面,阿里云Tair與基于傳統(tǒng)Redis存在許多不一樣的地方,阿里云Tair業(yè)務(wù)結(jié)構(gòu)如下所示。



除此之外,阿里云Tair有以下優(yōu)點(diǎn):

1)高性能

性能增強(qiáng)型,流量上漲淡然處之,性能是開(kāi)源Redis的2倍。

2)持久化

持久內(nèi)存型,數(shù)據(jù)可靠,方便業(yè)務(wù)使用,不再擔(dān)心數(shù)據(jù)丟失。(RPO=0)

3)低成本

多種存儲(chǔ)介質(zhì),選擇最優(yōu)性?xún)r(jià)比,性?xún)r(jià)比高于ECS自建。

4)豐富數(shù)據(jù)模型

在社區(qū)Redis上提供了更多面向應(yīng)用的數(shù)據(jù)結(jié)構(gòu),應(yīng)用開(kāi)發(fā)更簡(jiǎn)便。

5)企業(yè)級(jí)能力

全球多活,數(shù)據(jù)閃回,混合多云(熱點(diǎn)散列)。


(三)阿里云Tair歷史



上圖為T(mén)air的發(fā)展歷史。從Tair1.0開(kāi)始,團(tuán)隊(duì)就孵化出了云Redis社區(qū)版和云Memcache,這是線(xiàn)上社區(qū)托管的兩個(gè)版本。


在Tair1.0的時(shí)候,就會(huì)整個(gè)孵化出來(lái),2.0逐步上云,3.0會(huì)孵化出來(lái)一款叫GDB的產(chǎn)品,是一款線(xiàn)上的圖數(shù)據(jù)庫(kù)。


再往下是Tair(Redis企業(yè)版/Tair 3.0),集團(tuán)和云上是同一個(gè)版本,有很多種形態(tài)來(lái)支持用戶(hù)在各種業(yè)務(wù)場(chǎng)景下的需求。



二、Tair功能介紹


(一)做一個(gè)不丟數(shù)據(jù)的內(nèi)存數(shù)據(jù)庫(kù)—Tair持久內(nèi)存型


我們希望做一個(gè)不丟數(shù)據(jù)的數(shù)據(jù)庫(kù),做法是通過(guò)新硬件和新軟件來(lái)進(jìn)行。


1.新硬件



  • 引入英特爾? 傲騰? 數(shù)據(jù)中心級(jí)持久內(nèi)存;

  • 與DRAM內(nèi)存相近的性能表現(xiàn),而且其大容量和非易失性的特性還可幫助系統(tǒng)獲得更優(yōu)的可用性;

  • 它相比于DRAM內(nèi)存的成本和容量?jī)?yōu)勢(shì),也可幫助客戶(hù)有效地降低總擁有成本。



上圖為存儲(chǔ)介質(zhì)圖,速度延遲從上到下逐步增大,相反,容量逐步減少,成本逐步降低。Storage Class Memory處于中間,性?xún)r(jià)比較高。


2.新軟件


  • 模式選擇

新軟件的開(kāi)發(fā)模式方案有兩種,分別是內(nèi)存模式(Memory Mode)與應(yīng)用程序直接訪(fǎng)問(wèn)模式(App Direct Mode)。



在內(nèi)存模式下,應(yīng)用和OS將其視為易失性?xún)?nèi)存池,雖對(duì)應(yīng)用透明,但掉電即失,因此不采用。


在應(yīng)用程序直接訪(fǎng)問(wèn)模式下,持久內(nèi)存和 DRAM充當(dāng)獨(dú)立內(nèi)存資源,通過(guò)構(gòu)建符合Redis協(xié)議和數(shù)據(jù)結(jié)構(gòu)的軟件利用兩塊存儲(chǔ)資源構(gòu)建兼容Redis、具備命令級(jí)持久化能力的內(nèi)存數(shù)據(jù)庫(kù)。


  • 全新的挑戰(zhàn)



我們選擇重新寫(xiě)兼容Redis的東西,而不是在Redis基礎(chǔ)上進(jìn)行更改,是因?yàn)樾萝浖兄碌奶魬?zhàn):


1)替代原有的內(nèi)存分配器,同時(shí)要保證內(nèi)存分配器元數(shù)據(jù)的持久化;

2)Redis數(shù)據(jù)結(jié)構(gòu)與索引的持久化要保持一致性;

3)持久內(nèi)存和易失內(nèi)存如何協(xié)同工作,讓整個(gè)數(shù)據(jù)庫(kù)高性能工作,同時(shí)還具備強(qiáng)大的持久化能力。


3.產(chǎn)品化能力


上文結(jié)合軟硬件的能力闡述了如何去構(gòu)建持久化內(nèi)存的形態(tài),下面可以看一下所帶來(lái)的成果。




  • 消除aofrewrite與fsync的無(wú)Fork設(shè)計(jì),服務(wù)更順滑,P95延時(shí)較之內(nèi)存版Redis更低更穩(wěn)定;

  • 讀寫(xiě)性能吞吐為內(nèi)存版Redis的90%以上。




  • 原生命令級(jí)持久化能力,操作寫(xiě)入即持久化;

  • 緩存主存合一成為可能,成本更低,架構(gòu)更優(yōu)雅。


4.應(yīng)用場(chǎng)景


應(yīng)用場(chǎng)景主要分為如下兩種。


場(chǎng)景一:大數(shù)據(jù)量、高性能、成本的綜合選型考慮


  • 機(jī)器學(xué)習(xí)平臺(tái)、推薦系統(tǒng)等計(jì)算數(shù)據(jù)對(duì)性能和容量的要求很高;


  • 全內(nèi)存又使得成本壓力巨大;


  • 可采用Tair持久內(nèi)存型以有效降低成本,并能夠保持高性能運(yùn)行;

  • 同時(shí)用戶(hù)也無(wú)需為降本而綜合使用其他數(shù)據(jù)存儲(chǔ),有效地平衡了系統(tǒng)復(fù)雜度與成本。


場(chǎng)景二:用作持久化數(shù)據(jù)存儲(chǔ)


  • 游戲、直播、數(shù)據(jù)分析中大數(shù)據(jù)結(jié)果集對(duì)外提供查詢(xún)服務(wù)等場(chǎng)景可以使用;


  • 可采用Tair持久內(nèi)存型作為數(shù)據(jù)最終的存儲(chǔ);


  • 對(duì)比緩存+主存的兩層架構(gòu),數(shù)據(jù)同樣可靠;

  • 性?xún)r(jià)比更高,代碼更簡(jiǎn)化,架構(gòu)更優(yōu)雅。


(二)做一個(gè)具備時(shí)光機(jī)能力的數(shù)據(jù)庫(kù)--數(shù)據(jù)閃回



我們希望這個(gè)內(nèi)存數(shù)據(jù)庫(kù)具備有時(shí)光機(jī)能力。時(shí)光機(jī)能力表示可以將數(shù)據(jù)恢復(fù)到過(guò)去指定的任何時(shí)間點(diǎn),也稱(chēng)為數(shù)據(jù)閃回,它有如下兩大特點(diǎn):


  • 七天內(nèi)任意時(shí)間點(diǎn)的數(shù)據(jù)恢復(fù)

1)Backup/Restore的終極形態(tài)

2)支持按秒級(jí)的數(shù)據(jù)恢復(fù)(可支持到按條)

3)防止刪庫(kù)跑路場(chǎng)景

4)Clone & Switching:隨時(shí)回切


  • 根據(jù)按照指定Key或者Key Glob Pattern進(jìn)行原地?cái)?shù)據(jù)部分恢復(fù)

1)靈活應(yīng)對(duì)部分?jǐn)?shù)據(jù)異常

2)其余未指定數(shù)據(jù)不變化

3)游戲數(shù)據(jù)回檔實(shí)現(xiàn)


(三)做一個(gè)全球多地寫(xiě)入的數(shù)據(jù)庫(kù)--全球多活


1.基本概念


我們希望數(shù)據(jù)庫(kù)能夠多地寫(xiě)入,把多地的內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行多活操作,用戶(hù)可以在多地訪(fǎng)問(wèn)與寫(xiě)入,我們幫用戶(hù)做數(shù)據(jù)按序同步。



2. 三地六向同步



  • 全區(qū)全服同時(shí)在線(xiàn),解決漫游(roaming)和DNS漂移問(wèn)題。

  • 數(shù)據(jù)本地訪(fǎng)問(wèn)(locally data access)的流暢性。

  • 單元化:獨(dú)立部署,區(qū)域容災(zāi),按需調(diào)度。

  • 數(shù)據(jù)的高可靠和性能提升。


3. 低時(shí)延SLA保障



  • 推送模式(Push),Latency= T1 (binlog落盤(pán)時(shí)延)+ T2 (Replicator發(fā)現(xiàn)時(shí)延) + T3 (Apply時(shí)延)

1)整體看,T1 + T2 穩(wěn)定在10ms,最差100ms;T3基本上時(shí)延是網(wǎng)絡(luò)RTT。

2)忙時(shí)下不敏感,replicator具備獨(dú)立的資源,點(diǎn)到點(diǎn)同步通道帶寬穩(wěn)定。


  • 適合寫(xiě)入量大,對(duì)平均時(shí)延要求高的客戶(hù)。

  • 目前全球分布式緩存只能做3地6向。

  • 適合跨域多活及單元化業(yè)務(wù)(阿里內(nèi)部經(jīng)驗(yàn))。

  • Tair全球同步時(shí)延測(cè)試白皮書(shū):

https://help.aliyun.com/document_detail/199010.html


4. Session場(chǎng)景



Session的容災(zāi)至關(guān)重要

  • 隨著業(yè)務(wù)擴(kuò)展,session訪(fǎng)問(wèn)壓力幾何級(jí)數(shù)增長(zhǎng)。

  • 對(duì)抖動(dòng)敏感,遠(yuǎn)距離訪(fǎng)問(wèn)體驗(yàn)差。

  • 單元化部署,全球化部署。

  • 除去容災(zāi)(跨域備份),還要能就近讀寫(xiě)(跨域雙活,多活)。


5. 游戲場(chǎng)景



架構(gòu)特點(diǎn):玩家可就近接入,本身邏輯就近計(jì)算數(shù)據(jù)讀取,基本不存在數(shù)據(jù)一致性問(wèn)題,靈活調(diào)整分布式節(jié)點(diǎn)。


可以靈活跨地域部署,數(shù)據(jù)通過(guò)Tair同步延遲根據(jù)網(wǎng)絡(luò)速度決定通常在100ms以下。


場(chǎng)景:聊天室,彈幕信息同步;跨服對(duì)戰(zhàn);全球道具商城。


6.出行場(chǎng)景



Tair也在高德地圖中深度使用,并解決了出行場(chǎng)景的一些問(wèn)題。


使用前:導(dǎo)航時(shí)地理位置信息推送問(wèn)題

  1. DNS漂移是一個(gè)邊界效應(yīng),通常大概影響邊界上5%-7%的用戶(hù)。

  2. 在導(dǎo)航中跨越邊界時(shí),會(huì)大量出現(xiàn)交叉訪(fǎng)問(wèn)不同數(shù)據(jù)區(qū)的場(chǎng)景;業(yè)務(wù)邏輯復(fù)雜,可靠性低,用戶(hù)體驗(yàn)差。


使用后:高德交通三地六向同步(Tair only)

  1. Redis-enterprise跨域多活提供百萬(wàn)OPS每秒的數(shù)據(jù)同步。

  2. 交通在三地都可高速寫(xiě)入/訪(fǎng)問(wèn);極高性能的優(yōu)勢(shì)提供流暢的用戶(hù)體驗(yàn)。

  3. 用戶(hù)可以靈活的在SDK層控制讀寫(xiě),比例等。


(四)做一個(gè)有計(jì)算的內(nèi)存數(shù)據(jù)庫(kù)


1. TairCPC高精度計(jì)數(shù)



TairCPC是一種數(shù)據(jù)的壓縮算法(sketches)的內(nèi)存實(shí)現(xiàn),可以利用很小的空間對(duì)采樣數(shù)據(jù)做高性能的計(jì)算,適合在實(shí)時(shí)和流式計(jì)算場(chǎng)景下做高性能的風(fēng)控和安全場(chǎng)景。


  • 主要特性

1)內(nèi)存占用低

2)增量讀寫(xiě),IO最小化

3)毫秒級(jí)高性能去重

4)超高去重精度

5)誤差率穩(wěn)定收斂


  • 適用場(chǎng)景

1)想以較低的內(nèi)存實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的去重計(jì)算;

2)容忍一定的四舍五入的誤差率;

3)適用于實(shí)時(shí)計(jì)算的滾窗和滑窗去重。


2. TairTS時(shí)序數(shù)據(jù)處理



TairTS是基于Redis Module開(kāi)發(fā)的時(shí)序數(shù)據(jù)結(jié)構(gòu),提供低時(shí)延高并發(fā)的內(nèi)存讀寫(xiě)訪(fǎng)問(wèn),以及快速的過(guò)濾聚合查詢(xún)功能。將存儲(chǔ)與計(jì)算集于一身,極大地簡(jiǎn)化用戶(hù)處理時(shí)序數(shù)據(jù)的流程,結(jié)合Tair持久內(nèi)存型單集群最大規(guī)??蛇_(dá)65T。


  • 主要特性

1)TairTS相對(duì)于TSDB類(lèi)傳統(tǒng)時(shí)序數(shù)據(jù)庫(kù),可提供更快的寫(xiě)入性能,并提供數(shù)10倍的查詢(xún)性能。

2)針對(duì)小規(guī)模數(shù)據(jù)場(chǎng)景,TairTS可將批量查詢(xún)與聚合計(jì)算集成到單條命令中,減少網(wǎng)絡(luò)交互,實(shí)現(xiàn)毫秒級(jí)響應(yīng)。

3)針對(duì)大規(guī)模數(shù)據(jù)場(chǎng)景,可利用索引命令,將大規(guī)模數(shù)據(jù),分批查詢(xún)與聚合,實(shí)現(xiàn)秒級(jí)響應(yīng)。


  • 適用場(chǎng)景

1)監(jiān)控?cái)?shù)據(jù)的存儲(chǔ)與計(jì)算

2)車(chē)聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)實(shí)時(shí)IOT數(shù)據(jù)處理

3)APM秒級(jí)監(jiān)控等



三、面向未來(lái)



最后談一下未來(lái)面對(duì)的事情,關(guān)注云產(chǎn)品的人可能都知道存儲(chǔ)計(jì)算分離,我們希望在這基礎(chǔ)上能再進(jìn)行一層分離。將內(nèi)存也分離出來(lái),做一個(gè)大的內(nèi)存存儲(chǔ)池。希望我們的再分離一層,就是把內(nèi)存也分離出來(lái),因?yàn)楝F(xiàn)在可能是一個(gè)大的存儲(chǔ)池,為用戶(hù)提供更加彈性的服務(wù)。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于阿里云數(shù)據(jù)庫(kù),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
阿里云助力《誅仙世界》端游正式開(kāi)服!
阿里云助力《誅仙世界》端游正式開(kāi)服!
近?,完美世界游戲歷時(shí)多年打造的新國(guó)?仙俠MMORPG端游《誅仙世界》在阿?云上正式開(kāi)服。
阿里云
云服務(wù)
2024-12-292024-12-29
一文詳解阿里云AI大基建
一文詳解阿里云AI大基建
面向AI時(shí)代,阿里云基礎(chǔ)設(shè)施是如何創(chuàng)新與發(fā)展的?計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、服務(wù)器、集群、可觀測(cè)等,阿里云全新升級(jí)的AI Infra到底有哪些重磅更新?
阿里云
云服務(wù)
2024-11-022024-11-02
AI時(shí)代云安全新范式,阿里云安全能力全線(xiàn)升級(jí)!
AI時(shí)代云安全新范式,阿里云安全能力全線(xiàn)升級(jí)!
AI時(shí)代,云安全面臨著新的挑戰(zhàn),不僅要持續(xù)面對(duì)以往的傳統(tǒng)問(wèn)題,更需要全新理念落地于產(chǎn)品設(shè)計(jì)、技術(shù)演進(jìn)、架構(gòu)設(shè)計(jì),才能實(shí)現(xiàn)效果、性能、和成本的最優(yōu)解。
AI
阿里云
云服務(wù)
2024-09-272024-09-27
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
近日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《中國(guó)大數(shù)據(jù)平臺(tái)市場(chǎng)份額,2023:數(shù)智融合時(shí)代的真正到來(lái)》報(bào)告——2023年中國(guó)大數(shù)據(jù)平臺(tái)公有云服務(wù)市場(chǎng)規(guī)模達(dá)72.2億元人民幣,其中阿里巴巴市場(chǎng)份額保持領(lǐng)先,占比達(dá)40.2%,連續(xù)四年排名第一。
阿里云
云服務(wù)
2024-09-182024-09-18
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪(fǎng)
投稿采訪(fǎng)
出海管家
出海管家