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

用于數(shù)據(jù)集的可擴展排序的方法和設(shè)備與流程

文檔序號:11288603閱讀:260來源:國知局
用于數(shù)據(jù)集的可擴展排序的方法和設(shè)備與流程

相關(guān)申請案交叉申請

本發(fā)明要求2014年12月31日遞交的發(fā)明名稱為“用于數(shù)據(jù)集的可擴展排序的方法和設(shè)備(methodandapparatusforscalablesortingofadataset)”的美國申請案14/588,033的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以全文引入的方式并入本文本中。

本發(fā)明的實施例一般涉及對數(shù)據(jù)進行排序,由此將數(shù)據(jù)分配到范圍,對每個范圍進行排序,從而形成整個排序數(shù)據(jù)集。



背景技術(shù):

數(shù)據(jù)庫是以電子方式存儲在基于計算機的存儲系統(tǒng)上的有組織的數(shù)據(jù)集合。使用由計算機軟件組成的數(shù)據(jù)庫管理系統(tǒng)來與數(shù)據(jù)庫相互作用。數(shù)據(jù)庫管理系統(tǒng)提供允許輸入、存儲、處理和檢索信息的各種功能。通常對數(shù)據(jù)庫執(zhí)行的功能之一是排序操作。通常根據(jù)一個或多個準(zhǔn)則對數(shù)據(jù)進行排序。例如,這可用于預(yù)期購房者根據(jù)價格(例如,最低到最高);位置(例如,距特定所需位置最近到最遠(yuǎn));使用年限(例如,最新到最舊);大小(例如,最大到最小)等對標(biāo)價出售的新住宅的數(shù)據(jù)庫進行排序。

在過去,已經(jīng)使用簡單排序程序來執(zhí)行排序操作。例如,mapreduce是用于支持經(jīng)由分布式處理系統(tǒng)的大量計算節(jié)點對存儲于文件系統(tǒng)中的大數(shù)據(jù)集進行可擴展分布式處理的流行軟件程序。許多企業(yè)依賴mapreduce框架及其開源實現(xiàn)hadoop的及時分析作為對大量非結(jié)構(gòu)化信息進行高效處理和高級分析的平臺選擇。

基本上,mapreduce包含映射和規(guī)約函數(shù)。映射函數(shù)將輸入數(shù)據(jù)劃分成較小項目并且將所述項目分布到工作節(jié)點。工作節(jié)點處理所述項目并返回應(yīng)答到主節(jié)點。作為規(guī)約函數(shù)的部分,主節(jié)點收集應(yīng)答并組合它們以提供輸出。

更確切地說,映射階段被分成映射任務(wù)并且規(guī)約階段被分成規(guī)約任務(wù)。每個映射任務(wù)處理一般存在于分布式文件系統(tǒng)上的輸入數(shù)據(jù)的邏輯拆分。映射任務(wù)讀取數(shù)據(jù),對每個記錄應(yīng)用用戶定義的映射函數(shù),并且緩存所得輸出。在許多情況下,在將此數(shù)據(jù)寫入到執(zhí)行映射任務(wù)的機器的本地磁盤之前,針對不同規(guī)約任務(wù)對此數(shù)據(jù)進行排序和劃分。

規(guī)約階段由幾個階段構(gòu)成:隨機播放階段、排序階段和規(guī)約階段。排序操作通?;ㄙM最長時間并且成為數(shù)據(jù)處理的瓶頸,特別是對于大數(shù)據(jù)集。考慮到要求進行排序的數(shù)據(jù)的量不斷增加,這會產(chǎn)生問題。即使使用最新技術(shù),利用mapreduce的大型服務(wù)器集群也會花費數(shù)小時對拍字節(jié)規(guī)模的數(shù)據(jù)進行排序。實際上,致力于提高處理能力而增添更多節(jié)點會導(dǎo)致收益遞減,因為這會導(dǎo)致節(jié)點之間的過多數(shù)據(jù)傳送,反過來又成為明顯瓶頸。

因此,需要對存儲于數(shù)據(jù)庫中的大量數(shù)據(jù)進行排序、檢索和更新的更高效且更快速方式。



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

