欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于搜索圖像的計算機實現(xiàn)方法、裝置及數(shù)據(jù)處理系統(tǒng)與流程

文檔序號:11774559閱讀:206來源:國知局
用于搜索圖像的計算機實現(xiàn)方法、裝置及數(shù)據(jù)處理系統(tǒng)與流程

本發(fā)明的實施方式大體涉及搜索內(nèi)容。更具體地,本發(fā)明的實施方式涉及既用于在線內(nèi)容搜索又用于離線內(nèi)容分析的統(tǒng)一存儲系統(tǒng)。



背景技術(shù):

通常,大多數(shù)搜索引擎在其操作期間通過在客戶端裝置上運行的瀏覽器來執(zhí)行網(wǎng)頁搜索。搜索引擎接收由用戶輸入的搜索詞,并檢索與所述搜索詞相關(guān)聯(lián)的網(wǎng)頁搜索結(jié)果列表。搜索引擎基于某些標準將搜索結(jié)果顯示為搜索列表的一系列子集合。在搜索操作期間使用的一般標準為:搜索詞是完整地還是部分地出現(xiàn)在給定網(wǎng)頁上、搜索字串出現(xiàn)在搜索結(jié)果中的次數(shù)、字母順序等。此外,用戶可以通過點擊鼠標按鈕來決定打開鏈接以打開并瀏覽??捎伤阉饕鎭肀O(jiān)控和采集用戶與搜索結(jié)果的一些交互和/或采集用戶信息,以隨后提供更好的搜索。

通常,由搜索引擎在線提供的內(nèi)容還可被分析系統(tǒng)離線分析。圖1是示出用于在線搜索和離線數(shù)據(jù)分析的常規(guī)網(wǎng)絡配置的框圖。參照圖1,客戶端裝置101至102通過網(wǎng)絡103(例如,因特網(wǎng))通信地聯(lián)接至網(wǎng)頁服務器104和分析服務器105。網(wǎng)頁服務器104包括搜索引擎130,以如本示例中基于內(nèi)容存儲系統(tǒng)或服務器110中所存儲的內(nèi)容116向客戶端101(例如,瀏覽用戶)提供在線內(nèi)容搜索。由于必須在非常短的時間內(nèi)響應于搜索查詢搜索并返回內(nèi)容,因此在線搜索系統(tǒng)(例如,網(wǎng)頁服務器104和存儲系統(tǒng)110)需要低延遲能力。客戶端102(例如,分析用戶)訪問分析系統(tǒng)或服務器105以通過分析引擎140對存儲在分析系統(tǒng)或服務器112上的內(nèi)容118執(zhí)行離線數(shù)據(jù)分析。由于將訪問大量的數(shù)據(jù),因此離線分析系統(tǒng)(例如,分析服務器105和存儲系統(tǒng)112)需要高吞吐能力??煞謩e通過etl(提取、轉(zhuǎn)換和加載)管線121至122從數(shù)據(jù)采集系統(tǒng)或數(shù)據(jù)源150接收內(nèi)容116和內(nèi)容118。

在該配置中,必須將相同的內(nèi)容加載至單獨的存儲系統(tǒng)110和112中,這可能導致不必要的冗余并需要更多存儲空間,而且難以令數(shù)據(jù)同步或管理數(shù)據(jù)。此外,數(shù)據(jù)采集系統(tǒng)150或其他數(shù)據(jù)源不得不維護至少兩個單獨的etl管線以將數(shù)據(jù)供給至兩個存儲系統(tǒng)110和112,這需要更多網(wǎng)絡帶寬及其他處理資源。



技術(shù)實現(xiàn)要素:

本申請的目的在于提供用于搜索圖像的計算機實現(xiàn)方法、用于搜索圖像的裝置以及操作為主存儲節(jié)點的數(shù)據(jù)處理系統(tǒng)。

根據(jù)一個方面,提供了用于搜索圖像的計算機實現(xiàn)方法,該方法可包括:在主存儲節(jié)點處從客戶端接收對于搜索圖像的搜索查詢,主存儲節(jié)點通過存儲網(wǎng)絡聯(lián)接至多個工作者存儲節(jié)點;在主存儲節(jié)點處利用第一預定哈希函數(shù)對搜索查詢的一個或多個關(guān)鍵字執(zhí)行哈希操作從而生成第一哈希值;基于第一哈希值識別工作者存儲節(jié)點中的第一工作者存儲節(jié)點;以及將搜索查詢重定向至第一工作者存儲節(jié)點以允許第一工作者存儲節(jié)點為搜索查詢服務,其中第一工作者存儲節(jié)點根據(jù)搜索查詢從第一工作者存儲節(jié)點的第一系統(tǒng)存儲器識別一個或多個圖像并且將一個或多個圖像傳輸至客戶端。

根據(jù)另一個方面,提供了用于搜索圖像的裝置,該裝置可包括:在主存儲節(jié)點處從客戶端接收對于搜索圖像的搜索查詢的裝置,主存儲節(jié)點通過存儲網(wǎng)絡聯(lián)接至多個工作者存儲節(jié)點;在主存儲節(jié)點處利用第一預定哈希函數(shù)對搜索查詢的一個或多個關(guān)鍵字執(zhí)行哈希操作從而生成第一哈希值的裝置;基于第一哈希值識別工作者存儲節(jié)點中的第一工作者存儲節(jié)點的裝置;以及將搜索查詢重定向至第一工作者存儲節(jié)點以允許第一工作者存儲節(jié)點為搜索查詢服務的裝置,其中第一工作者存儲節(jié)點用于根據(jù)搜索查詢從第一工作者存儲節(jié)點的第一系統(tǒng)存儲器識別一個或多個圖像并且將一個或多個圖像傳輸至客戶端。

根據(jù)又一個方面,提供了操作為主存儲節(jié)點的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)可包括根據(jù)本申請實施方式的用于搜索圖像的裝置。

附圖說明

本發(fā)明的實施方式在附圖的各圖中以舉例而非限制的方式示出,在附圖中,相同的參考數(shù)字指示相同的元件。

圖1是示出用于在線搜索和離線數(shù)據(jù)分析的常規(guī)網(wǎng)絡配置的框圖。

圖2是示出可用作本發(fā)明實施方式的網(wǎng)絡架構(gòu)的框圖。

