本發(fā)明涉及數(shù)據(jù)存儲(chǔ),具體涉及消息處理方法、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、隨著大數(shù)據(jù)時(shí)代的到來,服務(wù)器對(duì)存儲(chǔ)系統(tǒng)的性能和可靠性的要求越來越高。由于基于nand閃存的固態(tài)硬盤(solid?state?disk,簡稱:ssd)具有更高的可靠性、更好的性能、更低的能耗等特點(diǎn),因此基于nand閃存的固態(tài)硬盤被廣泛用作服務(wù)器的存儲(chǔ)系統(tǒng)。
2、在相關(guān)技術(shù)中,通常是ssd前端通過閃存轉(zhuǎn)換層(flash?translation?layer,簡稱:ftl)向ssd后端發(fā)送消息。其中,閃存轉(zhuǎn)換層接收ssd前端下發(fā)的消息,采用輪詢的方式確定向ssd后端發(fā)送該消息的邏輯單元,利用該邏輯單元將該消息發(fā)送至ssd后端。
3、但是,由于ssd前端下發(fā)的消息包括有多種消息類型,邏輯單元傳輸不同消息類型的消息時(shí)消耗的流量不同,導(dǎo)致各邏輯單元的負(fù)載不均衡,降低了邏輯單元的帶寬利用率。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提供了一種消息處理方法、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品,以解決由于ssd前端下發(fā)的消息包括多種消息類型,邏輯單元傳輸不同消息類型的消息時(shí)消耗的流量不同,導(dǎo)致的各邏輯單元的負(fù)載不均衡,降低了邏輯單元的帶寬利用率的問題。
2、第一方面,本發(fā)明提供了一種消息處理方法,所述方法包括:
3、獲取待發(fā)送至存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息及存儲(chǔ)系統(tǒng)中各邏輯單元的當(dāng)前流量特征信息;
4、根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的消息負(fù)載指標(biāo);
5、根據(jù)各所述邏輯單元的消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選目標(biāo)邏輯單元;
6、基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端。
7、本實(shí)施例提供的消息處理方法,通過獲取待發(fā)送至存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息及存儲(chǔ)系統(tǒng)中各邏輯單元的當(dāng)前流量特征信息,根據(jù)數(shù)據(jù)處理消息的目標(biāo)消息類型和各邏輯單元的當(dāng)前流量特征信息,確定各邏輯單元的消息負(fù)載指標(biāo),根據(jù)各邏輯單元的消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選目標(biāo)邏輯單元,基于目標(biāo)邏輯單元,將數(shù)據(jù)處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端。通過根據(jù)各邏輯單元的當(dāng)前流量特征信息和數(shù)據(jù)處理消息的目標(biāo)消息類型來確定各邏輯單元的消息負(fù)載指標(biāo),進(jìn)而根據(jù)各邏輯單元的消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選目標(biāo)邏輯單元,利用目標(biāo)邏輯單元將數(shù)據(jù)處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端,使得各邏輯單元的消息負(fù)載均衡,提高了邏輯單元的帶寬利用率,提高消息處理的效率。
8、在一種可選的實(shí)施方式中,所述根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的消息負(fù)載指標(biāo),包括:
9、根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的信息素濃度;
10、根據(jù)各所述邏輯單元的信息素濃度,確定各所述邏輯單元的消息負(fù)載指標(biāo)。
11、本實(shí)施例提供的消息處理方法,通過根據(jù)數(shù)據(jù)處理消息的目標(biāo)消息類型和邏輯單元的當(dāng)前流量特征信息來確定邏輯單元的信息素濃度,然后根據(jù)信息素濃度來確定消息負(fù)載指標(biāo),有助于確保獲取的消息負(fù)載指標(biāo)的可靠性,進(jìn)而使得篩選出的目標(biāo)邏輯單元更加準(zhǔn)確。
12、在一種可選的實(shí)施方式中,所述根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的信息素濃度,包括:
13、基于以下公式確定各所述邏輯單元的信息素濃度:
14、
15、其中,ρ表示邏輯單元lunidx的信息素濃度,idx表示邏輯單元的標(biāo)識(shí),flow(lunidx)表示邏輯單元lunidx的當(dāng)前流量值,φ表示邏輯單元的額定傳輸帶寬,loss(type)表示邏輯單元lunidx處理目標(biāo)消息類型的數(shù)據(jù)處理消息的數(shù)據(jù)傳輸開銷,type表示所述目標(biāo)消息類型,α為影響因子;
16、其中,所述當(dāng)前流量特征信息包括當(dāng)前流量值、額定傳輸帶寬及處理目標(biāo)消息類型的數(shù)據(jù)處理消息的數(shù)據(jù)傳輸開銷。
17、本實(shí)施例提供的消息處理方法,根據(jù)數(shù)據(jù)處理消息的目標(biāo)消息類型和各邏輯單元的當(dāng)前流量特征信息,確定各邏輯單元的信息素濃度,保證了確定的各邏輯單元的信息素濃度的準(zhǔn)確性和可靠性。
18、在一種可選的實(shí)施方式中,所述方法還包括:
19、基于以下公式確定邏輯單元的額定傳輸帶寬:
20、
21、其中,bw表示存儲(chǔ)系統(tǒng)理論總帶寬值,sum(lun)表示存儲(chǔ)系統(tǒng)中邏輯單元的總數(shù),sum(bad_lun)表示存儲(chǔ)系統(tǒng)中壞塊邏輯單元的數(shù)量。
22、本實(shí)施例提供的消息處理方法,通過利用上述公式確定邏輯單元的額定傳輸帶寬,保證了確定的各邏輯單元的信息素濃度的準(zhǔn)確性和可靠性。
23、在一種可選的實(shí)施方式中,所述方法還包括:
24、基于以下公式確定邏輯單元lunidx處理目標(biāo)消息類型的數(shù)據(jù)處理消息的數(shù)據(jù)傳輸開銷:
25、loss(type)=cnt(type)*ttype*abw
26、其中,cnt(type)表示邏輯單元lunidx在1秒內(nèi)處理所述目標(biāo)消息類型的數(shù)據(jù)處理消息的數(shù)量,ttype表示所述邏輯單元lunidx實(shí)際處理一筆所述目標(biāo)消息類型的數(shù)據(jù)處理消息的耗時(shí),abw表示實(shí)測的所述邏輯單元lunidx的每秒帶寬。
27、本實(shí)施例提供的消息處理方法,通過利用上述公式確定各邏輯單元處理目標(biāo)消息類型的數(shù)據(jù)處理消息的數(shù)據(jù)傳輸開銷,保證了確定的各邏輯單元的信息素濃度的準(zhǔn)確性和可靠性。
28、在一種可選的實(shí)施方式中,所述根據(jù)各所述邏輯單元的信息素濃度,確定各所述邏輯單元的消息負(fù)載指標(biāo),包括:
29、根據(jù)各所述邏輯單元的信息素濃度,篩選所述信息素濃度最高的待選邏輯單元;
30、在所述待選邏輯單元唯一的情況下,將所述信息素濃度作為所述消息負(fù)載指標(biāo);
31、在所述待選邏輯單元不唯一的情況下,根據(jù)各所述待選邏輯單元的信息素濃度和影響特征信息,確定各所述待選邏輯單元的啟發(fā)因子;
32、將所述啟發(fā)因子作為所述消息負(fù)載指標(biāo)。
33、本實(shí)施例提供的消息處理方法,通過在信息素濃度最高的待選邏輯單元唯一的情況下,將信息度濃度作為消息負(fù)載指標(biāo),在待選邏輯單元不唯一的情況下,將啟發(fā)因子作為消息負(fù)載指標(biāo),保證了各邏輯單元的消息負(fù)載指標(biāo)的準(zhǔn)確性和可靠性,進(jìn)而確保篩選出的目標(biāo)邏輯單元的準(zhǔn)確性和可靠性。
34、在一種可選的實(shí)施方式中,所述根據(jù)各所述待選邏輯單元的信息素濃度和影響特征信息,確定各所述待選邏輯單元的啟發(fā)因子,包括:
35、基于以下公式確定各所述待選邏輯單元的啟發(fā)因子:
36、
37、其中,h表示待選邏輯單元lunidx的啟發(fā)因子,c為預(yù)設(shè)信息素依賴因子,ρ為待選邏輯單元lunidx的信息素濃度,m_cnt(lunidx)為待選邏輯單元lunidx成功發(fā)送至所述存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息的數(shù)量,flow_avg為每個(gè)所述邏輯單元的第一流量均值;所述影響特征信息包括待選邏輯單元lunidx成功發(fā)送至所述存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息的數(shù)量和每個(gè)所述邏輯單元的第一流量均值。
38、本實(shí)施例提供的消息處理方法,在待選邏輯單元不唯一的情況下,利用上述公式確定各待選邏輯單元的啟發(fā)因子,將啟發(fā)因子作為消息負(fù)載指標(biāo),保證了各邏輯單元的消息負(fù)載指標(biāo)的準(zhǔn)確性和可靠性,進(jìn)而確保篩選出的目標(biāo)邏輯單元的準(zhǔn)確性和可靠性。
39、在一種可選的實(shí)施方式中,所述方法還包括:
40、基于以下公式確定每個(gè)所述邏輯單元的第一流量均值:
41、
42、其中,k=sum(lun)表示存儲(chǔ)系統(tǒng)中邏輯單元的總數(shù),flow(i)=flow(lunidx)為第i個(gè)邏輯單元的當(dāng)前流量值。
43、本實(shí)施例提供的消息處理方法,保證了各邏輯單元的消息負(fù)載指標(biāo)的準(zhǔn)確性和可靠性,進(jìn)而確保篩選出的目標(biāo)邏輯單元的準(zhǔn)確性和可靠性。
44、在一種可選的實(shí)施方式中,所述根據(jù)各所述邏輯單元的消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選目標(biāo)邏輯單元,包括:
45、在所述消息負(fù)載指標(biāo)為信息素濃度的情況下,將信息素濃度最高的待選邏輯單元作為目標(biāo)邏輯單元;
46、在所述消息負(fù)載指標(biāo)為啟發(fā)因子的情況下,將啟發(fā)因子最高的待選邏輯單元作為目標(biāo)邏輯單元。
47、本實(shí)施例提供的消息處理方法,根據(jù)消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選出目標(biāo)邏輯單元,保證了篩選出的目標(biāo)邏輯單元的準(zhǔn)確性。
48、在一種可選的實(shí)施方式中,在基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端之前,所述方法還包括:
49、獲取各所述邏輯單元的最新流量值;
50、根據(jù)各所述邏輯單元的最新流量值,確定每個(gè)所述邏輯單元的第二流量均值;
51、根據(jù)所述第一流量均值和第二流量均值,判斷所述目標(biāo)邏輯單元是否通過驗(yàn)證;
52、在所述第一流量均值與第二流量均值相同的情況下,確定所述目標(biāo)邏輯單元通過驗(yàn)證,執(zhí)行所述基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端的步驟;
53、在所述第一流量均值與第二流量均值不同的情況下,確定所述目標(biāo)邏輯單元未通過驗(yàn)證,返回至所述根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的消息負(fù)載指標(biāo)的步驟,以重新篩選目標(biāo)邏輯單元,直至所述第一流量均值與第二流量均值相同。
54、本實(shí)施例提供的消息處理方法,根據(jù)第一流量均值和第二流量均值是否相同,來對(duì)目標(biāo)邏輯單元進(jìn)行驗(yàn)證,確保篩選出的目標(biāo)邏輯單元通過驗(yàn)證,保證了篩選出的目標(biāo)邏輯單元的準(zhǔn)確性,進(jìn)而使得各邏輯單元上的負(fù)載均衡,提高了各邏輯單元的帶寬利用率。
55、在一種可選的實(shí)施方式中,所述方法還包括:
56、在確定所述目標(biāo)邏輯單元未通過驗(yàn)證的情況下,根據(jù)所述目標(biāo)邏輯單元的篩選耗時(shí)和所述目標(biāo)消息類型,對(duì)各所述邏輯單元進(jìn)行流量輪回處理,以遞減各所述邏輯單元的當(dāng)前流量值。
57、本實(shí)施例提供的消息處理方法,通過目標(biāo)邏輯單元的篩選耗時(shí)和目標(biāo)消息類型,對(duì)各邏輯單元進(jìn)行流量輪回處理,以遞減各邏輯單元的當(dāng)前流量值,保證了各邏輯單元的當(dāng)前流量值的準(zhǔn)確性。
58、在一種可選的實(shí)施方式中,所述當(dāng)前流量特征信息包括當(dāng)前流量值,獲取存儲(chǔ)系統(tǒng)中各邏輯單元的當(dāng)前流量特征信息,包括:
59、針對(duì)任一所述邏輯單元,根據(jù)該邏輯單元當(dāng)前發(fā)送至所述存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息的消息類型和消息發(fā)送耗時(shí),確定該邏輯單元的當(dāng)前流量值。
60、本實(shí)施例提供的消息處理方法,通過邏輯單元當(dāng)前發(fā)送至存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息的消息類型和消息發(fā)送耗時(shí),確定邏輯單元的當(dāng)前流量值,保證了邏輯單元的當(dāng)前流量值的準(zhǔn)確性。
61、在一種可選的實(shí)施方式中,所述基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端,包括:
62、在所述目標(biāo)消息類型為寫消息或擦消息的情況下,基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息作為待處理消息發(fā)送至預(yù)設(shè)寫消息交互隊(duì)列或預(yù)設(shè)擦消息交互隊(duì)列;
63、按照預(yù)設(shè)時(shí)間約束條件,將所述預(yù)設(shè)寫消息交互隊(duì)列或預(yù)設(shè)擦消息交互隊(duì)列中的待處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端,以使所述存儲(chǔ)系統(tǒng)后端處理所述待處理消息。
64、本實(shí)施例提供的消息處理方法,通過按照預(yù)設(shè)時(shí)間約束條件,將預(yù)設(shè)寫消息交互隊(duì)列或預(yù)設(shè)擦消息交互隊(duì)列中的待處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端,以使存儲(chǔ)系統(tǒng)后端處理待處理消息,使得不同消息類型的待處理消息能夠被均衡處理,使得存儲(chǔ)器后端資源達(dá)到最快流轉(zhuǎn)。
65、在一種可選的實(shí)施方式中,所述按照預(yù)設(shè)時(shí)間約束條件,將所述預(yù)設(shè)寫消息交互隊(duì)列或預(yù)設(shè)擦消息交互隊(duì)列中的待處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端,包括:
66、按照第一預(yù)設(shè)時(shí)間間隔,按序?qū)⑺鲱A(yù)設(shè)寫消息交互隊(duì)列中的待處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端;
67、按照第二預(yù)設(shè)時(shí)間間隔,按序?qū)⑺鲱A(yù)設(shè)擦消息交互隊(duì)列中的待處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端。
68、本實(shí)施例提供的消息處理方法,針對(duì)不同的交互隊(duì)列,按照不同的預(yù)設(shè)時(shí)間間隔將交互隊(duì)列中的待處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端,存儲(chǔ)系統(tǒng)后端按照接收到待處理消息的順序?qū)Υ幚硐⑦M(jìn)行處理,使得不同消息類型的待處理消息能夠被均衡處理。
69、在一種可選的實(shí)施方式中,所述方法還包括:
70、基于以下公式確定所述第一預(yù)設(shè)時(shí)間間隔:
71、twr=tftl/wr_cnt-tnfc_wr
72、其中,twr表示第一預(yù)設(shè)時(shí)間間隔,wr_cnt表示當(dāng)前數(shù)據(jù)塊剩余寫數(shù)據(jù)量,tftl表示閃存轉(zhuǎn)換層寫一個(gè)數(shù)據(jù)塊的時(shí)間,tnfc_wr表示存儲(chǔ)系統(tǒng)后端處理一筆寫消息的時(shí)間。
73、本實(shí)施例提供的消息處理方法,通過按照第一預(yù)設(shè)時(shí)間間隔,按序?qū)㈩A(yù)設(shè)寫消息交互隊(duì)列中的待處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端,存儲(chǔ)系統(tǒng)后端按照接收到待處理消息的順序?qū)Υ幚硐⑦M(jìn)行處理,使得不同消息類型的待處理消息能夠被均衡處理。
74、在一種可選的實(shí)施方式中,所述方法包括:
75、基于以下公式確定所述第二預(yù)設(shè)時(shí)間間隔:
76、ters=tftl/raid_size-tnfc_ers
77、其中,ters表示第二預(yù)設(shè)時(shí)間間隔,raid_size表示并行邏輯單元的數(shù)量,tftl表示閃存轉(zhuǎn)換層寫一個(gè)數(shù)據(jù)塊的時(shí)間,tnfc_ers表示存儲(chǔ)系統(tǒng)后端處理一筆擦消息的時(shí)間。
78、本實(shí)施例提供的消息處理方法,通過按照第二預(yù)設(shè)時(shí)間間隔,按序?qū)㈩A(yù)設(shè)擦消息交互隊(duì)列中的待處理消息發(fā)送至存儲(chǔ)系統(tǒng)后端,存儲(chǔ)系統(tǒng)后端按照接收到待處理消息的順序?qū)Υ幚硐⑦M(jìn)行處理,使得不同消息類型的待處理消息能夠被均衡處理。
79、第二方面,本發(fā)明提供了一種消息處理裝置,所述裝置包括:
80、獲取模塊,用于獲取待發(fā)送至存儲(chǔ)系統(tǒng)后端的數(shù)據(jù)處理消息及存儲(chǔ)系統(tǒng)中各邏輯單元的當(dāng)前流量特征信息;
81、確定模塊,用于根據(jù)所述數(shù)據(jù)處理消息的目標(biāo)消息類型和各所述邏輯單元的當(dāng)前流量特征信息,確定各所述邏輯單元的消息負(fù)載指標(biāo);
82、篩選模塊,用于根據(jù)各所述邏輯單元的消息負(fù)載指標(biāo)所表征的消息傳輸優(yōu)先級(jí),篩選目標(biāo)邏輯單元;
83、發(fā)送模塊,用于基于所述目標(biāo)邏輯單元,將所述數(shù)據(jù)處理消息發(fā)送至所述存儲(chǔ)系統(tǒng)后端。
84、第三方面,本發(fā)明提供了一種計(jì)算機(jī)設(shè)備,包括:存儲(chǔ)器和處理器,存儲(chǔ)器和處理器之間互相通信連接,存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)指令,處理器通過執(zhí)行計(jì)算機(jī)指令,從而執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的消息處理方法。
85、第四方面,本發(fā)明提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的消息處理方法。
86、第五方面,本發(fā)明提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的消息處理方法。