国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法及系統(tǒng)與流程

      文檔序號:11524253閱讀:202來源:國知局
      用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法及系統(tǒng)與流程

      本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法及系統(tǒng)。



      背景技術(shù):

      分布式對象存儲是目前解決海量數(shù)據(jù)存儲問題的主要方案,為了滿足數(shù)據(jù)管理的需求,分布式對象存儲系統(tǒng)一般都會提供遍歷功能給用戶,通過該遍歷功能可以獲取系統(tǒng)中所存儲的文件或?qū)ο蟮脑獢?shù)據(jù)。一個典型的實現(xiàn)方法就是:預(yù)先建立大量元數(shù)據(jù)子表,這些元數(shù)據(jù)子表被存儲在系統(tǒng)中的不同節(jié)點(如存儲設(shè)備)上,以免單個節(jié)點上存儲的數(shù)據(jù)量超過系統(tǒng)中單個存儲設(shè)備的上限;根據(jù)特定的規(guī)則將元數(shù)據(jù)分散到不同的元數(shù)據(jù)子表中去,其中,元數(shù)據(jù)子表內(nèi)部的數(shù)據(jù)是有序的,元數(shù)據(jù)子表之間是無序的。在該方案中,完全被屏蔽了客戶端對元數(shù)據(jù)子表的感知,當(dāng)進行列表list操作時,系統(tǒng)將從所有元數(shù)據(jù)子表中拉取數(shù)據(jù),并進行歸并排序,將拉取結(jié)果發(fā)送給客戶端。在上述方案中,因為數(shù)據(jù)量龐大,在拉取數(shù)據(jù)之后,對其進行排序,而不是在單個查詢內(nèi)就返回給客戶端全量的數(shù)據(jù),在該有序的條件下,客戶端可以根據(jù)上次查詢的最后一個數(shù)據(jù)來確定一個標記,然后讓系統(tǒng)從那個標記之后繼續(xù)返回數(shù)據(jù)。

      但是,上述方法在全量遍歷的時候,為了存儲海量數(shù)據(jù)的元數(shù)據(jù),會需要大量的元數(shù)據(jù)子表,對大量的元數(shù)據(jù)子表進行查詢并歸并排序相當(dāng)耗時,而且可能需要重復(fù)大量的無用排序。比如,系統(tǒng)中有n個元數(shù)據(jù)子表,用戶客戶端一次只能接收y條記錄。當(dāng)客戶端需要遍歷所有記錄時,過程就會是這樣:客戶端先向系統(tǒng)發(fā)出一次list操作(限定返回y條記錄),系統(tǒng)是向n個元數(shù)據(jù)子表中的每一個元數(shù)據(jù)子表查詢前y條記錄,對這n*y條記錄排序,返回y條記錄,然后把剩下的(n-1)*y條記錄丟棄,即浪費比例高達(n-1)/n。客戶端會用這樣的方式遍歷所有記錄。對元數(shù)據(jù)進行遍歷,是日常運維過程中常用的操作(如主備文件比對、文件清理等),所以這樣的低效操作方案對集群的規(guī)模擴展產(chǎn)生很大限制。在進行遍歷操作時,可選的,使用排序的方案,通過該方案可以保證返回的數(shù)據(jù)列表的全局順序,但是,該方案極大地消耗了內(nèi)部帶寬、內(nèi)存或cpu,獲取數(shù)據(jù)的效率低。

      針對上述在獲取大量數(shù)據(jù)時,資源利用率低的問題,目前尚未提出有效的解決方案。



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

      本發(fā)明實施例提供了一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法及系統(tǒng),以至少解決在獲取大量數(shù)據(jù)時,資源利用率低的技術(shù)問題。

      根據(jù)本發(fā)明實施例的一個方面,提供了一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法,包括:按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求,其中,所述第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);接收所述服務(wù)器返回的所述第一元數(shù)據(jù)子表的數(shù)據(jù);依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收所述服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。

      進一步地,所述預(yù)設(shè)規(guī)則包括:當(dāng)向服務(wù)器發(fā)送的第一請求中不包含元數(shù)據(jù)子表編號時,則表示所述第一請求需要對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序;當(dāng)向服務(wù)器發(fā)送的第一請求中包含元數(shù)據(jù)子表編號時,則表示所述第一請求無需對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序。

      進一步地,依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收所述服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記包括:向所述服務(wù)器發(fā)送第p個第二請求,其中,所述p為大于1的自然數(shù);接收所述服務(wù)器基于所述第p個第二請求返回的元數(shù)據(jù)子表的數(shù)據(jù);在對所述元數(shù)據(jù)子表的數(shù)據(jù)執(zhí)行預(yù)定操作之后,向所述服務(wù)器發(fā)送第(p+1)個第二請求,直至獲取到全部元數(shù)據(jù)子表中的數(shù)據(jù)。

      進一步地,所述向所述服務(wù)器發(fā)送第p個第二請求,其中,所述p為大于1的自然數(shù);接收所述服務(wù)器基于所述第p個第二請求返回的元數(shù)據(jù)子表的數(shù)據(jù)還包括:向所述服務(wù)器發(fā)送用于獲取第p個元數(shù)據(jù)子表中數(shù)據(jù)的第二請求,在所述服務(wù)器返回數(shù)據(jù)中不帶該子表的結(jié)束標記時,以上一請求獲得數(shù)據(jù)中最后一個數(shù)據(jù)作為起始標記,繼續(xù)向服務(wù)端請求該元數(shù)據(jù)子表的數(shù)據(jù),直到獲取的數(shù)據(jù)中返回該元數(shù)據(jù)子表的結(jié)束標記。進一步地,所述數(shù)據(jù)獲取方法運用于全量數(shù)據(jù)的獲取。

      進一步地,在所述按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求之前,還包括:向服務(wù)器請求該元數(shù)據(jù)的子表數(shù)量。

      根據(jù)本發(fā)明實施例的另一方面,還提供了一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法,包括:接收客戶端按照預(yù)設(shè)規(guī)則發(fā)送的第一請求,其中,所述第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);向所述客戶端返回所述第一元數(shù)據(jù)子表的數(shù)據(jù);接收所述客戶端依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求;在向所述客戶端返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回結(jié)束標記。

      進一步地,接收所述客戶端依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求之后,包括:獲取所述第二請求中攜帶的起始標記;在所述第二請求所指示的元數(shù)據(jù)子表中,從所述起始標記對應(yīng)的下一個數(shù)據(jù)開始獲取所述元數(shù)據(jù)子表中的數(shù)據(jù)。

      根據(jù)本發(fā)明實施例的另一方面,提供了一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取系統(tǒng),該系統(tǒng)包括:客戶端;服務(wù)器;其中,所述客戶端按照預(yù)設(shè)規(guī)則向所述服務(wù)器發(fā)送第一請求,其中,所述第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);在所述服務(wù)器接收到所述第一請求的情況下,向所述客戶端返回所述第一元數(shù)據(jù)子表的數(shù)據(jù);所述客戶端接收所述服務(wù)器返回的所述第一元數(shù)據(jù)子表的數(shù)據(jù),依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收所述服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。

      進一步地,在向所述客戶端返回所述第一元數(shù)據(jù)子表的數(shù)據(jù)之后,所述服務(wù)器還用于:接收所述第二請求;所述服務(wù)器在向所述客戶端返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回所述結(jié)束標記。

      在本發(fā)明實施例中,可以按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù),并接收服務(wù)器返回的第一元數(shù)據(jù)子表的數(shù)據(jù),然后,客戶端依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。本發(fā)明實施例,根據(jù)預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送獲取元數(shù)據(jù)子表的數(shù)據(jù)請求,避免在服務(wù)端跨子表排序,從而獲取多個元數(shù)據(jù)子表的數(shù)據(jù),提高數(shù)據(jù)獲取效率和資源利用率,解決在獲取大量數(shù)據(jù)時,資源利用率低的技術(shù)問題。

      附圖說明

      此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

      圖1是根據(jù)本發(fā)明實施例的一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法的流程圖一;

      圖2是根據(jù)本發(fā)明實施例的可選的用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法的流程圖二;

      圖3是根據(jù)本發(fā)明實施例的一種用于分布式對象存儲系統(tǒng)的客戶端的數(shù)據(jù)獲取方法的流程圖;

      圖4是根據(jù)本發(fā)明實施例的一種可選的用于分布式對象存儲系統(tǒng)的服務(wù)端的數(shù)據(jù)獲取方法的流程圖;

      圖5是根據(jù)本發(fā)明實施例的一種可選的用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取系統(tǒng)的示意圖。

      具體實施方式

      為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。

      需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

      對本發(fā)明中的部分術(shù)語做出解釋:

      分布式存儲系統(tǒng):是將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備上。采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負荷,利用位置服務(wù)器定位存儲信息。

      對象:包含文件數(shù)據(jù)以及相關(guān)的屬性信息,可以進行自我管理。

      根據(jù)本發(fā)明實施例,提供了一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

      圖1是根據(jù)本發(fā)明實施例的一種用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法的流程圖一,如圖1所示,該方法包括如下步驟:

      步驟s102,按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);

      步驟s104,接收服務(wù)器返回的第一元數(shù)據(jù)子表的數(shù)據(jù);

      步驟s106,依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。

      通過上述實施例,客戶端可以按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù),并接收服務(wù)器返回的第一元數(shù)據(jù)子表的數(shù)據(jù),然后,客戶端依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。根據(jù)本發(fā)明實施例,可以根據(jù)按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送獲取元數(shù)據(jù)子表的數(shù)據(jù),依序獲取服務(wù)器中多個元數(shù)據(jù)子表的數(shù)據(jù),客戶端可以有效獲取多個元數(shù)據(jù)子表的數(shù)據(jù),資源利用率提高,解決在獲取大量數(shù)據(jù)時,資源利用率低的技術(shù)問題。

      上述實施例的客戶端可以包括智能終端,該智能終端可以包括智能手機、pc等,客戶端可以是用戶使用的裝置。

      上述實施例的服務(wù)器可以是存儲數(shù)據(jù)(如,文件、元數(shù)據(jù))的地方,在服務(wù)器中,可以將大量的數(shù)據(jù)存儲起來,并將大量的數(shù)據(jù)存儲在服務(wù)器的各個存儲設(shè)備中,服務(wù)器可以包括多個存儲設(shè)備,每個存儲設(shè)備可以對應(yīng)一個存儲節(jié)點,每個存儲節(jié)點上可以包括一個或多個元數(shù)據(jù)子表。

      可選的,在元數(shù)據(jù)子表中可以存儲有多個數(shù)據(jù)項,每個元數(shù)據(jù)子表中的數(shù)據(jù)項可以排列好順序,而各個元數(shù)據(jù)子表可以沒有排序。在對元數(shù)據(jù)子表排序時,可以將元數(shù)據(jù)子表進行標記,其中,該標記可以包括編號、字母、符號等。優(yōu)選的,標記可以為編號。其中,元數(shù)據(jù)子表的編號取自有序集合,如自然數(shù)。

      可選的,在按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求之前,還包括:向服務(wù)端請求該元數(shù)據(jù)的子表數(shù)量。在本發(fā)明實施方式中,可以設(shè)該元數(shù)據(jù)的子表數(shù)量為n個。n可以為大于等于1的自然數(shù)。其中,服務(wù)器中的各個存儲節(jié)點上可以包括多個元數(shù)據(jù)子表??蛇x的,在步驟s102提供的技術(shù)方案中,按照預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù)。

      可選的,對于第一請求,可以為請求獲取上述的n個元數(shù)據(jù)子表中的第一元數(shù)據(jù)子表的數(shù)據(jù),該數(shù)據(jù)可以是上述實施例的數(shù)據(jù)項,在需要處理服務(wù)器中的數(shù)據(jù)時,可以先發(fā)送請求信息,以獲取可以處理的數(shù)據(jù),每個服務(wù)器中各個存儲設(shè)備可以存儲的數(shù)據(jù)是有限的,客戶端處理的數(shù)據(jù)也是有限的,在客戶端發(fā)送第一請求時,可以在第一請求中攜帶可以處理的數(shù)據(jù)的數(shù)量的參數(shù)。

      其中,預(yù)設(shè)規(guī)則可以包括:當(dāng)向服務(wù)器發(fā)送的第一請求中不包含元數(shù)據(jù)子表編號時,則表示第一請求需要對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序;當(dāng)向服務(wù)器發(fā)送的第一請求中包含元數(shù)據(jù)子表編號時,則表示請求無需對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序。即在發(fā)送第一請求后,判斷該第一請求中是否包含有元數(shù)據(jù)子表的編號信息,若有,就不需要對元數(shù)據(jù)子表再進行排序,可以根據(jù)編號信息,在第一請求中可以攜帶請求獲取第一元數(shù)據(jù)子表的數(shù)據(jù),若沒有,則需要對各個元數(shù)據(jù)子表進行排序,以方便客戶端獲取各個元數(shù)據(jù)子表中的數(shù)據(jù)。

      在步驟s104提供的技術(shù)方案中,接收服務(wù)器返回的第一元數(shù)據(jù)子表的數(shù)據(jù)。服務(wù)器將已經(jīng)排序的元數(shù)據(jù)子表中的第一個元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送給客戶端。服務(wù)器可以元數(shù)據(jù)子表的編號信息發(fā)送到客戶端中,客戶端可以接收該元數(shù)據(jù)子表的編號信息。

      在步驟s106提供的技術(shù)方案中,依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記。

      可選的,上述實施方式可以是在多個元數(shù)據(jù)子表中,當(dāng)接收到第二請求后,服務(wù)器可以將各個元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送到客戶端中。可選的,各個元數(shù)據(jù)子表的數(shù)據(jù)可以預(yù)先被標記,即可以對元數(shù)據(jù)子表中的數(shù)據(jù)進行排序;在接收到第二請求后,可以依序?qū)⒃獢?shù)據(jù)子表中的數(shù)據(jù)發(fā)送到客戶端中。

      可選的,在發(fā)送元數(shù)據(jù)子表中的數(shù)據(jù)時,每次發(fā)送預(yù)定數(shù)量的數(shù)據(jù)。其中,預(yù)定數(shù)量可以是預(yù)先確定的數(shù)量,該預(yù)定數(shù)量可以是根據(jù)客戶端的處理能力確定的,即客戶端一次可以處理數(shù)據(jù)的數(shù)量,在接收數(shù)據(jù)時,不可以超出該數(shù)量,服務(wù)器在發(fā)送數(shù)據(jù)時,每次發(fā)送的數(shù)據(jù)可以在該數(shù)量內(nèi),客戶端在發(fā)送請求時,可以將預(yù)定數(shù)量的參數(shù)告知服務(wù)器;每次接收到數(shù)據(jù)發(fā)送請求,都可以將預(yù)定數(shù)量的數(shù)據(jù)發(fā)送到客戶端中,在下一次接收到請求后,可以再次獲取預(yù)定數(shù)量的數(shù)據(jù),可選的,該次獲取的數(shù)據(jù)數(shù)量和上次獲取到數(shù)據(jù)的數(shù)量可以是相同的。

      另一種可選的實施方式,依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器返回的數(shù)據(jù),直到服務(wù)器返回結(jié)束標記包括:向服務(wù)器發(fā)送第p個第二請求,其中,p為大于1的自然數(shù);接收服務(wù)器基于第p個第二請求返回的元數(shù)據(jù)子表的數(shù)據(jù);在對元數(shù)據(jù)子表的數(shù)據(jù)執(zhí)行預(yù)定操作之后,向服務(wù)器發(fā)送第(p+1)個第二請求,直至獲取到全部元數(shù)據(jù)子表中的數(shù)據(jù)。

      通過上述實施方式,可以不斷地獲取到元數(shù)據(jù)子表中的數(shù)據(jù),在對獲取到的數(shù)據(jù)進行處理后,可以獲取下一個元數(shù)據(jù)子表的數(shù)據(jù)。其中,p是不限定的數(shù)值,在發(fā)送第二請求時,可以從第一請求之后的元數(shù)據(jù)子表開始,直到獲取到全部元數(shù)據(jù)子表的數(shù)據(jù)結(jié)束。

      對于上述實施例,預(yù)定操作可以包括整理數(shù)據(jù),例如,將文件或者數(shù)據(jù)剪切為固定片段的數(shù)據(jù)。對于第一數(shù)據(jù),可以為上述實施方式的預(yù)定數(shù)量的數(shù)據(jù),該數(shù)據(jù)可以為從發(fā)送到的第二請求的元數(shù)據(jù)子表中獲取到的。

      另一種可選的實施方式,向服務(wù)器發(fā)送第p個第二請求,其中,p為大于1的自然數(shù);接收服務(wù)器基于第p個第二請求返回的元數(shù)據(jù)子表的數(shù)據(jù)還包括:向服務(wù)器發(fā)送用于獲取第p個元數(shù)據(jù)子表中數(shù)據(jù)的第二請求,在服務(wù)器返回數(shù)據(jù)中不帶該子表的結(jié)束標記時,以上一請求獲得數(shù)據(jù)中最后一個數(shù)據(jù)作為起始標記,繼續(xù)向服務(wù)端請求該元數(shù)據(jù)子表的數(shù)據(jù),直到獲取的數(shù)據(jù)中返回該子表的結(jié)束標記。

      可選的,上述實施方式可以是對多個(如n個)元數(shù)據(jù)子表的數(shù)據(jù)進行處理,可以在接收到服務(wù)器發(fā)送來的元數(shù)據(jù)子表的編號信息后,根據(jù)該編號信息依序獲取其他元數(shù)據(jù)子表的數(shù)據(jù),在上述實施方式中發(fā)送第p個第二請求,檢測服務(wù)器返回的元數(shù)據(jù)子表的全部數(shù)據(jù),在返回的數(shù)據(jù)中無結(jié)束標記時(即該元數(shù)據(jù)子表的數(shù)據(jù)還沒有全部獲取),可以選取返回的數(shù)據(jù)中最后一個數(shù)據(jù)作為起始標記。直至獲取到元數(shù)據(jù)子表的全部數(shù)據(jù),并根據(jù)上述實施方式,依序獲取到其他元數(shù)據(jù)子表的數(shù)據(jù),直到獲取到全部的n個元數(shù)據(jù)子表的數(shù)據(jù)。

      另一種可選的實施方式,第二請求中還記錄有上次接收到預(yù)定數(shù)量的數(shù)據(jù)中最后一個數(shù)據(jù)的標記。

      可選的,上述實施方式的標記可以包括多種,如,分隔符、線條、以及字母等,其中,該標記是可以移動的,即每一次發(fā)送第二請求時,可以攜帶上次接收到的預(yù)定數(shù)量的數(shù)據(jù)中最后一個數(shù)據(jù)的標記信息,以告知服務(wù)器上次響應(yīng)第二請求所發(fā)送的數(shù)據(jù)的最后位置,該位置可以有標記信息,通過該標記信息,服務(wù)器可以很快的查詢到上次所發(fā)送的預(yù)定數(shù)量的數(shù)據(jù)中最后一個數(shù)據(jù)的位置??蛇x的,可以在獲取到第二請求后,根據(jù)標記信息所記錄的最后一個數(shù)據(jù)的位置,從標記信息記錄的最后一個數(shù)據(jù)的下一個數(shù)據(jù)開始,再次將其他元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送到客戶端中。

      優(yōu)選的,上述實施方式中的數(shù)據(jù)獲取方法可以運用于全量數(shù)據(jù)的獲取。服務(wù)器中可以存儲有全量數(shù)據(jù),客戶端在獲取服務(wù)器中存儲的全量數(shù)據(jù)時,可以將全量數(shù)據(jù)中分別存儲在不同的元數(shù)據(jù)子表中。

      通過上述實施方式,客戶端可以獲取到多個元數(shù)據(jù)子表的標記信息,并根據(jù)該標記信息不斷的獲取到元數(shù)據(jù)子表中的預(yù)定數(shù)量的數(shù)據(jù),避免了服務(wù)器多余的查詢和排序,提高了數(shù)據(jù)傳輸?shù)男省?/p>

      圖2是根據(jù)本發(fā)明實施例的可選的用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取方法的流程圖二,如圖2所示,該方法包括如下步驟:

      步驟s201,接收客戶端按照預(yù)設(shè)規(guī)則發(fā)送的第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);

      步驟s203,向客戶端返回第一元數(shù)據(jù)子表的數(shù)據(jù);

      步驟s205,接收客戶端依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求;

      步驟s207,在向客戶端返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回結(jié)束標記。

      通過上述實施方式,服務(wù)器可以接收客戶端按照預(yù)設(shè)規(guī)則發(fā)送的第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù),并向客戶端返回第一元數(shù)據(jù)子表的數(shù)據(jù),在客戶端發(fā)送第二請求后,可以接收客戶端依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,然后,在向客戶端返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回結(jié)束標記。根據(jù)上述實施方式,服務(wù)器可以根據(jù)客戶端的請求將多個元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送到客戶端中,可以直接的根據(jù)第二請求發(fā)送其他元數(shù)據(jù)子表中的數(shù)據(jù),減少了服務(wù)器的工作,提高了客戶端與服務(wù)器傳輸數(shù)據(jù)的效率,提高服務(wù)器和客戶端的資源利用效率。

      可選的,接收客戶端依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求之后,包括:獲取第二請求中攜帶的起始標記;在第二請求所指示的元數(shù)據(jù)子表中,從起始標記對應(yīng)的下一個數(shù)據(jù)開始獲取元數(shù)據(jù)子表中的數(shù)據(jù)。

      可選的,在接收到第二請求后,可以將第二請求所對應(yīng)的元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送到客戶端中,在該第二請求中,客戶端將可以處理的元數(shù)據(jù)子表的數(shù)據(jù)信息發(fā)送到服務(wù)器中,以讓服務(wù)器根據(jù)第二請求發(fā)送相應(yīng)的數(shù)據(jù)。

      可選的,在向客戶端返回獲取的元數(shù)據(jù)子表的數(shù)據(jù)的同時,方法還包括:向客戶端告知第二請求指示的元數(shù)據(jù)子表中的數(shù)據(jù)是否獲取完成。

      其中,在獲取到預(yù)定數(shù)量的數(shù)據(jù)后,可以查詢該元數(shù)據(jù)子表中的數(shù)據(jù)是否全部被獲取完畢,這樣,在告知客戶端該元數(shù)據(jù)子表的數(shù)據(jù)全部被獲取完成后,可以發(fā)送一個結(jié)束標記,使得客戶端在接收到該結(jié)束標記后,獲取下一個元數(shù)據(jù)子表的數(shù)據(jù),直至獲取到全部元數(shù)據(jù)子表的數(shù)據(jù)。其中,該結(jié)束標記可以為通知信息,例如,通知框,在該通知框中可以告知用戶數(shù)據(jù)表中的數(shù)據(jù)已經(jīng)全部獲取完畢。這樣,客戶端不用再次發(fā)送請求信息。

      下面是根據(jù)本發(fā)明的具體的實施方式。

      圖3是根據(jù)本發(fā)明實施例的一種用于分布式對象存儲系統(tǒng)的客戶端的數(shù)據(jù)獲取方法的流程圖,如圖3所示,該方法包括:

      步驟s301,判斷元數(shù)據(jù)子表是否已經(jīng)有編號。

      若是,執(zhí)行步驟s303,若否,執(zhí)行步驟s317。

      在分布式存儲系統(tǒng)中,客戶端可以通過參數(shù)接收元數(shù)據(jù)子表的編號,來對特定元數(shù)據(jù)子表進行遍歷操作。

      步驟s303,客戶端請求獲取全量數(shù)據(jù)中的第一元數(shù)據(jù)子表的y個數(shù)據(jù)項。

      步驟s305,向服務(wù)端請求從元數(shù)據(jù)子表中從標記開始的y個數(shù)據(jù)項。

      當(dāng)分布式存儲服務(wù)端(即上述實施例的服務(wù)器)系統(tǒng)收到請求時,從參數(shù)中提取元數(shù)據(jù)子表的編號,然后對該編號對應(yīng)的元數(shù)據(jù)子表進行查詢(沒有進行跨子表排序),并把結(jié)果返回給客戶端。

      步驟s307,客戶端對y個數(shù)據(jù)項進行處理。

      客戶端將y項處理完畢后,則以這y項最后一項的作為標記項,繼續(xù)向服務(wù)端請求元數(shù)據(jù)子表在標記項之后的y項。

      步驟s309,判斷是否已經(jīng)是元數(shù)據(jù)子表中的最后一個數(shù)據(jù)項。

      若是,執(zhí)行步驟s311,若否,執(zhí)行步驟s313。

      可選的,如果一個元數(shù)據(jù)子表已經(jīng)返回所有的數(shù)據(jù)項,則客戶端繼續(xù)用下一個子表的編號,進行相關(guān)操作。

      步驟s311,請求獲取下一個元數(shù)據(jù)子表的第一個數(shù)據(jù)項。

      步驟s313,標記本次獲取到的y個數(shù)據(jù)項的最后一項。

      在標記之后,返回到步驟s305。

      步驟s315,判斷是否是最后一個元數(shù)據(jù)子表。

      若是,執(zhí)行步驟s321,若否,返回到步驟s305。

      步驟s317,依次獲取全量數(shù)據(jù)中的y項數(shù)據(jù)。

      步驟s319,判斷全量數(shù)據(jù)中的全部數(shù)據(jù)是否獲取完畢。

      若是,執(zhí)行步驟s321,若否,返回步驟s317。

      步驟s321,客戶端結(jié)束操作。

      這個方案是對全局順序不敏感的應(yīng)用場景進行優(yōu)化,通過暴露子表的標記信息(如編號)給客戶端的方式,避免了服務(wù)端多余的查詢和排序,從而提高了效率。

      圖4是根據(jù)本發(fā)明實施例的一種可選的用于分布式對象存儲系統(tǒng)的服務(wù)端的數(shù)據(jù)獲取方法的流程圖,如圖4所示,該方法包括如下步驟:

      步驟s402,接收客戶端請求獲取第一元數(shù)據(jù)子表的第一請求操作。

      步驟s404,發(fā)送第一元數(shù)據(jù)子表的數(shù)據(jù)給客戶端。

      步驟s406,接收客戶端獲取其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求操作。

      其中,第二請求操作中攜帶了獲取數(shù)據(jù)項對應(yīng)的元數(shù)據(jù)子表以及標記信息,該標記信息記錄了待獲取的數(shù)據(jù)的位置。

      步驟s408,將第二請求操作對應(yīng)的其他元數(shù)據(jù)子表中的數(shù)據(jù)發(fā)送到客戶端,直到全部元數(shù)據(jù)子表中的數(shù)據(jù)發(fā)送完畢。

      可選的,在發(fā)送數(shù)據(jù)的時候,服務(wù)端(即上述的服務(wù)器)可以告知客戶端該元數(shù)據(jù)子表中的全部數(shù)據(jù)是否被獲取完畢。

      通過上述實施方式,避免了不必要的查詢和排序,加快了數(shù)據(jù)傳輸?shù)乃俣?,?jié)省了資源,減少系統(tǒng)在內(nèi)存、cpu、或者內(nèi)部帶寬上的浪費,不再需要保證整個元數(shù)據(jù)子表的全局順序,而是允許客戶端逐個對元數(shù)據(jù)子表的數(shù)據(jù)進行處理。

      圖5是根據(jù)本發(fā)明實施例的一種可選的用于分布式對象存儲系統(tǒng)的數(shù)據(jù)獲取系統(tǒng)的示意圖,如圖5所示,該系統(tǒng)包括:客戶端51;服務(wù)器53;其中,客戶端51按照預(yù)設(shè)規(guī)則向服務(wù)器53發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù);在服務(wù)器53接收到第一請求的情況下,向客戶端51返回第一元數(shù)據(jù)子表的數(shù)據(jù);客戶端51接收服務(wù)器53返回的第一元數(shù)據(jù)子表的數(shù)據(jù),依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器53返回的數(shù)據(jù),直到服務(wù)器53返回結(jié)束標記。

      通過上述實施例,可以通過客戶端51向服務(wù)器53發(fā)送第一請求,其中,第一請求用于請求獲取分布式對象存儲系統(tǒng)中第一元數(shù)據(jù)子表的數(shù)據(jù),在服務(wù)器53接收到第一請求的情況下,向客戶端51返回第一元數(shù)據(jù)子表的數(shù)據(jù),然后客戶端51可以接收服務(wù)器53返回的第一元數(shù)據(jù)子表的數(shù)據(jù),依序發(fā)送用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,并接收服務(wù)器53返回的數(shù)據(jù),直到服務(wù)器53返回結(jié)束標記。。

      在本發(fā)明實施例中,可以根據(jù)預(yù)設(shè)規(guī)則,向服務(wù)器發(fā)送獲取元數(shù)據(jù)子表的數(shù)據(jù)請求,避免在服務(wù)端跨子表排序,從而獲取多個元數(shù)據(jù)子表的數(shù)據(jù),提高數(shù)據(jù)獲取效率和資源利用率,解決在獲取大量數(shù)據(jù)時,資源利用率低的技術(shù)問題。

      進一步地,在向客戶端51返回第一元數(shù)據(jù)子表的數(shù)據(jù)之后,服務(wù)器53還用于:接收第二請求;服務(wù)器53在向客戶端51返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回結(jié)束標記。

      可選的,預(yù)設(shè)規(guī)則包括:當(dāng)向服務(wù)器53發(fā)送的第一請求中不包含元數(shù)據(jù)子表編號時,則表示第一請求需要對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序;當(dāng)向服務(wù)器53發(fā)送的第一請求中包含元數(shù)據(jù)子表編號時,則表示請求無需對元數(shù)據(jù)子表數(shù)據(jù)進行跨子表排序。

      優(yōu)選的,數(shù)據(jù)獲取系統(tǒng)可以運用于全量數(shù)據(jù)的獲取。

      通過上述實施方式,服務(wù)器53可以接收客戶端51發(fā)送的第一請求,并向客戶端51返回第一元數(shù)據(jù)子表的數(shù)據(jù),在客戶端發(fā)送第二請求后,可以接收客戶端51依序發(fā)送的用于請求其他元數(shù)據(jù)子表的數(shù)據(jù)的第二請求,然后,在向客戶端51返回其他元數(shù)據(jù)子表的數(shù)據(jù)之后,返回結(jié)束標記。根據(jù)上述實施方式,服務(wù)器53可以根據(jù)客戶端51的請求將多個元數(shù)據(jù)子表的數(shù)據(jù)發(fā)送到客戶端51中,可以根據(jù)第二請求發(fā)送其他元數(shù)據(jù)子表中的數(shù)據(jù),避免跨子表排序,從而減少了服務(wù)器53的計算負擔(dān),提高了客戶端51與服務(wù)器53傳輸數(shù)據(jù)的效率,提高服務(wù)器53和客戶端51的資源利用效率。

      上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

      在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。

      在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

      所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

      另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。

      所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1