圖3a至圖3b是示出根據(jù)本發(fā)明某些實施方式的內(nèi)存中存儲系統(tǒng)的示例的框圖。

圖4是示出根據(jù)本發(fā)明一實施方式的節(jié)點映射函數(shù)的示例的框圖。

圖5是示出根據(jù)本發(fā)明一實施方式的對象存儲庫(objectstore)的示例的框圖。

圖6是示出根據(jù)本發(fā)明一實施方式用于搜索內(nèi)容的過程的流程圖。

圖7是示出根據(jù)本發(fā)明一實施方式用于搜索內(nèi)容的過程的流程圖。

圖8是示出根據(jù)一實施方式的數(shù)據(jù)處理系統(tǒng)的框圖。

具體實施方式

將參考以下所討論的細節(jié)來描述本發(fā)明的各實施方式和方面,附圖將示出各種實施方式。以下描述和附圖是對本發(fā)明的說明,而不解釋為限制本發(fā)明。描述諸多具體細節(jié)以全面理解本發(fā)明各實施方式。然而,在某些示例中,為了使對本發(fā)明實施方式的討論簡潔,沒有描述公知或常規(guī)的細節(jié)。

本說明書中對“一個實施方式”或“實施方式”的參考意味著結(jié)合該實施方式所描述的具體特征、結(jié)構(gòu)或特性可包括在本發(fā)明的至少一個實施方式中。在本說明書中各處,短語“在一個實施方式中”的出現(xiàn)不必全部是指同一實施方式。

根據(jù)一些實施方式,使用單個內(nèi)存中存儲系統(tǒng)為用于在線內(nèi)容搜索的網(wǎng)頁服務器和用于離線數(shù)據(jù)分析的分析服務器兩者供應內(nèi)容。術(shù)語“內(nèi)存中(in-memory)”表示這樣的存儲配置,在該存儲配置中,在存儲系統(tǒng)的操作期間待在線和/或離線供應的內(nèi)容中的大多數(shù)內(nèi)容或全部內(nèi)容被加載并保存在系統(tǒng)存儲器(例如,隨機存取存儲器或ram)中的。由于大多數(shù)或全部數(shù)據(jù)保存在系統(tǒng)存儲器中,因此能夠從系統(tǒng)存儲器直接檢索數(shù)據(jù)以為來自網(wǎng)頁服務器的搜索引擎和分析服務器的分析引擎二者的搜索請求服務,而不必為檢索相同的數(shù)據(jù)而訪問存儲系統(tǒng)的永久性存儲裝置(例如,硬盤)。其結(jié)果是,例如能夠基本上同時滿足針對在線內(nèi)容搜索和離線數(shù)據(jù)分析的低延遲和高吞吐量兩個要求。此外,不需要維護用于在線內(nèi)容搜索和離線數(shù)據(jù)分析的單獨的存儲系統(tǒng),并且能夠極大地提高數(shù)據(jù)管理的效率。另外,由于僅使用單個存儲系統(tǒng),因此數(shù)據(jù)源與存儲系統(tǒng)之間僅需要一個etl管線。

在一實施方式中,為了適應高吞吐量的要求,存儲系統(tǒng)包括分布式內(nèi)存中存儲節(jié)點群或池,以聯(lián)合存儲內(nèi)容并且為網(wǎng)頁服務器和分析服務器提供內(nèi)容服務。分布式存儲節(jié)點的池,在本文中被稱為工作者存儲節(jié)點或從屬存儲節(jié)點,可由主存儲節(jié)點或主要存儲節(jié)點管理。池中的工作者存儲節(jié)點的數(shù)量可根據(jù)可能按比例增加和減少的待供應數(shù)據(jù)的量和工作者存儲節(jié)點之間的負載均衡來配置。

在一實施方式中,主存儲節(jié)點從客戶端接收用于搜索內(nèi)容的搜索查詢??蛻舳丝梢允菫闉g覽用戶提供內(nèi)容搜索服務的網(wǎng)頁服務器或者是為分析用戶提供數(shù)據(jù)分析服務的分析服務器。主存儲節(jié)點通過網(wǎng)絡(例如,高速以太網(wǎng)或存儲網(wǎng)絡)管理工作者存儲節(jié)點的數(shù)量。主存儲節(jié)點響應于搜索查詢、利用預定的哈希(hash)函數(shù)對搜索查詢的一個或多個關(guān)鍵字執(zhí)行哈希操作以生成哈希值。主存儲節(jié)點基于哈希值識別工作者存儲節(jié)點中的一個。主存儲節(jié)點將搜索查詢重定向至所識別的工作者存儲節(jié)點或者向所識別的工作者存儲節(jié)點發(fā)送另一請求,以允許該工作者存儲節(jié)點例如利用保存在所述工作者存儲節(jié)點的系統(tǒng)存儲器中的數(shù)據(jù)來為搜索查詢服務,而不必訪問所述工作者存儲節(jié)點的對應永久性存儲裝置。

圖2是示出可用作本發(fā)明實施方式的網(wǎng)絡架構(gòu)的框圖。參照圖2,類似于圖1的系統(tǒng)100,客戶端裝置101至102通過網(wǎng)絡103通信地聯(lián)接至網(wǎng)頁服務器104和分析服務器105。在本示例中,網(wǎng)頁服務器104包括搜索引擎130以基于存儲在內(nèi)容存儲系統(tǒng)或服務器201中的內(nèi)容203向客戶端101(例如,瀏覽用戶)提供在線內(nèi)容搜索??蛻舳?02(例如,分析用戶)訪問分析系統(tǒng)或服務器105以通過分析引擎140對存儲在內(nèi)容存儲系統(tǒng)或服務器201上的內(nèi)容203執(zhí)行離線數(shù)據(jù)分析。

客戶端裝置101-102可以是任何類型的客戶端裝置,諸如,個人計算機(例如,臺式計算機、膝上型計算機和平板)、“薄”客戶端、個人數(shù)字助理(pda)、支持網(wǎng)絡的裝置、智能手表或移動電話(例如,智能手機)等。網(wǎng)絡103可以是任何類型的網(wǎng)絡,諸如有線或無線的局域網(wǎng)(lan)、廣域網(wǎng)(wan)(諸如因特網(wǎng))或其組合。服務器104至105可以是任何種類的服務器或服務器集群,諸如,網(wǎng)頁服務器或云服務器、應用服務器、后端服務器或其組合。服務器104至105可各自進一步包括允許客戶端(諸如客戶端裝置101至102)訪問由服務器104至105提供的資源或服務的接口(未示出)。接口可包括網(wǎng)頁(web)接口、應用編程接口(api)和/或命令行接口(cli)。

