輸入輸出io類(lèi)型的識(shí)別方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種輸入輸出IO類(lèi)型的識(shí)別方法和裝置。本發(fā)明輸入輸出IO類(lèi)型的識(shí)別方法,包括:接收IO請(qǐng)求;根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流;若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。本發(fā)明實(shí)施例實(shí)現(xiàn)了對(duì)順序流的識(shí)別,提升預(yù)取的命中率,大幅提高讀數(shù)據(jù)的性能。
【專(zhuān)利說(shuō)明】輸入輸出IO類(lèi)型的識(shí)別方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及通信和存儲(chǔ)技術(shù),尤其涉及一種輸入輸出IO類(lèi)型的識(shí)別方法和裝置。
【背景技術(shù)】
[0002]隨著流媒體的廣泛發(fā)展,對(duì)存儲(chǔ)系統(tǒng)的讀性能要求越來(lái)越高。僅僅是把主機(jī)的讀請(qǐng)求下發(fā)到磁盤(pán)中的方式可以滿(mǎn)足業(yè)務(wù),但每一個(gè)讀請(qǐng)求都需要下盤(pán)造成一個(gè)大塊連續(xù)的數(shù)據(jù)可能需要經(jīng)過(guò)多次讀盤(pán)才能獲取,這時(shí)磁盤(pán)的高延時(shí)將極大影響用戶(hù)對(duì)數(shù)據(jù)訪問(wèn)的體驗(yàn)。所以,根據(jù)已有輸入輸出(Input/Output,簡(jiǎn)稱(chēng)10)模型進(jìn)行判斷,將可能會(huì)被讀到的數(shù)據(jù)提前預(yù)取到存儲(chǔ)系統(tǒng)的內(nèi)存中等待主機(jī)讀請(qǐng)求過(guò)來(lái)直接命中,預(yù)取是提升讀性能特別是大塊順序讀業(yè)務(wù)性能的最重要的方法。
[0003]IO主要分為順序IO和隨機(jī)IO兩類(lèi)。而為了提高存儲(chǔ)系統(tǒng)的讀性能需要判斷是否預(yù)取,主要依賴(lài)于對(duì)順序流的IO的識(shí)別?,F(xiàn)有技術(shù)中的順序流識(shí)別方法中,對(duì)每個(gè)數(shù)據(jù)塊引入一個(gè)順序度計(jì)數(shù);數(shù)據(jù)塊被讀入高速緩沖存儲(chǔ)區(qū)(cache)時(shí),該數(shù)據(jù)塊的順序度計(jì)數(shù)是其前一個(gè)位置數(shù)據(jù)塊的順序度計(jì)數(shù)加I ;若前一個(gè)位置上的數(shù)據(jù)塊不存在,那么本身的順序度計(jì)數(shù)就是I ;若當(dāng)前數(shù)據(jù)塊的順序度計(jì)數(shù)沒(méi)有達(dá)到順序度閥值,則可以認(rèn)為該數(shù)據(jù)塊為隨機(jī)數(shù)據(jù);若當(dāng)前數(shù)據(jù)塊的順序度計(jì)數(shù)達(dá)到順序度閥值,則可以認(rèn)為該數(shù)據(jù)塊為順序數(shù)據(jù)。
[0004]使用現(xiàn)有順序流識(shí)別方法對(duì)主機(jī)IO進(jìn)行識(shí)別時(shí),主機(jī)發(fā)送的請(qǐng)求是順序的,但到達(dá)存儲(chǔ)系統(tǒng)并不一定是順序的,在傳輸過(guò)程中有可能出現(xiàn)亂序,該方案不能識(shí)別亂序的順序流,并且若同時(shí)有多個(gè)順序流業(yè)務(wù)在執(zhí)行的時(shí)候,現(xiàn)有技術(shù)的方法往往也不能正確識(shí)別順序流。其中最主要的原因在于,多路順序流業(yè)務(wù)之間是存在干擾的。當(dāng)一個(gè)存儲(chǔ)單元中(一個(gè)邏輯單兀號(hào)(Logical Unit Number,簡(jiǎn)稱(chēng) LUN)或者磁盤(pán)陣列(Redundant Arrays ofIndependent Disks,簡(jiǎn)稱(chēng)RAID))存在多個(gè)順序業(yè)務(wù)時(shí),由于這些IO之間不存在相關(guān)性,卻被識(shí)別算法統(tǒng)一納入算法進(jìn)行計(jì)算和判斷,這樣造成了不屬于同一順序流之間的IO相互干擾,不僅無(wú)助于順序流識(shí)別,反而彼此成為噪聲影響識(shí)別算法的識(shí)別。在順序業(yè)務(wù)的數(shù)量達(dá)到上千路時(shí)磁盤(pán)陣列收到的IO幾乎等同于隨機(jī)10,將導(dǎo)致順序流識(shí)別算法失效從而無(wú)法采取有效的預(yù)取策略來(lái)提高讀性能。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種輸入輸出IO類(lèi)型的識(shí)別方法和裝置,以解決現(xiàn)有技術(shù)中當(dāng)IO亂序時(shí)對(duì)順序流識(shí)別錯(cuò)誤的問(wèn)題。
[0006]第一方面,本發(fā)明實(shí)施例提供一種輸入輸出IO類(lèi)型的識(shí)別方法,包括:
[0007]接收IO請(qǐng)求;
[0008]根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流;[0009]若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
[0010]結(jié)合第一方面,在第一方面的第一種可能實(shí)現(xiàn)的方式中,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息;所述預(yù)設(shè)算法為歐式距離法;
[0011]相應(yīng)地,根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有的類(lèi)型集合的判別條件包括:
[0012]根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距;
[0013]將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較,若間距不大于距離閾值,則獲知所述IO請(qǐng)求滿(mǎn)足所述對(duì)應(yīng)的已有類(lèi)型集合的判別條件。
[0014]結(jié)合第一方面的第一種可能實(shí)現(xiàn)的方式,在第一方面的第二種可能實(shí)現(xiàn)的方式中,還包括:
[0015]若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件;若所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
[0016]結(jié)合第一方面、第一方面的第一種至第二種任一種可能實(shí)現(xiàn)的方式,在第一方面第三種可能實(shí)現(xiàn)的方式中,所述將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中之后,還包括:
[0017]根據(jù)所述IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件。
[0018]結(jié)合第一方面第三種可能實(shí)現(xiàn)的方式,在第一方面的第四種可能實(shí)現(xiàn)的方式中,還包括:
[0019]刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合。
[0020]第二方面,本發(fā)明實(shí)施例提供一種IO類(lèi)型的識(shí)別裝置,包括:
[0021]接收模塊,用于接收IO請(qǐng)求;
[0022]判斷模塊,用于根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流;
[0023]處理模塊,用于若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
[0024]結(jié)合第二方面,在第二方面的第一種可能實(shí)現(xiàn)的方式中,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息;所述預(yù)設(shè)算法為歐式距離法;
[0025]相應(yīng)地,所述判斷模塊包括:
[0026]計(jì)算單元,用于根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距;
[0027]比較單元,用于將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較,若間距不大于距離閾值,則獲知所述IO請(qǐng)求滿(mǎn)足所述對(duì)應(yīng)的已有類(lèi)型集合的判別條件。
[0028]結(jié)合第二方面第一種可能實(shí)現(xiàn)的方式,在第二方面的第二種可能實(shí)現(xiàn)的方式中,所述比較單元還用于若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件;若所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
[0029]結(jié)合第二方面、第二方面第一種至第二種任一種可能實(shí)現(xiàn)的方式,在第二方面第三種可能實(shí)現(xiàn)的方式中,還包括:
[0030]更新模塊,用于所述將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中之后,根據(jù)所述IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件。
[0031]結(jié)合第二方面第三種可能實(shí)現(xiàn)的方式,在第二方面的第四種可能實(shí)現(xiàn)的方式中,還包括:
[0032]刪除模塊,用于刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合。
[0033]本發(fā)明實(shí)施例輸入輸出IO類(lèi)型的識(shí)別方法和裝置,通過(guò)接收IO請(qǐng)求,根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流,若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。即根據(jù)IO請(qǐng)求的屬性信息將IO請(qǐng)求劃分到合適類(lèi)型集合中,屬于同一類(lèi)型集合中的IO請(qǐng)求為一路順序流,從而實(shí)現(xiàn)了對(duì)順序流的識(shí)別,提升預(yù)取的命中率,大幅提高讀數(shù)據(jù)的性能,解決了現(xiàn)有技術(shù)中當(dāng)IO亂序時(shí)對(duì)順序流識(shí)別錯(cuò)誤的問(wèn)題。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明輸入輸出IO類(lèi)型的識(shí)別方法實(shí)施例一的流程圖;
[0036]圖2為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例二的流程圖;
[0037]圖3為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例三的流程圖;
[0038]圖4為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例三的結(jié)構(gòu)示意圖;
[0039]圖5為本發(fā)明IO類(lèi)型的識(shí)別的裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0040]圖6為本發(fā)明IO類(lèi)型識(shí)別的裝置實(shí)施例二的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0041]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0042]圖1為本發(fā)明輸入輸出IO類(lèi)型的識(shí)別方法實(shí)施例一的流程圖,如圖1所示,本實(shí)施例的方法可以包括:
[0043]步驟101、接收IO請(qǐng)求。
[0044]其中,可以為接收主機(jī)發(fā)送的IO請(qǐng)求,該IO請(qǐng)求可以是順序10,也可以是隨機(jī)10。
[0045]步驟102、根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流。
[0046]其中,所述IO請(qǐng)求的屬性信息可以包括IO請(qǐng)求的時(shí)間信息、IO請(qǐng)求的大小以及IO請(qǐng)求對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息等任一種屬性,也可以為多種屬性組合使用構(gòu)成所述IO請(qǐng)求的屬性信息,除此之外還可以根據(jù)IO請(qǐng)求的業(yè)務(wù)特征進(jìn)行靈活的配置。
[0047]其中,所述已有類(lèi)型集合判別條件可以根據(jù)所述IO請(qǐng)求的屬性信息進(jìn)行靈活設(shè)置。
[0048]步驟103、若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
[0049]本實(shí)施例,通過(guò)接收IO請(qǐng)求,根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流,若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。即根據(jù)IO請(qǐng)求的屬性信息將IO請(qǐng)求劃分到合適類(lèi)型集合中,屬于同一類(lèi)型集合中的IO請(qǐng)求為一路順序流,從而實(shí)現(xiàn)了對(duì)順序流的識(shí)另IJ,提升預(yù)取的命中率,大幅提高讀數(shù)據(jù)的性能,解決了現(xiàn)有技術(shù)中當(dāng)IO亂序時(shí)對(duì)順序流識(shí)別錯(cuò)誤的問(wèn)題。
[0050]圖2為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例二的流程圖,如圖2所示,本實(shí)施例的方法可以包括:
[0051]步驟201、接收IO請(qǐng)求。
[0052]其中,可以接收主機(jī)發(fā)送的IO請(qǐng)求,該IO請(qǐng)求可以是順序IO也可以是隨機(jī)10。
[0053]步驟202、根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;若滿(mǎn)足則執(zhí)行步驟203,若不滿(mǎn)足則執(zhí)行步驟204。
[0054]其中,各類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流。
[0055]其中,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息;所述預(yù)設(shè)算法為歐式距離法;
[0056]相應(yīng)地,根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有的類(lèi)型集合的判別條件包括:根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距;將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較。
[0057]若間距不大于距離閾值,則獲知IO請(qǐng)求滿(mǎn)足所述類(lèi)型集合的判別條件;若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件,當(dāng)所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件時(shí),則執(zhí)行步驟204。
[0058]具體地,IO請(qǐng)求對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息為IO請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)塊在磁盤(pán)中的位
置信息。
[0059]步驟203、將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中。
[0060]步驟204、將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
[0061]步驟205、若所述類(lèi)型集合中有新的元素加入,則根據(jù)新加入的IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件。
[0062]步驟206、刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合。
[0063]本實(shí)施例通過(guò)接受IO請(qǐng)求,根據(jù)所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件,若滿(mǎn)足已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為新的元素加入到所述類(lèi)型集合中個(gè),并根據(jù)新加入的IO請(qǐng)求的屬性信息更新所述類(lèi)型集合的判別條件,若不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將IO請(qǐng)求作為唯一的元素生成新的類(lèi)型集合,進(jìn)一步地,對(duì)預(yù)定時(shí)間內(nèi)沒(méi)有新的元素加入的類(lèi)型集合進(jìn)行刪除,從而實(shí)現(xiàn)了對(duì)IO類(lèi)型的識(shí)別,被劃分到同一類(lèi)型集合的IO請(qǐng)求屬于同一順序流10,各類(lèi)型集合為不同的順序流10,進(jìn)而實(shí)現(xiàn)多路順序流的識(shí)別,提升預(yù)取的命中率,大幅提高讀數(shù)據(jù)的性能。
[0064]下面采用一個(gè)具體的實(shí)施例,對(duì)圖2所示方法實(shí)施例的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。圖3為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例三的流程圖,圖4為本發(fā)明IO類(lèi)型的識(shí)別方法實(shí)施例三的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例的方法可以包括:
[0065]S301:存儲(chǔ)設(shè)備接收主機(jī)發(fā)送的IO請(qǐng)求a。
[0066]S302:存儲(chǔ)設(shè)備根據(jù)IO請(qǐng)求a的時(shí)間信息和位置信息判斷其所在小段數(shù)據(jù)單元(Chunk)是否屬于已有類(lèi)型。
[0067]其中,時(shí)間信息為存儲(chǔ)設(shè)備接收到主機(jī)發(fā)送的IO請(qǐng)求a的時(shí)間,位置信息為IO請(qǐng)求a對(duì)應(yīng)數(shù)據(jù)塊在磁盤(pán)中的位置信息。
[0068]具體地,判斷是否屬于已有類(lèi)型過(guò)程如下:根據(jù)已有類(lèi)型中一個(gè)集合中的各IO請(qǐng)求的時(shí)間信息和位置信息計(jì)算出該集合的平均時(shí)間信息和平均距離信息,即將各IO請(qǐng)求作為一個(gè)對(duì)象,將其映射到一個(gè)2維空間中,在該空間中計(jì)算出該集合的中心信息,使用相同的方法計(jì)算已有類(lèi)型集合中各個(gè)集合的中心信息;當(dāng)接受到IO請(qǐng)求a則根據(jù)其時(shí)間信息和位置信息使用歐式距離法計(jì)算IO請(qǐng)求a到各已有類(lèi)型集合的中心的間距,將計(jì)算出的間距與對(duì)應(yīng)的類(lèi)型集合的距離閾值進(jìn)行比較。
[0069]S303:若屬于已有類(lèi)型集合中任一集合則進(jìn)入步驟304,若不屬于已有類(lèi)型集合中任一集合則進(jìn)入步驟305。
[0070]具體地,在S302中計(jì)算出的IO請(qǐng)求a到各已有類(lèi)型集合的中心間距若不大于對(duì)應(yīng)的各類(lèi)型集合的距離閾值,則獲知IO請(qǐng)求a滿(mǎn)足該類(lèi)型集合的判別條件;若否,則獲知IO請(qǐng)求a不滿(mǎn)足該類(lèi)型結(jié)合的判別條件。
[0071]S304:將IO請(qǐng)求a加入到合適的類(lèi)型集合中,如圖4所示,并根據(jù)IO請(qǐng)求a的屬性信息更新該類(lèi)型集合的判別條件,并進(jìn)入S306。
[0072]具體地,每一個(gè)集合在生成之后,由于順序IO是在一段地址空間上單向進(jìn)行訪問(wèn)的,集合中的對(duì)象隨著新到的IO請(qǐng)求是在不斷更新的,所以集合的判別條件也應(yīng)該相應(yīng)的被更新,以適應(yīng)對(duì)新的IO類(lèi)型進(jìn)行識(shí)別。
[0073]S305:將IO請(qǐng)求a作為唯一的元素,生成一個(gè)新的集合,如圖4所示,并根據(jù)IO請(qǐng)求a的屬性信息更新該新集合的判別條件,進(jìn)入S306。
[0074]在S304和S305中,當(dāng)IO請(qǐng)求a被劃入合適集合中,根據(jù)IO請(qǐng)求a將主機(jī)所需數(shù)據(jù)返回給主機(jī)后,可以將IO請(qǐng)求a所在的Chunk保留其IO屬性信息,用于維護(hù)其所屬類(lèi)型集合的集合信息,Chunk里其他數(shù)據(jù)信息進(jìn)行清除。
[0075]S306:對(duì)在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合進(jìn)行刪除。
[0076]具體地,由于進(jìn)入存儲(chǔ)系統(tǒng)的數(shù)據(jù)是在不斷更新的,比如視頻點(diǎn)播中,播放完的視頻文件必須盡快淘汰而不能一直存在于內(nèi)存中,所以無(wú)論是新類(lèi)型集合的創(chuàng)建還是IO類(lèi)型的識(shí)別都是動(dòng)態(tài)的。
[0077]當(dāng)存儲(chǔ)設(shè)備接收到其他IO請(qǐng)求時(shí),可以采用S301-S306的具體識(shí)別方法,該方法可適用于任意類(lèi)型IO的識(shí)別,根據(jù)上述步驟將IO請(qǐng)求劃分到合適類(lèi)型集合中,一個(gè)類(lèi)型集合中的各IO請(qǐng)求,對(duì)應(yīng)同一順序流,不同的類(lèi)型集合對(duì)應(yīng)不同順序流,進(jìn)而有效地實(shí)現(xiàn)了多路順序流的識(shí)別,提升預(yù)取的命中率,大幅提高讀數(shù)據(jù)的性能。進(jìn)一步地,使用上述方法可以有效避免順序流由于其他路順序IO的存在而被誤認(rèn)為是隨機(jī)10,排除了多路順序流之間的干擾,在分別識(shí)別出多路順序流的情況下,可以對(duì)每一路順序IO采取相應(yīng)的預(yù)取/緩存措施,達(dá)到存儲(chǔ)系統(tǒng)性能最優(yōu)化;在多路順序流IO和隨機(jī)IO并存的情況下,排除隨機(jī)IO的干擾,能夠正確識(shí)別出順序流10,避免隨機(jī)IO被誤識(shí)別為順序10,造成預(yù)取/緩存措施錯(cuò)誤,帶來(lái)不必要的性能損耗;對(duì)于IO屬性的靈活配置,在多個(gè)維度上對(duì)順序IO和隨機(jī)IO進(jìn)行識(shí)別,較大程度緩和IO亂序?qū)λ惴ㄔ斐傻挠绊憽?br>
[0078]圖5為本發(fā)明IO類(lèi)型的識(shí)別的裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖5所示,本實(shí)施例的裝置可以包括:接收模塊11、判斷模塊12以及處理模塊13,其中,接收模塊11用于接收IO請(qǐng)求,判斷模塊12用于根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流,處理模塊13用于若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
[0079]本實(shí)施例的裝置,可以用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。
[0080]圖6為本發(fā)明IO類(lèi)型識(shí)別的裝置實(shí)施例二的結(jié)構(gòu)示意圖,如圖6所示,本實(shí)施例的裝置在圖5所示裝置結(jié)構(gòu)的基礎(chǔ)上,進(jìn)一步地,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息,所述預(yù)設(shè)算法為歐式距離法,判斷模塊12可以包括:計(jì)算單元121和比較單元122,其中,計(jì)算單元121用于根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距,比較單元122用于將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較,若間距不大于距離閾值,則獲知所述IO請(qǐng)求滿(mǎn)足所述對(duì)應(yīng)的已有類(lèi)型集合的判別條件。
[0081]其中,所述比較單元122還用于若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件;若所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
[0082]進(jìn)一步地,該裝置還包括更新模塊61和刪除模塊62,其中,更新模塊61用于所述將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中之后,根據(jù)所述IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件,刪除模塊62用于刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)
型集合。
[0083]本實(shí)施例的裝置,可以用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。
[0084]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0085]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0086]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0087]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0088]本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0089]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種輸入輸出IO類(lèi)型的識(shí)別方法,其特征在于,包括: 接收IO請(qǐng)求; 根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流; 若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息;所述預(yù)設(shè)算法為歐式距離法; 相應(yīng)地,根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有的類(lèi)型集合的判別條件包括: 根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距; 將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較,若間距不大于距離閾值,則獲知所述IO請(qǐng)求滿(mǎn)足所述對(duì)應(yīng)的已有類(lèi)型集合的判別條件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件;若所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
4.根據(jù)權(quán)利要求1至3任一所述的方法,其特征在于,所述將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中之后,還包括: 根據(jù)所述IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合。
6.一種輸入輸出IO類(lèi)型的識(shí)別裝置,其特征在于,包括: 接收模塊,用于接收IO請(qǐng)求; 判斷模塊,用于根據(jù)所述IO請(qǐng)求的屬性信息以及預(yù)設(shè)算法判斷所述IO請(qǐng)求是否滿(mǎn)足已有類(lèi)型集合的判別條件;各已有類(lèi)型集合中所包括的各IO請(qǐng)求屬于同一個(gè)IO順序流;處理模塊,用于若判斷獲知所述IO請(qǐng)求滿(mǎn)足一已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述已有類(lèi)型集合中。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述屬性信息包括所述IO請(qǐng)求的時(shí)間信息和對(duì)應(yīng)存儲(chǔ)設(shè)備的位置信息;所述預(yù)設(shè)算法為歐式距離法; 相應(yīng)地,所述判斷模塊包括: 計(jì)算單元,用于根據(jù)所述時(shí)間信息和所述位置信息,利用歐式距離法計(jì)算所述IO請(qǐng)求與各已有類(lèi)型集合的中心之間的間距; 比較單元,用于將計(jì)算出的間距與對(duì)應(yīng)的已有類(lèi)型集合的距離閾值進(jìn)行比較,若間距不大于距離閾值,則獲知所述IO請(qǐng)求滿(mǎn)足所述對(duì)應(yīng)的已有類(lèi)型集合的判別條件。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述比較單元還用于若間距大于距離閾值,則獲知所述IO請(qǐng)求不滿(mǎn)足所述類(lèi)型集合的判別條件;若所述IO請(qǐng)求不滿(mǎn)足所有已有類(lèi)型集合的判別條件,則將所述IO請(qǐng)求作為唯一的元素,生成一個(gè)新的類(lèi)型集合。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的裝置,其特征在于,還包括: 更新模塊,用于所述將所述IO請(qǐng)求作為一個(gè)新的元素加入到所述類(lèi)型集合中之后,根據(jù)所述IO請(qǐng)求的屬性信息,更新所述類(lèi)型集合的判別條件。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括: 刪除模塊,用于刪除預(yù)定時(shí)間內(nèi)沒(méi)有新元素加入的類(lèi)型集合。
【文檔編號(hào)】G06F13/16GK103927136SQ201410160560
【公開(kāi)日】2014年7月16日 申請(qǐng)日期:2014年4月21日 優(yōu)先權(quán)日:2014年4月21日
【發(fā)明者】熊鳴昊 申請(qǐng)人:華為技術(shù)有限公司