專利名稱:云os中一種基于內(nèi)存索引的云主機查詢方法
技術領域:
本發(fā)明涉及云OS中內(nèi)存索引的領域,具體地說是云OS中一種基于內(nèi)存索引的云主機查詢方法。
背景技術:
隨著信息科技的發(fā)展,云計算逐步成為業(yè)界的發(fā)展熱點,國內(nèi)外各大廠商的云計算服務平臺也開始紛紛投入到科學、教育、文化、衛(wèi)生、政府、高性能計算、電子商務、物聯(lián)網(wǎng)等多個領域進行使用。在云服務平臺中,高效的主機查詢和索引不僅是必需的,而且已經(jīng)成為云計算平臺其他功能得以實施的先決條件。主機的定位查詢效率的高低,將對整個云平臺的信息收集和運營產(chǎn)生巨大的影響。因此,為了迅速、高效的管理云OS中的主機信息,準確地查找定位到主機,大多數(shù)云OS提供了主機信息的索引機制。為解決云OS中主機快速定位的問題,我們提出了一種易擴展、高效的基于內(nèi)存索引的云主機查詢方法。
發(fā)明內(nèi)容
本發(fā)明的技術任務是解決現(xiàn)有技術的不足,提供云OS中一種基于內(nèi)存索引的云主機查詢方法。本發(fā)明的技術方案是按以下方式實現(xiàn)的,內(nèi)容包括:主機相關信息的掃描和收集;建立相關信息的內(nèi)存索引;解析用戶的指令,根據(jù)指令進行主機關鍵字的匹配并根據(jù)實時的返回定位結果快速的從索引中查詢定位出主機,其中,
主機相關信息的掃描和收集是該方法的第一步,通過掃描保存主機信息的配置文件或數(shù)據(jù)庫,將所需要的基本信息讀取至內(nèi)存中,為第二部建立內(nèi)存索引做準備;
建立相關信息的內(nèi)存索引是該方法的第二步,通過第一步讀入的每個主機的狀態(tài),對待查詢的關鍵字進行單字節(jié)或雙字節(jié)的索引;
解析用戶的指令,從索引中查詢定位出主機是該方法的第三部,通過對待查詢的索引鏈表的表查找和求交操作,將所得的一個或多個結果信息實時反饋給用戶,最終定位出主機;
具體步驟如下:
1)初始化云主機的信息,獲取云主機的基本信息,包括:主機名、IP地址、主機存放位置編號、主機MAC、硬件配置;
2)對云主機信息的指定關鍵字建立內(nèi)存索引:取得一條初始化的云主機信息,取得此信息索引關鍵字的第一個字符,將此主機的信息掛在以索引關鍵字第一個字符的Hash值為下標的鏈表數(shù)組的單字符索引鏈表上,同時,也將此主機信息掛在以索引關鍵字第一個和第二個字符的Hash值為下標的另一雙字符索引鏈表上,然后,繼續(xù)本記錄關鍵字的第二個字符,第三個字符,第三四個字符…依此類推,直到關鍵字的末尾,然后取得下一條云主機信息,對其索引關鍵字重復上述過程,最后直至所有云主機信息的索引建立完畢,每次將索引掛入鏈表時進行判斷,保證對于同一條記錄的同樣的關鍵字,在單字符和雙字符索引鏈表中只掛一次,以有效地提高查找效率。本發(fā)明的有益效果:本發(fā)明的創(chuàng)新點在于創(chuàng)新的在內(nèi)存中建立一系列的索引,使得云主機的定位和查詢效率得到進一步的提升。此方法在內(nèi)存中實現(xiàn)索引,對程序使用者來說較傳統(tǒng)方法有更高的使用透明度、靈活度和更高的查詢效率。同時,本發(fā)明在實現(xiàn)內(nèi)存索引的過程中,創(chuàng)新地提出了一種內(nèi)存鏈表快速進行多路求交的計算方式。通過為加入鏈表中每個不同元素設置不同的權值,可以不必進行每個鏈表的依次全部遍歷完成,即可求出鏈表交集。
圖1為該方法的實現(xiàn)流程示意圖。
具體實施例方式下面結合附圖對本發(fā)明的方法作進一步詳細說明。體系結構主要包括:初始化云主機的信息,對云主機信息的指定關鍵字建立內(nèi)存索引,解析用戶的指令,根據(jù)指令進行主機關鍵字的匹配并實時的返回定位結果。其中,初始化云主機的信息是該方法第一步,指獲取云主機的基本信息(如主機名、IP地址、主機存放位置編號、主機MAC、硬件配置等)。對云主機 信息的指定關鍵字建立內(nèi)存索引的主要流程為:取得一條初始化的云主機信息,取得此信息索引關鍵字的第一個字符,將此主機的信息掛在以索引關鍵字第一個字符的Hash值為下標的鏈表數(shù)組的單鏈表上(單字符索引鏈表)。同時,也將此主機信息掛在以索引關鍵字第一個和第二個字符的Hash值為下標的另一鏈表數(shù)組上(雙字符索引鏈表)。然后,繼續(xù)本記錄關鍵字的第二個字符,第二三個字符。第三個字符,第三四個字符…依此類推,直到關鍵字的末尾。然后取得下一條云主機信息,對其索引關鍵字重復上述過程。最后直至所有云主機信息的索引建立完畢。每次將索引掛入鏈表時進行判斷,保證對于同一條記錄的同樣的關鍵字,在單字符和雙字符索引鏈表中只掛一次,以有效地提高查找效率。
實施例此過程的C語言代碼實現(xiàn)如下: pos=m—sUUID;
while (*pos!=0)
{
chi =氺pos; ch2 = * (pos+1); if ( chl>0 )
{
uCharI =m_iCharMap [chi] ; // 此處根據(jù) Hash 算子,根據(jù) ASCII 值進行
了映射;
uChar2=m_iCharMap [ch2];
權利要求
1.OS中一種基于內(nèi)存索引的云主機查詢方法,其特征在于,內(nèi)容包括:主機相關信息的掃描和收集;建立相關信息的內(nèi)存索引;解析用戶的指令,根據(jù)指令進行主機關鍵字的匹配并根據(jù)實時的返回定位結果快速的從索引中查詢定位出主機,其中, 主機相關信息的掃描和收集是該方法的第一步,通過掃描保存主機信息的配置文件或數(shù)據(jù)庫,將所需要的基本信息讀取至內(nèi)存中,為第二部建立內(nèi)存索引做準備; 建立相關信息的內(nèi)存索引是該方法的第二步,通過第一步讀入的每個主機的狀態(tài),對待查詢的關鍵字進行單字節(jié)或雙字節(jié)的索引; 解析用戶的指令,從索引中查詢定位出主機是該方法的第三部,通過對待查詢的索引鏈表的表查找和求交操作,將所得的一個或多個結果信息實時反饋給用戶,最終定位出主機; 具體步驟如下: 1)初始化云主機的信息,獲取云主機的基本信息,包括:主機名、IP地址、主機存放位置編號、主機MAC、硬件配置; 2)對云主機信息的指定關鍵字建立內(nèi)存索引:取得一條初始化的云主機信息,取得此信息索引關鍵字的第一個字符,將此主機的信息掛在以索引關鍵字第一個字符的Hash值為下標的鏈表數(shù)組 的單字符索引鏈表上,同時,也將此主機信息掛在以索引關鍵字第一個和第二個字符的Hash值為下標的另一雙字符索引鏈表上,然后,繼續(xù)本記錄關鍵字的第二個字符,第三個字符,第三四個字符…依此類推,直到關鍵字的末尾,然后取得下一條云主機信息,對其索引關鍵字重復上述過程,最后直至所有云主機信息的索引建立完畢,每次將索引掛入鏈表時進行判斷,保證對于同一條記錄的同樣的關鍵字,在單字符和雙字符索引鏈表中只掛一次,以有效地提高查找效率。
全文摘要
本發(fā)明提供云OS中一種基于內(nèi)存索引的云主機查詢方法,內(nèi)容包括主機相關信息的掃描和收集;建立相關信息的內(nèi)存索引;解析用戶的指令,根據(jù)指令進行主機關鍵字的匹配并根據(jù)實時的返回定位結果快速的從索引中查詢定位出主機,其中,主機相關信息的掃描和收集是該方法的第一步,通過掃描保存主機信息的配置文件或數(shù)據(jù)庫,將所需要的基本信息讀取至內(nèi)存中,為第二部建立內(nèi)存索引做準備;建立相關信息的內(nèi)存索引是該方法的第二步,通過第一步讀入的每個主機的狀態(tài),對待查詢的關鍵字進行單字節(jié)或雙字節(jié)的索引;解析用戶的指令,從索引中查詢定位出主機是該方法的第三部,通過對待查詢的索引鏈表的表查找和求交操作,將所得的一個或多個結果信息實時反饋給用戶,最終定位出主機。
文檔編號G06F17/30GK103092974SQ20131002844
公開日2013年5月8日 申請日期2013年1月25日 優(yōu)先權日2013年1月25日
發(fā)明者趙仁明, 劉正偉, 朱波 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司