女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

華為云數(shù)據(jù)庫(kù)GaussDB (for Cassandra)?數(shù)據(jù)庫(kù)治理 --?大key與熱key問(wèn)題的檢測(cè)與解決

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

華為云數(shù)據(jù)庫(kù)GaussDB (for Cassandra)數(shù)據(jù)庫(kù)治理 --大key與熱key問(wèn)題的檢測(cè)與解決

Cassandra數(shù)據(jù)庫(kù)是一個(gè)高度可擴(kuò)展的高性能分布式數(shù)據(jù)庫(kù),面向大數(shù)據(jù)場(chǎng)景,可用于管理大量的結(jié)構(gòu)化數(shù)據(jù)。在業(yè)務(wù)使用的過(guò)程中,隨著業(yè)務(wù)量和數(shù)據(jù)流量的持續(xù)增長(zhǎng),往往一些業(yè)務(wù)的設(shè)計(jì)弊端逐漸暴露出來(lái),降低了集群的穩(wěn)定性和可用性。比如主鍵設(shè)計(jì)不合理,單個(gè)分區(qū)的記錄數(shù)或數(shù)據(jù)量過(guò)大,出現(xiàn)超大分區(qū)鍵,引起了節(jié)點(diǎn)負(fù)載不均,集群穩(wěn)定性會(huì)下降,這一類問(wèn)題稱為大key問(wèn)題。當(dāng)某一熱點(diǎn)key的請(qǐng)求在某一主機(jī)上的訪問(wèn)。

Cassandra數(shù)據(jù)庫(kù)是一個(gè)高度可擴(kuò)展的高性能分布式數(shù)據(jù)庫(kù),面向大數(shù)據(jù)場(chǎng)景,可用于管理大量的結(jié)構(gòu)化數(shù)據(jù)。在業(yè)務(wù)使用的過(guò)程中,隨著業(yè)務(wù)量和數(shù)據(jù)流量的持續(xù)增長(zhǎng),往往一些業(yè)務(wù)的設(shè)計(jì)弊端逐漸暴露出來(lái),降低了集群的穩(wěn)定性和可用性。比如主鍵設(shè)計(jì)不合理,單個(gè)分區(qū)的記錄數(shù)或數(shù)據(jù)量過(guò)大,出現(xiàn)超大分區(qū)鍵,引起了節(jié)點(diǎn)負(fù)載不均,集群穩(wěn)定性會(huì)下降,這一類問(wèn)題稱為大key問(wèn)題。當(dāng)某一熱點(diǎn)key的請(qǐng)求在某一主機(jī)上的訪問(wèn)超過(guò)server極限時(shí),會(huì)導(dǎo)致熱點(diǎn)Key問(wèn)題的產(chǎn)生。往往大key是造成熱key問(wèn)題的間接原因。

GaussDB(for Cassandra)是一款基于華為自研的計(jì)算存儲(chǔ)分離架構(gòu)的分布式數(shù)據(jù)庫(kù),兼容Cassandra生態(tài)的云原生NoSQL數(shù)據(jù)庫(kù),支持類SQL語(yǔ)法CQL。在華為云高性能、高可用、高可靠、高安全、可彈性伸縮的基礎(chǔ)上,提供了一鍵部署、快速備份恢復(fù)、計(jì)算存儲(chǔ)獨(dú)立擴(kuò)容、監(jiān)控告警等服務(wù)能力。針對(duì)以上問(wèn)題,GaussDB(for Cassandra)提供了大key和熱key的實(shí)時(shí)檢測(cè),以幫助業(yè)務(wù)進(jìn)行合理的schema設(shè)計(jì),規(guī)避業(yè)務(wù)穩(wěn)定性風(fēng)險(xiǎn)。

大key的分析與解決

大key的產(chǎn)生,最主要的原因是主鍵設(shè)計(jì)不合理,使得單個(gè)分區(qū)的記錄數(shù)或數(shù)據(jù)量過(guò)大。一旦某一個(gè)分區(qū)出現(xiàn)極大時(shí),對(duì)該分區(qū)的訪問(wèn),會(huì)造成分區(qū)所在server的負(fù)載變高,甚至造成節(jié)點(diǎn)OOM等。

