為余勢負天工背,雲原生內存數據庫Tair助力用戶體驗優化


簡介:作為雙11大促承載流量洪峰的利器,Tair支撐了電商交易核心體驗場景。不僅在數十億QPS的峰值下保持着亞毫秒級別的順滑延遲,同時在電商交易核心體驗場景上也做出了技術創新。

image.png

作者 | 漠冰
來源 | 阿里技術公眾號

作為雙11大促承載流量洪峰的利器,Tair支撐了電商交易核心體驗場景。不僅在數十億QPS的峰值下保持着亞毫秒級別的順滑延遲,同時在電商交易核心體驗場景上也做出了技術創新。

一 前言

2021年雙十一,是天貓的第十三次雙十一,也是 Tair 的第十三次雙十一。每個參與備戰的 Tair 同學各有不同,有的同學是第一次,感受到了技術大團建的獨特氛圍;有的同學稍多點,集齊了七件戰袍來召喚神龍。今年是我經歷過的最緊張的一次:備戰過程跌宕起伏,今年上線的新產品壓測過程不太順利;同時也是經歷過的最暖的一次:在業務伙伴們鼎力支持下,團隊兄弟們並肩作戰,最終做到了“順滑如絲安穩如磐”。

二 背景

Tair 從2009年4月誕生開始,經歷了多次迭代,為豐富的業務場景支持了不同的引擎。其中 MDB / LDB 是發展時間最長的子產品,也依然是今天雙十一的絕對主力,順滑地承擔了雙十一流量洪峰,壓測階段也表現良好。這背后是成熟的內核能力對場景的全面覆蓋,以及不斷迭代的產品能力對維護效率的提升。當然,擁有 10K+ 實例的數據庫產品是離不開系統 Owner 們精進的專業能力、對產品運行的關注、對需求的快速響應。

image.png

除了產品自身的穩定,Tair MDB / LDB 還是 Tair產品線其它所有產品發展的基石,比如Tair MDB With PMem,作為Tair 在持久內存上的第一個里程碑,后面迭代出了2020年雲棲大會發布的 Tair 持久內存型;在今年雙十一中,基於持久內存架構的 TairSQL,擴寬了內存數據庫Tair支持的計算場景。Tair 持久內存型在今年雙十一的不同場景中發揮了重要作用,下面的章節詳細介紹。

image.png

三 Tair 持久內存型

Tair 持久內存型是在阿里雲官網公開售賣的提供大容量、兼容 Redis 的內存數據庫產品,同時也為阿里巴巴集團內核心應用提供服務。單實例成本對比 Redis 社區版最高可降低30%,且數據持久化不依賴傳統磁盤,保證每個操作持久化的同時提供近乎 Redis 社區版的吞吐和延時,極大提升業務數據可靠性。

Tair 持久內存型所用的存儲介質英特爾® 傲騰™ 持久內存(Optane PMem)是兼具出色的內存與存儲性能的解決方案,將高性價比的大容量內存與對數據持久性的支持巧妙地結合在一起,可以將更多數據保存在更靠近CPU的地方,加速大內存計算,加快數據庫重啟時間並減少I/O, 降低大內存節點的功耗,並在斷電時保護數據。

英特爾®傲騰™持久內存彌補了傳統SSD和DRAM之間的空白,以創新的技術提供獨特的操作模式,滿足針對各種工作負載的需求,特別是從雲到數據庫,再到內存分析,虛擬化基礎設施等數據密集型和計算密集型工作負載,助力從更大的數據集中獲取更深入的洞察。

2020年雲棲大會發布之后,通過服務越來越多雲上和集團內的用戶場景,Tair 持久內存型收集的用戶反饋對支持的場景范圍、訪問性能、性價比等方面都提出了更高的要求。基於這些需求,Tair 持久內存型攻關了核心優化技術,讓數據在 DRAM 、持久內存之間動態自適應移動,確保用戶索引占用空間、數據區占用空間維持在固定比例范圍內,滿足了不同用戶場景下的數據存儲需求。