例如,客戶端(在本示例中為客戶端裝置101的用戶應用(例如,網(wǎng)頁瀏覽器、移動應用))可向服務器104發(fā)送搜索查詢,并且搜索引擎130通過網(wǎng)絡103接收該搜索查詢。響應于該搜索查詢,搜索引擎130從搜索查詢中提取一個或多個關(guān)鍵字(也稱為搜索詞)。搜索引擎130在由內(nèi)容系統(tǒng)或服務器201托管的內(nèi)容數(shù)據(jù)庫(例如,數(shù)據(jù)對象203)中執(zhí)行搜索。內(nèi)容數(shù)據(jù)庫可包括主要內(nèi)容數(shù)據(jù)庫和/或輔助內(nèi)容數(shù)據(jù)庫,以識別與關(guān)鍵字有關(guān)的內(nèi)容項目(例如,圖像)的列表。主要內(nèi)容數(shù)據(jù)庫可以是一般內(nèi)容數(shù)據(jù)庫,而輔助內(nèi)容數(shù)據(jù)庫(也稱為次級內(nèi)容數(shù)據(jù)庫)可以是特殊內(nèi)容或贊助內(nèi)容數(shù)據(jù)庫。搜索引擎130向客戶端返回具有列表中的至少一些內(nèi)容項目的搜索結(jié)果頁面,以呈現(xiàn)在客戶端中。搜索引擎130可以是能夠從百度公司獲得的搜索引擎,或者可替代地,搜索引擎130可表示搜索引擎、microsoftbingtm搜索引擎、搜索引擎或一些其他搜索引擎。

搜索引擎(諸如,網(wǎng)頁搜索引擎)是設計成在萬維網(wǎng)上搜索信息的軟件系統(tǒng)。搜索結(jié)果通常被呈現(xiàn)在一系列結(jié)果(常稱為搜索引擎結(jié)果頁面)中。信息可以是網(wǎng)頁、圖像和其他類型文件的混合。一些搜索引擎還挖掘數(shù)據(jù)庫或開放式目錄中可用的數(shù)據(jù)。不同于僅通過人工編輯來維持的網(wǎng)頁目錄,搜索引擎還通過在網(wǎng)頁爬蟲上運行算法來維護實時信息。

網(wǎng)頁搜索引擎通過存儲與諸多網(wǎng)頁有關(guān)的信息來運行,所述網(wǎng)頁搜索引擎從頁面的超文本標記語言(html)標記檢索所述網(wǎng)頁。通過網(wǎng)頁爬蟲來檢索這些頁面,所述網(wǎng)頁爬蟲是遵循網(wǎng)站上的每個鏈接的自動化網(wǎng)頁爬蟲。搜索引擎接著分析每個頁面的內(nèi)容以確定其應如何被索引(例如,可以從標題、頁面內(nèi)容、標頭或稱為元標簽的特殊字段來提取字)。在圖像搜索領(lǐng)域中,基于內(nèi)容與可能的搜索詞相關(guān)聯(lián)的方式來索引圖像文件。與網(wǎng)頁或圖像有關(guān)的數(shù)據(jù)存儲在索引數(shù)據(jù)庫中,以供在隨后的查詢中使用。索引有助于盡可能快地找到與查詢有關(guān)的信息。

當用戶在搜索引擎中輸入查詢時(通常是通過使用關(guān)鍵字),引擎檢查查詢的索引并根據(jù)其標準提供最匹配網(wǎng)頁或圖像的列表,所提供的最匹配網(wǎng)頁或圖像的列表通常具有包含文檔標題且有時包括部分文本的簡短概述??商娲?,所提供的列表包含圖像內(nèi)容以及其縮寫形式的原始統(tǒng)一資源定位器(url)。索引是由與數(shù)據(jù)一起存儲的信息及信息被索引方法建構(gòu)而成。搜索引擎查找與輸入時完全一致的字或短語。一些搜索引擎提供允許用戶定義關(guān)鍵字之間的距離的高級特征(稱為接近搜索)。還存在涉及對包含你所搜索的字或短語的頁面使用統(tǒng)計分析的基于概念的搜索。此外,自然語言查詢允許用戶以與將向人詢問問題的形式相同的形式來鍵入問題。

搜索引擎的有用性取決于其所回饋的結(jié)果集合的相關(guān)性。雖然包括特定字或短語的網(wǎng)頁可能有數(shù)百萬個,但一些頁面可能比其他頁面更相關(guān)、更流行或更有權(quán)威。大多數(shù)搜索引擎采用多種方法來對結(jié)果進行排序以首先提供“最佳”結(jié)果。搜索引擎如何決定哪些頁面是最佳匹配者以及應按什么次序來示出結(jié)果隨引擎的不同而廣泛改變。

內(nèi)容(例如,諸如圖像的數(shù)據(jù)對象203)可由數(shù)據(jù)采集系統(tǒng)或服務器150提供,在該數(shù)據(jù)采集系統(tǒng)或服務器150中,例如可利用諸多網(wǎng)絡爬蟲(未示出)從一個或多個內(nèi)容提供者(例如,網(wǎng)站)采集內(nèi)容。網(wǎng)絡爬蟲或網(wǎng)頁爬蟲是自動遍歷網(wǎng)絡的超文本結(jié)構(gòu)的程序。在實踐中,網(wǎng)絡爬蟲可在獨立的計算機或服務器上運行,所述計算機或服務器中的每一個被配置成執(zhí)行從url下載文檔的一個或多個進程或線程。網(wǎng)絡爬蟲接收所指派的url,并在那些url處下載文檔。網(wǎng)絡爬蟲還可檢索被已檢索的文檔引用的文檔,以由內(nèi)容處理系統(tǒng)(未示出)和/或搜索引擎130處理。網(wǎng)絡爬蟲可以使用各種協(xié)議來下載與url相關(guān)聯(lián)的頁面,所述協(xié)議諸如為超文本傳輸協(xié)議(http)和文件傳輸協(xié)議(ftp)。