公開一種用于對分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)進行排序由此將所述數(shù)據(jù)選擇性地發(fā)送到適當(dāng)節(jié)點以進行排序的方法和設(shè)備。首先,將數(shù)據(jù)劃分成值的范圍。這些值可以是數(shù)值,或可以是具有預(yù)定順序的字符(例如,字母),或其組合。所述范圍是相連的。出于排序的目的,為分布式數(shù)據(jù)庫系統(tǒng)的節(jié)點分配不同的值范圍。接著將數(shù)據(jù)分布到具有所述數(shù)據(jù)屬于的值范圍的節(jié)點。一旦已經(jīng)將數(shù)據(jù)集分配給各個節(jié)點,個別節(jié)點就對其數(shù)據(jù)執(zhí)行排序。接著將節(jié)點執(zhí)行的排序的結(jié)果寫入到預(yù)定位置。因為每個范圍內(nèi)的值都經(jīng)過排序并且范圍是相連的,所以來自每個節(jié)點的結(jié)果可以寫入到預(yù)定存儲器位置,因此能在無須進行任何其它處理的情況下對整個數(shù)據(jù)集進行排序。

在一個實施例中,將范圍存儲為排序索引,排序索引可以用于促進后續(xù)排序操作。

附圖說明

包含在并且構(gòu)成本說明書的一部分的附圖示出了本發(fā)明的各種實施例,并且與描述內(nèi)容一起用于解釋本發(fā)明的原則:

圖1是在其上可以實踐本發(fā)明的實施例的數(shù)據(jù)庫系統(tǒng)的圖。

圖2是根據(jù)本發(fā)明的實施例的排序緩存處理的流程圖。

圖3是根據(jù)本發(fā)明的實施例的基于排序索引的并行排序及合并操作的流程圖。

圖4是根據(jù)本發(fā)明的實施例的排序索引樹中的節(jié)點的結(jié)構(gòu)圖。

具體實施方式

現(xiàn)在將詳細(xì)地給出一些實施例的參考。雖然結(jié)合可替代的實施例描述該主題,但應(yīng)該理解它們不是旨在將請求保護的主題限制于這些實施例。相反,請求保護的主題旨在覆蓋可以包括在由附加的權(quán)利要求書限定的請求保護的主題的精神和范圍內(nèi)的替代物、修改和等同物。

另外,在以下本發(fā)明的詳細(xì)描述中,闡述了許多特定細(xì)節(jié)以便提供對請求保護主題的透徹理解。然而,所屬領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有這些具體細(xì)節(jié)的情況下實踐實施例。在其它實例中沒有詳細(xì)描述眾所周知的方法、流程、部件和電路,以免對本請求保護的主題的各方面和特征造成不必要地模糊。該具體實施方式的一些部分按照程序、步驟、邏輯塊、處理、以及對計算機存儲器中的數(shù)據(jù)位的操作的其它符號表示來呈現(xiàn)。

這些描述和表示是數(shù)據(jù)處理領(lǐng)域技術(shù)人員向該領(lǐng)域其他技術(shù)人員有效傳達(dá)工作實質(zhì)內(nèi)容使用的方法。將程序、計算機執(zhí)行的步驟、邏輯塊、過程等一般設(shè)想為首尾一致的步驟或指令序列,以產(chǎn)生期望的結(jié)果。這些步驟需要物理量的物理操控。

在本發(fā)明的一個實施例中,對數(shù)據(jù)集執(zhí)行排序操作。本發(fā)明可以處理任何大小的數(shù)據(jù)集。將數(shù)據(jù)集劃分成對應(yīng)于處理待排序的數(shù)據(jù)的節(jié)點數(shù)量的多個范圍。所述范圍是相連的、不重疊的,并且它們覆蓋數(shù)據(jù)中存儲的值的整個集合。這些值可以是數(shù)值,或可以是具有預(yù)定順序的字符(例如,字母),或其組合。出于排序的目的,為分布式數(shù)據(jù)庫系統(tǒng)的節(jié)點分配值的不同范圍。一般來說,選擇設(shè)置兩個范圍之間的界限的值。接著將數(shù)據(jù)分布到具有所述數(shù)據(jù)正好屬于的值范圍的特定節(jié)點。一旦已經(jīng)將數(shù)據(jù)集分配給各個節(jié)點,個別節(jié)點就對其自身的數(shù)據(jù)執(zhí)行排序。接著將節(jié)點執(zhí)行的排序的結(jié)果寫入到預(yù)定位置。這自動地形成待排序的整個數(shù)據(jù)集而無須執(zhí)行任何額外處理步驟。在一個實施例中,將范圍存儲為排序索引,排序索引可以用于促進后續(xù)排序操作。不必針對每一個排序操作再次計算它們,由此節(jié)省可貴的處理能力和時間。這些排序索引在數(shù)據(jù)集發(fā)生改變(例如,增添或刪除數(shù)據(jù))時更新。