同時,Tair 持久內存型與 Aliyun Linux 操作系統內核技術深度結合,兼容了主備復制、實時備份等場景對於數據快照的需求,並大幅度降低了超大內存占用空間下實時快照的延時影響。除了覆蓋更多支持場景和進行高頻場景的性能優化,在提供更高性價比方面,Tair 持久內存型精簡了自主研發的持久內存存儲結構的元數據占用空間,並針對 List、Hash 等用戶高頻使用的數據結構進行精細化的透明壓縮,在維持數據持久化性能穩定下,實現1-2倍的數據壓縮率,大幅降低了數據持久化版本的硬件成本。

Tair 持久內存型除了在 Redis 通用場景上深耕細作持續優化,也拓展對於成本,數據一致性,低延時和容量的綜合要求很高的諸如了在廣告領域和特征存儲場景上也大放異彩。同時2021年雙十一中,在兩個不同的用戶場景做出了創新,幫助應用在系統穩定性、性價比、體驗等方面得到了顯著提升。首先介紹在風控場景中起到了重要作用的 TairCPC數據模型。

1 TairCPC

在2020年雙十一中首次登場的 TairCPC,今年被吸納進入Tair持久內存型產品,在雙十一的風控場景起到了重要作用。

TairCPC 提供的聚合算子 Sketches 化能力,以 Module 的形式下沉到存儲引擎內部,可以利用很小的空間對采樣數據做高性能的計算,用戶增量寫入后直接返回實時計算結果。使用 TairCPC 的風控業務,作為集團交易鏈路核心模塊,直接影響線上整個交易的安全性,該產品最核心的實時計算鏈路進行實時風控的場景使用了 TairCPC。

今年雙十一這個場景在 Tair 持久內存型的助力下,節省了約1/3的存儲空間,加上持久內存的成本優勢,讓用戶成本大大降低。針對 TairCPC,Tair 持久內存型進行了大量的性能優化,使得眾多場景下性能與內存相當,在慢查的性能上提升了一個數量級,有效的提升了系統穩定性。在幾乎不影響性能的情況下,實現了數據的完全持久化(RPO=0)。

2 TairSQL

2021雙十一 Tair 在核心檢驗場景做出的技術創新,來源於一款內部代號為 TairSQL 的子系統。雙11高峰期,用戶下單自動領券,以及交易成功后資產的核銷都會為數據庫系統帶來相應的寫入流量,毫秒級別的寫入延時必須維持在較低水平才能保證用戶在商品搜索、詳情展示等導購場景感受到到手價格的一致性變化。

價格一致性場景對於數據庫產品的技術挑戰簡單來講就是:讀寫負載高,延時要求苛刻。為了應對這個場景的技術挑戰,下面的章節簡單介紹下 TairSQL 使用的內核技術。

image.png

TairSQL內核技術

針對雙十一的業務特征,TairSQL 做了持久內存數據存儲改造、客戶端連接開銷降低、集群初始化加速、內存使用優化等和性價比、穩定性相關的工作,但是服務於高吞吐低延遲的場景,主要得益於持久內存存儲、高效事務處理模型、輕量級用戶接口訪問等幾個核心特性:

  • 持久內存數據存儲,使用持久內存作為數據最終存儲介質,降低了訪問鏈路上的 IO 延遲,無需再進行傳統數據庫產品耗時的緩存、磁盤上的數據頻繁淘汰交換,而且針對索引數據、用戶區數據的訪問頻率進行了合理的數據分布,讓高頻的索引查詢更新在 DRAM 中完成。
  • 事務處理模型,水平擴展的集群中,每個節點服務數十個分區,每個分區使用單獨線程響應的事務處理模型避免了鎖競爭的開銷,提供了更為平滑的 P99 訪問延時。
  • 輕量級用戶接口,輕量級的用戶接口訪問技術降低了用戶每次請求的SQL解析編譯開銷,結合事務處理模型讓用戶的讀寫請求都能夠在數百us內處理完成並返回。