此外,根據(jù)一實施方式,還可通過分析系統(tǒng)或服務器105的分析引擎140對數(shù)據(jù)對象203(例如,圖像)進行分析。例如,分析用戶(由客戶端102表示)可通過網(wǎng)絡103訪問分析服務器105以調(diào)用分析引擎140對數(shù)據(jù)對象203執(zhí)行分析。出于說明的目的,將服務器104和內(nèi)容存儲系統(tǒng)/服務器201統(tǒng)稱為在線搜索系統(tǒng),并且將服務器105和內(nèi)容存儲系統(tǒng)/服務器201統(tǒng)稱為離線分析系統(tǒng)。如上所述,由于必須在非常短的時間內(nèi)響應于搜索查詢搜索內(nèi)容并返回內(nèi)容,因此在線搜索系統(tǒng)需要低延遲能力。由于將訪問大量的數(shù)據(jù),因此離線分析系統(tǒng)需要高吞吐能力。

根據(jù)一實施方式,為了滿足低延遲和高吞吐量要求,內(nèi)容存儲系統(tǒng)/服務器201實施為內(nèi)存中存儲系統(tǒng),在所述內(nèi)存中存儲系統(tǒng)中,基本上所有待供應的內(nèi)容在存儲系統(tǒng)201的操作期間始終被加載至系統(tǒng)存儲器中。因此,響應于來自在線搜索服務器104或離線分析服務器105的請求,可直接從保存在存儲器202中的內(nèi)容203中識別并檢索所請求的內(nèi)容以服務該請求,而不必訪問內(nèi)容存儲系統(tǒng)201的永久性存儲裝置(未示出),其中訪問永久性存儲裝置可能需要較長時間(例如,尋道時間)。這種內(nèi)存中配置既能滿足低延遲要求也能滿足高吞吐量要求。另外,由于內(nèi)容存儲系統(tǒng)201由兩個服務器104至105共享,因此數(shù)據(jù)采集系統(tǒng)或數(shù)據(jù)源150僅需要建立單個etl管線205以提供待存儲至內(nèi)容存儲系統(tǒng)201中的數(shù)據(jù),而圖1所示的常規(guī)系統(tǒng)則需要至少兩個etl管線。

etl表示數(shù)據(jù)庫使用中、尤其是數(shù)據(jù)倉儲中的過程,即:從同類的或不同種類的數(shù)據(jù)源提取數(shù)據(jù)、出于查詢和分析的目的轉(zhuǎn)換數(shù)據(jù)從而以適當?shù)母袷交蚪Y(jié)構(gòu)對其進行存儲、以及將數(shù)據(jù)加載至最終目標(數(shù)據(jù)庫,更具體為操作性數(shù)據(jù)儲存器、數(shù)據(jù)集市或數(shù)據(jù)倉庫)中。通常由于數(shù)據(jù)提取耗費時間所以三個階段全部并行地執(zhí)行,因此當數(shù)據(jù)被拉取時,另一轉(zhuǎn)換過程對已接收的數(shù)據(jù)執(zhí)行處理并準備用于加載的數(shù)據(jù),一旦存在一些準備好被加載至目標中的數(shù)據(jù),則啟動數(shù)據(jù)加載而不等待先前階段的完成。

圖3a是示出根據(jù)本發(fā)明一實施方式的內(nèi)存中存儲系統(tǒng)的一示例的框圖。系統(tǒng)300可實現(xiàn)為圖2的系統(tǒng)200的一部分。參照圖3a,在本示例中,內(nèi)存中存儲系統(tǒng)/服務器301可實現(xiàn)為圖2的存儲系統(tǒng)201的一部分。在一實施方式中,存儲系統(tǒng)301包括存儲器303和永久性存儲系統(tǒng)302,以及諸如處理器、網(wǎng)頁接口等的其他處理資源(未示出)。存儲器303可以是任何種類的易失性或非易失性隨機存取存儲器(ram)裝置。永久性存儲裝置302可以是任何種類的非易失性存儲裝置,諸如硬盤。永久性存儲裝置302存儲表示待服務于客戶端(諸如,網(wǎng)頁服務器104的搜索引擎130和/或分析服務器105的分析引擎140)的內(nèi)容(例如,圖像)的所有數(shù)據(jù)對象305。

在一實施方式中,在存儲系統(tǒng)301的操作期間基本上所有的數(shù)據(jù)對象305均作為數(shù)據(jù)對象311-313的一部分被加載至存儲器303中并且始終保存在存儲器303中。在存儲系統(tǒng)301的初始化期間(例如,啟動時間),在存儲系統(tǒng)301的整個操作期間基本上所有的數(shù)據(jù)對象305均被加載至存儲器303中并且保持在存儲器303中。在一實施方式中,當新的圖像變得可用并且其圖像存儲也被更新時,也可在初始化之后將附加的圖像加載至存儲器中。存儲服務模塊304用于利用多種訪問方法或文件系統(tǒng)協(xié)議通過網(wǎng)絡310向客戶端提供存儲服務。網(wǎng)絡310可以是諸如高速以太網(wǎng)或存儲網(wǎng)絡的高速網(wǎng)絡。此外,存儲系統(tǒng)301還將對象存儲庫315作為索引進行維護以高速搜索數(shù)據(jù)對象311至313。

在一實施方式中,響應于來自客戶端(在該示例中為服務器104至105)的搜索請求,存儲服務模塊304基于該請求在對象存儲庫315中執(zhí)行查找操作以識別一個或多個數(shù)據(jù)對象311至313的列表。在一實施方式中,對象存儲庫315是關(guān)鍵字-值(kv)存儲庫,其中對象存儲庫315包括各自將特定關(guān)鍵字映射至表示一個或多個數(shù)據(jù)對象的列表的值或者標識數(shù)據(jù)對象的對象id的若干條目。本文中的關(guān)鍵字可指代表示搜索查詢的某些特性(例如,一個或多個關(guān)鍵字)的哈希值。當接收到搜索查詢時,存儲服務模塊304利用預定的哈希函數(shù)對搜索查詢的至少一部分(例如,搜索查詢的一個或多個關(guān)鍵字)執(zhí)行哈希操作以生成哈希值。然后,使用哈希值作為在對象存儲庫315中進行查找的關(guān)鍵字以識別數(shù)據(jù)對象的列表。