現(xiàn)在描述實例以幫助理解本發(fā)明的一個實施例。在此實例中,出于清楚且簡單說明本發(fā)明起見給出小數(shù)據(jù)集。在實際應(yīng)用中,數(shù)據(jù)集相當(dāng)大且廣泛。假設(shè)任務(wù)是對以下數(shù)值的數(shù)據(jù)集從最小到最大進行排序:1、3、4、2、6和5。首先,選擇分隔兩個范圍的值。在此實例中,選擇值“3”。任何值3或更小的值屬于第一范圍,而大于3的任何值屬于第二范圍。換句話說,第一范圍是1到3,且第二范圍是4到6。一旦確立范圍,排序處理就將個別數(shù)據(jù)值分配到其適當(dāng)范圍中。在此實例中,將值1分配到第一范圍,因為其屬于1到3之間。將下一個值3也分配到第一范圍,因為其屬于1到3之間。第三個值是4。將其分配到第二范圍,因為其屬于4到6之間。將第四個值2分配到第一范圍。最后兩個值6和5屬于第二范圍。因此,第一分區(qū)含有值1、3和2。第二分區(qū)含有值4、6和5。對這些分區(qū)中的每個分區(qū)執(zhí)行排序操作??梢圆⑿械?即,通過兩個不同節(jié)點同時地)對這些較小分區(qū)執(zhí)行排序操作。更確切地說,一個節(jié)點對分配到第一分區(qū)的值進行排序。另一個節(jié)點對分配到第二分區(qū)的值進行排序。在此實例中,一個節(jié)點對值1、3和2進行排序;另一個節(jié)點對值4、6和5進行排序。在完成排序操作后,第一分區(qū)含有值1、2和3,且第二分區(qū)含有值4、5和6。接著將這兩個分區(qū)直接寫入到相連存儲器位置而無須執(zhí)行任何后續(xù)操作。換句話說,將第一分區(qū)寫入到存儲器位置,且將第二分區(qū)寫入到后續(xù)相鄰的存儲器位置。在實例中,通過將第一分區(qū)(1、2和3)寫入到存儲器,緊接著將第二分區(qū)(4、5和6)寫入到相鄰的存儲器位置,對整個數(shù)據(jù)集進行排序,這形成整個排序數(shù)據(jù)集(1、2、3、4、5和6)。

在一個實施例中,首先將數(shù)據(jù)集劃分成較小數(shù)據(jù)核或集群,且接著將其發(fā)送到節(jié)點來執(zhí)行排序。一旦處理了所有較小數(shù)據(jù)核并將其發(fā)送到對應(yīng)的節(jié)點,就將節(jié)點或列表的整個集合合并在一起。在此實例中,合并排序利用了將已經(jīng)排序的列表合并成新排序列表的易用性。為了執(zhí)行此排序/合并程序,針對節(jié)點或列表中的每個節(jié)點或列表執(zhí)行比較的第一到第二菊花鏈函數(shù)。例如,通過比較每兩個元素(即,1與2,接著3與4…)并且在第一列表項應(yīng)出現(xiàn)在第二列表項之后的情況下調(diào)換每個項來對第一和第二列表項進行比較。指示處理器將兩個所得列表中的每個合并為四個列表。接著處理器合并四個那些列表,并且重復(fù)此處理直到最后兩個列表合并到最終排序列表中。此處理在大量列表的情況下能很好地擴展,因為最壞運行時間是o(nlogn)。此外,處理是靈活的且可應(yīng)用于列表以及陣列。這一優(yōu)點歸因于相較隨機訪問所述處理需要順序訪問的特征。

