本公開屬于存儲(chǔ),具體涉及一種請(qǐng)求處理方法、相關(guān)裝置及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、存儲(chǔ)系統(tǒng)通常包括計(jì)算機(jī)設(shè)備和存儲(chǔ)設(shè)備,存儲(chǔ)設(shè)備可以擴(kuò)大計(jì)算機(jī)設(shè)備的存儲(chǔ)空間。計(jì)算機(jī)設(shè)備的操作系統(tǒng)中包括不同執(zhí)行狀態(tài)等級(jí)的用戶態(tài)和內(nèi)核態(tài)。用戶態(tài)程序可以通過多線程的方式向處于內(nèi)核態(tài)的存儲(chǔ)設(shè)備驅(qū)動(dòng)下發(fā)數(shù)據(jù)讀寫請(qǐng)求來實(shí)現(xiàn)對(duì)存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)讀寫操作。然而,在用戶態(tài)程序通過多個(gè)線程向存儲(chǔ)設(shè)備驅(qū)動(dòng)下發(fā)大量數(shù)據(jù)讀寫請(qǐng)求的情況下,會(huì)出現(xiàn)大量數(shù)據(jù)讀寫請(qǐng)求在存儲(chǔ)設(shè)備驅(qū)動(dòng)排隊(duì)等待被執(zhí)行的情況。顯然,這限制了存儲(chǔ)設(shè)備的每秒輸入/輸出操作數(shù)。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,本公開提供了一種請(qǐng)求處理方法、相關(guān)裝置及存儲(chǔ)介質(zhì),旨在減少多個(gè)線程間的競(jìng)爭(zhēng)和等待時(shí)間,提高存儲(chǔ)設(shè)備的主機(jī)中內(nèi)核態(tài)的并發(fā)性能,進(jìn)而提高存儲(chǔ)設(shè)備的每秒輸入/輸出操作數(shù)。
2、根據(jù)本公開的第一方面,提供一種請(qǐng)求處理方法,應(yīng)用于內(nèi)核態(tài),包括:
3、將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū),所述存儲(chǔ)設(shè)備包括控制器和存儲(chǔ)器;
4、執(zhí)行循環(huán)步驟:將所述第一環(huán)形緩沖區(qū)中頭指針?biāo)赶虻哪繕?biāo)讀寫請(qǐng)求發(fā)送給所述控制器,以實(shí)現(xiàn)對(duì)所述存儲(chǔ)器的數(shù)據(jù)讀寫操作,得到所述目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng);
5、將所述目標(biāo)讀寫響應(yīng)存儲(chǔ)在第二環(huán)形緩沖區(qū),其中,在第三環(huán)形緩沖區(qū)存儲(chǔ)所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息;
6、基于所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息,將所述目標(biāo)讀寫響應(yīng)發(fā)送給對(duì)應(yīng)的用戶態(tài)程序;
7、將所述頭指針下移一位,清空在所述第三環(huán)形緩沖區(qū)存儲(chǔ)的所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息。
8、可選地,所述將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū)之前,所述請(qǐng)求處理方法還包括:
9、分別實(shí)例化所述第一環(huán)形緩沖區(qū)、所述第二環(huán)形緩沖區(qū)和所述第三環(huán)形緩沖區(qū);
10、為所述第三環(huán)形緩沖區(qū)預(yù)先分配存儲(chǔ)空間。
11、可選地,所述將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū)包括:
12、通過用戶態(tài)和內(nèi)核態(tài)之間的系統(tǒng)調(diào)用接口通道,接收所述多個(gè)讀寫請(qǐng)求;
13、將所述多個(gè)讀寫請(qǐng)求存儲(chǔ)在所述第一環(huán)形緩沖區(qū);
14、將所述多個(gè)讀寫請(qǐng)求的上下文信息存儲(chǔ)在所述第三環(huán)形緩沖區(qū)。
15、可選地,所述讀寫請(qǐng)求的上下文信息包括:所述讀寫請(qǐng)求的邏輯地址到物理地址的映射,
16、所述將所述第一環(huán)形緩沖區(qū)中頭指針?biāo)赶虻哪繕?biāo)讀寫請(qǐng)求發(fā)送給所述控制器,以實(shí)現(xiàn)對(duì)所述存儲(chǔ)器的數(shù)據(jù)讀寫操作,得到所述目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng)包括:
17、基于所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫請(qǐng)求的邏輯地址到物理地址的映射構(gòu)建存儲(chǔ)接口通道請(qǐng)求,將所述存儲(chǔ)接口通道請(qǐng)求發(fā)送給所述控制器;
18、其中,所述控制器根據(jù)所述存儲(chǔ)接口通道請(qǐng)求對(duì)所述存儲(chǔ)器進(jìn)行數(shù)據(jù)讀寫操作,得到所述目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng)。
19、可選地,所述將所述目標(biāo)讀寫響應(yīng)存儲(chǔ)在第二環(huán)形緩沖區(qū)包括:
20、通過用戶態(tài)和內(nèi)核態(tài)之間的系統(tǒng)調(diào)用接口通道,接收對(duì)所述目標(biāo)讀寫請(qǐng)求的執(zhí)行情況進(jìn)行跟蹤的跟蹤命令;
21、基于所述跟蹤命令將所述目標(biāo)讀寫響應(yīng)存儲(chǔ)在所述第二環(huán)形緩沖區(qū);
22、將所述目標(biāo)讀寫響應(yīng)的上下文信息存儲(chǔ)在所述第三環(huán)形緩沖區(qū)。
23、可選地,所述基于所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息,將所述目標(biāo)讀寫響應(yīng)發(fā)送給對(duì)應(yīng)的用戶態(tài)程序包括:
24、通過用戶態(tài)和內(nèi)核態(tài)之間的系統(tǒng)調(diào)用接口通道,接收取回所述目標(biāo)讀寫響應(yīng)的取回命令;
25、基于所述目標(biāo)讀寫請(qǐng)求的上下文信息,恢復(fù)用戶態(tài)原有的上下文,在用戶態(tài)存儲(chǔ)所述目標(biāo)讀寫響應(yīng);
26、基于所述目標(biāo)讀寫響應(yīng)的上下文信息,恢復(fù)內(nèi)核態(tài)原有的上下文,返回執(zhí)行所述循環(huán)步驟。
27、可選地,所述將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū)之前,所述請(qǐng)求處理方法還包括:
28、將所述存儲(chǔ)設(shè)備初始化為雜項(xiàng)設(shè)備結(jié)構(gòu)體dev設(shè)備,并注冊(cè)所述存儲(chǔ)設(shè)備。
29、根據(jù)本公開第二方面,提供一種請(qǐng)求處理裝置,應(yīng)用于內(nèi)核態(tài),包括:
30、讀寫請(qǐng)求存儲(chǔ)單元,用于將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū),所述存儲(chǔ)設(shè)備包括控制器和存儲(chǔ)器;
31、目標(biāo)讀寫請(qǐng)求執(zhí)行單元,用于執(zhí)行循環(huán)步驟:將所述第一環(huán)形緩沖區(qū)中頭指針?biāo)赶虻哪繕?biāo)讀寫請(qǐng)求發(fā)送給所述控制器,以實(shí)現(xiàn)對(duì)所述存儲(chǔ)器的數(shù)據(jù)讀寫操作,得到所述目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng);
32、將所述目標(biāo)讀寫響應(yīng)存儲(chǔ)在第二環(huán)形緩沖區(qū),其中,在第三環(huán)形緩沖區(qū)存儲(chǔ)所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息;
33、基于所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息,將所述目標(biāo)讀寫響應(yīng)發(fā)送給對(duì)應(yīng)的用戶態(tài)程序;
34、將所述頭指針下移一位,清空在所述第三環(huán)形緩沖區(qū)存儲(chǔ)的所述目標(biāo)讀寫請(qǐng)求和所述目標(biāo)讀寫響應(yīng)的上下文信息。
35、根據(jù)本公開第三方面,提供一種存儲(chǔ)系統(tǒng),包括:
36、存儲(chǔ)設(shè)備,包括控制器和存儲(chǔ)器;
37、計(jì)算機(jī)設(shè)備,包括如上所述的運(yùn)行在內(nèi)核態(tài)的請(qǐng)求處理裝置,用于將用戶態(tài)程序?qū)λ龃鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū),將所述第一環(huán)形緩沖區(qū)中頭指針?biāo)赶虻哪繕?biāo)讀寫請(qǐng)求發(fā)送給所述控制器,以實(shí)現(xiàn)對(duì)所述存儲(chǔ)器的數(shù)據(jù)讀寫操作,得到所述目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng)。
38、根據(jù)本公開的第四方面,提供一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序或指令,所述計(jì)算機(jī)程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的方法的步驟。
39、本公開帶來了以下有益效果:
40、本公開提供的請(qǐng)求處理方法,應(yīng)用于內(nèi)核態(tài),存儲(chǔ)設(shè)備包括控制器和存儲(chǔ)器,將用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求存儲(chǔ)在第一環(huán)形緩沖區(qū),接著,執(zhí)行循環(huán)步驟:將第一環(huán)形緩沖區(qū)中頭指針?biāo)赶虻哪繕?biāo)讀寫請(qǐng)求發(fā)送給控制器,以實(shí)現(xiàn)對(duì)存儲(chǔ)器的數(shù)據(jù)讀寫操作,得到目標(biāo)讀寫請(qǐng)求的目標(biāo)讀寫響應(yīng),將目標(biāo)讀寫響應(yīng)存儲(chǔ)在第二環(huán)形緩沖區(qū),其中,在第三環(huán)形緩沖區(qū)存儲(chǔ)目標(biāo)讀寫請(qǐng)求和目標(biāo)讀寫響應(yīng)的上下文信息,基于目標(biāo)讀寫請(qǐng)求和目標(biāo)讀寫響應(yīng)的上下文信息,將目標(biāo)讀寫響應(yīng)發(fā)送給對(duì)應(yīng)的用戶態(tài)程序,將頭指針下移一位,清空在第三環(huán)形緩沖區(qū)存儲(chǔ)的目標(biāo)讀寫請(qǐng)求和目標(biāo)讀寫響應(yīng)的上下文信息,這樣利用內(nèi)核態(tài)的環(huán)形緩沖區(qū)的指針操作實(shí)現(xiàn)對(duì)用戶態(tài)程序?qū)Υ鎯?chǔ)設(shè)備的多個(gè)讀寫請(qǐng)求進(jìn)行傳遞和處理,減少了多個(gè)線程間的競(jìng)爭(zhēng)和等待時(shí)間,提高了存儲(chǔ)設(shè)備的主機(jī)中內(nèi)核態(tài)的并發(fā)性能,進(jìn)而提高了存儲(chǔ)設(shè)備的每秒輸入/輸出操作數(shù)。
41、本公開的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本公開而了解。本公開的目的和其他優(yōu)點(diǎn)在說明書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
42、為使本公開的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。