2020年10月28日,阿里雲正式發佈雲原生內存數據庫Tair企業級Redis服務。該系列包含兩種產品形態:持久內存型和容量存儲型。該系列產品是Tair系列繼性能增強型和混合存儲型後又一力作,其兼容原生Redis的數據結構和接口,並具備更大容量規格、抖動更低且命令級數據持久化的能力。該自研產品打破了傳統Redis中的數據只能在易失性存儲上進行讀寫的刻板印象,針對客戶不同業務階段的數據存儲要求與服務成本考量,全新實現了持久性更強、成本更低的KV數據庫。
開源Redis的三大痛點
Redis是目前全球最主流的Key-Value 數據庫產品,作為高速緩存,在緩解系統大併發高壓力的場景上已經被無數開發者和企業所認可,尤其在各種行業和場景都有著非常廣泛的應用,可以說Redis是應對高併發、大流量、低延遲業務場景的不二選擇。然而,隨著客戶業務的快速發展,Redis對業務的重要性持續上升的同時系統壓力和數據量也不斷地攀升,這時原生開源Redis便會出現如下的一些矛盾:
數據可靠性與在各場景中廣泛使用Redis之間的矛盾。Redis有豐富的數據結構和操作,除了作為後端數據庫的前置高速緩存外,還在諸多實際涉及到數據更改的業務場景上發揮著重要的作用,這是用戶往往會關注數據持久化能力。在開源Redis中,用戶可以使用AOF的Always對每條命令都進行fsync刷盤來保證數據可靠性,但是該配置會導致整體性能大幅度下降,因此生產環境往往採用另一個AOF策略,即Everysecond每秒持久化。即便如此,在一個高吞吐的場景下(例如10萬TPS),一秒的數據丟失可能就意味著數萬條數據記錄的丟失,這是一些對數據可靠性要求很高的用戶無法接受的,這個特點也在本質上直接制約了Redis在更多場景下的深入使用。服務高性能與數據可靠性之間的矛盾。當開源Redis使用AOF得到秒級數據持久化能力的同時,該機制還需要進行定期的BGREWRITEAOF操作,通過fork一個進程在後臺清理持續增長的AOF文件,在大容量實例下的fork問題會帶來服務明顯的抖動,在一些服務抖動敏感的場景,例如遊戲對戰,用戶體驗會大打折扣。另外,在大容量Redis啟動時加載持久化文件會耗時很久,緩存無法做到快速恢復。可以說,開源版無法同時擁有服務全程高性能和數據持久化。快速攀升的成本與業務不同階段的服務訪問熱度之間的矛盾。開源Redis的數據讀寫均發生在內存,隨著數據規模增大,內存資源佔用會隨之遞增,而每臺服務器可使用內存又是一個較小的有限值,因此服務器數量也隨著被迫快速上升,整體服務成本會大幅度攀升。另一方面,隨著業務的發展,當業務進入發展後期,數據量已經形成一定規模,而數據的訪問頻度則慢慢降下來,如果在保持現有應用架構和邏輯不變的情況下降低數據存儲的成本便是首位考慮要素。而開源Redis只能使用較為昂貴的內存進行數據存取,沒有平滑的替代方案,客戶往往在這種情況下陷入兩難。綜上所述,隨著客戶放在Redis中的數據越來越多且愈加重要,開源Redis本身可能在上述三個方面都無法滿足客戶更高的業務場景與服務成本要求。
Tair完美解決上述三大痛點
基於上述的痛點,阿里雲Redis團隊在自研內存數據庫系列Tair中推出了針對不同數據溫度場景的持久內存型和容量存儲型,二者作為持久存儲系列的兩種產品形態,其工作原理均是將數據放置在非易失性存儲介質上,在數據庫啟動時無需進行數據加載,應用直接訪問相關數據,在寫入數據時也能保證命令級的數據可靠性,寫入一條數據即持久化存入非易失性介質,同時也消除了fork帶來的服務抖動,而對業務應用則保持Redis的通信協議和數據結構與API,用戶像使用一個原生Redis一樣輕鬆上手使用它們。在硬件上,利用Intel傲騰(AEP)與阿里雲ESSD雲盤等先進硬件,在實現命令級持久化的同時有效的為客戶降低了整體服務擁有成本。
圖1. 原生Redis與阿里雲Tair的持久化機制對比
持久內存型是基於Intel 傲騰(AEP)持久內存技術,兼容絕大部分Redis數據結構和命令,並利用AEP的App Direct模式實現了高性能下的命令級持久化能力。在性能測試中其讀寫性能約為開源Redis的90%,而在定價上,由於新硬件帶來的成本紅利,該產品形態的定價是阿里雲社區版Redis價格的70%左右,整體性價比更高,適用於要求高吞吐、低延遲同時對數據可靠性要求高的熱數據存取場景。
容量存儲型是基於阿里雲ESSD雲盤技術,兼容Redis 核心數據結構與命令,對標市面上基於RocksDB構建的大容量、兼容Redis的數據存儲系統,提供了超大容量、平均性能有所妥協的溫冷數據存取服務。在基準性能測試中其基礎數據類型讀性能中位數約為開源Redis的70%,寫性能中位數約為開源內存版的55%,而服務擁有成本最低可降低至阿里雲Redis社區版的15%左右,適用於高存儲密度、低訪問頻率,對數據持久化要求高,且成本作為首要考慮因素的溫冷數據存取場景。
圖2.阿里雲Tair持久內存型與容量存儲型
阿里雲產品負責人黃鵬程(花名馬格)表示,隨著Tair持久存儲系列的兩種產品形態的發佈,Tair的產品系列已經覆蓋了從高訪問強度到高存儲密度的全線企業級Redis服務。阿里云云數據庫Redis會將Redis作為用戶上雲快速接入、體驗原汁原味開源Redis的雲上服務,同時重點打造集團自研KV存儲Tair這款企業級雲原生內存數據庫,全面覆蓋客戶不同業務階段對於Redis性能、功能與成本的更高要求。
圖3.阿里雲Tair產品矩陣
隨著雲計算的技術發展,雲原生數據庫已取代傳統數據庫成為市場主流。阿里雲是國內最早推出雲數據庫的廠商之一,至今為止已經形成了完整的產品佈局,擁有關係型數據庫、NoSQL數據庫、數據倉庫、數據庫生態工具和雲數據庫專屬集群五大板塊。其中NoSQL數據庫中的阿里雲 Redis 從 2015 年商用以來,一直是全球領先的雲內存數據庫產品,擁有Redis和Tair兩個主要產品,其背後的研發團隊擁有眾多頂級Redis社區Committer,並在Redis全球核心團隊(共五人)中擁有一名核心成員,在Redis技術發展中持續為社區做出貢獻。
點擊“瞭解更多”查看詳情!