參考圖1,示出在其上可以實施本發(fā)明的實施例的分布式數(shù)據(jù)庫系統(tǒng)。計算機網(wǎng)絡(luò)101用于載送各個節(jié)點102到104之間的電子通信。計算機網(wǎng)絡(luò)101可以是局域網(wǎng)、無線網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一部分等。節(jié)點102到104可以是計算機系統(tǒng),例如服務(wù)器、工作站、大型機,或基于云的計算機系統(tǒng)的部分或一些類型的虛擬化計算機系統(tǒng)。節(jié)點102到104耦合到專用、共享或虛擬化存儲裝置105到107。分布式數(shù)據(jù)庫管理器站108用于訪問、控制以及以另外的方式運行和維持分布式數(shù)據(jù)庫系統(tǒng)。在一個實施例中,在ddbm108上執(zhí)行排序處理。ddbm108分配用于節(jié)點102到104中的每個節(jié)點的值的范圍。一個方面是分配范圍以在節(jié)點之間相等地分布工作量。另一個方面是分配范圍以在節(jié)點之間實現(xiàn)均衡工作量。接著根據(jù)這些范圍將數(shù)據(jù)集分布到各個節(jié)點102到104。節(jié)點102到104對分布到其上的數(shù)據(jù)集的部分執(zhí)行排序程序。接著將來自節(jié)點102到104中的每個節(jié)點的結(jié)果寫入到預(yù)定存儲器位置。由于所述范圍有意設(shè)計為順序的,因此來自節(jié)點102到104中的每個節(jié)點的結(jié)果也將是循序排序的,無須執(zhí)行任何額外處理。

參考圖2,示出根據(jù)一個實施例的處理流程。在此實施例中,基于對數(shù)據(jù)集進行排序所需的值來劃分?jǐn)?shù)據(jù)集。將排序數(shù)據(jù)發(fā)送到與排序數(shù)據(jù)相關(guān)聯(lián)的每個節(jié)點數(shù)據(jù)。在初始階段210,有必要找到排序索引。一旦確定排序索引,就在階段220將數(shù)據(jù)分布到工作節(jié)點。在階段230中,每個節(jié)點對供選擇用數(shù)據(jù)進行排序和寫入并將排序結(jié)果存儲到索引緩存中。在階段240中基于緩存的存儲索引或更新索引執(zhí)行排序。因此,每個節(jié)點具有針對每個值的范圍(例如,數(shù)據(jù)庫中的一列)。當(dāng)完成排序時,可以將排序數(shù)據(jù)寫入到文件系統(tǒng)中的預(yù)測位置中。先前提及的范圍是排序索引,這些索引以樹數(shù)據(jù)結(jié)構(gòu)緩存用于進一步使用以節(jié)省時間。在其它實施例中,可以陣列結(jié)構(gòu)或堆結(jié)構(gòu)存儲索引。此外,索引可以在數(shù)據(jù)集發(fā)生改變時(例如,當(dāng)增添或刪除數(shù)據(jù)時)改變。通過使用索引,將數(shù)據(jù)分布到節(jié)點將變得非常高效、快速且經(jīng)濟。應(yīng)注意,可以僅通過主節(jié)點或通過多個節(jié)點進行完成索引的階段210。假設(shè)存在n個需要排序的項和m個處理節(jié)點。

此外,在一個實施例中,如果在初始階段210不存在索引緩存信息,則必需找到第(n/m)個、第(2n/m)個、…、第((m-1)n/m)個值??梢酝ㄟ^一個節(jié)點或多個節(jié)點來執(zhí)行此過程,并且復(fù)雜度為o(mn)。隨后,可以實施以二叉查找樹結(jié)構(gòu)存儲這些索引的階段。如果存在復(fù)制值,可以將這些副本增添到樹節(jié)點。增添復(fù)制值有兩種方式:第一種方式是基于排序索引分布所述值且接著這些節(jié)點可以并行地進行排序。

第二種方式是將基于數(shù)據(jù)的內(nèi)容劃分成單獨的部分,并且每個節(jié)點處理一個部分。另外,節(jié)點基于排序索引交換值。由此,并行地處理排序及合并。

