組織分布式存儲系統(tǒng)中的數(shù)據(jù)的制作方法【
技術(shù)領(lǐng)域:
】[0001]所公開的實現(xiàn)方式通常涉及管理分布式存儲系統(tǒng),更具體地涉及用于組織分布式存儲系統(tǒng)中的大量數(shù)據(jù)的系統(tǒng)和方法。【
背景技術(shù):
】[0002]互聯(lián)網(wǎng)已經(jīng)變?yōu)槿虻娜舜鎯徒粨Q信息的受歡迎的地點。隨著互聯(lián)網(wǎng)管理的數(shù)據(jù)量快速增長,不管是個人還是集體,以及與數(shù)據(jù)相關(guān)聯(lián)的服務(wù)變得更復(fù)雜,對基于互聯(lián)網(wǎng)的服務(wù)供應(yīng)商來說,管理這些大量的數(shù)據(jù)以及響應(yīng)于來自世界上的任何地方的用戶的不同數(shù)據(jù)訪問請求而高效地提供相關(guān)聯(lián)的服務(wù)正變成不斷的挑戰(zhàn)?!?br/>發(fā)明內(nèi)容】[0003]根據(jù)下述一些實施例,提供一種用于將數(shù)據(jù)添加到分布式存儲系統(tǒng)的方法,該分布式存儲系統(tǒng)包括多個計算機服務(wù)器,每一計算機服務(wù)器包括一個或多個處理器和存儲器。分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián)。該方法包括:識別與賬戶相關(guān)聯(lián)的第一分塊,其中第一分塊是第一分塊組的成員,并且第一分塊具有指示能將更多數(shù)據(jù)添加到第一分塊的數(shù)據(jù)范圍參數(shù)和指示第一分塊中的實際數(shù)據(jù)量的分塊大小;響應(yīng)于確定第一分塊的分塊大小已經(jīng)達到預(yù)定限值:更新第一分塊中的數(shù)據(jù)范圍參數(shù)使得不能再將數(shù)據(jù)添加到第一分塊;創(chuàng)建用于該賬戶的第二分塊,其中,第二分塊包括指示能將更多數(shù)據(jù)添加到第二分塊的數(shù)據(jù)范圍參數(shù);將第二分塊添加到第二分塊組;以及根據(jù)與該賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)復(fù)制第二分塊組。[0004]根據(jù)下述的一些實施例,一種分布式存儲系統(tǒng)包括多個分區(qū),每一分區(qū)包括多個計算機服務(wù)器,以及每一計算機服務(wù)器包括一個或多個處理器和存儲器;連接兩個相應(yīng)的分區(qū)的多個網(wǎng)絡(luò)鏈路,其中分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián);以及多個程序模塊,其中多個程序模塊被存儲在相應(yīng)的計算機服務(wù)器的存儲器中并且將由相應(yīng)的計算機服務(wù)器的一個或多個處理器執(zhí)行。多個程序模塊包括用于下述步驟的指令:識別與賬戶相關(guān)聯(lián)的第一分塊,其中第一分塊是第一分塊組的成員,并且第一分塊具有指示能將更多數(shù)據(jù)添加到第一分塊的數(shù)據(jù)范圍參數(shù)和指示第一分塊中的實際數(shù)據(jù)量的分塊大小;響應(yīng)于確定第一分塊的分塊大小已經(jīng)達到預(yù)定限值:更新第一分塊中的數(shù)據(jù)范圍參數(shù)使得不能再將數(shù)據(jù)添加到第一分塊;創(chuàng)建用于該賬戶的第二分塊,其中第二分塊包括指示能將更多數(shù)據(jù)添加到第二分塊的數(shù)據(jù)范圍參數(shù);將第二分塊添加到第二分塊組;以及根據(jù)與該賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)復(fù)制第二分塊組。[0005]根據(jù)下述的一些實施例,一種非瞬時計算機可讀存儲介質(zhì)存儲被配置成由計算機服務(wù)器執(zhí)行的一個或多個程序模塊,計算機服務(wù)器包括一個或多個處理器和存儲器并且是分布式存儲系統(tǒng)的一部分,其中,分布式存儲系統(tǒng)被配置成將與多個賬戶相關(guān)聯(lián)的數(shù)據(jù)分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián)。一個或多個程序包括用于下述步驟的指令;識別與賬戶相關(guān)聯(lián)的第一分塊,其中,第一分塊是第一分塊組的成員,并且第一分塊具有指示能將更多數(shù)據(jù)添加到第一分塊的數(shù)據(jù)范圍參數(shù)和指示第一分塊中的實際數(shù)據(jù)量的分塊大??;響應(yīng)于確定第一分塊的分塊大小已經(jīng)達到預(yù)定限值:更新第一分塊中的數(shù)據(jù)范圍參數(shù)使得不能再將數(shù)據(jù)添加到第一分塊;創(chuàng)建用于該賬戶的第二分塊,其中,第二分塊包括指示能將更多數(shù)據(jù)添加到第二分塊的數(shù)據(jù)范圍參數(shù);將第二分塊添加到第二分塊組;以及根據(jù)與該賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)復(fù)制第二分塊組。[0006]根據(jù)下述的一些實施例,提供一種用于在分布式存儲系統(tǒng)內(nèi)復(fù)制數(shù)據(jù)的方法,該分布式存儲系統(tǒng)包括多個計算機服務(wù)器,每一計算機服務(wù)器包括一個或多個處理器和存儲器。分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián)。該方法包括:將與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)和與第二賬戶相關(guān)聯(lián)的數(shù)據(jù)分別分成第一分塊集和第二分塊集,其中,第一賬戶和第二賬戶具有不同的數(shù)據(jù)復(fù)制策略;將第一分塊集和第二分塊集中的每一個添加到相應(yīng)的分塊組,其中,不存在包括第一分塊集的成員和第二分塊集的成員的組;對包括第一分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本;以及對包括第二分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第二賬戶相關(guān)聯(lián)的第二數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本。[0007]根據(jù)下述的一些實施例,一種分布式存儲系統(tǒng)包括多個分區(qū),每一分區(qū)包括多個計算機服務(wù)器,以及每一計算機服務(wù)器包括一個或多個處理器和存儲器;連接兩個相應(yīng)的分區(qū)的多個網(wǎng)絡(luò)鏈路,其中,分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián);以及多個程序模塊,其中,多個程序模塊被存儲在相應(yīng)的計算機服務(wù)器的存儲器中并且將由相應(yīng)的計算機服務(wù)器的一個或多個處理器執(zhí)行。多個程序模塊包括用于下述步驟的指令:將與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)和與第二賬戶相關(guān)聯(lián)的數(shù)據(jù)分別分成第一分塊集和第二分塊集,其中,第一賬戶和第二賬戶具有不同的數(shù)據(jù)復(fù)制策略;將第一分塊集和第二分塊集中的每一個添加到相應(yīng)的分塊組,其中,不存在包括第一分塊集的成員和第二分塊集的成員的組;對包括第一分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本;以及對包括第二分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第二賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本。[0008]根據(jù)下述的一些實施例,一種非瞬時計算機可讀存儲介質(zhì)存儲被配置成由計算機服務(wù)器執(zhí)行的一個或多個程序模塊,計算機服務(wù)器包括一個或多個處理器和存儲器并且是分布式存儲系統(tǒng)的一部分,其中,分布式存儲系統(tǒng)被配置成將與多個賬戶相關(guān)聯(lián)的數(shù)據(jù)分成多個組,每一組包括多個分塊并且每一分塊與相應(yīng)的賬戶相關(guān)聯(lián)。一個或多個程序包括用于下述步驟的指令;將與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)和與第二賬戶相關(guān)聯(lián)的數(shù)據(jù)分別分成第一分塊集和第二分塊集,其中,第一賬戶和第二賬戶具有不同的數(shù)據(jù)復(fù)制策略;將第一分塊集和第二分塊集中的每一個添加到相應(yīng)的分塊組,其中,不存在包括第一分塊集的成員和第二分塊集的成員的組;對包括第一分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第一賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本;以及對包括第二分塊集的成員的每一分塊組,創(chuàng)建預(yù)定數(shù)量的副本并且根據(jù)與第二賬戶相關(guān)聯(lián)的數(shù)據(jù)復(fù)制策略,在分布式存儲系統(tǒng)內(nèi)分配副本。[0009]根據(jù)下述的一些實施例,提供一種用于定位分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)的方法,該分布式存儲系統(tǒng)包括多個計算機服務(wù)器,每一計算機服務(wù)器包括一個或多個處理器和存儲器。分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊,每一分塊與相應(yīng)的賬戶相關(guān)聯(lián),以及每一組具有多個簡冊(tablet)并且每一簡冊由分布式存儲系統(tǒng)的相應(yīng)的簡冊服務(wù)器管理。該方法包括:從客戶端接收數(shù)據(jù)訪問請求,其中,數(shù)據(jù)訪問請求包括與賬戶相關(guān)聯(lián)的數(shù)據(jù)的邏輯標識符;根據(jù)數(shù)據(jù)訪問請求,識別與邏輯標識符相關(guān)聯(lián)的一個或多個分塊標識符,其中,每一分塊標識符識別與賬戶相關(guān)聯(lián)的分塊;對所識別的一個或多個分塊標識符:識別組標識符,其中,組標識符對應(yīng)于分塊組;基于關(guān)于管理多個簡冊的簡冊服務(wù)器的信息,選擇與所識別的組相關(guān)聯(lián)的多個簡冊中的一個;與管理用于對應(yīng)于分塊標識符的分塊的被選簡冊的簡冊服務(wù)器通信;以及從簡冊服務(wù)器接收分塊,并且將來自相應(yīng)的簡冊服務(wù)器的分塊轉(zhuǎn)發(fā)到請求客戶端。[0010]根據(jù)下述的一些實施例,一種分布式存儲系統(tǒng)包括多個分區(qū),每一分區(qū)包括多個計算機服務(wù)器,以及每一計算機服務(wù)器包括一個或多個處理器和存儲器;連接兩個相應(yīng)的分區(qū)的多個網(wǎng)絡(luò)鏈路,其中,分布式存儲系統(tǒng)內(nèi)的數(shù)據(jù)與多個賬戶相關(guān)聯(lián)并且被分成多個組,每一組包括多個分塊,每一分塊與相應(yīng)的賬戶相關(guān)聯(lián),以及每一組具有多個簡冊并且每一簡冊由分布式存儲系統(tǒng)的相應(yīng)的簡冊服務(wù)器管理;以及多個程序模塊,其中,多個程序模塊被存儲在相應(yīng)的計算機服務(wù)器的存儲器中并且將由相應(yīng)的計算機服務(wù)器的一個或多個處理器執(zhí)行。多個程序模塊包括用于下述步驟的指令:從客戶端接收數(shù)據(jù)訪問請求,其中,數(shù)據(jù)訪問請求包括與賬戶相關(guān)聯(lián)的數(shù)據(jù)的邏輯標識符;根據(jù)數(shù)據(jù)訪問請求,識別與邏輯標識符相關(guān)聯(lián)的一個或多個分塊標識符,其中,每一分塊標識符識別與賬戶相關(guān)聯(lián)的分塊;對所識別的一個或多個分塊標識符中的每一個:識別組標識符,其中,組標識符對應(yīng)于分塊組;基于關(guān)于管理多個簡冊的簡冊服務(wù)器的信息,選擇與所識別的組相關(guān)聯(lián)的多個簡冊中的一個;與管理用于對應(yīng)于分塊標識符的分塊的被選簡冊的簡冊服務(wù)器通信;以及從簡冊服務(wù)器接收分塊,并且將來自相應(yīng)的簡冊服務(wù)器的分塊轉(zhuǎn)發(fā)到請求客戶端。[0011]根據(jù)下述的一些實施例,一種非瞬時計算機可讀存儲介質(zhì)存儲被配置成由計算機服務(wù)器執(zhí)行的一個或多個程序模塊,計算機服務(wù)器包括一個或多個處理器和存儲器并且是分布式存儲系統(tǒng)的一部分,其中,分布式存儲系統(tǒng)被配置成將與多個賬戶相關(guān)聯(lián)的數(shù)據(jù)分成多個組,每一組包括多個分塊,每一分塊與相應(yīng)的賬戶相關(guān)聯(lián),以及每一組具有多個簡冊并且每一簡冊由分布式存儲系統(tǒng)的相應(yīng)的簡冊服務(wù)器管理。一個或多個程序包括用于下述步驟的指令:從客戶端接收數(shù)據(jù)訪問請求,其中,數(shù)據(jù)訪問請求包括與賬戶相關(guān)聯(lián)的數(shù)據(jù)的邏輯標識符;根據(jù)數(shù)據(jù)訪問請求,識別與邏輯標識符相關(guān)聯(lián)的一個或多個分塊標識符,其中,每一分塊標識符識別與賬戶相關(guān)聯(lián)的分塊;對于所識別的一個或多個分塊標識符中的每一個:識別組標識符,其中,組標識符對應(yīng)于分塊組;基于關(guān)于管理多個簡冊的簡冊服務(wù)器的信息,選擇與所識別的組相關(guān)聯(lián)的多個簡冊中的一個;與管理用于對應(yīng)于分塊標識符的分塊的被選簡冊的簡冊服務(wù)器通信;以及從簡冊服務(wù)器接收分塊,并且將來自相應(yīng)的簡冊服務(wù)器的分塊轉(zhuǎn)發(fā)到請求客戶端?!靖綀D說明】[0012]當結(jié)合附圖時,根據(jù)本發(fā)明的各個方面的下述詳細描述,將更清楚地理解本發(fā)明的上述實現(xiàn)方式和另外的實現(xiàn)方式。在附圖的若干圖中,相同的參考數(shù)字指代相應(yīng)的部件。[0013]圖1A至IG是分別示例根據(jù)一些實施例的分布式存儲系統(tǒng)的某些方面的框圖。[0014]圖2A和2B是不例在根據(jù)一些實施例的分布式存儲系統(tǒng)內(nèi)如何復(fù)制與不同賬戶相關(guān)聯(lián)的數(shù)據(jù)的框圖和流程圖。[0015]圖3A和3B是不例在根據(jù)一些實施例的分布式存儲系統(tǒng)內(nèi)如何添加與賬戶相關(guān)聯(lián)的數(shù)據(jù)的框圖和流程圖。[0016]圖4A和4B是示例根據(jù)一些實施例響應(yīng)于來自客戶端的數(shù)據(jù)訪問請求在分布式存儲系統(tǒng)內(nèi)如何定位數(shù)據(jù)的框圖和流程圖。[0017]圖5是示例根據(jù)一些實施例的客戶端的部件的框圖。[0018]圖6是示例根據(jù)一些實施例的分布式存儲系統(tǒng)的前端服務(wù)器的部件的框圖。[0019]圖7是示例根據(jù)一些實施例的分布式存儲系統(tǒng)的分區(qū)的部件的框圖?!揪唧w實施方式】[0020]圖1A至IG是框圖,分別示例根據(jù)一些實施例的分布式存儲系統(tǒng)的某些方面。具體地,圖1A圖示根據(jù)本申請的一些實現(xiàn)方式的分布式存儲系統(tǒng)100。分布式存儲系統(tǒng)100包括位于全世界的不同位置的多個分區(qū)102-1、102-2、…、102-N,分別由網(wǎng)絡(luò)通信鏈路104-1、104-2、…、104-M連接。在一些實施例中,分區(qū)(諸如分區(qū)1102-1)對應(yīng)于地理上相互接近的一個或多個數(shù)據(jù)中心。例如,北美區(qū)域可以對應(yīng)于包括兩個數(shù)據(jù)中心的一個分區(qū)當前第1頁1 2 3 4 5 6