百萬級活躍用戶、十億級數據,揭祕PolarDB-X如何提升小打卡性能和穩定性

“PolarDB-X產品解決了我們社交場景中的圈子日記查詢功能,每天用戶在小打卡數十萬的興趣圈子中活躍,發佈數百萬條打卡日記,非常適合PolarDB-X的分庫分表場景,降低了響應時間,提高了併發查詢能力,利用異構索引表滿足了我們多維度查詢的需求,最近的全局二級索引解決了異構索引表數據延遲的問題。”這是來自小打卡的客戶感言


“再小的愛好都有同好”

小打卡是國內知名的興趣社羣平臺,在這裏,能快速發現你感興趣的圈子;加入圈子,有達人帶你玩轉各種興趣,有同好一起分享,一起成長。2017年8月公司成立至今,小打卡上已服務六千多萬用戶,聚集繪畫、瑜伽、健身、手帳、攝影、親子、閱讀、潮玩等數百萬個興趣圈子,每天有數百萬用戶活躍在小打卡上,圍繞各類興趣和學習產生數百萬條內容和數百萬次互動。



業務挑戰

基於小打卡的業務場景,面臨着三個主要挑戰:

  • 數百萬個圈子的打卡日記數據量大,客戶有十億級數據的高性能存儲訴求。

  • 百萬級活躍用戶,有高併發讀寫訴求,同時需要在十億級數據存儲情況下讀寫性能平穩。

  • 圈子打卡日記業務在根據圈子做水平拆分表之後有多維度查詢訴求,通過用戶維度查詢打卡日記。

PolarDB-X+RDS MySQL的分佈式數據庫解決方案

針對上述業務痛點,我們通過PolarDB-X+RDS MySQL的分佈式數據庫解決方案支持客戶核心業務圈子打卡日記,採用PolarDB-X的水平拆分給客戶提供海量數據存儲能力,利用平滑擴容能力提供計算和存儲的平滑擴展,可支持到百億級數據存儲和讀寫。

通過PolarDB-X水平拆分後,數據庫業務由多個RDS MySQL承載,單個RDS業務讀寫壓力大幅度下降,出現性能異常的時候,隻影響部分用戶使用,同時由於單個物理表數據量小,性能異常對系統可用性影響較小。PolarDB-X通過多個RDS MySQL承載高併發寫,可支撐百億級數據10萬TPS、百萬QPS的穩定讀寫承載。

數據庫表拆分後多維度查詢訴求是分佈式數據庫中間件的一個痛點,不按拆分鍵查詢的SQL不能下推導致查詢出現全表掃描,PolarDB-X支持全局索引,通過全局索引可以完美解決多維查詢的痛點。



海量數據存儲和擴展能力,保障核心業務穩定性與高性能

小打卡當前圈子打卡日記有10億以上數據,每年億級增量,基於PolarDB-X+RDS的分佈式數據庫解決方案給客戶提供了海量數據存儲和數據存儲擴展能力,解決了客戶的10億級數據在單機數據庫的存儲瓶頸。

小打卡有幾百萬活躍用戶,業務發展較快,高併發讀是小打卡的數據庫強需求,在單機RDS的情況下由於單表數據量大,會出現讀性能瓶頸導致APP卡頓或者崩潰。基於PolarDB-X+RDS的分佈式數據庫解決方案在將表拆分成小的物理表後能提供海量數據平穩高併發讀能力,保證了客戶核心業務的穩定性和高性能。

小打卡的圈子打卡日記通過圈子做拆分,同時用戶有看自己圈子日記的訴求,全局索引能力給小打卡客戶提供了基於圈子和用戶兩個維度的高性能查詢能力,解決了多維查詢的需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章