99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀如何利用數(shù)據(jù)分級提高存儲的準(zhǔn)確率
如何利用數(shù)據(jù)分級提高存儲的準(zhǔn)確率
2015-12-06
收藏

如何利用數(shù)據(jù)分級提高存儲的準(zhǔn)確率


眾所周知,當(dāng)數(shù)據(jù)量達(dá)到一定的級別之后,通過提高設(shè)備性能或者增加設(shè)備,效果往往不會很明顯。這就好像魚塘大了、魚多了,要撈一條魚容易。但是要抓一條特定的、有標(biāo)記的魚,就困難多了。但是如果我們將一個大的魚塘分成一個個小魚塘,然后在不同的魚塘中放養(yǎng)不同的魚。即將鯉魚、鯽魚、草魚等等放養(yǎng)在各自的魚塘中。此時想抓什么魚就在什么魚塘抓就行了。


數(shù)據(jù)分級存儲其實(shí)跟這個魚塘放養(yǎng)的道理類似。一方面存儲設(shè)備的性能有優(yōu)劣之分,如磁帶的性能就比不上硬盤的性能。另一方面,用戶數(shù)據(jù)使用的頻率也是不同的。如訂單等信息可能需要經(jīng)常用到,而視頻監(jiān)控信息可能一年都不會訪問一次。在這種情況下,如果能夠?qū)⒂脩艚?jīng)常需要用到的數(shù)據(jù)放到硬盤上,而將使用頻率低的數(shù)據(jù)放到性能欠佳的磁帶設(shè)備上。那么就可以提高數(shù)據(jù)查詢的命中率,從而提高數(shù)據(jù)查詢與處理的效率。

一、利用離線存儲來提高設(shè)備的使用壽命。

如上圖所示,存儲在磁帶設(shè)備上的數(shù)據(jù)一般可能很少用到。如企業(yè)需要對數(shù)據(jù)庫等應(yīng)用軟件的數(shù)據(jù)進(jìn)行備份。此時可以將數(shù)據(jù)備份到磁帶設(shè)備上。根據(jù)慣例,一般一天24個小時這個磁帶設(shè)備可能就只需要半個小時。在這種情況下,如果磁帶設(shè)備仍然一天24個小時運(yùn)行著,那么是相當(dāng)浪費(fèi)的。不僅會浪費(fèi)電源,而且還會影響磁帶設(shè)備的使用壽命。

而如果在分級存儲中采用離線存儲的話,那么就可以解決這個問題。離線存儲簡單的說,就是平時磁帶設(shè)備是處于休眠狀態(tài)。當(dāng)需要用到的時候,可以將磁帶設(shè)備喚醒。然后往磁帶設(shè)備上讀取或者寫入數(shù)據(jù)。等到操作完成之后,磁帶系統(tǒng)就會自動再轉(zhuǎn)為休閑狀態(tài)。設(shè)計(jì)的好的話,可以將磁帶設(shè)備的運(yùn)行時間控制在最短時間之內(nèi),如一個小時之內(nèi)。從而可以提高設(shè)備的使用壽命。

通常情況下,離線存儲主要是用在對在線存儲的數(shù)據(jù)進(jìn)行備份,以防范可能發(fā)生的數(shù)據(jù)災(zāi)難。為此在分級存儲中,也將離線存儲叫做備份級別的存儲。這里需要注意的是,離線存儲介質(zhì)上的數(shù)據(jù)在讀寫時是按順序進(jìn)行的。當(dāng)需要數(shù)據(jù)讀取時,需要將帶子卷到頭,然后再進(jìn)行定位。當(dāng)需要對已寫入的數(shù)據(jù)進(jìn)行修改時,所有的數(shù)據(jù)都需要全部進(jìn)行改寫。所以離線海量存儲的效率是比較低的。但是其最大的優(yōu)點(diǎn)就是可以以比較低的成本實(shí)現(xiàn)海量存儲。

為此離線存儲并不適合所有的情況。通常情況下,離線存儲主要用來存儲那些不經(jīng)常使用的數(shù)據(jù),如數(shù)據(jù)備份等等。而且一般在分級存儲中結(jié)合使用離線存儲,用來提高設(shè)備的使用效率。

二、考慮如何有效的對數(shù)據(jù)進(jìn)行分級?

為什么有時候采用數(shù)據(jù)分級存儲策略能夠提高比較好的效果,而有時候效果又不明顯呢?筆者認(rèn)為,這其中有一個很重要的原因是數(shù)據(jù)分級策略的指標(biāo)不合適。也就是說,將什么魚放養(yǎng)在哪個魚塘中,是由存儲系統(tǒng)根據(jù)一定規(guī)則來決定的。如果這個規(guī)則設(shè)置不當(dāng),如只根據(jù)魚的大小來決定,那么同一個魚塘中就可能會有各種各樣的魚。此時就不利于數(shù)據(jù)的查詢與管理??梢?,這個分級的規(guī)則相當(dāng)?shù)年P(guān)鍵。

筆者建議,在使用數(shù)據(jù)分級存儲產(chǎn)品的時候,最好能夠選擇那些基于多指標(biāo)的數(shù)據(jù)分級策略。也就是說,根據(jù)基于數(shù)據(jù)的生命周期、上次訪問的時間、大小、訪問頻率等等多個參數(shù)對數(shù)據(jù)的價值進(jìn)行分級。具體的來說,在數(shù)據(jù)分級時需要考慮到如下內(nèi)容。