現(xiàn)參考圖3,示出排序及合并操作??梢曰谂判蛩饕⑿械靥幚砼判蚣昂喜?。例如,節(jié)點0(310)與節(jié)點1(320)交換數(shù)據(jù),且節(jié)點1與節(jié)點2(330)交換數(shù)據(jù),使得每個節(jié)點了解數(shù)據(jù)所屬于的最終節(jié)點。在一個實施例中,最初基于排序索引分布值。隨即,節(jié)點可以并行地進行排序。在另一實施例中,將數(shù)據(jù)劃分成數(shù)據(jù)片,并且每個節(jié)點處理其數(shù)據(jù)片。節(jié)點后續(xù)基于排序索引交換值,使得并行地處理排序及合并。在這兩個實施例中,每個節(jié)點了解數(shù)據(jù)所屬于的最終節(jié)點。

參考圖4,示出排序索引樹中的節(jié)點的結(jié)構(gòu)。每個節(jié)點具有以下信息:當(dāng)前值401、當(dāng)前值的數(shù)量402、小于當(dāng)前值的數(shù)據(jù)的數(shù)量403、大于當(dāng)前值的數(shù)據(jù)的數(shù)量404。另外,除最底部(葉子)節(jié)點之外,每個節(jié)點具有左側(cè)子節(jié)點指針405和右側(cè)子節(jié)點指針406。子節(jié)點是在節(jié)點樹數(shù)據(jù)結(jié)構(gòu)中從其依賴節(jié)點進一步向下的節(jié)點。當(dāng)通過增添和/或刪除值更新數(shù)據(jù)時,通過找到下一個更大或更小值來更新索引。此操作的復(fù)雜度是o(n)。為了減少此類更新的頻率,可以使用“窗口”來延遲索引的更新,因此當(dāng)執(zhí)行排序的步驟或日期設(shè)置更新的數(shù)量超出窗口大小時發(fā)生更新。

現(xiàn)在描述實例來說明節(jié)點的功能。在此實例中,給出根節(jié)點的以下數(shù)據(jù)為:

未排序數(shù)據(jù):1、5、2、5、7、8、4

當(dāng)前值:5

此值的數(shù)量:2

更小值的數(shù)量:3(1、2和4)

更大值的數(shù)量:2(7和8)

因此,對于此特定節(jié)點的索引存儲以下信息:5、2、3和2。

整體上,所提出的方法是基于以下觀察結(jié)果:對于大數(shù)據(jù),精確排序之前的粗略排序變得越來越重要,并且粗略排序信息可以重復(fù)使用,因為其使用較少存儲器并且可以容易地存儲。這允許以下兩者:減少節(jié)點之間的數(shù)據(jù)移動,因為網(wǎng)絡(luò)帶寬仍是基于集群的應(yīng)用中的主要瓶頸之一,并且其還減少磁盤和計算單元等慢速存儲裝置之間的數(shù)據(jù)移動。

此方法的優(yōu)勢是其加快排序速度,特別是對于重復(fù)排序。此外,緩存大小相對極小,使得存儲成本非常小。因為排序操作例如在數(shù)據(jù)庫操作中廣泛使用,所以排序結(jié)果可以用作最終結(jié)果或其它操作的中間結(jié)果,例如連接兩個表。一些其它應(yīng)用包含但不限于以下。找到前n項函數(shù)/對其排序因去除幾個步驟而經(jīng)歷性能改進。通過利用本發(fā)明的實施例,不需要處理整個數(shù)據(jù)集。具有硬件排序引擎的應(yīng)用還因為本發(fā)明使頻繁的數(shù)據(jù)傳送最小化而經(jīng)歷性能改進。模糊邏輯/計算因范圍的重要性而將是實施本發(fā)明的理想選擇。本發(fā)明改進性能的又一應(yīng)用是關(guān)于“連接”表與數(shù)據(jù)庫中的未排序列。相對于兩個關(guān)系r和s的簡單的嵌套循環(huán)連接和經(jīng)典散列連接算法通常不適合于大表,因為連接關(guān)系無法適應(yīng)存儲器。因此,通常使用分區(qū)散列連接算法,由此連接執(zhí)行被分成單獨部分。使用本發(fā)明排序索引,可以容易地分隔r和s,且接著在本地針對每個部分執(zhí)行散列連接。另外,本發(fā)明的實施例可以應(yīng)用于基于硬件的加速器例如,現(xiàn)代fpga可以在幾個時鐘周期對128數(shù)據(jù)進行排序,但是這會花費非常長的時間來合并大數(shù)據(jù),從而大大降低高性能硬件的優(yōu)勢。

