本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種入庫數(shù)據(jù)的管理方法及裝置。
背景技術(shù):
在大數(shù)據(jù)、人工智能時(shí)代,數(shù)據(jù)庫越來越與人們的生活緊密相關(guān),甚至影響非常大,因此數(shù)據(jù)的存儲(chǔ)非常重要。
當(dāng)前很多系統(tǒng)采用的入庫方法是:如有數(shù)據(jù)需要入庫,立即把數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫能識(shí)別的insert語句入庫或者調(diào)用數(shù)據(jù)庫的存儲(chǔ)過程入庫。如果業(yè)務(wù)層瞬間有大量數(shù)據(jù)需要入庫時(shí),整個(gè)操作系統(tǒng)因I/0讀寫瓶頸會(huì)導(dǎo)致系統(tǒng)資源高,應(yīng)用程序的響應(yīng)、用戶體驗(yàn)、以及程序的性能、甚至系統(tǒng)的可靠性都會(huì)受到影響。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種入庫數(shù)據(jù)的管理方法及裝置以降低數(shù)據(jù)庫因瞬時(shí)大量數(shù)據(jù)入庫對(duì)而對(duì)系統(tǒng)造成影響的問題。
本發(fā)明實(shí)施例提供的一種入庫數(shù)據(jù)的管理方法,該入庫數(shù)據(jù)的管理方法應(yīng)用于系統(tǒng)內(nèi)存,所述系統(tǒng)內(nèi)存分配有多個(gè)內(nèi)存塊和管理所述多個(gè)內(nèi)存塊的索引鏈表,所述索引鏈表包括多個(gè)節(jié)點(diǎn),所述多個(gè)節(jié)點(diǎn)與所述多個(gè)內(nèi)存塊一一對(duì)應(yīng),所述入庫數(shù)據(jù)的管理方法包括:
判斷所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊是否為空閑;
當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊為空閑時(shí),將待入庫的數(shù)據(jù)分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊,以便進(jìn)行入庫處理;
將所述索引鏈表的第一個(gè)節(jié)點(diǎn)移動(dòng)至所述索引鏈表的尾部。
優(yōu)選地,所述方法還包括:
當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊已被分配數(shù)據(jù)時(shí),為系統(tǒng)內(nèi)存分配新內(nèi)存塊并將待入庫的數(shù)據(jù)分配給所述新內(nèi)存塊;
在所述索引鏈表的尾部新增與所述新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)。
優(yōu)選地,在判斷所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊是否為空閑的步驟之前,所述方法還包括:
分配所述多個(gè)內(nèi)存塊,并建立管理所述多個(gè)內(nèi)存塊的所述索引鏈表。
優(yōu)選地,所述方法還包括:
將已釋放的內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)至所述索引鏈表的首部。
優(yōu)選地,所述將待入庫的數(shù)據(jù)分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊的步驟包括:
將所述待入庫的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫語句后分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊。
本發(fā)明實(shí)施例提供的一種入庫數(shù)據(jù)的管理裝置,應(yīng)用于系統(tǒng)內(nèi)存,所述系統(tǒng)內(nèi)存分配有多個(gè)內(nèi)存塊和管理所述多個(gè)內(nèi)存塊的索引鏈表,所述索引鏈表包括多個(gè)節(jié)點(diǎn),所述多個(gè)節(jié)點(diǎn)與所述多個(gè)內(nèi)存塊一一對(duì)應(yīng),所述入庫數(shù)據(jù)的管理裝置包括:
判斷模塊,用于判斷所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊是否為空閑;
第一執(zhí)行模塊,用于當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊為空閑時(shí),將待入庫的數(shù)據(jù)分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊,以便進(jìn)行入庫處理,以及將所述索引鏈表的第一個(gè)節(jié)點(diǎn)移動(dòng)至所述索引鏈表的尾部。
優(yōu)選地,入庫數(shù)據(jù)的管理裝置還包括:
第二執(zhí)行模塊,用于當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊已被分配數(shù)據(jù)時(shí),為系統(tǒng)內(nèi)存分配新內(nèi)存塊并將待入庫的數(shù)據(jù)分配給所述新內(nèi)存塊,以及在所述索引鏈表的尾部新增與所述新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)。
優(yōu)選地,入庫數(shù)據(jù)的管理裝置還包括:
內(nèi)存塊分配模塊,用于為系統(tǒng)內(nèi)存分配多個(gè)內(nèi)存塊,并建立管理所述多個(gè)內(nèi)存塊的所述索引鏈表。
優(yōu)選地,入庫數(shù)據(jù)的管理裝置還包括:
第三執(zhí)行模塊,用于將已釋放的內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)至所述索引鏈表的首部。
優(yōu)選地,所述第一執(zhí)行模塊還用于將所述待入庫的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫語句后分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊。
對(duì)于現(xiàn)有技術(shù),本發(fā)明提供的入庫數(shù)據(jù)的管理方法及裝置具有如下的有益效果:
本發(fā)明提供的入庫數(shù)據(jù)的管理方法及裝置通過在數(shù)據(jù)入庫時(shí)由內(nèi)存塊存放需要入庫的數(shù)據(jù),這樣可以盡量的減少向系統(tǒng)反復(fù)申請(qǐng)空間帶來的開銷,只要申請(qǐng)一次內(nèi)存,用完以后可在下一次需要分配內(nèi)存空間的時(shí)候使用,解決了瞬時(shí)大量數(shù)據(jù)入庫對(duì)系統(tǒng)影響的問題。
同時(shí),將入庫數(shù)據(jù)分配給與索引鏈表的節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊中,可通過線程定時(shí)入庫處理索引鏈表管理的內(nèi)存塊中的數(shù)據(jù),以降低對(duì)系統(tǒng)的影響,使系統(tǒng)運(yùn)行更加穩(wěn)定。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實(shí)施例提供的入庫數(shù)據(jù)的管理裝置的終端設(shè)備的方框示意圖。
圖2為本發(fā)明第一實(shí)施例提供的入庫數(shù)據(jù)的管理方法的流程圖。
圖3為本發(fā)明第二實(shí)施例提供的入庫數(shù)據(jù)的管理裝置的方框示意圖。
主要元件符號(hào)說明
入庫數(shù)據(jù)的管理裝置110,系統(tǒng)內(nèi)存120,存儲(chǔ)控制器130,處理器140,外設(shè)接口150,輸入輸出單元160,顯示單元170,判斷模塊111,第一執(zhí)行模塊112,第二執(zhí)行模塊113,內(nèi)存塊分配模塊114,第三執(zhí)行模塊115。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對(duì)重要性。
如圖1所示,是本發(fā)明實(shí)施例提供的入庫數(shù)據(jù)的管理裝置110的終端設(shè)備的方框示意圖。所述入庫數(shù)據(jù)的管理裝置110的終端設(shè)備包括入庫數(shù)據(jù)的管理裝置110、系統(tǒng)內(nèi)存120、存儲(chǔ)控制器130、處理器140、外設(shè)接口150、輸入輸出單元160、顯示單元170。`
所述系統(tǒng)內(nèi)存120、存儲(chǔ)控制器130、處理器140、外設(shè)接口150、輸入輸出單元160、顯示單元170各元件相互之間直接或間接地電性連接,以實(shí)現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號(hào)線實(shí)現(xiàn)電性連接。所述入庫數(shù)據(jù)的管理裝置110包括至少一個(gè)可以軟件或固件(firmware)的形式存儲(chǔ)于所述系統(tǒng)內(nèi)存120中或固化在所述入庫數(shù)據(jù)的管理裝置110的終端設(shè)備的操作系統(tǒng)(operating system,OS)中的軟件功能模塊。所述處理器140用于執(zhí)行系統(tǒng)內(nèi)存120中存儲(chǔ)的可執(zhí)行模塊,例如所述入庫數(shù)據(jù)的管理裝置110包括的軟件功能模塊或計(jì)算機(jī)程序。
其中,系統(tǒng)內(nèi)存120可以是,但不限于,隨機(jī)存儲(chǔ)器(Random Access Memory,RAM),只讀存儲(chǔ)器(Read Only Memory,ROM),可編程只讀存儲(chǔ)器(Programmable Read-Only Memory,PROM),可擦除只讀存儲(chǔ)器(Erasable Programmable Read-Only Memory,EPROM),電可擦除只讀存儲(chǔ)器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,系統(tǒng)內(nèi)存120用于存儲(chǔ)程序,所述處理器140在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實(shí)施例任一實(shí)施例揭示的流過程定義的入庫數(shù)據(jù)的管理裝置110所執(zhí)行的方法可以應(yīng)用于處理器140中,或者由處理器140實(shí)現(xiàn)。
處理器140可能是一種集成電路芯片,具有信號(hào)的處理能力。上述的處理器140可以是通用處理器,包括中央處理器(Central Processing Unit,簡(jiǎn)稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡(jiǎn)稱NP)等;還可以是數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
所述外設(shè)接口150將各種輸入/輸入裝置耦合至處理器140以及系統(tǒng)內(nèi)120存。在一些實(shí)施例中,外設(shè)接口150,處理器140以及存儲(chǔ)控制器130可以在單個(gè)芯片中實(shí)現(xiàn)。在其他一些實(shí)例中,他們可以分別由獨(dú)立的芯片實(shí)現(xiàn)。
輸入輸出單元160用于提供給用戶輸入數(shù)據(jù)實(shí)現(xiàn)用戶與入庫數(shù)據(jù)的管理裝置110的終端設(shè)備的交互。所述輸入輸出單元160可以是,但不限于,鼠標(biāo)和鍵盤等。
顯示單元170在所述入庫數(shù)據(jù)的管理裝置110的終端設(shè)備與用戶之間提供一個(gè)交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)給用戶參考。在本實(shí)施例中,所述顯示單元170可以是液晶顯示器或觸控顯示器。若為觸控顯示器,其可為支持單點(diǎn)和多點(diǎn)觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點(diǎn)和多點(diǎn)觸控操作是指觸控顯示器能感應(yīng)到來自該觸控顯示器上一個(gè)或多個(gè)位置處同時(shí)產(chǎn)生的觸控操作,并將該感應(yīng)到的觸控操作交由處理器140進(jìn)行計(jì)算和處理。
第一實(shí)施例
請(qǐng)參閱圖2,本發(fā)明實(shí)施例提供了一種入庫數(shù)據(jù)的管理方法,下面將對(duì)圖2所示的具體流程進(jìn)行詳細(xì)闡述。
S101:為系統(tǒng)內(nèi)存分配內(nèi)存塊,并建立管理內(nèi)存塊的索引鏈表。
本發(fā)明提供的入庫數(shù)據(jù)的管理方法應(yīng)用于系統(tǒng)內(nèi)存,用于對(duì)需要進(jìn)行數(shù)據(jù)庫入庫處理的數(shù)據(jù)進(jìn)行入庫前的管理,以減少瞬間大量數(shù)據(jù)入庫對(duì)系統(tǒng)的影響。
在對(duì)入庫數(shù)據(jù)管理之前,首先系統(tǒng)內(nèi)存會(huì)分配多個(gè)空閑的內(nèi)存塊并建立管理該多個(gè)內(nèi)存塊的索引鏈表,該索引鏈表包括數(shù)量與內(nèi)存塊數(shù)量相應(yīng)的多個(gè)節(jié)點(diǎn),多個(gè)節(jié)點(diǎn)與多個(gè)內(nèi)存塊一一對(duì)應(yīng),每個(gè)節(jié)點(diǎn)包括指針和標(biāo)識(shí)兩部分,指針指示對(duì)應(yīng)的內(nèi)存塊的地址信息,標(biāo)識(shí)指示該對(duì)應(yīng)的內(nèi)存塊的狀態(tài)信息,該狀態(tài)信息可以為空閑狀態(tài)或使用狀態(tài)。
S102:判斷索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊是否為空閑,如果是執(zhí)行步驟S104,如果否執(zhí)行步驟S103。
在對(duì)入庫數(shù)據(jù)進(jìn)行管理時(shí),系統(tǒng)會(huì)通過索引鏈表的第一個(gè)節(jié)點(diǎn)(即索引鏈表首部的節(jié)點(diǎn))的標(biāo)識(shí)判斷對(duì)應(yīng)的內(nèi)存塊是否為空閑狀態(tài)。
如果索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊處于使用狀態(tài)(索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊分配有待入庫的數(shù)據(jù),即存儲(chǔ)有待入庫的數(shù)據(jù)),則執(zhí)行步驟S103。
如果索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊處于空閑狀態(tài),則執(zhí)行步驟S104。
S103:為系統(tǒng)內(nèi)存分配新內(nèi)存塊,將待入庫的數(shù)據(jù)分配給新內(nèi)存塊,并在索引鏈表的尾部新增與新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)。
如果索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊處于使用狀態(tài),即說明已被分配數(shù)據(jù)的所有內(nèi)存塊均處于使用狀態(tài),那么系統(tǒng)內(nèi)存會(huì)再次分配新的內(nèi)存塊,并將待入庫的數(shù)據(jù)分配給該新的內(nèi)存塊,同時(shí),在索引鏈表的尾部新增與所述新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)。
作為另一種可選的實(shí)施方式,當(dāng)索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊處于使用狀態(tài)時(shí),系統(tǒng)內(nèi)存再次分配新的內(nèi)存塊后,也可在索引鏈表的首部新增與新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn),然后再將待入庫的數(shù)據(jù)分配給索引鏈表首部的節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊(即新分配的內(nèi)存塊)。其中,系統(tǒng)內(nèi)存再次分配新的內(nèi)存塊可以為1個(gè)或多個(gè),本實(shí)施例中未做任何限定。
S104:待入庫的數(shù)據(jù)分配給索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊,并將索引鏈表的第一個(gè)節(jié)點(diǎn)移動(dòng)至索引鏈表的尾部。
如果索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊處于空閑狀態(tài),則將待入庫的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫語句(如SQL語句或Oracle語句等),然后將轉(zhuǎn)換成數(shù)據(jù)庫語句后的數(shù)據(jù)存儲(chǔ)至索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊中。同時(shí),將索引鏈表的第一個(gè)節(jié)點(diǎn)移動(dòng)至所述索引鏈表的尾部。如此,原索引鏈表的第二個(gè)節(jié)點(diǎn)則變?yōu)楫?dāng)前的索引鏈表的第一個(gè)節(jié)點(diǎn)。
待入庫的數(shù)據(jù)存儲(chǔ)至索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊后,按照索引鏈表的節(jié)點(diǎn)從后至前的順序,對(duì)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊中存儲(chǔ)的數(shù)據(jù)按照線程進(jìn)行入庫處理,處理完成后釋放內(nèi)存塊。
S105:將已釋放的內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)至索引鏈表的首部。
在將內(nèi)存塊中存儲(chǔ)的待入庫的數(shù)據(jù)按照線程進(jìn)行入庫處理后,系統(tǒng)會(huì)釋放該內(nèi)存塊,被釋放的內(nèi)存塊即處于空閑狀態(tài)。此時(shí),系統(tǒng)將已釋放的內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)至索引鏈表的首部,以便再次存儲(chǔ)待入庫的數(shù)據(jù)。
本發(fā)明實(shí)施例提供的入庫數(shù)據(jù)的管理方法,通過為系統(tǒng)內(nèi)存分配內(nèi)存塊并建立管理內(nèi)存塊的索引鏈表,在數(shù)據(jù)入庫時(shí)將數(shù)據(jù)存儲(chǔ)至索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊中并將索引鏈表的第一個(gè)節(jié)移動(dòng)至索引鏈表的尾部。如此可以盡量的減少向系統(tǒng)反復(fù)申請(qǐng)空間帶來的開銷,數(shù)據(jù)入庫時(shí)只要申請(qǐng)一次內(nèi)存,用完以后可在下一次需要分配內(nèi)存空間的時(shí)候使用,避免因I/O讀寫瓶頸導(dǎo)致CPU花費(fèi)大量的時(shí)間在當(dāng)前需要入庫的操作上,以至系統(tǒng)響應(yīng)不及時(shí)的問題,防止系統(tǒng)因長(zhǎng)時(shí)間不響應(yīng)處理系統(tǒng)的讀寫操作,導(dǎo)致系統(tǒng)數(shù)據(jù)丟的情況發(fā)生,解決了瞬時(shí)大量數(shù)據(jù)入庫對(duì)系統(tǒng)影響的問題,使系統(tǒng)運(yùn)行更加穩(wěn)定。
第二實(shí)施例
請(qǐng)參閱圖3,是本發(fā)明較佳實(shí)施例提供的入庫數(shù)據(jù)的管理裝置110的功能模塊示意圖。入庫數(shù)據(jù)的管理裝置110應(yīng)用于系統(tǒng)內(nèi)存,系統(tǒng)內(nèi)存分配有多個(gè)內(nèi)存塊和管理多個(gè)內(nèi)存塊的索引鏈表,索引鏈表包括多個(gè)節(jié)點(diǎn),多個(gè)節(jié)點(diǎn)與多個(gè)內(nèi)存塊一一對(duì)應(yīng),入庫數(shù)據(jù)的管理裝置110包括有判斷模塊111、第一執(zhí)行模塊112、第二執(zhí)行模塊113、內(nèi)存塊分配模塊114和第三執(zhí)行模塊115。
其中,判斷模塊111用于判斷所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊是否為空閑。可以理解,判斷模塊111可以執(zhí)行本發(fā)明實(shí)施例中的步驟S102。
第一執(zhí)行模塊112用于當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊為空閑時(shí),將待入庫的數(shù)據(jù)分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊,以及將所述索引鏈表的第一個(gè)節(jié)點(diǎn)移動(dòng)至所述索引鏈表的尾部。具體的,本實(shí)施例中,第一執(zhí)行模塊112是通過將所述待入庫的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)庫語句后分配給所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊的??梢岳斫?,第一執(zhí)行模塊112可以執(zhí)行本發(fā)明實(shí)施例中的步驟S104。
第二執(zhí)行模塊113用于當(dāng)所述索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊已被分配數(shù)據(jù)時(shí),為系統(tǒng)內(nèi)存分配新內(nèi)存塊并將待入庫的數(shù)據(jù)分配給所述新內(nèi)存塊,以及在所述索引鏈表的尾部新增與所述新內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)??梢岳斫?,第二執(zhí)行模塊113可以執(zhí)行本發(fā)明實(shí)施例中的步驟S103。
內(nèi)存塊分配模塊114用于為系統(tǒng)內(nèi)存分配多個(gè)內(nèi)存塊,并建立管理所述多個(gè)內(nèi)存塊的所述索引鏈表。可以理解,內(nèi)存塊分配模塊114可以執(zhí)行本發(fā)明實(shí)施例中的步驟S101。
第三執(zhí)行模塊115用于將已釋放的內(nèi)存塊對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)至所述索引鏈表的首部??梢岳斫猓谌龍?zhí)行模塊115可以執(zhí)行本發(fā)明實(shí)施例中的步驟S105。
綜上,本發(fā)明實(shí)施例提供的入庫數(shù)據(jù)的管理方法及裝置,通過為系統(tǒng)內(nèi)存分配內(nèi)存塊并建立管理內(nèi)存塊的索引鏈表,在數(shù)據(jù)入庫時(shí)將數(shù)據(jù)存儲(chǔ)至索引鏈表的第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的內(nèi)存塊中并將索引鏈表的第一個(gè)節(jié)移動(dòng)至索引鏈表的尾部。如此可以盡量的減少向系統(tǒng)反復(fù)申請(qǐng)空間帶來的開銷,數(shù)據(jù)入庫時(shí)只要申請(qǐng)一次內(nèi)存,用完以后可在下一次需要分配內(nèi)存空間的時(shí)候使用,避免因I/O讀寫瓶頸導(dǎo)致CPU花費(fèi)大量的時(shí)間在當(dāng)前需要入庫的操作上,以至系統(tǒng)響應(yīng)不及時(shí)的問題,防止系統(tǒng)因長(zhǎng)時(shí)間不響應(yīng)處理系統(tǒng)的讀寫操作,導(dǎo)致系統(tǒng)數(shù)據(jù)丟的情況發(fā)生,解決了瞬時(shí)大量數(shù)據(jù)入庫對(duì)系統(tǒng)影響的問題,使系統(tǒng)運(yùn)行更加穩(wěn)定。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以兩個(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。