然后,可從存儲器303直接檢索所識別的數(shù)據(jù)對象并將其返回至客戶端,而不必針對所識別的數(shù)據(jù)對象對永久性存儲裝置302進行存取,其中針對所識別的數(shù)據(jù)對象存取永久性存儲裝置302耗費較長時間(例如,較長的尋道時間)。通過在操作期間將基本上所有的數(shù)據(jù)對象保存在存儲器303中,既可滿足低延遲又可滿足高吞吐量。為了進一步提供滿足更高吞吐量要求的服務,存儲系統(tǒng)301可以以圖3b所示的分布式存儲系統(tǒng)來實現(xiàn)。

下面參照圖3b,分布式存儲系統(tǒng)包括包若干分布式存儲節(jié)點301a至301n,其中分布式存儲節(jié)點301a至301n中的每一個是由主節(jié)點350(也稱為主要存儲節(jié)點)管理的內(nèi)存中存儲節(jié)點(在本文中稱為工作者存儲節(jié)點或從屬存儲節(jié)點)。類似于圖3a的存儲系統(tǒng)301,存儲節(jié)點301a至301n中的每一個在其系統(tǒng)存儲器中維護存儲在其中的基本上所有數(shù)據(jù)對象(例如,分別存儲在存儲器303a至303n中的數(shù)據(jù)對象305a至305n)中。存儲節(jié)點301a至301n中的每一個還包括分別在上文中結(jié)合圖3a的存儲系統(tǒng)301而描述的存儲服務模塊或邏輯以及對象存儲庫(例如,存儲服務模塊304a至304n以及對象存儲庫315a至315n)。每個存儲節(jié)點的對象存儲庫存儲用于識別存儲在其中的數(shù)據(jù)對象的信息,其可以是如上所述的kv對象存儲庫。

主節(jié)點350可具有與存儲節(jié)點301a至301n相似的架構(gòu),但是被選為主存儲節(jié)點。在一實施方式中,主節(jié)點350包括存儲控制器360以基于存儲在節(jié)點映射函數(shù)365中的節(jié)點信息管理存儲節(jié)點301a至301n。節(jié)點映射函數(shù)365可實現(xiàn)為諸如例如哈希函數(shù)、節(jié)點映射表等的多種函數(shù)和/或數(shù)據(jù)結(jié)構(gòu)。節(jié)點映射函數(shù)365可稱為用于對存儲節(jié)點301a至301n中的每一個進行注冊的節(jié)點注冊表,其中使用節(jié)點映射函數(shù)365來確定以存儲節(jié)點301a至301n中的哪個來為從服務器104至105接收的特定請求服務。

在一實施方式中,當從客戶端(例如,服務器104至105)接收到對于搜索內(nèi)容(例如,圖像)的請求時,存儲控制器360檢查該請求并且調(diào)用節(jié)點映射函數(shù)365以基于該請求確定存儲節(jié)點301a至301n中的一個或多個。然后,存儲控制器360向所確定的存儲節(jié)點轉(zhuǎn)發(fā)該請求或者發(fā)送另一請求,以允許存儲節(jié)點基于該請求識別一個或多個數(shù)據(jù)對象、從其存儲器中檢索所識別的數(shù)據(jù)對象、以及將數(shù)據(jù)對象作為搜索結(jié)果返回至客戶端,以上所有操作均不必針對相同的數(shù)據(jù)對象對存儲節(jié)點的永久性存儲裝置進行存取。在一實施方式中,橫跨存儲節(jié)點存儲的數(shù)據(jù)對象可以是非重復的數(shù)據(jù)對象。

注意,分布式存儲節(jié)點301a至301n能夠根據(jù)工作負荷(例如,存儲空間要求)和帶寬(例如,負載平衡)容易地按比例增加或減小。管理員可通過將新的存儲節(jié)點注冊至節(jié)點映射函數(shù)365而將附加的存儲節(jié)點添加到池中。類似地,也可通過將其從節(jié)點映射函數(shù)365注銷來將存儲節(jié)點從池中移除。另外注意,主節(jié)點350還可維護其自身的表示存儲在其存儲器中的數(shù)據(jù)對象的對象存儲庫。因此,主節(jié)點350可為數(shù)據(jù)對象提供存儲服務以及管理其他存儲節(jié)點。當接收到搜索請求時,節(jié)點映射函數(shù)可將該請求映射至主節(jié)點350。

圖4是示出根據(jù)本發(fā)明一實施方式的節(jié)點映射函數(shù)的示例的框圖。參照圖4,在一實施方式中,節(jié)點映射函數(shù)365(在本示例中僅出于說明的目的將其示出為映射表)包括若干映射條目。每個映射條目將特定哈希值401映射至標識與分布式存儲系統(tǒng)相關(guān)聯(lián)的存儲節(jié)點(例如,存儲節(jié)點301a至301n)中的一個存儲節(jié)點的存儲節(jié)點id402。當接收到搜索查詢或請求403時,主節(jié)點的存儲控制器(例如,圖3b的主節(jié)點350的控制器360)利用預定的哈希函數(shù)對請求403的至少一部分(例如,一個或多個關(guān)鍵字)執(zhí)行哈希操作以生成哈希值?;谠摴V?,在節(jié)點映射表365中執(zhí)行查找操作以推導出存儲節(jié)點id404。然后,基于存儲節(jié)點id404從池中選擇一個存儲節(jié)點來為上述請求服務。注意,預定的哈希函數(shù)可實現(xiàn)為節(jié)點映射函數(shù)365的一部分,該節(jié)點映射函數(shù)365可基于搜索請求403直接生成存儲節(jié)點id404。

圖5是示出根據(jù)本發(fā)明一實施方式的對象存儲庫的示例的框圖。對象存儲庫315可實現(xiàn)為圖3a至圖3b中的上述對象存儲庫的一部分。參照圖5,在一實施方式中,僅出于說明的目的將對象存儲庫315實現(xiàn)為kv存儲庫。具體地,對象存儲庫315包括若干條目,每個條目將關(guān)鍵字映射至表示一個或多個數(shù)據(jù)對象的列表的值。在該示例中,每個映射條目將哈希值511映射至標識一個或多個數(shù)據(jù)對象的一個或多個數(shù)據(jù)對象id512。當例如從服務器104至105接收到搜索請求501時,存儲服務模塊304利用預定哈希函數(shù)502對搜索請求501的至少一部分(例如,該請求的一個或多個關(guān)鍵字)執(zhí)行哈希操作以生成哈希值。例如通過查找模塊基于哈希值在對象存儲庫315中執(zhí)行查找操作以確定數(shù)據(jù)對象id503的列表。然后,直接從對應存儲節(jié)點的存儲器識別、檢索數(shù)據(jù)對象并將數(shù)據(jù)對象返回至客戶端,而不必對永久性存儲裝置進行存取。

