色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華為云數據庫GaussDB (for Cassandra)?數據庫治理 --?大key與熱key問題的檢測與解決

IT科技蘇辭 ? 來源:IT科技蘇辭 ? 作者:IT科技蘇辭 ? 2022-12-01 21:34 ? 次閱讀

華為云數據庫GaussDB (for Cassandra)數據庫治理 --大key與熱key問題的檢測與解決

Cassandra數據庫是一個高度可擴展的高性能分布式數據庫,面向大數據場景,可用于管理大量的結構化數據。在業務使用的過程中,隨著業務量和數據流量的持續增長,往往一些業務的設計弊端逐漸暴露出來,降低了集群的穩定性和可用性。比如主鍵設計不合理,單個分區的記錄數或數據量過大,出現超大分區鍵,引起了節點負載不均,集群穩定性會下降,這一類問題稱為大key問題。當某一熱點key的請求在某一主機上的訪問。

Cassandra數據庫是一個高度可擴展的高性能分布式數據庫,面向大數據場景,可用于管理大量的結構化數據。在業務使用的過程中,隨著業務量和數據流量的持續增長,往往一些業務的設計弊端逐漸暴露出來,降低了集群的穩定性和可用性。比如主鍵設計不合理,單個分區的記錄數或數據量過大,出現超大分區鍵,引起了節點負載不均,集群穩定性會下降,這一類問題稱為大key問題。當某一熱點key的請求在某一主機上的訪問超過server極限時,會導致熱點Key問題的產生。往往大key是造成熱key問題的間接原因。

GaussDB(for Cassandra)是一款基于華為自研的計算存儲分離架構的分布式數據庫,兼容Cassandra生態的云原生NoSQL數據庫,支持類SQL語法CQL。在華為云高性能、高可用、高可靠、高安全、可彈性伸縮的基礎上,提供了一鍵部署、快速備份恢復、計算存儲獨立擴容、監控告警等服務能力。針對以上問題,GaussDB(for Cassandra)提供了大key和熱key的實時檢測,以幫助業務進行合理的schema設計,規避業務穩定性風險。

大key的分析與解決

大key的產生,最主要的原因是主鍵設計不合理,使得單個分區的記錄數或數據量過大。一旦某一個分區出現極大時,對該分區的訪問,會造成分區所在server的負載變高,甚至造成節點OOM等。

針對大key問題,一般采取兩種修復手段,一種是增加緩存,優化表結構。一種是基于現有分區鍵,增加分區鍵散列。對數據進行打散,避免單個分區的記錄過大。GaussDB(for Cassandra)有如下整改事例,業務整改后負載平穩運行。

案例1

XX集群的數據量過大,導致集群存在大分區鍵(排查數量大概為2000+),最大的分區鍵達到38G。當業務頻繁訪問這部分大的分區鍵時,會導致節點持續高負載,影響業務請求成功率。

表結構如下

CREATE

TABLE

movie

