全部產品
Search
文件中心

Realtime Compute for Apache Flink:企業級狀態後端儲存介紹

更新時間:Jul 13, 2024

GeminiStateBackend是一款面向Realtime Compute情境的KV儲存引擎,作為Realtime ComputeFlink版產品的預設狀態儲存後端(StateBackend)。本文為您介紹企業級狀態後端儲存GeminiStateBackend的核心設計,以及其與RocksDBStateBackend的效能對比情況。

整體介紹

有狀態計算是流處理中非常複雜和有挑戰的情境。流處理的資料訪問具有以下特點:

  • 存在大量的隨機訪問且很少有範圍查詢。

  • 資料流量和熱點會更加頻繁地動態變化,使得即便是同一運算元的不同並發,也會有不同的資料訪問模式。

GeminiStateBackend就是針對以上特點設計的,其核心設計亮點如下:

  • 全新的架構和資料結構設計,全面的效能提升。

    GeminiStateBackend的整體架構是在LSM資料結構的基礎上設計的,包含了隨資料規模和訪問特點變化而自適應、資料冷熱分層,可以在Anti-caching和Caching架構間靈活切換的三種能力。此外,還具備隨機查詢友好的雜湊儲存結構。Nexmark效能對比的結果顯示,GeminiStateBackend相比RocksDBStateBackend的效能有了較大的提升,其中約一半用例的效能領先RocksDB 70%以上。

  • 支援儲存計算分離,徹底擺脫狀態資料的本地碟儲存限制。

    在本地碟空間限制的環境下,State較大的作業經常會遇到本地磁碟空間不足的問題。基於RocksDBStateBackend的作業通常需要通過擴並發等增加資源的手段來解決該問題。GeminiStateBackend具有儲存計算分離的技術,使得狀態儲存可以不依賴於本地碟,可以避免因本地狀態資料過大而引發作業故障的問題。有關儲存計算分離相關配置,請參見存算分離配置

  • 支援自適應KV分離,大幅提升雙流或多流Join作業的效能。

    雙流或多流Join作為Realtime Compute中最有挑戰的情境之一,也是狀態儲存會遇到瓶頸的一個典型情境。基於大量情境Join成功率較低、或者狀態資料值較長的特點,GeminiStateBackend推出KV分離技術,可以極大提升雙流或多流Join作業的效能,且該功能可以完全自適應調整,不需要您額外配置調優。經過阿里巴巴集團雙十一核心業務驗證,開啟KV分離後,作業吞吐能力可以提升50% ~ 70%以上,計算資源使用率平均可以提升50%,典型優勢情境下可以提升100% ~ 200%。有關KV分離相關配置,請參見KV分離配置

  • 輕量級作業快照,顯著加速大狀態作業檢查點和快照完成。

    GeminiStateBackend通過支援更細粒度的作業快照,同時解耦檢查點與LSM的Compaction機制,讓檢查點和快照變得更加穩定快速。此外,GeminiStateBackend通過支援Native Incremental Savepoint,結合Realtime Compute產品提供的原生快照,讓其效能趨近檢查點,極大提高了快照的可用性。

  • 自適應參數調優,告別手動調參煩惱。

    在Realtime Compute任務中,不同運算元往往具有不同的狀態訪問模式。狀態儲存通常需要不同的參數組合才可以達到最佳的效能,而這些參數往往很多而且涉及底層細節,手動調參會給您帶來較高的學習和理解成本。GeminiStateBackend通過自適應參數調優技術,在作業運行時根據當前資料訪問模式和流量自動調參,以達到各種情境下的最佳效能。經過阿里巴巴集團雙十一核心業務驗證,該技術可以避免95%以上的人工調參,同時提升10% ~ 40%的單核吞吐能力。有關自適應調參相關配置,請參見自適應調參配置

Nexmark效能對比

我們使用Nexmark中State瓶頸的用例和相同的硬體資源,測試並對比了RocksDBStateBackend和GeminiStateBackend的效能。

說明

Nexmark屬於第三方搭建的網站,訪問時可能會存在無法開啟或訪問延遲的問題。

結果顯示GeminiStateBackend對作業整體效能(單核吞吐能力)的最佳化效果十分顯著,具體資料如下表所示。

CaseName

Gemini TPS/Core

RocksDB TPS/Core

Gemini VS RocksDB提升

q4

83.63 K/s

53.26 K/s

57.02%

q5

84.52 K/s

57.86 K/s

46.08%

q8

468.96 K/s

361.37 K/s

29.77%

q9

59.42 K/s

26.56 K/s

123.72%

q11

93.08 K/s

48.82 K/s

90.66%

q18

150.93 K/s

87.37 K/s

72.75%

q19

143.46 K/s

58.5 K/s

145.23%

q20

75.69 K/s

22.44 K/s

237.30%

相關文檔