本技術(shù)涉及數(shù)據(jù)處理,特別是涉及一種io請(qǐng)求處理方法、裝置、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、為了提高對(duì)io請(qǐng)求的處理效率,分布式系統(tǒng)中通常會(huì)將一個(gè)io請(qǐng)求拆分成多個(gè)子io請(qǐng)求,以基于多個(gè)線程對(duì)多個(gè)子io請(qǐng)求進(jìn)行處理,提高io請(qǐng)求的處理效率。
2、現(xiàn)有技術(shù)中,通常是基于循環(huán)遍歷的方法來實(shí)現(xiàn)對(duì)io請(qǐng)求的拆分處理。
3、然而,在io較大或配比較高的情況下,使用這種方法的耗時(shí)較長(zhǎng),進(jìn)而使得io請(qǐng)求的拆分效率較低。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問題,提供一種拆分效率較高的io請(qǐng)求方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種io請(qǐng)求方法,包括:
3、接收待拆分的io請(qǐng)求,該io請(qǐng)求攜帶主io屬性信息,該主io屬性信息包括該io請(qǐng)求的主io起始偏移位置和主io長(zhǎng)度信息;根據(jù)該主io屬性信息和預(yù)設(shè)的條帶配比信息,確定該io請(qǐng)求的目標(biāo)拆分場(chǎng)景;根據(jù)該主io屬性信息、該條帶配比信息以及該目標(biāo)拆分場(chǎng)景,確定該io請(qǐng)求的拆分結(jié)果,該拆分結(jié)果包括該io請(qǐng)求拆分后的各子io請(qǐng)求的子io屬性信息,該子io屬性信息包括該子io請(qǐng)求的子io起始位置和子io長(zhǎng)度信息。
4、在其中一個(gè)實(shí)施例中,該根據(jù)該主io屬性信息和該條帶配比信息,確定該io請(qǐng)求的目標(biāo)拆分場(chǎng)景,包括:根據(jù)該主io屬性信息和該條帶配比信息,獲取各該子io請(qǐng)求中起始子io請(qǐng)求的起始數(shù)據(jù)塊標(biāo)識(shí)以及終止子io請(qǐng)求的終止數(shù)據(jù)塊標(biāo)識(shí);根據(jù)該起始數(shù)據(jù)塊標(biāo)識(shí)以及該終止數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定該目標(biāo)拆分場(chǎng)景。
5、在其中一個(gè)實(shí)施例中,該根據(jù)該起始數(shù)據(jù)塊標(biāo)識(shí)以及該終止數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定該目標(biāo)拆分場(chǎng)景,包括:根據(jù)該起始數(shù)據(jù)塊標(biāo)識(shí)以及該終止數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定各候選拆分場(chǎng)景;根據(jù)該主io屬性信息和該條帶配比信息,確定該起始子io請(qǐng)求的序號(hào)和該終止子io請(qǐng)求的序號(hào);根據(jù)該起始子io請(qǐng)求的序號(hào)和該終止子io請(qǐng)求的序號(hào)之間的大小關(guān)系,從各該候選拆分場(chǎng)景中確定該目標(biāo)拆分場(chǎng)景。
6、在其中一個(gè)實(shí)施例中,該根據(jù)該起始數(shù)據(jù)塊標(biāo)識(shí)以及該終止數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定各候選拆分場(chǎng)景,包括:對(duì)該起始數(shù)據(jù)塊標(biāo)識(shí)進(jìn)行向上取整處理,得到向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),并對(duì)該終止數(shù)據(jù)塊標(biāo)識(shí)進(jìn)行向上取整處理,得到向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí);若該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí)等于該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),則確定該候選拆分場(chǎng)景為單層拆分循環(huán)場(chǎng)景;若該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí)小于該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),則確定該候選拆分場(chǎng)景為多層拆分循環(huán)場(chǎng)景。
7、在其中一個(gè)實(shí)施例中,在該候選拆分場(chǎng)景為該單層拆分循環(huán)場(chǎng)景的情況下,該根據(jù)該起始子io請(qǐng)求的序號(hào)和該終止子io請(qǐng)求的序號(hào)之間的大小關(guān)系,從各該候選拆分場(chǎng)景中確定該目標(biāo)拆分場(chǎng)景,包括:若該起始子io請(qǐng)求的序號(hào)小于該終止子io請(qǐng)求的序號(hào),則確定該目標(biāo)拆分場(chǎng)景為第一拆分場(chǎng)景,該第一拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到至少兩個(gè)子io請(qǐng)求,且該終止子io請(qǐng)求的結(jié)束位置存在塊內(nèi)位置偏移;若該起始子io請(qǐng)求的序號(hào)大于該終止子io請(qǐng)求的序號(hào),則確定該目標(biāo)拆分場(chǎng)景為第二拆分場(chǎng)景,該第二拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到至少兩個(gè)子io請(qǐng)求,且該終止子io請(qǐng)求的結(jié)束位置不存在塊內(nèi)位置偏移;若該起始子io請(qǐng)求的序號(hào)等于該終止子io請(qǐng)求的序號(hào),則確定該目標(biāo)拆分場(chǎng)景為第三拆分場(chǎng)景,該第三拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到一個(gè)子io請(qǐng)求。
8、在其中一個(gè)實(shí)施例中,在該候選拆分場(chǎng)景為該多層拆分循環(huán)場(chǎng)景的情況下,該根據(jù)該起始子io請(qǐng)求的序號(hào)和該終止子io請(qǐng)求的序號(hào)之間的大小關(guān)系,從各該候選拆分場(chǎng)景中確定該目標(biāo)拆分場(chǎng)景,包括:若該起始子io請(qǐng)求的序號(hào)大于該終止子io請(qǐng)求的序號(hào),則根據(jù)向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí)和向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定該目標(biāo)拆分場(chǎng)景;若該起始子io請(qǐng)求的序號(hào)等于該終止子io請(qǐng)求的序號(hào),則確定該目標(biāo)拆分場(chǎng)景為第四拆分場(chǎng)景,該第四拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到各個(gè)子io請(qǐng)求中,該起始子io請(qǐng)求與該終止子io請(qǐng)求為同一個(gè)子io請(qǐng)求;若該起始子io請(qǐng)求的序號(hào)小于該終止子io請(qǐng)求的序號(hào),則確定該目標(biāo)拆分場(chǎng)景為第五拆分場(chǎng)景,該第五拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到各個(gè)子io請(qǐng)求中,該終止子io請(qǐng)求重疊至該起始子io請(qǐng)求之后。
9、在其中一個(gè)實(shí)施例中,該根據(jù)向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí)和向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí)之間的大小關(guān)系,確定該目標(biāo)拆分場(chǎng)景,包括:若該向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí)大于或者小于該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),則確定該目標(biāo)拆分場(chǎng)景為第六拆分場(chǎng)景,該第六拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到各個(gè)子io請(qǐng)求中,該終止子io請(qǐng)求重疊至該起始子io請(qǐng)求之前,且各該子io請(qǐng)求覆蓋各個(gè)條帶;若該向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí)等于該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),則確定該目標(biāo)拆分場(chǎng)景為第七拆分場(chǎng)景,該第七拆分場(chǎng)景用于表征對(duì)該io請(qǐng)求拆分得到各個(gè)子io請(qǐng)求中,該終止子io請(qǐng)求重疊至該起始子io請(qǐng)求之前,且各該子io請(qǐng)求覆蓋各個(gè)該條帶中的部分條帶。
10、在其中一個(gè)實(shí)施例中,該根據(jù)該主io屬性信息、該條帶配比信息以及該目標(biāo)拆分場(chǎng)景,確定該io請(qǐng)求的拆分結(jié)果,包括:將該主io屬性信息、該條帶配比信息代入該目標(biāo)拆分場(chǎng)景對(duì)應(yīng)的拆分公式中,得到該拆分結(jié)果。
11、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為第一拆分場(chǎng)景的情況下,該第一拆分場(chǎng)景對(duì)應(yīng)的第一拆分公式包括:lcs=[ts,t-ps];lcs+1→lce-1=[as*t,t];lce=[as*t,pe];其中,lcs指的是該起始子io請(qǐng)求,lcs+1→lce-1指的是中間子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,t指的是數(shù)據(jù)塊長(zhǎng)度,ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度,as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí),pe指的是該終止子io請(qǐng)求的塊內(nèi)偏移長(zhǎng)度。
12、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第二拆分場(chǎng)景的情況下,該第二拆分場(chǎng)景對(duì)應(yīng)的第二拆分公式包括:lcs=[ts,t-ps];lcs+1→lce-1=[as*t,t];lce=[as*t,te];其中,lcs指的是該起始子io請(qǐng)求,lcs+1→lce-1指的是中間子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,t指的是數(shù)據(jù)塊長(zhǎng)度,ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度,as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí),te指的是該終止子io請(qǐng)求在終止子io內(nèi)的偏移位置。
13、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第三拆分場(chǎng)景的情況下,該第三拆分場(chǎng)景對(duì)應(yīng)的第三拆分公式包括:lcs=lce=[ts,s];其中,lcs指的是該起始子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,s指的是主io長(zhǎng)度。
14、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第四拆分場(chǎng)景的情況下,該第四拆分場(chǎng)景對(duì)應(yīng)的第四拆分公式包括:l[0,...,cs-1]=[rs*t,(re-rs)*t];lcs=lce=[ts,(ae-as)*t-ps+pe];l[cs+1,...,n-1]=[as*t,(ae-as)*t];其中,l[0,...,cs-1]指的是第一中間子io請(qǐng)求,lcs指的是該起始子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,l[cs+1,...,n-1]指的是第二中間子io請(qǐng)求,rs指的是該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),t指的是數(shù)據(jù)塊長(zhǎng)度,re指的是該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,ae指的是該向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí),as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí),ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度,pe指的是該終止子io請(qǐng)求的塊內(nèi)偏移長(zhǎng)度。
15、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第五拆分場(chǎng)景的情況下,該第五拆分場(chǎng)景對(duì)應(yīng)的第五拆分公式包括:l[0,...,cs-1]=[rs*t,(re-rs)*t];lcs=[ts,(re-as)*t-ps];lcs+1→ce-1=[as*t,(re-as)*t];lce=[as*t,(ae-as)*t+pe];l[ce+1,...,n-1]=[as*t,(ae-as)*t];其中,l[0,...,cs-1]指的是第一中間子io請(qǐng)求,lcs指的是該起始子io請(qǐng)求,lcs+1→ce-1指的是第二中間子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,l[ce+1,...,n-1]指的是第三中間子io請(qǐng)求,rs指的是該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),t指的是數(shù)據(jù)塊長(zhǎng)度,re指的是該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí),pe指的是該終止子io請(qǐng)求的塊內(nèi)偏移長(zhǎng)度,ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度。
16、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第六拆分場(chǎng)景的情況下,該第六拆分場(chǎng)景對(duì)應(yīng)的第六拆分公式包括:l[0,...,ce-1]=[rs*t,(re-rs)*t];lce=[rs*t,(ae-rs)*t+pe];lce+1→cs-1=[rs*t,(ae-rs)*t];lcs=[ts,(ae-as)*t-ps];l[cs+1,...,n-1]=[as*t,(ae-as)*t];其中,l[0,...,ce-1]指的是第一中間子io請(qǐng)求,lcs指的是該起始子io請(qǐng)求,lce+1→cs-1指的是第二中間子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,l[cs+1,...,n-1]指的是第三中間子io請(qǐng)求,rs指的是該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),t指的是數(shù)據(jù)塊長(zhǎng)度,re指的是該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),pe指的是該終止子io請(qǐng)求的塊內(nèi)偏移長(zhǎng)度,ae指的是該向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí),ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度,as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí),ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置。
17、在其中一個(gè)實(shí)施例中,在該目標(biāo)拆分場(chǎng)景為該第七拆分場(chǎng)景的情況下,該第七拆分場(chǎng)景對(duì)應(yīng)的第七拆分公式包括:l[0,...,ce-1]=[rs*t,(re-rs)*t];lce=[rs*t,(ae-rs)*t+pe];lcs=[ts,(ae-as)*t-ps];l[cs+1,...,n-1]=[as*t,(ae-as)*t];其中,l[0,...,ce-1]指的是第一中間子io請(qǐng)求,lcs指的是該起始子io請(qǐng)求,lce指的是該終止子io請(qǐng)求,l[cs+1,...,n-1]指的是第二中間子io請(qǐng)求,rs指的是該向上取整后的起始數(shù)據(jù)塊標(biāo)識(shí),t指的是數(shù)據(jù)塊長(zhǎng)度,re指的是該向上取整后的終止數(shù)據(jù)塊標(biāo)識(shí),ae指的是該向下取整后的終止數(shù)據(jù)塊標(biāo)識(shí),pe指的是該終止子io請(qǐng)求的塊內(nèi)偏移長(zhǎng)度,ps指的是該起始子io請(qǐng)求的塊內(nèi)位置偏移長(zhǎng)度,ts指的是該起始子io請(qǐng)求在起始子io內(nèi)的偏移位置,as指的是該向下取整后的起始數(shù)據(jù)塊標(biāo)識(shí)。
18、在其中一個(gè)實(shí)施例中,該方法還包括:在對(duì)各該子io請(qǐng)求進(jìn)行數(shù)據(jù)合并的過程中,對(duì)于各該子io請(qǐng)求中的每一個(gè)子io請(qǐng)求,獲取該子io請(qǐng)求的子io屬性信息;根據(jù)該子io屬性信息,該主io屬性信息,該條帶配比信息和該子io請(qǐng)求的粒度信息確定該子io請(qǐng)求的起始位置信息和該子io請(qǐng)求的結(jié)束位置信息,該子io請(qǐng)求的起始位置信息包括向下取整后的子io請(qǐng)求起始位置的數(shù)據(jù)塊標(biāo)識(shí),子io請(qǐng)求起始位置的塊內(nèi)偏移長(zhǎng)度,向下取整后的子io請(qǐng)求起始位置的頁面標(biāo)識(shí),向下取整后的子io請(qǐng)求起始位置的塊內(nèi)頁面標(biāo)識(shí)和子io請(qǐng)求起始位置在該io請(qǐng)求中的頁面標(biāo)識(shí),該子io請(qǐng)求的結(jié)束位置信息包括向上取整后的子io請(qǐng)求結(jié)束位置的頁面標(biāo)識(shí);將該子io請(qǐng)求的起始位置信息和該子io請(qǐng)求的結(jié)束位置信息代入合并公式中,以確定該子io請(qǐng)求在該io請(qǐng)求中的位置信息。
19、在其中一個(gè)實(shí)施例中,該子io請(qǐng)求包括多個(gè)頁面,該位置信息用于表征該子io請(qǐng)求中的各個(gè)頁面在該io請(qǐng)求中的位置信息,該合并公式包括:ci=bo+(((i+bk)/b)*(n-1)*b)+i;o'i=oci;其中,ci指的是該子io請(qǐng)求的第i個(gè)頁面在該io請(qǐng)求中的頁面標(biāo)識(shí),bo指的是該子io請(qǐng)求起始位置在該io請(qǐng)求中的頁面標(biāo)識(shí),i指的是該子io請(qǐng)求的序號(hào),bk指的是向下取整后的該子io請(qǐng)求起始位置的塊內(nèi)頁面標(biāo)識(shí),b指的是該子io請(qǐng)求的粒度信息,n指的是條帶寬度,o'i指的是該子io請(qǐng)求中的第i個(gè)頁面的數(shù)據(jù)塊結(jié)果,o指的是該io起始偏移位置。
20、第二方面,本技術(shù)還提供了一種io請(qǐng)求處理裝置,包括:
21、接收模塊,用于接收待拆分的io請(qǐng)求,該io請(qǐng)求攜帶主io屬性信息,該主io屬性信息包括該io請(qǐng)求的主io起始偏移位置和主io長(zhǎng)度信息;
22、確定模塊,用于根據(jù)該主io屬性信息和預(yù)設(shè)的條帶配比信息,確定該io請(qǐng)求的目標(biāo)拆分場(chǎng)景;
23、執(zhí)行模塊,用于根據(jù)該主io屬性信息、該條帶配比信息以及該目標(biāo)拆分場(chǎng)景,確定該io請(qǐng)求的拆分結(jié)果,該拆分結(jié)果包括該io請(qǐng)求拆分后的各子io請(qǐng)求的子io屬性信息,該子io屬性信息包括該子io請(qǐng)求的子io起始位置和子io長(zhǎng)度信息。
24、第三方面,本技術(shù)還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,該存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,該處理器執(zhí)行該計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述第一方面中任一實(shí)施例所述的方法。
25、第四方面,本技術(shù)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面中任一實(shí)施例所述的方法。
26、第五方面,本技術(shù)還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面中任一實(shí)施例所述的方法。
27、上述io請(qǐng)求處理方法、裝置、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,接收待拆分的io請(qǐng)求,該io請(qǐng)求攜帶主io屬性信息,該主io屬性信息包括該io請(qǐng)求的主io起始偏移位置和主io長(zhǎng)度信息;根據(jù)該主io屬性信息和預(yù)設(shè)的條帶配比信息,確定該io請(qǐng)求的目標(biāo)拆分場(chǎng)景;根據(jù)該主io屬性信息、該條帶配比信息以及該目標(biāo)拆分場(chǎng)景,確定該io請(qǐng)求的拆分結(jié)果,該拆分結(jié)果包括該io請(qǐng)求拆分后的各子io請(qǐng)求的子io屬性信息,該子io屬性信息包括該子io請(qǐng)求的子io起始位置和子io長(zhǎng)度信息。本技術(shù)提供的io請(qǐng)求處理方法,根據(jù)待拆分的io請(qǐng)求的主io屬性信息和條帶配比信息確定目標(biāo)拆分場(chǎng)景,并且基于主io屬性信息,條帶配比信息和目標(biāo)拆分場(chǎng)景確定該io請(qǐng)求的拆分結(jié)果,在io請(qǐng)求較大或配比較高的情況下,也能快速的確定io請(qǐng)求的拆分結(jié)果,采用本技術(shù)提供的io請(qǐng)求處理方法,可以避免現(xiàn)有技術(shù)中,在io請(qǐng)求較大或配比較高的情況下,io請(qǐng)求拆分時(shí)間較長(zhǎng)的問題,進(jìn)而有效的提高了io請(qǐng)求的拆分效率。