圖6是示出根據(jù)本發(fā)明一實施方式用于搜索內(nèi)容的過程的流程圖。過程600可由處理邏輯執(zhí)行,上述處理邏輯可包括軟件、硬件或其組合。例如,過程600可由圖3a的主節(jié)點350執(zhí)行。參照圖6,在框601處,處理邏輯從客戶端(例如,網(wǎng)頁服務器、分析服務器)接收用于搜索數(shù)據(jù)對象的搜索查詢。在框602處,響應于該搜索查詢,處理邏輯利用預定的哈希函數(shù)或哈希算法對搜索查詢的至少一部分執(zhí)行哈希操作從而生成哈希值。在框603處,處理邏輯基于哈希值確定池中的一個存儲節(jié)點(例如,工作者存儲節(jié)點或從屬存儲節(jié)點)。例如,處理邏輯可基于該哈希值在節(jié)點映射表中執(zhí)行查找操作以識別存儲節(jié)點。在框604處,處理邏輯將搜索查詢重定向至所確定的存儲節(jié)點或者向所確定的存儲節(jié)點發(fā)送另一請求,以允許存儲節(jié)點為該搜索查詢服務。然后,存儲節(jié)點通過直接從其存儲器識別、檢索數(shù)據(jù)對象并且將數(shù)據(jù)對象返回至客戶端來為客戶端提供存儲服務,而不必對該存儲節(jié)點的永久性存儲裝置進行存取。

圖7是示出根據(jù)本發(fā)明一實施方式用于搜索內(nèi)容的過程的流程圖。過程700可由處理邏輯執(zhí)行,所述處理邏輯可包括軟件、硬件或其組合。例如,過程700可由存儲節(jié)點(例如,主節(jié)點或工作者存儲節(jié)點之一)執(zhí)行。參照圖7,在框701處,處理邏輯在初始化(例如,啟動)期間將基本上所有的數(shù)據(jù)對象(例如,圖像)以及表示該數(shù)據(jù)對象或?qū)υ摂?shù)據(jù)對象進行索引的對象存儲庫從永久性存儲裝置加載至存儲節(jié)點的系統(tǒng)存儲器中。在一實施方式中,可在初始化之后將附加的圖像加載至系統(tǒng)存儲器中。一旦加載一次,則主節(jié)點具有關(guān)于新的數(shù)據(jù)的信息,使得查詢能夠被路由至這些新的內(nèi)容。在框702處,處理邏輯接收由客戶端(例如,網(wǎng)頁服務器、分析服務器)發(fā)起的搜索查詢。在框703處,響應于該搜索查詢,處理邏輯利用預定的哈希函數(shù)對搜索查詢的至少一部分執(zhí)行哈希操作從而生成哈希值。在框704處,處理邏輯基于該哈希值在對象存儲庫中進行查找以識別標識一個或多個數(shù)據(jù)對象的一個或多個數(shù)據(jù)對象id。在框705處,處理邏輯直接從系統(tǒng)存儲器檢索數(shù)據(jù)對象,而不必針對數(shù)據(jù)對象對永久性存儲裝置進行存取。在框706處,將數(shù)據(jù)對象作為搜索結(jié)果的一部分返回至客戶端。

注意,如以上示出和描述的組件中的一些或全部(例如,存儲控制器、存儲服務模塊等)可實現(xiàn)為軟件、硬件或其組合。例如,這些組件可實現(xiàn)為安裝并存儲在永久性存儲裝置中的軟件,所述軟件可通過處理器(未示出)加載至存儲器中并在存儲器中執(zhí)行以實現(xiàn)本申請通篇所描述的過程或操作??商娲?,這些組件可實現(xiàn)為編程或嵌入到諸如集成電路(例如,專用集成電路或asic)、數(shù)字信號處理器(dsp)或現(xiàn)場可編程門陣列(fpga)的專用硬件中的可執(zhí)行代碼,所述可執(zhí)行代碼可從應用通過對應的驅(qū)動器和/或操作系統(tǒng)來訪問。另外,這些組件可實現(xiàn)為處于處理器或處理器內(nèi)核中的特定硬件邏輯,作為可通過一個或多個特定指令被軟件組件訪問的指令集的一部分。

圖8是示出可以與本發(fā)明的一個實施方式一起使用的數(shù)據(jù)處理系統(tǒng)的示例的框圖。例如,系統(tǒng)1500可表示以上所述的執(zhí)行上述過程或方法中的任一個的任意數(shù)據(jù)處理系統(tǒng),例如像如上所述的主節(jié)點、工作者存儲節(jié)點。

系統(tǒng)1500可包括諸多不同的組件。這些組件可以實現(xiàn)為集合成電路(ic)、集合成電路的一部分、離散電子裝置或適于電路板的其他模塊(諸如計算機系統(tǒng)的主板或插入卡),或者實現(xiàn)為以其他方式并入計算機系統(tǒng)的底盤內(nèi)的組件。

另外注意,系統(tǒng)1500旨在示出計算機系統(tǒng)的諸多組件的高級視圖。然而,應當理解的是,某些實現(xiàn)方式中可具有附加的組件,此外,其他實現(xiàn)方式中可具有所示組件的不同布置。系統(tǒng)1500可以表示臺式計算機、膝上型計算機、平板計算機、服務器、移動電話、媒體播放器、個人數(shù)字助理(pda)、智能手表、個人通信器、游戲裝置、網(wǎng)絡路由器或集線器、無線接入點(ap)或中繼器、機頂盒或其組合。此外,雖然僅示出單個機器或系統(tǒng),但是術(shù)語“機器”或“系統(tǒng)”還應當被理解為包括單獨地或共同地執(zhí)行一個(或多個)指令集合以執(zhí)行本文所討論的任意一種或多種方法的機器或系統(tǒng)的任何集合。