針對(duì)大key問(wèn)題,一般采取兩種修復(fù)手段,一種是增加緩存,優(yōu)化表結(jié)構(gòu)。一種是基于現(xiàn)有分區(qū)鍵,增加分區(qū)鍵散列。對(duì)數(shù)據(jù)進(jìn)行打散,避免單個(gè)分區(qū)的記錄過(guò)大。GaussDB(for Cassandra)有如下整改事例,業(yè)務(wù)整改后負(fù)載平穩(wěn)運(yùn)行。

案例1

XX集群的數(shù)據(jù)量過(guò)大,導(dǎo)致集群存在大分區(qū)鍵(排查數(shù)量大概為2000+),最大的分區(qū)鍵達(dá)到38G。當(dāng)業(yè)務(wù)頻繁訪問(wèn)這部分大的分區(qū)鍵時(shí),會(huì)導(dǎo)致節(jié)點(diǎn)持續(xù)高負(fù)載,影響業(yè)務(wù)請(qǐng)求成功率。

表結(jié)構(gòu)如下

CREATE

TABLE

movie

(

  movieid
  appid
  uid
  accessstring
  moviename
  access_time
  

表設(shè)計(jì)分析

movie表保存了短視頻的相關(guān)信息,分區(qū)鍵為movieid,并且保存了用戶信息(uid),如果movieid是一個(gè)熱門短視頻,有幾千萬(wàn)甚至上億用戶點(diǎn)贊此短視頻,則該熱門短視頻所在的分區(qū)非常大(當(dāng)前發(fā)現(xiàn)有38G)。

解決方法:

1.優(yōu)化表結(jié)構(gòu)

創(chuàng)建新表保存熱門短視頻信息,只保留短視頻公共信息,不包含用戶信息,確保該表不會(huì)產(chǎn)生大的分區(qū)鍵。熱門短視頻信息寫入該表中。

CREATE

TABLE

hotmovieaccess

(

  movieid
  appid
  accessstring
  access_time
  

)

2.增加緩存

增加緩存,業(yè)務(wù)應(yīng)用先從緩存中讀取熱門文件信息,沒(méi)有查詢到,則從數(shù)據(jù)庫(kù)中查詢,減少數(shù)據(jù)庫(kù)查詢次數(shù)。

整個(gè)優(yōu)化邏輯如下:

poYBAGOIrUiAKF8hAAAkkE8zJrc295.png

1.先查緩存,當(dāng)緩存存在,直接返回結(jié)果。

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

3.當(dāng)hotmovieaccess表存在結(jié)果時(shí),直接返回,當(dāng)hotmovieaccess表不存在記錄時(shí),查詢movie表。

4.并緩存查詢結(jié)果。

案例2

movie_meta以月度建表,每個(gè)表只存當(dāng)月的數(shù)據(jù),初始的這種設(shè)計(jì)是可以減輕或規(guī)避分區(qū)鍵過(guò)大問(wèn)題的。由于業(yè)務(wù)頻繁寫入,熱門視頻存儲(chǔ)的記錄非常多,還是形成了大的數(shù)據(jù)分區(qū)。

CREATE

TABLE

movie_meta202110

(

  path text
  moviename text
  movieid text
  create_time timestamp
  modify_mtime timestamp
  

)

解決辦法:

新分區(qū)鍵增加一個(gè)隨機(jī)數(shù)(0~999):將原來(lái)一個(gè)分區(qū)存儲(chǔ)的信息隨機(jī)離散存儲(chǔ)到1000個(gè)分區(qū)中。

采用新的分區(qū)鍵之后,沒(méi)有形成新超過(guò)100M的分區(qū)鍵,舊的超過(guò)100M的分區(qū)鍵數(shù)據(jù),隨著時(shí)間老化過(guò)期即可。

大key的定義與檢測(cè)手段

通過(guò)長(zhǎng)時(shí)間的業(yè)務(wù)觀察,我們規(guī)定以下閾值,超過(guò)任何一個(gè)條件的閾值即為大key:

1.單個(gè)分區(qū)鍵的行數(shù)不能超過(guò)10萬(wàn)

2.單個(gè)分區(qū)的大小不超過(guò)100MB

GaussDB(for Cassandra)支持了大key的檢測(cè)與告警。在CES界面,可以配置實(shí)例的大key告警。當(dāng)發(fā)生大key事件時(shí),會(huì)第一時(shí)間通知。及時(shí)整改,可避免業(yè)務(wù)波動(dòng)。

pYYBAGOIrUGAc8IDAACj5r1vNMM903.png

熱key的危害與解決

在日常生活中,經(jīng)常會(huì)發(fā)生各種熱門事件,應(yīng)用中對(duì)該熱點(diǎn)新聞進(jìn)行上萬(wàn)次的點(diǎn)擊瀏覽和評(píng)論時(shí),會(huì)形成一個(gè)較大的請(qǐng)求量,這種情況下會(huì)造成短時(shí)間內(nèi)對(duì)同一個(gè)key頻繁操作,會(huì)導(dǎo)致key所在節(jié)點(diǎn)的CPU和load飆高,從而影響落在該節(jié)點(diǎn)的其他請(qǐng)求。導(dǎo)致業(yè)務(wù)成功率下降。諸如此類的還有熱門商品促銷,網(wǎng)紅直播等場(chǎng)景,這些典型的讀多寫少的場(chǎng)景也會(huì)產(chǎn)生熱點(diǎn)問(wèn)題。

熱key會(huì)造成以下危害:

1.流量集中,達(dá)到物理網(wǎng)卡上限。

2.請(qǐng)求過(guò)多,緩存分片服務(wù)被打垮。

3.DB擊穿,引起業(yè)務(wù)雪崩。

GaussDB(for Cassandra)針對(duì)熱key問(wèn)題,常見(jiàn)的修復(fù)手段如下:

1.設(shè)計(jì)上需要考慮熱key的問(wèn)題,避免在數(shù)據(jù)庫(kù)上產(chǎn)生熱key

2.業(yè)務(wù)側(cè)通過(guò)增加緩存來(lái)減少熱key出現(xiàn)的情況下對(duì)數(shù)據(jù)庫(kù)造成的沖擊。考慮多級(jí)緩存解決熱key問(wèn)題(如Redis +本地二級(jí)緩存)

3.屏蔽熱點(diǎn)key,比如在業(yè)務(wù)側(cè)進(jìn)行定制,支持熱key黑白名單能力,可以將熱key臨時(shí)屏蔽。

熱key的檢測(cè)

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

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

pYYBAGOIrTGAevpTAACfEUEgJA8603.png

GaussDB(for Cassandra)提供了大key和熱key的實(shí)時(shí)監(jiān)控。確保第一時(shí)間感知業(yè)務(wù)風(fēng)險(xiǎn)。提供的大key和熱key解決方案,在面對(duì)大數(shù)據(jù)量洪峰場(chǎng)景,增強(qiáng)了集群的穩(wěn)定性與可用性。為客戶業(yè)務(wù)持續(xù)穩(wěn)定運(yùn)行保駕護(hù)航。

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

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2763

    瀏覽量

    18104
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS5服務(wù)技術(shù)分享--數(shù)據(jù)庫(kù)使用指南

    ? 華為數(shù)據(jù)庫(kù)(CloudDB)在HarmonyOS中的使用指南 ? ??嗨,開(kāi)發(fā)者朋友們!?? 今天咱們來(lái)聊聊華為
    發(fā)表于 05-22 18:29

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)文件拷貝后服務(wù)無(wú)法啟動(dòng)的數(shù)據(jù)恢復(fù)

    MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)Windows Server操作系統(tǒng)虛擬機(jī)上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB數(shù)據(jù)庫(kù)故障: 管理員在未關(guān)閉MongoDB服務(wù)的
    的頭像 發(fā)表于 04-09 11:34 ?219次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件拷貝后服務(wù)無(wú)法啟動(dòng)的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫(kù)提示“錯(cuò)誤 823”的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)附加數(shù)據(jù)庫(kù)過(guò)程中比較常見(jiàn)的報(bào)錯(cuò)是“錯(cuò)誤 823”,附加數(shù)據(jù)庫(kù)失敗。 如果數(shù)據(jù)庫(kù)有備份則只需還原備份即可。但是如果沒(méi)有備份,備份時(shí)間太久,或者其他原因?qū)е聜浞?/div>
    的頭像 發(fā)表于 02-28 11:38 ?401次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server附加<b class='flag-5'>數(shù)據(jù)庫(kù)</b>提示“錯(cuò)誤 823”的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    分布式數(shù)據(jù)庫(kù)有哪些類型

    分布式數(shù)據(jù)庫(kù)有哪些類型?分布式數(shù)據(jù)庫(kù)主要類型包括:關(guān)系型分布式數(shù)據(jù)庫(kù)、非關(guān)系型分布式數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 01-15 09:43 ?384次閱讀

    MySQL數(shù)據(jù)庫(kù)的安裝

    MySQL數(shù)據(jù)庫(kù)的安裝 【一】各種數(shù)據(jù)庫(kù)的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介紹
    的頭像 發(fā)表于 01-14 11:25 ?478次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫(kù)</b>的安裝

    數(shù)據(jù)庫(kù)是哪種數(shù)據(jù)庫(kù)類型?

    數(shù)據(jù)庫(kù)是一種部署在虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),它融合了計(jì)算的彈性和可擴(kuò)展性,為用戶提供高效、靈活的數(shù)據(jù)庫(kù)服務(wù)。
    的頭像 發(fā)表于 01-07 10:22 ?398次閱讀

    華為榮登Gartner?數(shù)據(jù)庫(kù)挑戰(zhàn)者象限

    近日,全球知名的信息技術(shù)研究與顧問(wèn)公司Gartner?正式發(fā)布了其備受矚目的2024年度《數(shù)據(jù)庫(kù)管理系統(tǒng)魔力象限報(bào)告》。在這份權(quán)威報(bào)告中,華為憑借其卓越的表現(xiàn)成功入選挑戰(zhàn)者象限,彰
    的頭像 發(fā)表于 12-31 13:57 ?452次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫(kù)故障: Mysql數(shù)據(jù)庫(kù)表記錄丟失。 Mysql數(shù)據(jù)庫(kù)故障表現(xiàn): 1、Mysql數(shù)據(jù)庫(kù)表中無(wú)任何數(shù)據(jù)或只有部分
    的頭像 發(fā)表于 12-16 11:05 ?513次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—Mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫(kù)故障: mysql數(shù)據(jù)庫(kù)文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫(kù)無(wú)法進(jìn)行查詢等操作;2、使用mysqlcheck和myisamchk無(wú)法修復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 12-09 11:05 ?504次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

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

    數(shù)據(jù)庫(kù)可以租用嗎?完整租用流程來(lái)了

    數(shù)據(jù)庫(kù)是可以租用的,這是一種合法且便捷的數(shù)據(jù)存儲(chǔ)和管理方式。數(shù)據(jù)庫(kù)服務(wù)提供商提供的各種服
    的頭像 發(fā)表于 10-28 09:54 ?421次閱讀

    科技報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)庫(kù)的野望

    科技報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)庫(kù)的野望
    的頭像 發(fā)表于 10-14 17:18 ?470次閱讀

    Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫(kù)庫(kù)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

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

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server附加數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫(kù)失敗。數(shù)據(jù)庫(kù)沒(méi)有備份,無(wú)法通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 09-20 11:46 ?618次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)所在分區(qū)空間不足報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 某品牌服務(wù)器存儲(chǔ)中有兩組raid5磁盤陣列。操作系統(tǒng)層面跑著SQL Server數(shù)據(jù)庫(kù),SQL Server數(shù)據(jù)庫(kù)存放在D盤分區(qū)中。
    的頭像 發(fā)表于 07-10 13:54 ?840次閱讀