一是最好在數(shù)據(jù)創(chuàng)建的時候就能夠確定數(shù)據(jù)的級別。因?yàn)槿绻麛?shù)據(jù)一創(chuàng)建就能夠預(yù)測其訪問特性而進(jìn)行適當(dāng)?shù)姆旨墸湍軌驕p少不必要的數(shù)據(jù)轉(zhuǎn)移而帶來的麻煩。這也就是說,在日常管理中我們可以對于一些數(shù)據(jù)進(jìn)行手工的分級,而不需要讓系統(tǒng)來進(jìn)行分級。如根據(jù)以前的經(jīng)驗(yàn),可以預(yù)測用戶對于近1個月的郵件數(shù)據(jù)需要經(jīng)常訪問。那么就可以指定,對于最近一個月的數(shù)據(jù)指定為級別高的數(shù)據(jù)。而其他時間的郵件數(shù)據(jù)則根據(jù)一定的規(guī)則讓系統(tǒng)自動進(jìn)行判斷。手工指定與系統(tǒng)自動判斷結(jié)合,往往可以起到不錯的效果。

二是根據(jù)數(shù)據(jù)的靜態(tài)特征和動態(tài)特征來進(jìn)行分級也能夠起到不錯的效果。如可以通過以下方式來判斷文件是靜態(tài)的還是動態(tài)的。一是根據(jù)文件系統(tǒng)的靜態(tài)特征(如文件大小的分布),二是根據(jù)文件系統(tǒng)的宏觀訪問規(guī)律(如大小文件的訪問次數(shù)分布),三是根據(jù)根據(jù)文件之間的訪問關(guān)聯(lián)特征(如同一作業(yè)中的一個文件被訪問,則可能會帶動其他文件也被訪問),四是文件個性的訪問模式(如是否具有訪問的局限性)。在實(shí)際工作中,可以根據(jù)這些特征對文件進(jìn)行手工的歸類。也可以在選購的時候,判斷系統(tǒng)中是否有對應(yīng)的分級策略。

三、如何有效降低遷移過程中的沖突?

分級存儲另一個特點(diǎn),就是會根據(jù)數(shù)據(jù)的訪問級別,在不同設(shè)備之間進(jìn)行數(shù)據(jù)的遷移。如剛開始一些數(shù)據(jù)是存儲在硬盤或者磁盤陣列中的。后來分級存儲系統(tǒng)發(fā)現(xiàn)其已經(jīng)有近半年沒有被訪問了,此時就會將數(shù)據(jù)從硬盤或者磁盤陣列中遷移到磁帶中。這種遷移也叫做降級遷移(將數(shù)據(jù)從性能高的設(shè)備中遷移到性能低的設(shè)備中)。相反,當(dāng)用戶在一段時間內(nèi)突然頻繁訪問存放在磁帶中的數(shù)據(jù),此時分級存儲系統(tǒng)就會將數(shù)據(jù)從磁帶中遷移到硬盤或者磁盤陣列中,這就叫做升級遷移(數(shù)據(jù)有慢速存儲設(shè)備和低一級存儲設(shè)備往快速存儲設(shè)備或者高一級存儲設(shè)備遷移)。

這里需要注意,在遷移的過程中可能會發(fā)生沖突。根據(jù)筆者的經(jīng)驗(yàn),一般來說在降級遷移中設(shè)備的輸入輸出沖突并不是很嚴(yán)重。但是在升級遷移中,則必須要考慮數(shù)據(jù)遷移帶來的I/Q沖突。因?yàn)楦鶕?jù)測試發(fā)現(xiàn),數(shù)據(jù)遷移發(fā)生的時候,基本上是對應(yīng)設(shè)備I/Q最密集的時候。為此在分級系統(tǒng)設(shè)計(jì)的時候,必須要考慮到,如何才能夠最大程度的降低數(shù)據(jù)遷移過程中的I/Q沖突,降低對其他用戶數(shù)居訪問的不利影響?,F(xiàn)在常用的一種手段是盡量保證只在磁帶與磁盤陣列之間進(jìn)行數(shù)據(jù)的升級遷移。因?yàn)橄鄬碚f,可以通過增加硬盤的數(shù)量來增加數(shù)據(jù)輸入輸出的吞吐量,從而降低I/Q沖突。而減少在磁帶與單塊硬盤之間的數(shù)據(jù)遷移操作。根據(jù)筆者的測試發(fā)現(xiàn),及時性能最高的硬盤,在發(fā)生數(shù)據(jù)升級遷移的過程中,不可避免的會遇到I/O沖突的情況。

在數(shù)據(jù)遷移的過程中,除了要考慮數(shù)據(jù)沖突之外,還需要注意數(shù)據(jù)的一致性。根據(jù)現(xiàn)在的技術(shù),最常用的手段是通過讀寫鎖來確保數(shù)據(jù)的一致性。系統(tǒng)的遷移進(jìn)程會為當(dāng)前的數(shù)據(jù)塊申請讀寫鎖,以保證遷移進(jìn)程與寫操作進(jìn)程之間的數(shù)據(jù)一致性。通常情況下,則也是選擇分級存儲產(chǎn)品中必須要考慮一個指標(biāo)。

以上提到的這三個內(nèi)容,不僅僅是大家在部署的時候需要注意的問題,而且在選購產(chǎn)品的時候,也可以以這些標(biāo)準(zhǔn)來進(jìn)行評估。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }