本公開大體上涉及數(shù)據(jù)管理領(lǐng)域,更具體地,涉及計算機實現(xiàn)的更新對象存儲系統(tǒng)中鍵值對的方法和對象存儲系統(tǒng)。
背景技術(shù):
1、通常,文件系統(tǒng)是一種計算機數(shù)據(jù)存儲架構(gòu),其將數(shù)據(jù)作為文件和目錄的集合進行管理。目錄可以使用戶將文件分組到單獨的集合中。類似地,還有另一種計算機數(shù)據(jù)存儲架構(gòu),稱為對象存儲系統(tǒng)。與將數(shù)據(jù)作為文件層次結(jié)構(gòu)進行管理的其它存儲架構(gòu)(例如典型的文件系統(tǒng))相比,對象存儲系統(tǒng)將數(shù)據(jù)作為對象進行管理。傳統(tǒng)的對象存儲系統(tǒng)支持存儲海量的非結(jié)構(gòu)化數(shù)據(jù),并用于各種目的,例如存儲不同類型的數(shù)據(jù),例如照片、視頻或文件。最初,對象存儲系統(tǒng)是為歸檔大對象而設(shè)計和構(gòu)建的。此類對象存儲系統(tǒng)提供了對大對象的高帶寬訪問。但是,這些系統(tǒng)在處理許多小型對象時面臨著技術(shù)挑戰(zhàn)。具體地,訪問每個對象的數(shù)據(jù)需要首先訪問元數(shù)據(jù)服務(wù)器以進行映射和其它設(shè)置,然后訪問每個對象的數(shù)據(jù)的物理存儲。對于大對象,與完全加載完整的大對象所需的時間相比,每對象一次元數(shù)據(jù)訪問所帶來的時延幾乎可以忽略不計。對于許多小對象,元數(shù)據(jù)服務(wù)器訪問基本上可能會加倍數(shù)據(jù)訪問的時延,從而成為整個對象存儲系統(tǒng)的一個技術(shù)挑戰(zhàn)。因此,對象存儲系統(tǒng)面臨著以嚴(yán)格一致、性能優(yōu)化和高效使用物理存儲的方式提供數(shù)千個并發(fā)對象操作的技術(shù)問題。隨著對象被復(fù)制,為越來越多的對象副本提供元數(shù)據(jù)加重了對象存儲系統(tǒng)的負(fù)擔(dān),從而使技術(shù)問題更加復(fù)雜。因此,針對大對象設(shè)計和優(yōu)化的對象存儲系統(tǒng)并不能滿足小對象的要求。
2、目前,已經(jīng)提出了一些方法來提高對象存儲系統(tǒng)的性能,這些方法需要處理針對海量對象的許多并發(fā)查詢和操作。例如,提出了一種傳統(tǒng)的對象存儲系統(tǒng),其不依賴外部元數(shù)據(jù)庫,從而支持以更快的速度處理大量的小對象。傳統(tǒng)的對象存儲系統(tǒng)將元數(shù)據(jù)和數(shù)據(jù)直接存儲在磁盤上,以部分地提高性能和可擴展性。提出了另一種傳統(tǒng)的對象存儲系統(tǒng),其處理小對象的方式是將數(shù)據(jù)存儲在元數(shù)據(jù)對象中,而不是將數(shù)據(jù)存儲在數(shù)據(jù)對象中。因此,讀操作不需要從兩個對象(即元數(shù)據(jù)對象和數(shù)據(jù)對象)讀取數(shù)據(jù),而只需要從單個對象(即元數(shù)據(jù)對象)讀取數(shù)據(jù)。提出了支持鍵值應(yīng)用編程接口(application?programminginterface,api)的又一種對象存儲系統(tǒng)。鍵值api可以使對象存儲系統(tǒng)以簡單而高效的方式存儲記錄,每個記錄由鍵和值組成。對象存儲系統(tǒng)的鍵值api為每個鍵創(chuàng)建對象,因此對于小的值來說效率非常低,這導(dǎo)致創(chuàng)建了許多小對象。所提出的方案部分地提高了針對小對象的性能,并不能高效地解決處理大量微小的(非常小的)對象的問題。這是因為在大量微小的(非常小的)對象的情況下,用于維護大量微小的對象的元數(shù)據(jù)仍然很大,并且在磁盤空間和搜索性能方面效率低下。因此,存在一個技術(shù)問題,即如何在對象存儲系統(tǒng)中高效地存儲和更新大量的微小的(非常小的)對象,同時降低時延。
3、因此,根據(jù)上述討論,需要克服與提高處理大量微小的(非常小的)對象的對象存儲系統(tǒng)的性能的常規(guī)方法相關(guān)的上述缺點。
技術(shù)實現(xiàn)思路
1、本公開提供了一種計算機實現(xiàn)的更新對象存儲系統(tǒng)中鍵值對的方法和對象存儲系統(tǒng)。本公開提供了一種解決現(xiàn)有問題的方案,即如何在對象存儲系統(tǒng)中高效地存儲和更新大量的微小的(非常小的)對象,同時降低時延。本公開的目的是提供一種方案,其至少部分地克服現(xiàn)有技術(shù)中遇到的問題,并提供一種改進的計算機實現(xiàn)的更新對象存儲系統(tǒng)中鍵值對的方法和改進的對象存儲系統(tǒng)。
2、本公開的一個或多個目的是通過所附獨立權(quán)利要求中提供的方案實現(xiàn)的。在從屬權(quán)利要求中進一步限定本公開的有利實現(xiàn)方式。
3、一方面,本公開提供了一種計算機實現(xiàn)的更新對象存儲系統(tǒng)中鍵值對的方法,其中,一個或多個對象中的每個對象包括鍵值對的范圍。該計算機實現(xiàn)的方法包括:接收鍵號和對應(yīng)值,并識別該范圍中的起始鍵小于或等于接收到的鍵號的對象子集。該計算機實現(xiàn)的方法還包括:識別該對象子集中范圍中的結(jié)束鍵等于或大于接收到的鍵號的對象;在識別的對象中對接收到的鍵號的對應(yīng)值進行更新。
4、該計算機實現(xiàn)的方法提供了在對象存儲系統(tǒng)中管理、更新和存儲微小的(即非常小的)對象的高效方法。該計算機實現(xiàn)的方法使用鍵值對高效地更新對象。此外,該計算機實現(xiàn)的方法提供了對該范圍中的起始鍵小于或等于接收到的鍵號的對象子集的高效和準(zhǔn)確的識別,進一步實現(xiàn)了對該范圍中的結(jié)束鍵等于或大于接收到的鍵號的對象的準(zhǔn)確和可靠的識別。通過識別對象子集,具有接收到的鍵號的對象被更準(zhǔn)確和高效地識別。
5、在一種實現(xiàn)方式中,每個對象具有與該范圍中的起始鍵對應(yīng)的名稱。
6、有利的是,通過其對應(yīng)的起始鍵來命名對象能夠更高效地在對象存儲系統(tǒng)中定位該對象,同時降低時延。
7、在另一種實現(xiàn)方式中,該計算機實現(xiàn)的方法還包括基于后一對象的名稱推導(dǎo)對象的范圍中的結(jié)束鍵。
8、有利的是,基于后一對象的名稱推導(dǎo)對象的范圍中的結(jié)束鍵能夠更高效、更準(zhǔn)確地從對象存儲系統(tǒng)中的對象子集中識別和定位對象。
9、在另一種實現(xiàn)方式中,對值進行更新包括讀取對象并使用更新后的值重寫對象。
10、在另一種實現(xiàn)方式中,讀取對象包括:讀取與對象相關(guān)的元數(shù)據(jù)以確定對象內(nèi)的多個子范圍,識別包括接收到的鍵號的子范圍,以及讀取識別的子范圍。
11、有利的是,讀取與對象相關(guān)的元數(shù)據(jù)并識別包括接收到的鍵號的鍵的子范圍消除了對讀取整個對象的要求,這提供了讀取對象的高效方式。
12、在另一種實現(xiàn)方式中,對值進行更新包括基于本地存儲的數(shù)據(jù)重建對象。
13、有利的是,基于本地存儲的數(shù)據(jù)重建對象提供了一種更新對象存儲系統(tǒng)中的對象的高效方式,同時降低時延。
14、在另一種實現(xiàn)方式中,對值進行更新包括:如果在對象內(nèi)未找到接收到的鍵號,則添加新鍵值對。
15、有利的是,如果未找到接收到的鍵號,則添加新鍵值對,這能夠更高效和準(zhǔn)確地保持對象存儲系統(tǒng)中對象的理想大小和范圍。
16、在另一種實現(xiàn)方式中,如果接收到的鍵位于識別的對象中的鍵值對的范圍的末尾,則更新值包括:如果對象中的鍵值對的數(shù)量大于預(yù)定義閾值,則生成包括新鍵值對的新對象。
17、有利的是,如果對象中的鍵值對的數(shù)量大于預(yù)定義閾值,則生成包括新鍵值對的新對象,這能夠在對象存儲系統(tǒng)中保持對象的理想大小。
18、在另一種實現(xiàn)方式中,如果接收到的鍵位于識別的對象中的鍵值對的范圍內(nèi),則更新值包括:如果對象中的鍵值對的數(shù)量大于預(yù)定義閾值,則將對象劃分為兩個或更多個對象。
19、有利的是,如果對象中的鍵值對的數(shù)量大于預(yù)定義閾值,則將對象劃分為兩個或更多個對象,這使得每個對象的大小相等。
20、在另一種實現(xiàn)方式中,該計算機實現(xiàn)的方法還包括:如果對象中的鍵值對的數(shù)量小于預(yù)定義閾值,則將對象與一個或多個相鄰對象合并。
21、有利的是,如果對象中的鍵值對的數(shù)量小于預(yù)定義閾值,則將兩個或更多個對象合并為一個對象,這使得每個對象的大小相等。
22、另一方面,本公開提供了一種計算機可讀介質(zhì),該計算機可讀介質(zhì)包括指令,這些指令在由處理器執(zhí)行時,使該處理器執(zhí)行所述方法。
23、在執(zhí)行所述方法之后,該處理器實現(xiàn)了所述方法的所有優(yōu)點和技術(shù)效果。
24、又一方面,本公開提供了一種對象存儲系統(tǒng),包括用于執(zhí)行所述方法的一個或多個處理器。
25、該對象存儲系統(tǒng)實現(xiàn)了本公開的計算機實現(xiàn)的方法的所有優(yōu)點和技術(shù)效果。
26、需要說明的是,本技術(shù)中描述的所有設(shè)備、元件、電路、單元和模塊可以通過軟件或硬件元件或其任何類型的組合實現(xiàn)。本技術(shù)中描述的各種實體所執(zhí)行的所有步驟以及所描述的各種實體待執(zhí)行的功能均意在指相應(yīng)實體用于執(zhí)行相應(yīng)步驟和功能。雖然在以下具體實施例的描述中,外部實體執(zhí)行的具體功能或步驟沒有在執(zhí)行具體步驟或功能的實體的具體詳述元件的描述中反映,但是技術(shù)人員應(yīng)清楚,這些方法和功能可以通過相應(yīng)的軟件或硬件元件或其任何類型的組合實現(xiàn)。應(yīng)理解,本公開的特征易于以各種組合進行組合,而不脫離由所附權(quán)利要求書所限定的本公開的范圍。
27、本公開的附加方面、優(yōu)點、特征和目的從附圖和結(jié)合以下所附權(quán)利要求書解釋的說明性實現(xiàn)方式的詳細描述中變得顯而易見。