在一個實施方式中,系統(tǒng)1500包括通過總線或互連件1510連接的處理器1501、存儲器1503以及裝置1505-1508。處理器1501可表示其中包括單個處理器內(nèi)核或多個處理器內(nèi)核的單處理器或多處理器。處理器1501可表示一個或多個通用處理器,諸如微處理器、中央處理單元(cpu)等。更具體地,處理器1501可以是復雜指令集合計算(cisc)微處理器、精簡指令集合計算(risc)微處理器、超長指令字(vliw)微處理器、圖形處理單元(gpu)或?qū)崿F(xiàn)其他指令集合的處理器、或?qū)崿F(xiàn)指令集合組合的處理器。處理器1501還可以是一個或多個專用處理器,諸如專用集合成電路(asic)、蜂窩或基帶處理器、現(xiàn)場可編程門陣列(fpga)、數(shù)字信號處理器(dsp)、圖形處理器、網(wǎng)絡處理器、通信處理器、加密處理器、協(xié)同處理器、嵌入式處理器或能夠處理指令的任何其他類型的邏輯。

處理器1501,可以是低功率多核處理器插座(諸如超低電壓處理器),可充當用于與系統(tǒng)各組件通信的主處理單元和中央集線器。這種處理器可以實現(xiàn)為片上系統(tǒng)(soc)。處理器1501配置成執(zhí)行用于執(zhí)行本文所討論的操作和步驟的指令。系統(tǒng)1500還可包括與可選的圖形子系統(tǒng)1504通信的圖形接口,圖形子系統(tǒng)1504可包括顯示控制器、圖形處理器和/或顯示裝置。

處理器1501可以與存儲器1503通信,存儲器1503在一個實施方式中可以通過多個存儲器裝置來實現(xiàn)以提供給定量的系統(tǒng)存儲器。存儲器1503可包括一個或多個易失性存儲(或存儲器)裝置,諸如隨機存取存儲器(ram)、動態(tài)隨機存取存儲器(dram)、同步動態(tài)隨機存取存儲器(sdram)、靜態(tài)隨機存取存儲器(sram)或其他類型的存儲裝置。存儲器1503可以存儲包括由處理器1501或任何其他裝置執(zhí)行的指令序列的信息。例如,多種操作系統(tǒng)、裝置驅(qū)動程序、固件(例如,輸入輸出基本系統(tǒng)或bios)和/或應用的可執(zhí)行代碼和/或數(shù)據(jù)可以加載到存儲器1503中并由處理器1501執(zhí)行。操作系統(tǒng)可以是任何類型的操作系統(tǒng),例如像來自公司的操作系統(tǒng)、來自蘋果公司的mac來自公司的或其他實時或嵌入式操作系統(tǒng)(諸如vxworks)。

系統(tǒng)1500還可包括io裝置,諸如裝置1505-1508:包括網(wǎng)絡接口裝置1505、可選的輸入裝置1506、其他可選的io裝置1507以及存儲裝置1508。網(wǎng)絡接口裝置1505可包括無線收發(fā)器和/或網(wǎng)絡接口卡(nic)。所述無線收發(fā)器可以是wifi收發(fā)器、紅外收發(fā)器、藍牙收發(fā)器、wimax收發(fā)器、無線蜂窩電話收發(fā)器、衛(wèi)星收發(fā)器(例如,全球定位系統(tǒng)(gps)收發(fā)器)或其他射頻(rf)收發(fā)器或其組合。nic可以是以太網(wǎng)卡。

輸入裝置1506可包括鼠標、觸摸板、觸敏屏幕(其可以與顯示裝置1504整合在一起)、指示裝置(諸如指示筆)和/或鍵盤(例如,物理鍵盤或作為觸敏屏幕的一部分顯示的虛擬鍵盤)。例如,輸入裝置1506可包括聯(lián)接到觸摸屏的觸摸屏控制器。觸摸屏和觸摸屏控制器例如可以使用多種觸摸靈敏度技術(shù)(包括但不限于電容、電阻、紅外和表面聲波技術(shù))中的任一種、以及使用用于確定與觸摸屏的一個或多個接觸點的其他接近傳感器陣列或其他元件來檢測其接觸和移動或間斷。

io裝置1507可包括音頻裝置。音頻裝置可包括揚聲器和/或麥克風,以促進支持語音的功能,諸如語音標識、語音復制、數(shù)字記錄和/或電話功能。其他io裝置1507還可包括通用串行總線(usb)端口、并行端口、串行端口、打印機、網(wǎng)絡接口、總線橋(例如,pci-pci橋)、傳感器(例如,運動傳感器,諸如加速度計、陀螺儀、磁強計、光傳感器、羅盤、接近傳感器等)或其組合。裝置1507還可包括成像處理子系統(tǒng)(例如,相機),所述成像處理子系統(tǒng)可包括用來促進相機功能(諸如記錄照片和視頻片段)的光學傳感器,諸如電荷耦合裝置(ccd)或互補金屬氧化物半導體(cmos)光學傳感器。某些傳感器可以通過傳感器集線器(未示出)聯(lián)接到互連件1510,而其他裝置諸如鍵盤或熱傳感器可以由嵌入式控制器(未示出)控制,這取決于系統(tǒng)1500的特定配置或設計。

為了永久性地存儲諸如數(shù)據(jù)、應用、一個或多個操作系統(tǒng)等的信息,還可將大容量存儲裝置(未示出)聯(lián)接到處理器1501。在各實施方式中,為了實現(xiàn)更薄且更輕的系統(tǒng)設計并且改進系統(tǒng)響應能力,這種大容量存儲裝置可以通過固態(tài)裝置(ssd)來實現(xiàn)。然而,在其他實施方式中,大容量存儲裝置可以主要使用硬盤驅(qū)動(hdd)來實現(xiàn),其中較小量的ssd存儲裝置充當ssd高速緩存以在斷電事件期間能夠非易失性地存儲上下文狀態(tài)以及其他此類信息,從而使得能夠在系統(tǒng)活動重新啟動時快速通電。另外,閃存裝置可以例如通過串行外圍接口(spi)聯(lián)接到處理器1501。這種閃存裝置可非易失性地存儲系統(tǒng)軟件,所述系統(tǒng)軟件包括基本輸入/輸出軟件(bios)以及系統(tǒng)的其他固件。

