• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      分布式緩存系統(tǒng)HOT KEY關(guān)鍵技術(shù)研究

      2018-05-16 12:52:10陳小強(qiáng)
      科學(xué)與技術(shù) 2018年15期
      關(guān)鍵詞:云計(jì)算數(shù)據(jù)庫(kù)

      陳小強(qiáng)

      摘要:分布式緩存作為支撐海量數(shù)據(jù)處理的關(guān)鍵技術(shù)方案,近年來(lái)受到了廣泛關(guān)注和應(yīng)用。本文從分布式緩存系統(tǒng)的工程實(shí)踐出發(fā),研究了分布式緩存系統(tǒng)處理Hot Key的關(guān)鍵技術(shù),提出了一種分布式緩存系統(tǒng)優(yōu)化設(shè)計(jì),通過(guò)動(dòng)態(tài)識(shí)別、自動(dòng)重分布等設(shè)計(jì),解決了Hot Key問(wèn)題,同時(shí)提高了分布式緩存系統(tǒng)的性能、穩(wěn)定性和適用性。實(shí)驗(yàn)驗(yàn)證和商用環(huán)境實(shí)際效果證明,相比傳統(tǒng)分布式緩存系統(tǒng),采用上述技術(shù)優(yōu)化后分布式緩存系統(tǒng)提升是有效的。

      關(guān)鍵詞:數(shù)據(jù)庫(kù);分布式緩存;NoSQL;云計(jì)算;Hot Key;熱點(diǎn)數(shù)據(jù)

      1分布式緩存系統(tǒng)Hot Key優(yōu)化設(shè)計(jì)及關(guān)鍵技術(shù)

      分布式緩存[1]基于鍵-值型(Key-Value)[2]數(shù)據(jù)模型,是業(yè)界目前最廣泛的一種NoSQL[3],其最大的優(yōu)勢(shì)在于對(duì)高并發(fā)的支持和它的可擴(kuò)展性。分布式緩存的代表有開(kāi)源的Redis[4]、memcached[5],亞馬遜的dynamo[6],淘寶的Tair等。這些分布式緩存系統(tǒng)使用的數(shù)據(jù)分布算法主要有一致性Hash[7]或基于Range分區(qū)兩種,但是只能保證數(shù)據(jù)分布的均衡,不能保證分布式緩存系統(tǒng)運(yùn)行中實(shí)際數(shù)據(jù)訪問(wèn)的均衡,即存在Hot Key,常見(jiàn)場(chǎng)景有兩類:

      1)新聞APP中的熱點(diǎn)新聞內(nèi)容

      2)電子商城秒殺系統(tǒng)中,最吸引用戶眼球,性價(jià)比最高的商品信息

      Hot Key導(dǎo)致主要問(wèn)題是緩存雪崩:大量的客戶端,大量的讀請(qǐng)求集中同時(shí)訪問(wèn)分布式緩存系統(tǒng)的某個(gè)服務(wù)節(jié)點(diǎn),導(dǎo)致服務(wù)節(jié)點(diǎn)響應(yīng)時(shí)延逐漸加大,直至不能對(duì)外提供服務(wù),即緩存雪崩。針對(duì)上述痛點(diǎn),本文提出了一種優(yōu)化的分布式緩存系統(tǒng)設(shè)計(jì),創(chuàng)新的功能有動(dòng)態(tài)識(shí)別Hot Key,識(shí)別出的Hot Key在分布式緩存系統(tǒng)中自動(dòng)重分布,用更多節(jié)點(diǎn)、更多線程承擔(dān)Hot Key的讀取請(qǐng)求,這樣系統(tǒng)地解決了Hot Key帶來(lái)的緩存雪崩。下面介紹這些關(guān)鍵技術(shù)的原理和實(shí)現(xiàn)。

      1.1動(dòng)態(tài)識(shí)別

      為了動(dòng)態(tài)統(tǒng)計(jì)Key的訪問(wèn)情況,在描述Key的結(jié)構(gòu)中增加訪問(wèn)時(shí)間和訪問(wèn)頻率兩個(gè)成員,動(dòng)態(tài)識(shí)別Hot Key流程如下:

      1)Client向分布式緩存系統(tǒng)的服務(wù)節(jié)點(diǎn)發(fā)起一個(gè)讀請(qǐng)求

      2)服務(wù)節(jié)點(diǎn)在索引中查詢Key

      3)Key沒(méi)有查詢到,直接給Client回響應(yīng),流程結(jié)束

      4)Key查詢到了,將Key的訪問(wèn)計(jì)數(shù)加1,更新訪問(wèn)時(shí)間

      5)如果訪問(wèn)時(shí)間中統(tǒng)計(jì)周期發(fā)生變化(統(tǒng)計(jì)周期缺省是分鐘),并且訪問(wèn)計(jì)數(shù)小于配置的最大QPS(每秒最大訪問(wèn)量),則給Client回響應(yīng),否則執(zhí)行下一步

      6)識(shí)別出一個(gè)Hot Key,將Key訪問(wèn)計(jì)數(shù)清零,開(kāi)始一個(gè)新的統(tǒng)計(jì)周期

      7)Hot Key開(kāi)始自動(dòng)重分布

      8)給Client回響應(yīng),響應(yīng)中包含Hot Key最新的分布節(jié)點(diǎn)信息以及過(guò)期時(shí)間,后續(xù)Client訪問(wèn)該Key時(shí),如果Key沒(méi)有過(guò)期則需要根據(jù)最新的分布節(jié)點(diǎn)信息重新計(jì)算服務(wù)節(jié)點(diǎn)

      1.2自動(dòng)重分布

      動(dòng)態(tài)識(shí)別出Hot Key后,必須進(jìn)一步將Hot Key自動(dòng)重新分布,分布到更多節(jié)點(diǎn)上,并分配更多的線程負(fù)責(zé)Hot Key的讀取,為此在描述Key的結(jié)構(gòu)中增加節(jié)點(diǎn)和線程信息:[< Node1,Thread1>......]

      Node:Hot Key分布的節(jié)點(diǎn)。

      Thread:節(jié)點(diǎn)上負(fù)責(zé)這個(gè)Hot key的讀取線程數(shù)。

      舉個(gè)例子,一個(gè)擁有5個(gè)節(jié)點(diǎn),數(shù)據(jù)是3副本的分布式緩存系統(tǒng)中,對(duì)一個(gè)非Hot Key來(lái)說(shuō)其分布信息:[< Node1,1>,,],為了節(jié)省內(nèi)存和磁盤空間,非Hot Key的分布信息被省略,分布式緩存系統(tǒng)會(huì)進(jìn)行默認(rèn)處理。如果一個(gè)Key被識(shí)別為Hot Key,其分布信息形式:[< Node1,2>,,,]即Hot Key從原先分布在3個(gè)節(jié)點(diǎn),重分布到5個(gè)節(jié)點(diǎn),即分布在集群所有節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)上有兩個(gè)線程,數(shù)據(jù)有兩個(gè)副本,即該Hot Key現(xiàn)在有10個(gè)副本,有10個(gè)線程負(fù)責(zé)讀取。需要注意的是重分布時(shí)數(shù)據(jù)需要跨節(jié)點(diǎn)復(fù)制,網(wǎng)絡(luò)傳輸會(huì)加大的響應(yīng)時(shí)延。

      2總結(jié)

      本文從實(shí)際工程問(wèn)題和需求出發(fā),針對(duì)分布式緩存系統(tǒng)處理Hot Key的關(guān)鍵技術(shù)進(jìn)行研究。通過(guò)動(dòng)態(tài)識(shí)別、自動(dòng)重分布等設(shè)計(jì),提高了分布式緩存系統(tǒng)的性能和穩(wěn)定性,能更好地適應(yīng)Hot Key場(chǎng)景。通過(guò)和傳統(tǒng)分布式緩存系統(tǒng)對(duì)比實(shí)驗(yàn)驗(yàn)證,以及商用生產(chǎn)環(huán)境的實(shí)際使用效果,都證明了采用上述關(guān)鍵技術(shù)后的分布式緩存系統(tǒng)提升是有效的。優(yōu)化后的分布式緩存系統(tǒng)在動(dòng)態(tài)識(shí)別Hot Key時(shí)QPS閾值等是固定配置好的,不滿足業(yè)務(wù)場(chǎng)景的多樣化,還有進(jìn)一步的優(yōu)化空間,可以引入人工智能確定QPS閾值,動(dòng)態(tài)識(shí)別向智能識(shí)別演進(jìn)是我們下一步的工作方向。

      參考文獻(xiàn)

      [1]于君澤 曹洪偉 邱碩等. 深入分布式緩存從原理到實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2018

      [2]馬文龍,朱妤晴,蔣德鈞等. Key-Value型NoSQL本地存儲(chǔ)系統(tǒng)研究[J]. 計(jì)算機(jī)學(xué)報(bào),2018,41(8):1722-1751.

      [3]NoSQL. Wikipedia. 2017. https://en.wikipedia.org/wiki/NoSQL

      [4]姚經(jīng)緯,楊福軍. Redis分布式緩存技術(shù)在Hadoop平臺(tái)上的應(yīng)用[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(6):146-150.

      [5]安仲奇,杜昊,李強(qiáng)等.基于高性能I/O技術(shù)的Memcached優(yōu)化研究[J].計(jì)算機(jī)研究與發(fā)展,2018,55(4):864-874.

      [6]Decandia G,Hastorun D,Jampani M,et al. Dynamo:amazon's highly available key-value store[J]. ACM SIGOPS Operating Systems Review,2007,41(6):205-220.

      [7]Robert Sedgewick.《算法》英文版第4版[M].人民郵電出版社,2012,ISBN:9787115271464.

      (作者單位:中興通訊股份有限公司)

      猜你喜歡
      云計(jì)算數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      志愿服務(wù)與“互聯(lián)網(wǎng)+”結(jié)合模式探究
      云計(jì)算與虛擬化
      基于云計(jì)算的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)
      實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
      云計(jì)算中的存儲(chǔ)虛擬化技術(shù)應(yīng)用
      科技視界(2016年20期)2016-09-29 13:34:06
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      镶黄旗| 龙江县| 黄骅市| 宜昌市| 北宁市| 青铜峡市| 山丹县| 都昌县| 莲花县| 海原县| 宁强县| 弥勒县| 宜兰县| 天等县| 芜湖县| 博爱县| 宜州市| 武强县| 浪卡子县| 阳原县| 伊吾县| 垦利县| 临漳县| 丽江市| 东平县| 龙川县| 沂南县| 哈尔滨市| 仁怀市| 富源县| 莒南县| 巫山县| 东港市| 乐安县| 青冈县| 神池县| 丰原市| 普安县| 高唐县| 大田县| 闽侯县|