本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種申請(qǐng)內(nèi)存的方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,對(duì)數(shù)據(jù)庫(kù)或者數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行數(shù)據(jù)查詢的軟件越來(lái)越多,數(shù)據(jù)查詢的功能也越來(lái)越多。例如,hive、impala等是目前普遍使用的數(shù)據(jù)查詢系統(tǒng)。
其中,impala是hadoop集群中的數(shù)據(jù)查詢系統(tǒng)。在利用impala進(jìn)行數(shù)據(jù)查詢的過(guò)程中,需要基于llama向yarn申請(qǐng)數(shù)據(jù)查詢過(guò)程中所需的內(nèi)存資源。在現(xiàn)有技術(shù)中,在impala執(zhí)行數(shù)據(jù)查詢語(yǔ)句之前,會(huì)利用內(nèi)存控制參數(shù)通過(guò)llama向yarn提前申請(qǐng)一定的內(nèi)存資源,然后impala再利用申請(qǐng)到的內(nèi)存資源實(shí)現(xiàn)數(shù)據(jù)查詢功能。然而,執(zhí)行不同的查詢語(yǔ)句所需的內(nèi)存資源存在差異。當(dāng)實(shí)際需要的內(nèi)存資源大于申請(qǐng)的內(nèi)存資源時(shí),會(huì)造成內(nèi)存資源不夠,需再次申請(qǐng)的現(xiàn)象。而當(dāng)impala再次通過(guò)llama向yarn申請(qǐng)內(nèi)存資源時(shí),yarn中可能已沒(méi)有剩余的內(nèi)存資源(被其他操作占用),從而造成impala申請(qǐng)內(nèi)存失敗的現(xiàn)象,進(jìn)而使得impala查詢失敗。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種申請(qǐng)內(nèi)存的方法和裝置,能夠解決現(xiàn)有技術(shù)中因申請(qǐng)的內(nèi)存量不夠而造成數(shù)據(jù)查詢失敗的問(wèn)題。
依據(jù)本發(fā)明一個(gè)方面,提供了一種申請(qǐng)內(nèi)存的方法,所述方法包括:
獲取待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句;
根據(jù)所述數(shù)據(jù)查詢語(yǔ)句獲取查詢計(jì)劃樹(shù),并從所述查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量,所述目標(biāo)內(nèi)存使用量為執(zhí)行所述數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小;
將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為所述目標(biāo)內(nèi)存使用量,并根據(jù)設(shè)置后的內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,以便基于申請(qǐng)的內(nèi)存執(zhí)行所述 數(shù)據(jù)查詢語(yǔ)句。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種申請(qǐng)內(nèi)存的裝置,所述裝置包括:
獲取單元,用于獲取待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句;
所述獲取單元,還用于根據(jù)所述數(shù)據(jù)查詢語(yǔ)句獲取查詢計(jì)劃樹(shù);
讀取單元,用于從所述獲取單元獲取的所述查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量,所述目標(biāo)內(nèi)存使用量為執(zhí)行所述數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大?。?/p>
設(shè)置單元,用于將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為所述讀取單元讀取的所述目標(biāo)內(nèi)存使用量;
申請(qǐng)單元,用于根據(jù)所述設(shè)置單元設(shè)置后的內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,以便基于申請(qǐng)的內(nèi)存執(zhí)行所述數(shù)據(jù)查詢語(yǔ)句。
借由上述技術(shù)方案,本發(fā)明提供的申請(qǐng)內(nèi)存的方法和裝置,能夠在獲得待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句后,先獲得該數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù),再?gòu)牟樵冇?jì)劃樹(shù)中獲得目標(biāo)內(nèi)存使用量,并將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為該目標(biāo)內(nèi)存使用量,最后再根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,最終基于申請(qǐng)到的內(nèi)存執(zhí)行該數(shù)據(jù)查詢語(yǔ)句。與現(xiàn)有技術(shù)中直接基于設(shè)置好的內(nèi)存控制參數(shù)的參數(shù)值向資源管理系統(tǒng)申請(qǐng)內(nèi)存相比,本發(fā)明通過(guò)從獲取的待執(zhí)行數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量(即執(zhí)行該數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小),并將該目標(biāo)內(nèi)存使用量賦值給內(nèi)存控制參數(shù),最后根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,從而使得每次數(shù)據(jù)查詢所申請(qǐng)的內(nèi)存均為實(shí)際需要的內(nèi)存,而無(wú)需再次申請(qǐng)內(nèi)存,進(jìn)而使得每次數(shù)據(jù)查詢都能夠快速得到查詢結(jié)果。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于 本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了本發(fā)明實(shí)施例提供的一種申請(qǐng)內(nèi)存的方法的流程圖;
圖2示出了本發(fā)明實(shí)施例提供的一種申請(qǐng)內(nèi)存的裝置的組成框圖;
圖3示出了本發(fā)明實(shí)施例提供的另一種申請(qǐng)內(nèi)存的裝置的組成框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
在實(shí)際應(yīng)用中,數(shù)據(jù)查詢系統(tǒng)在實(shí)現(xiàn)數(shù)據(jù)查詢的過(guò)程中,需要先向資源管理系統(tǒng)申請(qǐng)一部分內(nèi)存,然后基于申請(qǐng)的內(nèi)存實(shí)現(xiàn)數(shù)據(jù)查詢功能?,F(xiàn)有技術(shù)中,impala實(shí)現(xiàn)申請(qǐng)內(nèi)存的具體操作方式為:在impala執(zhí)行數(shù)據(jù)查詢語(yǔ)句之前,會(huì)利用提前設(shè)置的內(nèi)存控制參數(shù)通過(guò)llama向yarn提前申請(qǐng)一定的內(nèi)存資源,然后impala再利用申請(qǐng)到的內(nèi)存資源實(shí)現(xiàn)數(shù)據(jù)查詢功能。然而,由于不同的數(shù)據(jù)查詢語(yǔ)句在查詢過(guò)程中需要的內(nèi)存不同,所以現(xiàn)有的申請(qǐng)內(nèi)存方法存在以下問(wèn)題:
(1)當(dāng)申請(qǐng)的內(nèi)存資源小于實(shí)際需要的內(nèi)存資源時(shí),會(huì)造成內(nèi)存資源不夠,需再次申請(qǐng)的現(xiàn)象。而當(dāng)impala再次通過(guò)llama向yarn申請(qǐng)內(nèi)存資源時(shí),yarn中可能已沒(méi)有剩余的內(nèi)存資源(被其他操作占用),從而造成impala申請(qǐng)內(nèi)存失敗的現(xiàn)象,進(jìn)而使得impala查詢失敗。
(2)當(dāng)申請(qǐng)的內(nèi)存資源大于實(shí)際需要的內(nèi)存資源時(shí),會(huì)造成內(nèi)存資源浪費(fèi)的現(xiàn)象。又由于資源管理系統(tǒng)中的內(nèi)存資源是共享的,所以當(dāng)本次數(shù)據(jù)查詢占用過(guò)多的內(nèi)存資源時(shí),會(huì)造成其他操作無(wú)法申請(qǐng)到足夠內(nèi)存的現(xiàn)象。
因此,如何合理設(shè)置內(nèi)存控制參數(shù)成為當(dāng)今一大難題。
為了解決現(xiàn)有技術(shù)中因申請(qǐng)的內(nèi)存量不夠而造成數(shù)據(jù)查詢失敗的問(wèn)題,本發(fā)明實(shí)施例提供了一種申請(qǐng)內(nèi)存的方法,如圖1所示,該方法包括:
101、獲取待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句。
當(dāng)用戶在數(shù)據(jù)查詢系統(tǒng)的界面輸入一條數(shù)據(jù)查詢語(yǔ)句后,數(shù)據(jù)查詢系統(tǒng)不立即執(zhí)行該數(shù)據(jù)查詢語(yǔ)句,而是先向資源管理系統(tǒng)申請(qǐng)內(nèi)存,再基于申請(qǐng)的內(nèi)存執(zhí)行該數(shù)據(jù)查詢語(yǔ)句。
102、根據(jù)數(shù)據(jù)查詢語(yǔ)句獲取查詢計(jì)劃樹(shù),并從查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量。
其中,查詢計(jì)劃樹(shù)(或者稱為執(zhí)行計(jì)劃樹(shù))用于描述數(shù)據(jù)查詢語(yǔ)句的執(zhí)行過(guò)程,如數(shù)據(jù)查詢語(yǔ)句執(zhí)行過(guò)程中需要的內(nèi)存總大小、執(zhí)行時(shí)間、所使用的索引、所查表的大小以及查詢順序等等。目標(biāo)內(nèi)存使用量為執(zhí)行該數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小。由此可知,數(shù)據(jù)查詢系統(tǒng)能夠從查詢計(jì)劃樹(shù)中讀取執(zhí)行該數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小(即目標(biāo)內(nèi)存使用量),以便后續(xù)根據(jù)該內(nèi)存總大小向資源管理系統(tǒng)申請(qǐng)內(nèi)存。
103、將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為目標(biāo)內(nèi)存使用量,并根據(jù)設(shè)置后的內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,以便基于申請(qǐng)的內(nèi)存執(zhí)行數(shù)據(jù)查詢語(yǔ)句。
其中,內(nèi)存控制參數(shù)用于在數(shù)據(jù)查詢系統(tǒng)執(zhí)行數(shù)據(jù)查詢語(yǔ)句之前,預(yù)先向資源管理系統(tǒng)申請(qǐng)一部分內(nèi)存作為預(yù)留,供數(shù)據(jù)查詢系統(tǒng)在執(zhí)行數(shù)據(jù)查詢語(yǔ)句過(guò)程中使用。
本步驟中,在數(shù)據(jù)查詢系統(tǒng)將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為目標(biāo)內(nèi)存使用量后,根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)所申請(qǐng)的內(nèi)存的大小為執(zhí)行該數(shù)據(jù)查詢語(yǔ)句實(shí)際需要的內(nèi)存總大小。因此,數(shù)據(jù)查詢系統(tǒng)在整個(gè)數(shù)據(jù)查詢過(guò)程中不會(huì)因內(nèi)存不夠需再次向資源管理系統(tǒng)申請(qǐng)內(nèi)存,而造成申請(qǐng)超時(shí)甚至申請(qǐng)失敗的現(xiàn)象。
此外,由于數(shù)據(jù)查詢系統(tǒng)向資源管理系統(tǒng)申請(qǐng)的內(nèi)存大小為實(shí)際需要的大小,所以也不存在因申請(qǐng)的內(nèi)存大于實(shí)際所需的內(nèi)存,而造成資源浪費(fèi)的情況。
本發(fā)明實(shí)施例提供的申請(qǐng)內(nèi)存的方法,能夠在獲得待執(zhí)行的數(shù)據(jù)查詢 語(yǔ)句后,先獲得該數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù),再?gòu)牟樵冇?jì)劃樹(shù)中獲得目標(biāo)內(nèi)存使用量,并將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為該目標(biāo)內(nèi)存使用量,最后再根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,最終基于申請(qǐng)到的內(nèi)存執(zhí)行該數(shù)據(jù)查詢語(yǔ)句。與現(xiàn)有技術(shù)中直接基于設(shè)置好的內(nèi)存控制參數(shù)的參數(shù)值向資源管理系統(tǒng)申請(qǐng)內(nèi)存相比,本發(fā)明通過(guò)從獲取的待執(zhí)行數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量(即執(zhí)行該數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小),并將該目標(biāo)內(nèi)存使用量賦值給內(nèi)存控制參數(shù),最后根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,從而使得每次數(shù)據(jù)查詢所申請(qǐng)的內(nèi)存均為實(shí)際需要的內(nèi)存,而無(wú)需再次申請(qǐng)內(nèi)存,進(jìn)而使得每次數(shù)據(jù)查詢都能夠快速得到查詢結(jié)果。
進(jìn)一步的,上述方法實(shí)施例中根據(jù)數(shù)據(jù)查詢語(yǔ)句獲取查詢計(jì)劃樹(shù)的具體實(shí)現(xiàn)方式可以為:數(shù)據(jù)查詢系統(tǒng)先生成數(shù)據(jù)查詢語(yǔ)句的解釋語(yǔ)句,再執(zhí)行該解釋語(yǔ)句,從而獲得查詢計(jì)劃樹(shù)。
其中,查詢計(jì)劃樹(shù)為解釋語(yǔ)句的執(zhí)行結(jié)果。在數(shù)據(jù)查詢系統(tǒng)中常用的解釋命令為explain命令,當(dāng)獲取待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句后,數(shù)據(jù)查詢系統(tǒng)利用explain命令自動(dòng)生成并執(zhí)行解釋該數(shù)據(jù)查詢語(yǔ)句的解釋語(yǔ)句,從而獲得解釋結(jié)果(即查詢計(jì)劃樹(shù))。
示例性的,若待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句為“select browserbrief,count(*)as cnt from session where day=20150401 group by browserbrief order by cnt desc limit 10;”,則數(shù)據(jù)查詢系統(tǒng)利用explain命令生成的解釋語(yǔ)句為“explain select browserbrief,count(*)as cnt from session where day=20150401 group by browserbrief order by cnt desc limit 10;”。在執(zhí)行該解釋語(yǔ)句后,能夠獲得數(shù)據(jù)查詢語(yǔ)句“select browserbrief,count(*)as cnt from session where day=20150401 group by browserbrief order by cnt desc limit 10;”的查詢計(jì)劃樹(shù)。
進(jìn)一步的,在獲得數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù)之后,需要從該查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量,以便根據(jù)該內(nèi)存使用量向資源管理系統(tǒng)申請(qǐng)內(nèi)存。其中,從查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量的具體實(shí)現(xiàn)方式為:數(shù)據(jù)查詢系統(tǒng)先從查詢計(jì)劃樹(shù)中查找特征字符串,再?gòu)脑撎卣髯址蝎@取 目標(biāo)內(nèi)存使用量。
其中,特征字符串中記錄有目標(biāo)內(nèi)存使用量。在數(shù)據(jù)查詢系統(tǒng)獲得數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù)之后,會(huì)逐行掃描該查詢計(jì)劃樹(shù)中的內(nèi)容,并從中查找到特征字符串,最后從查找到的特征字符串中獲得所需的目標(biāo)內(nèi)存使用量。
在實(shí)際應(yīng)用中,與字符串“Estimated Per-Host Requirements:”相鄰的字符串中包含執(zhí)行數(shù)據(jù)查詢語(yǔ)句所需的總內(nèi)存大小,所以本步驟中的特征字符串為包含“Estimated Per-Host Requirements:”的至少一行字符串。
示例性的,若獲得的特征字符串為:“Estimated Per-Host Requirements:Memory=98.00MB VCores=2”,則可以從該字符串中獲得目標(biāo)內(nèi)存使用量98.00MB。若內(nèi)存控制參數(shù)為mem_limit,將98.00MB賦值給mem_limit,即mem_limit=98.00MB。由此數(shù)據(jù)查詢系統(tǒng)執(zhí)行有關(guān)mem_limit的程序,實(shí)現(xiàn)向資源管理系統(tǒng)申請(qǐng)98.00MB內(nèi)存的功能,從而利用98.00MB的內(nèi)存完成數(shù)據(jù)查詢語(yǔ)句的執(zhí)行操作。
進(jìn)一步的,從特征字符串中獲取目標(biāo)內(nèi)存使用量的具體實(shí)現(xiàn)方式可以為加載預(yù)設(shè)程序,并基于預(yù)設(shè)程序從特征字符串中截取目標(biāo)內(nèi)存使用量。
具體的,該預(yù)設(shè)程序的截取過(guò)程可以為:從該特征字符串中查找出含有Memory的表達(dá)式,再?gòu)脑揗emory的表達(dá)式中截取“=”后面的數(shù)值(包含單位)。
進(jìn)一步的,由于資源管理系統(tǒng)中的資源是共享的,所以當(dāng)數(shù)據(jù)查詢系統(tǒng)執(zhí)行完數(shù)據(jù)查詢語(yǔ)句后,需要釋放占用的內(nèi)存,以便供其他操作使用。
進(jìn)一步的,數(shù)據(jù)查詢系統(tǒng)可以為impala查詢系統(tǒng),即申請(qǐng)內(nèi)存可以在impala環(huán)境下進(jìn)行。
需要說(shuō)明的是,impala是基于hadoop集群的數(shù)據(jù)查詢系統(tǒng),可以對(duì)hadoop集群上的海量數(shù)據(jù)進(jìn)行查詢。在impala執(zhí)行用戶輸入的數(shù)據(jù)查詢語(yǔ)句之前,會(huì)通過(guò)hadoop集群中的資源調(diào)度框架llama向資源管理系統(tǒng)yarn申請(qǐng)內(nèi)存,并基于申請(qǐng)的內(nèi)存執(zhí)行該數(shù)據(jù)查詢語(yǔ)句,執(zhí)行完數(shù)據(jù)查詢語(yǔ)句后,返回查詢結(jié)果供用戶查看,同時(shí)釋放向資源管理系統(tǒng)yarn申請(qǐng)的內(nèi)存。
進(jìn)一步的,依據(jù)上述方法實(shí)施例,本發(fā)明的另一個(gè)實(shí)施例還提供了一 種申請(qǐng)內(nèi)存的裝置,如圖2所示。該裝置包括:獲取單元21、讀取單元22、設(shè)置單元23和申請(qǐng)單元24。其中,
獲取單元21,用于獲取待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句;
獲取單元21,還用于根據(jù)數(shù)據(jù)查詢語(yǔ)句獲取查詢計(jì)劃樹(shù);
讀取單元22,用于從獲取單元21獲取的查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量,目標(biāo)內(nèi)存使用量為執(zhí)行數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大??;
設(shè)置單元23,用于將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為讀取單元22讀取的目標(biāo)內(nèi)存使用量;
申請(qǐng)單元24,用于根據(jù)設(shè)置單元23設(shè)置后的內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,以便基于申請(qǐng)的內(nèi)存執(zhí)行數(shù)據(jù)查詢語(yǔ)句。
本發(fā)明實(shí)施例提供的申請(qǐng)內(nèi)存的裝置,能夠在獲得待執(zhí)行的數(shù)據(jù)查詢語(yǔ)句后,先獲得該數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù),再?gòu)牟樵冇?jì)劃樹(shù)中獲得目標(biāo)內(nèi)存使用量,并將內(nèi)存控制參數(shù)的參數(shù)值設(shè)置為該目標(biāo)內(nèi)存使用量,最后再根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,最終基于申請(qǐng)到的內(nèi)存執(zhí)行該數(shù)據(jù)查詢語(yǔ)句。與現(xiàn)有技術(shù)中直接基于設(shè)置好的內(nèi)存控制參數(shù)的參數(shù)值向資源管理系統(tǒng)申請(qǐng)內(nèi)存相比,本發(fā)明通過(guò)從獲取的待執(zhí)行數(shù)據(jù)查詢語(yǔ)句的查詢計(jì)劃樹(shù)中讀取目標(biāo)內(nèi)存使用量(即執(zhí)行該數(shù)據(jù)查詢語(yǔ)句時(shí)實(shí)際需要的內(nèi)存總大小),并將該目標(biāo)內(nèi)存使用量賦值給內(nèi)存控制參數(shù),最后根據(jù)內(nèi)存控制參數(shù)向資源管理系統(tǒng)申請(qǐng)內(nèi)存,從而使得每次數(shù)據(jù)查詢所申請(qǐng)的內(nèi)存均為實(shí)際需要的內(nèi)存,而無(wú)需再次申請(qǐng)內(nèi)存,進(jìn)而使得每次數(shù)據(jù)查詢都能夠快速得到查詢結(jié)果。
需要說(shuō)明的是,由于申請(qǐng)單元24向資源管理系統(tǒng)申請(qǐng)的內(nèi)存為執(zhí)行數(shù)據(jù)查詢語(yǔ)句實(shí)際需要的內(nèi)存總大小,所以也不存在因申請(qǐng)的內(nèi)存大于實(shí)際需要的內(nèi)存而造成資源浪費(fèi)的情況。
進(jìn)一步的,如圖3所示,獲取單元21,包括:
生成模塊211,用于生成數(shù)據(jù)查詢語(yǔ)句的解釋語(yǔ)句;
執(zhí)行模塊212,用于執(zhí)行生成模塊211生成的解釋語(yǔ)句,以便獲得查詢計(jì)劃樹(shù)。
進(jìn)一步的,如圖3所示,讀取單元22,包括:
查找模塊221,用于從查詢計(jì)劃樹(shù)中查找特征字符串,特征字符串中記錄有目標(biāo)內(nèi)存使用量;
獲取模塊222,用于從查找模塊221查找的特征字符串中獲取目標(biāo)內(nèi)存使用量。
進(jìn)一步的,獲取模塊222,用于加載預(yù)設(shè)程序,并基于預(yù)設(shè)程序從特征字符串中截取目標(biāo)內(nèi)存使用量。
進(jìn)一步的,如圖3所示,該裝置還包括:
釋放單元25,用于在執(zhí)行完數(shù)據(jù)查詢語(yǔ)句后,釋放向資源管理系統(tǒng)申請(qǐng)的內(nèi)存。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征 有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的隨身電子防丟設(shè)備的狀態(tài)檢測(cè)方法、設(shè)備、服務(wù)器及系統(tǒng)設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他 形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。