存儲裝置1508可包括計算機可訪問的存儲介質(zhì)1509(也稱為機器可讀存儲介質(zhì)或計算機可讀介質(zhì)),所述存儲介質(zhì)1509上存儲有實現(xiàn)本文所述的任何一種或多種方法或功能的一個或多個指令集合或軟件(例如,模塊、單元和/或邏輯1528)。模塊/單元/邏輯1528可以表示任意上述組件,例如像以上所述的搜索引擎、編碼器、交互記錄模塊、存儲服務模塊、存儲控制器。模塊/單元/邏輯1528還可以在其由數(shù)據(jù)處理系統(tǒng)1500、存儲器1503和處理器1501執(zhí)行期間完全地或至少部分地駐留在存儲器1503內(nèi)和/或處理器1501內(nèi),另外構(gòu)成機器可訪問的存儲介質(zhì)。模塊/單元/邏輯1528還可以通過網(wǎng)絡經(jīng)由網(wǎng)絡接口裝置1505被發(fā)送或接收。

計算機可讀存儲介質(zhì)1509也可以用來永久性地存儲以上描述的一些軟件功能。雖然計算機可讀存儲介質(zhì)1509在示例性實施方式中被示為單個介質(zhì),但是術(shù)語“計算機可讀存儲介質(zhì)”應當被認為包括存儲一個或多個指令集合的單個介質(zhì)或多個介質(zhì)(例如,集合中式或分布式數(shù)據(jù)庫和/或相關(guān)聯(lián)的高速緩存和服務器)。術(shù)語“計算機可讀存儲介質(zhì)”還應當被認為包括能夠存儲或編碼指令集合的任何介質(zhì),所述指令集合用于由機器執(zhí)行并且導致所述機器執(zhí)行本發(fā)明的任何一種或多種方法。因此,術(shù)語“計算機可讀存儲介質(zhì)”應當被認為包括但不限于固態(tài)存儲器以及光學介質(zhì)和磁性介質(zhì)或者任何其他非暫時性機器可讀介質(zhì)。

本文所述的模塊/單元/邏輯1528、組件以及其他特征可以實現(xiàn)為離散硬件組件或整合在硬件組件(諸如asics、fpga、dsp或類似裝置)的功能中。另外,模塊/單元/邏輯1528可以實現(xiàn)為硬件裝置內(nèi)的固件或功能電路。此外,模塊/單元/邏輯1528可以以硬件裝置和軟件組件的任何組合來實現(xiàn)。

注意,雖然系統(tǒng)1500被示出為具有數(shù)據(jù)處理系統(tǒng)的各組件,但是這不旨在表示任何具體的架構(gòu)或互連組件的方式;因為此類細節(jié)和本發(fā)明的實施方式?jīng)]有密切關(guān)系。還將理解,具有更少組件或可能具有更多組件的網(wǎng)絡計算機、手持計算機、移動電話、服務器和/或其他數(shù)據(jù)處理系統(tǒng)也可與本發(fā)明的實施方式一起使用。

前述詳細描述中的一些部分已經(jīng)依據(jù)在計算機存儲器內(nèi)對數(shù)據(jù)位的運算的算法和符號表示而呈現(xiàn)。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域中的技術(shù)人員所使用的方法,以最有效地將它們的工作實質(zhì)傳達給本領(lǐng)域中的其他技術(shù)人員。這里,算法通常被認為是導致所期望結(jié)果的前后一致的操作序列。這些操作是需要對物理量進行物理操控的操作。

然而,應當牢記,所有這些和類似的術(shù)語均意圖與適當?shù)奈锢砹筷P(guān)聯(lián),并且僅僅是應用于這些量的適宜標記。除非在以上討論中另外明確地說明清楚,否則應當了解,在本說明書通篇利用術(shù)語(諸如以下權(quán)利要求書中所闡述的術(shù)語)的討論是指計算機系統(tǒng)或類似電子計算裝置的動作和處理,所述計算機系統(tǒng)或電子計算裝置操控計算機系統(tǒng)的寄存器和存儲器內(nèi)的表示為物理(例如,電子)量的數(shù)據(jù),并將所述數(shù)據(jù)變換成計算機系統(tǒng)存儲器或寄存器或其他此類信息存儲器、傳輸或顯示裝置內(nèi)類似地表示為物理量的其他數(shù)據(jù)。

各圖中所示的技術(shù)可以使用存儲在一個或多個電子裝置上并在所述一個或多個電子裝置上執(zhí)行的代碼及數(shù)據(jù)來實施。此類電子裝置使用計算機可讀介質(zhì)來存儲和傳送(在內(nèi)部和/或通過網(wǎng)絡與其他電子裝置進行傳送)代碼及數(shù)據(jù),所述計算機可讀介質(zhì)諸如為非暫時性計算機可讀存儲介質(zhì)(例如,磁盤、光盤、隨機存取存儲器、只讀存儲器、閃存裝置、相變存儲器)和暫時性計算機可讀傳輸介質(zhì)(例如,電子、光學、聲學或其他形式的傳播信號—諸如載波、紅外信號、數(shù)字信號)。

前述附圖中所描繪的過程或方法可由處理邏輯來執(zhí)行,所述處理邏輯包括硬件(例如,電路、專用邏輯等)、固件、軟件(例如,在非暫時性計算機可讀介質(zhì)上實現(xiàn))或兩者的組合。雖然所述過程或方法在上文中依據(jù)一些順序操作來描述,但是應當了解,所描述操作中的一些可以按不同的次序執(zhí)行。此外,一些操作可以并行地而不是順序地執(zhí)行。

在以上說明書中,已經(jīng)參考本發(fā)明的具體示例性實施方式對本發(fā)明的實施方式進行了描述。將顯而易見的是:在不脫離如以下權(quán)利要求書中闡述的本發(fā)明的更寬泛精神和范圍的情況下,可以對這些實施方式做出各種修改。因此,應當在說明性意義而不是限制性意義上來理解說明書和附圖。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沙河市| 大名县| 离岛区| 宁波市| 淮安市| 屯昌县| 洞口县| 鸡泽县| 耒阳市| 若羌县| 东海县| 霍城县| 神木县| 武山县| 宁强县| 象山县| 自治县| 丰宁| 新丰县| 竹溪县| 兰溪市| 囊谦县| 郴州市| 佛教| 荔波县| 永州市| 盐亭县| 永安市| 井研县| 定西市| 安顺市| 双柏县| 阿克陶县| 安宁市| 马山县| 砀山县| 延边| 丁青县| 安顺市| 巢湖市| 土默特右旗|