關(guān)于本發(fā)明的實施例的另一個優(yōu)勢或應(yīng)用是不需要基于一個列對整個數(shù)據(jù)庫進行排序。僅需要知道用以加速處理速度的范圍。例如,在tpc-hq9中,需要散列連接兩個表“partsupp”和“l(fā)ineitem”,但是它們通常分別通過partkey和orderkey來排序。當(dāng)數(shù)據(jù)庫軟件無法在緩存/存儲器中處理或存儲一個表時,需要逐數(shù)據(jù)片地散列連接。復(fù)雜度是o(mn),其中m是partsupp中的數(shù)據(jù)片的數(shù)量并且n是lineitem中的數(shù)據(jù)片的數(shù)量。如果在lineitem中存在針對partkey的排序緩存信息,那么排序可以是基于partkey的lineitem。根據(jù)本發(fā)明的實施例,通過利用散列連接與表partsupp,復(fù)雜度變?yōu)閛(m+n)。

綜上所述,因為許多操作需要排序的列,所以排序在數(shù)據(jù)庫操作中極為重要。本發(fā)明的實施例提供更容易且更高效的處理來壓縮數(shù)據(jù)并改進緩存命中率以及提高更快的連接操作。例如,c-store數(shù)據(jù)庫是面向列的dbms,并且可以集中于排序??梢园慈魏螛?biāo)準(zhǔn)對排序數(shù)據(jù)進行排序。然而,這通常需要多個復(fù)本。此排序是一些數(shù)據(jù)庫應(yīng)用中的主要任務(wù)。本發(fā)明的排序緩存樹(sortcachetree,sct)可以加速這些應(yīng)用。

本發(fā)明的另一個優(yōu)勢是關(guān)于數(shù)據(jù)合并??梢匀菀椎貙讉€排序緩存樹(sct)合并在一起。例如,可以在一個節(jié)點內(nèi)合并兩個節(jié)點,其中每個節(jié)點具有4分區(qū)sct。還可以在單個節(jié)點中使用sct。對于單個節(jié)點,由于磁盤i/o操作更少,因此sct方法比現(xiàn)有方法更快。例如,假定節(jié)點具有1g存儲器和磁盤上的8g未排序數(shù)據(jù),典型現(xiàn)有技術(shù)排序合并方法對比本發(fā)明的比較如下:

排序-合并:

1.排序:(讀盤1g+排序1g+寫盤1g)×8

2.合并成2g:(讀盤2g+合并2g+寫盤2g)×4

3.合并成4g:(讀盤4g+合并4g+寫盤4g)×2

4.合并成8g:讀盤8g+合并8g+寫盤8g

總計:讀盤32g+排序8g+合并24g+寫盤32g

在本發(fā)明的實施例中:

1.分區(qū):讀盤8g+寫盤8g

2.排序:(讀盤1g+排序1g+寫盤1g)×8

總計:讀盤16g+排序8g+寫盤16g

相比而言,現(xiàn)有技術(shù)需要96g,而本發(fā)明的實施例僅需要40g。效率上存在超過50%改進。

在一些實施例中,排序索引的數(shù)據(jù)結(jié)構(gòu)可以是二叉樹或與三態(tài)內(nèi)容尋址存儲器(ternarycontentaddressablememory,tcam)類似的特定硬件,由此輸入鍵并行地與許多范圍形成對比。

根據(jù)本發(fā)明的實施例如此處所述。雖然本發(fā)明已經(jīng)在特定實施例中進行了描述,但是應(yīng)理解,本發(fā)明不應(yīng)該被解釋為被這些實施例限制,而是根據(jù)所附權(quán)利要求書進行解釋。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
华容县| 忻城县| 曲沃县| 惠来县| 南雄市| 广灵县| 望都县| 慈利县| 易门县| SHOW| 轮台县| 荔波县| 浦县| 安宁市| 行唐县| 平遥县| 通道| 静乐县| 石阡县| 潍坊市| 丰县| 工布江达县| 衡阳市| 乌兰察布市| 正镶白旗| 天等县| 麦盖提县| 乐平市| 台江县| 油尖旺区| 奉贤区| 新沂市| 汪清县| 浙江省| 英超| 岚皋县| 顺昌县| 麻栗坡县| 砀山县| 华宁县| 阿拉尔市|