(

  movieid
  appid
  uid
  accessstring
  moviename
  access_time
  

表設計分析

movie表保存了短視頻的相關信息,分區鍵為movieid,并且保存了用戶信息(uid),如果movieid是一個熱門短視頻,有幾千萬甚至上億用戶點贊此短視頻,則該熱門短視頻所在的分區非常大(當前發現有38G)。

解決方法:

1.優化表結構

創建新表保存熱門短視頻信息,只保留短視頻公共信息,不包含用戶信息,確保該表不會產生大的分區鍵。熱門短視頻信息寫入該表中。

CREATE

TABLE

hotmovieaccess

(

  movieid
  appid
  accessstring
  access_time
  

)

2.增加緩存

增加緩存,業務應用先從緩存中讀取熱門文件信息,沒有查詢到,則從數據庫中查詢,減少數據庫查詢次數。

整個優化邏輯如下:

poYBAGOIrUiAKF8hAAAkkE8zJrc295.png

1.先查緩存,當緩存存在,直接返回結果。

2.當緩存不存在,查詢熱門視頻緩存(緩存不存在,則查詢hot表),當視頻為為熱門視頻時,查詢hotmovieaccess表。

3.當hotmovieaccess表存在結果時,直接返回,當hotmovieaccess表不存在記錄時,查詢movie表。

4.并緩存查詢結果。

案例2

movie_meta以月度建表,每個表只存當月的數據,初始的這種設計是可以減輕或規避分區鍵過大問題的。由于業務頻繁寫入,熱門視頻存儲的記錄非常多,還是形成了大的數據分區。

CREATE

TABLE

movie_meta202110

(

  path text
  moviename text
  movieid text
  create_time timestamp
  modify_mtime timestamp
  

)

解決辦法:

新分區鍵增加一個隨機數(0~999):將原來一個分區存儲的信息隨機離散存儲到1000個分區中。

采用新的分區鍵之后,沒有形成新超過100M的分區鍵,舊的超過100M的分區鍵數據,隨著時間老化過期即可。

大key的定義與檢測手段

通過長時間的業務觀察,我們規定以下閾值,超過任何一個條件的閾值即為大key:

1.單個分區鍵的行數不能超過10萬

2.單個分區的大小不超過100MB

GaussDB(for Cassandra)支持了大key的檢測與告警。在CES界面,可以配置實例的大key告警。當發生大key事件時,會第一時間通知。及時整改,可避免業務波動。

pYYBAGOIrUGAc8IDAACj5r1vNMM903.png

熱key的危害與解決

在日常生活中,經常會發生各種熱門事件,應用中對該熱點新聞進行上萬次的點擊瀏覽和評論時,會形成一個較大的請求量,這種情況下會造成短時間內對同一個key頻繁操作,會導致key所在節點的CPU和load飆高,從而影響落在該節點的其他請求。導致業務成功率下降。諸如此類的還有熱門商品促銷,網紅直播等場景,這些典型的讀多寫少的場景也會產生熱點問題。

熱key會造成以下危害:

1.流量集中,達到物理網卡上限。

2.請求過多,緩存分片服務被打垮。

3.DB擊穿,引起業務雪崩。

GaussDB(for Cassandra)針對熱key問題,常見的修復手段如下:

1.設計上需要考慮熱key的問題,避免在數據庫上產生熱key

2.業務側通過增加緩存來減少熱key出現的情況下對數據庫造成的沖擊。考慮多級緩存解決熱key問題(如Redis +本地二級緩存)

3.屏蔽熱點key,比如在業務側進行定制,支持熱key黑白名單能力,可以將熱key臨時屏蔽。

熱key的檢測

我們定義訪問頻率 大于 100000次/min的key為熱key。熱key事件分為兩種類型,一種時WRITES事件,代表寫熱點,一種是READS事件,表示讀熱點。

GaussDB(for Cassandra)也提供了熱key的監測與告警。在CES界面,可以配置實例的熱key告警。如下

pYYBAGOIrTGAevpTAACfEUEgJA8603.png

GaussDB(for Cassandra)提供了大key和熱key的實時監控。確保第一時間感知業務風險。提供的大key和熱key解決方案,在面對大數據量洪峰場景,增強了集群的穩定性與可用性。為客戶業務持續穩定運行保駕護航。

綜上,在線業務在使用Cassandra時,必須執行相關的開發規則和使用規范,在開發設計階段就降低使用風險。一般按照 制定規范 -->接入評審 --> 定期巡檢 -->優化規則 的治理流程進行。合理的設計一般會降低大部份風險發生的概率,對于應用來說,任何表的設計都要考慮是否會造成熱key,大key的產生,是否會造成負載傾斜的問題;另外建立數據老化機制,表中的數據不能無限制的增長而不刪除或者老化;針對讀多寫少的場景,要增加緩存機制,來應對讀熱點問題,并提升查詢性能;對于每個PK以及每行Row的大小,要控制大小,否則將影響性能和穩定性。超出后要及時優化。

審核編輯黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為云
    +關注

    關注

    3

    文章

    2540

    瀏覽量

    17441
收藏 人收藏

    評論

    相關推薦

    華為榮登Gartner?數據庫挑戰者象限

    近日,全球知名的信息技術研究與顧問公司Gartner?正式發布了其備受矚目的2024年度《數據庫管理系統魔力象限報告》。在這份權威報告中,華為憑借其卓越的表現成功入選挑戰者象限,彰
    的頭像 發表于 12-31 13:57 ?68次閱讀

    數據庫數據恢復—Mysql數據庫表記錄丟失的數據恢復流程

    Mysql數據庫故障: Mysql數據庫表記錄丟失。 Mysql數據庫故障表現: 1、Mysql數據庫表中無任何數據或只有部分
    的頭像 發表于 12-16 11:05 ?167次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—Mysql<b class='flag-5'>數據庫</b>表記錄丟失的<b class='flag-5'>數據</b>恢復流程

    數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例

    mysql數據庫故障: mysql數據庫文件ibdata1、MYI、MYD損壞。 故障表現:1、數據庫無法進行查詢等操作;2、使用mysqlcheck和myisamchk無法修復數據庫
    的頭像 發表于 12-09 11:05 ?156次閱讀

    數據庫主機哪個好一點?

    數據庫主機哪個好一點?主機和數據庫各有優勢,選擇哪個更好取決于具體需求。
    的頭像 發表于 12-04 13:50 ?135次閱讀

    數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫

    一個運行在存儲上的SQLServer數據庫,有1000多個文件,大小幾十TB。數據庫每10天生成一個NDF文件,每個NDF幾百GB大小。數據庫包含兩個LDF文件。 存儲損壞,數據庫
    的頭像 發表于 10-31 13:21 ?230次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—通過拼接<b class='flag-5'>數據庫</b>碎片恢復SQLserver<b class='flag-5'>數據庫</b>

    數據庫可以租用嗎?完整租用流程來了

    數據庫是可以租用的,這是一種合法且便捷的數據存儲和管理方式。數據庫服務提供商提供的各種服
    的頭像 發表于 10-28 09:54 ?174次閱讀

    科技報到:大模型時代下,向量數據庫的野望

    科技報到:大模型時代下,向量數據庫的野望
    的頭像 發表于 10-14 17:18 ?262次閱讀

    Oracle數據恢復—異常斷電后Oracle數據庫報錯的數據恢復案例

    Oracle數據庫的在線文件,需要恢復zxfg用戶的數據。 Oracle數據庫恢復方案: 檢測數據庫故障;嘗試掛起并修復
    的頭像 發表于 09-30 13:31 ?309次閱讀
    Oracle<b class='flag-5'>數據</b>恢復—異常斷電后Oracle<b class='flag-5'>數據庫</b>啟<b class='flag-5'>庫</b>報錯的<b class='flag-5'>數據</b>恢復案例

    數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例

    SQL Server數據庫故障: SQL Server附加數據庫出現錯誤823,附加數據庫失敗。數據庫沒有備份,無法通過備份恢復數據庫
    的頭像 發表于 09-20 11:46 ?356次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—SQL Server<b class='flag-5'>數據庫</b>出現823錯誤的<b class='flag-5'>數據</b>恢復案例

    數據庫數據恢復—SQL Server數據庫所在分區空間不足報錯的數據恢復案例

    SQL Server數據庫數據恢復環境: 某品牌服務器存儲中有兩組raid5磁盤陣列。操作系統層面跑著SQL Server數據庫,SQL Server數據庫存放在D盤分區中。
    的頭像 發表于 07-10 13:54 ?504次閱讀

    數據庫數據恢復—raid5陣列上層Sql Server數據庫數據恢復案例

    數據庫數據恢復環境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統服務器使用。windows系統服務器內運行了Sql Server數據庫,存儲空間在操作系統層面劃分了三個邏輯分區
    的頭像 發表于 05-08 11:43 ?518次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—raid5陣列上層Sql Server<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復案例

    華為多模數據庫 GeminiDB 架構與應用實踐直播問答實錄

    多模數據庫作為一種新興的數據管理解決方案,正在受到越來越多的關注。而華為多模數據庫 GeminiDB 基于云原生
    的頭像 發表于 04-08 18:25 ?1166次閱讀

    選擇 KV 數據庫最重要的是什么?

    最后我也沒問清楚他們業務存啥(推測是這塊業務數據比較機密),但確實業務本身對可靠性要求非常高,開源 Redis 自身的可靠性無法滿足他們的要求,最終該用戶選擇使用 GaussDB(for Redis)數據庫,當前
    的頭像 發表于 03-28 22:11 ?704次閱讀
    選擇 KV <b class='flag-5'>數據庫</b>最重要的是什么?

    GaussDB(for Redis) 特性揭秘:大 key 治理

    運行過程中悄悄產生的,讓人防不勝防。因此,一款可隨時在線診斷,且能主動預警,防患于未然的 Redis 服務產品顯得尤為重要。 ? 作為由華為精心打造的企業級 Redis,GaussDB
    的頭像 發表于 03-28 22:06 ?670次閱讀
    <b class='flag-5'>GaussDB</b>(for Redis) 特性揭秘:大 <b class='flag-5'>key</b> <b class='flag-5'>治理</b>

    數據庫數據恢復】Oracle數據庫ASM實例無法掛載的數據恢復案例

    oracle數據庫ASM磁盤組掉線,ASM實例不能掛載。數據庫管理員嘗試修復數據庫,但是沒有成功。
    的頭像 發表于 02-01 17:39 ?528次閱讀
    【<b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復】Oracle<b class='flag-5'>數據庫</b>ASM實例無法掛載的<b class='flag-5'>數據</b>恢復案例
    主站蜘蛛池模板: 乱VODAFONEWIFI熟妇| 胸大美女又黄的网站| 一本大道无码AV天堂欧美 | 乌克兰少妇大胆大BBW| 国产成人欧美日韩在线电影| 鞋奴的视频VK| 久久婷婷五月综合色丁香| JAPANRCEP老熟妇乱子伦视频| 色戒床震视频片段| 精品人妻伦九区久久AAA片69 | 欧美一道本一区二区三区| 国产99久久亚洲综合精品西瓜tv| 小玲被公扒开腿| 浪潮色诱AV久久久久久久| 穿白丝袜边走边尿白丝袜| 亚洲欧美一级久久精品| 欧美一区二区在线观看| 国产在线精彩视频| a视频免费看| 亚洲精品国产精品麻豆99| 欧美18videosex初次| 国产在线视频一区二区不卡| 91蜜桃视频| 亚洲AV久久无码高潮喷水| 妺妺窝人体色777777野大粗 | 亚洲欧美高清在线精品一区| 欧美巨大xxxx做受高清| 国产专区亚洲欧美另类在线| 97在线播放| 亚洲精品第一综合99久久| 欧美麻豆一精品一AV一免费| 国模啪啪久久久久久久| 超嫩校花被灌醉在线观看| 越南美女内射BBWXZ| 午夜影视不充值观看| 男人团apk| 精品久久久噜噜噜久久久app| 办公室激情在线观看| 专干老肥熟女视频网站300部| 视频一区亚洲视频无码| 嗯啊不要老师|