合格的內核技術只是滿足了產品的 physiological needs,產品的 safety needs 需要提供相應的穩定性技術來滿足。

TairSQL穩定性技術

穩定性技術涉及到產品的方方面面,不僅包括開發中針對穩定性的特性,還包括能夠反映系統運行狀態的周邊組件。下面章節主要介紹監控、客戶端、服務端流控三部分穩定性技術。

監控。眾所周知,監控就是系統的眼睛,沒有監控,也不太容易看到產品運行的細節問題。TairSQL 目前主要有兩套監控,一套是用來監控集群可用性相關的指標,另外一套是 Grafana+Prometheus+TairSQL Exporter 的鏈路來提供秒級的 RT、QPS 數據展示。監控的完善程度直接決定是否能夠發現系統上的一些細節性問題,比如 TairSQL 的秒級監控可以明確展示每個數據節點的 QPS,在熱點訪問沒有觸發流控就能被發現,從最終數據訪問源數據庫的視角熱點無處遁形。

客戶端。TairSQL 使用富客戶端的方式,請求可以直接路由到需要訪問到的節點上。客戶端的資源消耗控制、和服務端的交互開銷、建連斷連在 10K+ 應用節點時對服務端的沖擊、服務端拓撲變化時對客戶端的及時反饋,這些都是客戶端 SDK 上所做的實現考量和優化點。同時客戶端和集團內生態 VipServer、鷹眼等產品進行了適配,屏蔽后端節點變化對應用的影響,支持影子表鏈路的訪問和全鏈路訪問的定位。

服務端流控。流控/背壓是一個成熟的服務端產品必備的功能,TairSQL 目前線上的服務端流控統計部分根據工作隊列占用的內存大小和長度兩個緯度進行限制,根據極限壓測時的狀態作為默認值的參考,流控的觸發階段是相對寬松的,只有異常情況才會觸發。恢復階段是較為嚴格的,只有以較高的確信值認定節點已經恢復到正常情況之后,才會解除流控狀態。

四 兄弟系統

image.png

雲原生內存數據庫 Tair 所做的創新離不開阿里雲完善的基礎設施的支持:
  • 數據庫管控平台 DBaaS,快速實現阿里雲數據庫提供的安全審計、高可用、彈性伸縮、智能診斷等通用能力,以及 Tair 提供的數據閃回、全球分布等企業級能力。針對Tair持久內存型,DBaaS 結合阿里雲容器服務 ACK,支持了持久內存資源和計算資源的親和性調度以降低持久內存訪問延遲,提供持久內存的 QoS 策略支持,保障服務的安全可控和產品的一致性體驗。
  • 神龍裸金屬服務器,提供的持久內存系列產品,為雲原生內存數據庫Tair提供了彈性服務的基礎,針對突發流量進行針對性優化的網絡技術讓Tair應對高吞吐場景游刃有余,對內存等硬件風險的智能預測讓 Tair 可以提前預見大促高峰期的風險級別進行規避。
  • Aliyun Linux,不僅對持久內存硬件進行了適配,還針對Tair獨有的持久內存數據快照支持、實時快照延時降低等業務場景提供了針對性的優化。

五 總結

Tair 持久內存版在2021天貓全球購物節中的表現是雲原生內存數據庫 Tair在產品演進跟線上的重要里程碑。Tair 將持續以內存/持久內存 為核心存儲,重點建設雲原生、混合存儲介質上的數據智能分布、在線存儲和實時計算處理一體化等核心能力,加強雲原生內存數據庫的產品能力,在同一套系統中提供多種工作負載,幫助客戶的眾多場景真正在線化。

原文鏈接
本文為阿里雲原創內容,未經允許不得轉載。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM