TWI433504B - 在一點對點網路中儲存資料的方法和裝置 - Google Patents

在一點對點網路中儲存資料的方法和裝置 Download PDF

Info

Publication number
TWI433504B
TWI433504B TW097105753A TW97105753A TWI433504B TW I433504 B TWI433504 B TW I433504B TW 097105753 A TW097105753 A TW 097105753A TW 97105753 A TW97105753 A TW 97105753A TW I433504 B TWI433504 B TW I433504B
Authority
TW
Taiwan
Prior art keywords
data
segments
nodes
slots
network
Prior art date
Application number
TW097105753A
Other languages
English (en)
Other versions
TW200843410A (en
Inventor
Cezary Dubnicki
Leszek Gryz
Krzysztof Lichota
Cristian Ungureanu
Original Assignee
Nec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nec Corp filed Critical Nec Corp
Publication of TW200843410A publication Critical patent/TW200843410A/zh
Application granted granted Critical
Publication of TWI433504B publication Critical patent/TWI433504B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

在一點對點網路中儲存資料的方法和裝置
本發明一般係關於點對點網路,且更特定言之,係關於在點對點網路中儲存資料。
本申請案主張2007年2月20日申請之美國專利臨時申請案第60/890,661號之權利,其以引用之方式併入本文中。
用於儲存資料之點對點網路可為覆蓋網路,其允許資料分散地儲存在網路中(例如,在節點處)。在點對點網路中,在彼此通信之任何兩點(例如,節點)之間存在鏈路。亦即,可考量在點對點網路中之節點藉由虛擬或邏輯鏈路來連接,該等鏈路之每一者對應於底層網路中之一路徑(例如,實體鏈路之一路徑)。此類結構化點對點網路採用一全球一致協定來確保任何節點可有效導引一對具有所需資料(例如,一檔案、資料件、封包等)之某一點的搜尋。
結構化點對點網路之共同類型使用一分散式雜湊表(DHT),其中一致性雜湊之一變量係用於以類似於將各密鑰的一傳統雜湊表指派至一特定陣列槽的一方式將各檔案或資料件之所有權指派至一特定點。
然而,傳統的DHT不易於支援資料冗餘且可折衷使用DHT而儲存在系統中之資料的完整性。為克服現有的點對點網路中之此等障礙,N次複製檔案或資料件,但此導致較高儲存附加項且經常需要多個雜湊函數以定位資料之複本。此外,較難增加對監控資料回彈及遺漏資料之自動重 建的支援。
因此,需要在點對點網路中組織及儲存資料的改良式系統及方法。
本發明一般提供一種在一具有複數個實體節點之固定前置點對點網路中儲存資料的方法。藉由抹除編碼一資料區塊來產生複數個資料片段且接著將該等資料片段之每一者儲存在不同的實體節點中。在一具體實施例中,抹除編碼將資料之該區塊劃分為若干原始片段且建立若干冗餘片段,其中冗餘片段之數目係等於一預定網路基數減去原始資料片段之數目。將在點對點網路中之該等實體節點邏輯上劃分為儲存槽且將該等資料片段儲存在不同實體節點上之不同槽中。將該等片段之儲存位置(例如,槽)邏輯上組織於一虛擬節點中。
為藉由抹除編碼產生該等資料片段,決定一網路基數,將該資料區塊劃分為若干原始片段且建立若干冗餘片段,其中冗餘片段之該數目係等於該網路基數減去原始資料片段之該數目。
將該複數個資料片段之儲存位置映射在一資料結構中,其中該等儲存位置為該複數個資料片段所儲存之該等實體節點。在某些具體實施例中,該資料結構為一分散式雜湊表。
藉由參考以下實施方式以及附圖,熟習技術人士應明白本發明的此等及其他優點。
本發明擴大分散式雜湊表(DHT)之概念以建立一更加穩固的點對點網路。本文中所說明之改良式儲存資料之方法考慮一簡單的DHT組織,其對於資料冗餘之多個類別進行內建支援,該等類別具有一比先前DHT小的儲存附加項。本發明之具體實施例亦支援資料回彈之自動監控以及喪失及/或損害資料之自動重建。
本發明對於熟知為一固定前置網路(FPN)之以DHT為主之點對點網路提供更大穩固性及回彈性,該點對點網路係在2004年3月30日申請之美國專利申請案第10/813,504號中揭示且以引用的方式併入本文中。與傳統的點對點網路不同,熟知為具有超級節點之FPN(FPN/SN)之FPN及依據本發明之網路經建構使得所貢獻之資源(例如,節點)係專用於點對點系統且該等系統因此係更加穩定及可擴充的。
圖1至圖3描述利用FPN/SN之點對點網路的各種說明性具體實施例。圖1至圖3係說明下文所說明之各種結構及關係的示意圖且不意指將本發明限制於所顯示之特定網路佈局。
圖1係與本發明之一具體實施例一起使用之一範例性點對點網路100的一圖式。該點對點網路100具有複數個實體節點102、104、106及108,其透過一已知底層傳輸網路110而彼此通信。就本發明而言,對於實體節點102至108之位置、分組或數目沒有限制。雖然在圖1中描述了四個實體節點102至108,但應瞭解可利用任何配置中的任何數 目之節點。同樣地,實體節點102至108可在實際儲存空間、處理功率及/或其他資源上而不同。
實體節點102至108分別具有相關聯記憶體及/或已知之儲存區域(未顯示)。實體節點102至108之該等記憶體及/或儲存區域係分別邏輯上劃分為複數個槽,其接近與可用於各實體節點之儲存的數量成比例。亦即,實體節點102之該記憶體及/或儲存區域係邏輯上劃分為近似等效尺寸槽112a、112b、112c及112d,實體節點104之該記憶體及/或儲存區域係邏輯上劃分為近似等效尺寸槽114a、114b、114c及114d,實體節點106之該記憶體及/或儲存區域係邏輯上劃分為近似等效尺寸槽116a、116b、116c及116d且實體節點108之該記憶體及/或儲存區域係邏輯上劃分為近似等效尺寸(例如,就儲存容量而言)槽118a、118b、118c及118d。可邏輯上劃分實體節點,因為其記憶體及/或儲存分配可分配為不同的儲存區域(例如,槽)。實體節點102至108可劃分為任何適當數目之槽,該等槽係節點中之儲存空間之數量的代表。換言之,資料可以分區或其他分隔方式而儲存在節點102至108中。當然,可使用實體節點102至108之儲存及/或記憶體之任何適當劃分且槽112a至d、114a至d、116a至d及118a至d可具有不同的尺寸。此外,槽尺寸可不為靜態的並可增長或收縮且槽可分裂及/或可與其他槽合併。
各實體節點102至108負責分別儲存及擷取槽112a至d、114a至d、116a至d及118a至d中之一或多個物件,例如, 檔案、資料、資料件、資料片段等。各物件可與一雜湊函數之一較佳固定尺寸雜湊密鑰相關聯。在操作中,一或多個客戶端120可與一或多個實體節點102至108進行通信且對使用一雜湊密鑰之特定物件發出一請求。
槽112a至d、114a至d、116a至d及118a至d亦可分別與一虛擬(例如,邏輯)節點之一組件相關聯(在下文中參考圖2及3進一步詳細討論)。此處,組件不為物理實體,而是一虛擬節點之一部分的代表。亦即,組件可為在一節點之一特定位置(例如,在一槽中經代管)中經代管之一資料集或資料子集之邏輯代表及/或至該資料集或資料子集之方向或位址。將資料片段(例如,在下文中參考圖5所討論之資料片段)之儲存位置邏輯上組織於一虛擬節點中。
圖2係與本發明之一具體實施例一起使用之一範例性點對點網路200之一部分的一圖式。點對點網路200係類似於點對點網路100且具有複數個類似於實體節點102至108之實體節點202、204、206、208、210及212。實體節點202至212係分別邏輯上劃分為複數個槽,其與可用於各實體節點之儲存的數目大約成正比。亦即,實體節點202係邏輯上劃分為槽214a、214b、214c及214d,實體節點204係邏輯上劃分為槽216a、216b、216c及216d,實體節點206係邏輯上劃分為槽218a、218b、218c及218d,實體節點208係邏輯上劃分為槽220a、220b、220c及220d,實體節點210係邏輯上劃分為槽222a、222b、222c及222d且實體節點212係邏輯上劃分為槽224a、224b、224c及224d。為 簡化描述及圖2中的說明,由於各槽214a至d、216a至d、218a至d、220a至d、222a至d及224a至d代管一組件,對應於其主機槽之該組件在本文中係以相同的參考數字稱之。舉例而言,代管在實體節點202之槽214c中之該組件稱為組件214c。
多個組件之一分組稱為一虛擬節點(例如,一"超級節點")。在圖2之範例中,超級節點226包括組件214b、216c、218b、220d、222a及224a。一虛擬節點(例如,超級節點)因此係多個實體節點上之複數個儲存位置之一邏輯分組。該超級節點可具有與網路中之任何數目之實體節點相關聯之任何數目的組件(其中組件之數目為超級節點基數(例如,在一超級節點中之組件之數目)),且一超級節點不需要具有來自每一個實體節點之組件。然而,一超級節點之各組件必須代管在不同實體節點上之槽中。亦即,並非一超級節點中之兩個組件應代管在同一實體節點中。在一超級節點中之組件的總數可由一預定常數(超級節點基數)來提供。在某些具體實施例中,超級節點基數可在4至32的範圍中。超級節點基數可為資料片段之一預定(例如,所需、所設計等)數目。
在某些具體實施例中,選擇一較大超級節點基數以在選擇資料類別時增加彈性。在替代具體實施例中,選擇一較小的超級節點基數以在讀取/寫入操作中對儲存位置(例如,碟片)提供更大的存取。此處,資料類別定義冗餘位準,其中較低的資料類別(例如,資料類別低)具有較少的 冗餘且較高的資料類別(例如,資料類別高)具有較多的冗餘。可能存在等於預定超級節點基數的若干資料類別。將最低的資料類別定義為沒有冗餘片段且將最高的資料類別定義為具有(超級節點基數-1)冗餘片段。
在一範例性具體實施例中,資料類別低可指一單一冗餘片段且資料類別高可指四個冗餘片段。當然,可設定任何適當數目之資料片段用於資料類別低及/或資料類別高。在此範例性具體實施例中,藉由使用者分類為資料類別低之資料區塊可劃分為等於超級節點基數的若干片段,其中存在(超級節點基數-1)原始片段及一個冗餘片段。因此,一個片段可能會喪失且可重建該資料區塊。使用資料類別高(例如,四個冗餘片段),將一資料區塊劃分為片段使得其中四個將為冗餘。因此,四個片段可能會喪失且可重建該原始資料區塊。在下文中參考圖5進一步詳細說明分裂,尤其係冗餘片段。
超級節點之組件可考量為點並可同樣地相關聯(例如,在一雜湊表中等)、定址及/或接觸為一傳統點對點網路中之點節點。
圖3描述依據本發明之一具體實施例的一範例性點對點網路300之一高階抽象化。點對點網路300係類似於點對點網路100及200且具有多個實體節點302、304、306及308。實體節點302至308之每一者係劃分為多個槽,如上所說明。在圖3之特定範例中,實體節點302至308之每一者具有八個槽。如在圖2中,各槽310、312、314、316、318、 320、322或324代管一組件310、312、314、316、318、320、322或324。組件310至324係分別與一對應超級節點相關聯且分散在實體節點302至308當中。以此方式,形成八個超級節點,其每一者具有一個組件310至324在該四個實體節點302至308之每一者上。舉例而言,形成一第一超級節點,其具有四個組件:組件310代管在實體節點302上(例如,在一槽310中),組件310代管在實體節點304上(例如,在一槽310中),組件310代管在實體節點306上(例如,在一槽310中),且組件310代管在實體節點308上(例如,在一槽310中)。包括組件310之第一超級節點係顯示為虛線框。第二超級節點包括代管在實體節點302至308中之四個組件312且顯示為一梯形。當然,此等僅為圖形表示以突出包括不同超級節點之不同組件且不意指為一槽、組件、節點或超級節點所看似的字面表示。同樣地形成其餘六個超級節點。
為促進使用如圖1至3中所說明及顯示之超級節點的資料儲存,可擴大DHT之固定前置網路模型(例如,FPN)以使用超級節點。可在本發明之背景中利用將資料(例如,物件、檔案等)映射至一固定尺寸雜湊密鑰之任何有利雜湊函數。該等雜湊密鑰可瞭解為含有此類位元串之所有可能組合的空間中之固定尺寸(例如,5位元、6位元等)的位元串。雜湊密鑰空間之子空間係與已知之較大位元串的一組位元相關聯。舉例而言,以在一5位元串中之110開始之一組雜湊密鑰包括所有雜湊密鑰,以000、001、010、011、 100及101開始之雜湊密鑰除外。亦即,前置為110。雜湊密鑰空間之此類子空間可為一超級節點且另外之規格可為該超級節點之一組件。前置對於超級節點及/或組件之壽命可以係固定的。在此類具體實施例中,該點對點網路係稱為一固定前置點對點網路。可適當使用其他雜湊之方法。
圖4係依據本發明之一具體實施例之一範例性超級節點組合物及組件說明表格400。舉例而言,超級節點組合物及組件說明表格400可(例如)與該點對點網路200一起使用。藉由一包括超級節點前置402、組件說明之陣列404及超級節點版本406之超級節點組合物(例如,具有超級節點組合物及組件說明表格400)來說明各超級節點(例如,超級節點226)。因為各組件具有一如下所述之說明,所以陣列402尺寸係等於超級節點基數。超級節點版本406係一對應於超級節點之當前實體的序號。藉由一如上文及在美國專利申請案第10/813,504號中所說明之固定前置402來識別各超級節點。舉例而言,在依據超級節點組合物及組件說明表格400(其中雜湊密鑰為固定尺寸位元串)之點對點網路200中雜湊及/或儲存資料時,該超級節點226具有一01101之固定前置。因此,具有一以01101開始之雜湊密鑰之任何資料將與超級節點226相關聯。
在操作中,藉由一包括一固定前置408、一組件索引410及一組件版本412之組件說明來說明組件陣列404中之各組件(例如,214b、216c、218b、220d、222a、224a等)。亦 因壽命而為該超級節點之所有組件(例如,在陣列404中)指派相同的固定前置。各組件之組件索引410對應於該超級節點陣列中之一位置。組件之索引係因組件之壽命而固定且為指向特定組件之一識別號碼。組件索引係一在0與(超級節點基數-1)之間的數目。無論組件何時改變宿主(例如,節點),組件之版本係一按順序增加之版本號碼。在某些具體實施例中,在名稱為"用於操作一固定前置點對點網路之方法"之同時申請的美國專利申請案第-號(律師檔案第06083A號,該專利以引用之方式併入本文中)中詳細說明的一組件可經分裂或自一實體節點移動至另一實體節點且在此類實例中增加其版本。
超級節點組合物及組件說明表格400係與實體節點、超級節點及其個別組件相關之資訊的組織之一範例。當然,熟習技術人士將識別組織及提供此類資訊之其他方法,諸如將該資訊本地儲存在一資料庫之實體節點上,將該資訊儲存在一共有資料庫之一遠端位置中等。
(例如,在超級節點組合物及組件說明表格400中等)維持超級節點組合物之更新指示以促進在點當中的通信。此外,與該等組件相關聯之實體節點維持鄰近實體及/或虛擬節點之組合物。為維持此類組合物,與組件相關聯之實體節點查驗已知點及鄰近者。以此方式,與一組件相關聯之一實體節點可內部查驗與組件之超級節點中的點相關聯之實體節點以決定虛擬節點健康狀態及/或當前組合物。此外,與一組件相關聯之一實體節點可內部查驗與鄰近者 (例如,具有相同索引但屬於不同超級節點之組件)相關聯之實體節點以傳播及/或收集組合物資訊。當然,可適當使用組織及/或記錄包含版本/實體資訊之超級節點及其組件的其他系統及方法。
圖5係可儲存在點對點網路100、200及/或300中之資料的一廣義圖。資料區塊502可依據任何傳統方式而劃分為多個資料件504。在至少一具體實施例中,資料區塊502可分裂為多個原始件(例如,片段)506且亦可產生若干冗餘片段508。此類分裂及/或片段的產生可藉由抹除編碼、複製及/或其他分裂方式來完成。
圖6特別參考上文圖2及5而描述依據本發明之一具體實施例之一固定前置點對點網路中組織資料之一方法600的一流程圖。雖然已參考圖2之點對點網路200進行說明,但本文中所說明之方法步驟亦可適當用於點對點網路100及300中。該方法在步驟602中開始。
在步驟604中,決定一網路基數。網路基數可為一用於整個系統之預定常數且可以任何適當方式來決定。
在步驟606中,產生複數個資料片段506至508。在至少一具體實施例中,藉由利用一抹除編碼自一資料區塊502產生資料片段506至508。使用抹除編碼,將n個(此處為四個)原始資料件504之區塊502轉換為n個以上資料片段506至508(此處為四個原始片段及兩個冗餘片段)使得n個資料件504(例如,片段)之原始區塊502可自彼等片段(例如,片段506至508)之一子集而回復。回復n個原始資料件504所 需之片段506至508的分式稱為速率r。在某些具體實施例中,可使用最佳抹除編碼。最佳抹除編碼產生n/r個資料片段,其中任何n個片段可用於回復n個原始資料件。在替代具體實施例中,近似最佳抹除編碼可用於保存系統資源。在相同或替代具體實施例中,資料區塊502劃分為n個件506。基於n個原始件506,建立m個冗餘片段508(其中m=超級節點基數-n)且片段尺寸係等於原始資料區塊502之尺寸除以n。應瞭解,冗餘片段508之抹除編碼及建立允許採用一又二分之一的冗餘片段508及/或原始片段506來重建原始資料區塊502。在圖5所顯示之範例中,僅需要來自片段506至508之群組的總共四個片段來重建原始資料區塊502。當然,可使用任何其他抹除編碼方案。
在步驟608中,資料片段506至508係儲存在不同實體節點202至212中。表示資料區塊502之原始件的資料片段506之每一者及冗餘片段508係使用在一點對點網路中儲存資料之任何適當方法儲存在分離實體節點202至212中。在至少一具體實施例中,資料片段506至508係儲存在實體節點202至212之分離槽214a至d、216a至d、218a至d、220a至d、222a至d、224a至d中。舉例而言,來自片段508及508之一個片段可加以儲存在槽214b、216c、218b、220d、222a及224a之每一者中。
可根據原始資料區塊502來計算一雜湊。接著發現一具有與所計算的雜湊之前置相同的固定前置之虛擬節點(例如,虛擬節點226)。因為虛擬節點226包括組件214b、 216c、218b、220d、222a及224a,所以資料片段506至508係接著儲存在對應於組件214b、216c、218b、220d、222a及224a之槽214b、216c、218b、220d、222a及224a中。
在步驟610中,在一資料結構中記錄(例如,映射等)資料片段506至508之儲存位置。該資料結構可為一雜湊表、一DHT、一依據上文所參考之FPN的DHT、共同待審及同時申請之美國專利申請案第-號中說明的資料結構(該申請案之名稱為"用於操作一固定前置點對點網路之方法",律師檔案第06083A號,係以引用之方式併入本文中)、或任何其他適當的資料結構。該資料結構可促進點對點網路100、200及300之組織、選路、查詢及其他功能。可對片段506至508進行編碼(例如,自0至超級節點基數減1)且相同號碼之片段可加以儲存(例如,分組、配置等)在一邏輯實體(例如,一虛擬節點組件)中。
在步驟612中,資料結構促進將關於資料片段506至508的資訊組織於虛擬節點(例如,超級節點226、超級節點310至324等)中。亦即,儲存原始片段506之每一者及冗餘片段408之每一者的儲存位置(例如,在實體節點中之槽)係組織及/或記錄為一分組(例如,如上文所說明之一虛擬節點/超級節點)。因此,片段506至508可經組織並代管在如上文所說明之超級節點226中使得關於資料之片段506至508的位置、索引及版本資訊加以組織為超級節點226的組件。
該方法在步驟614中結束。
圖7係依據本發明之一具體實施例之一控制器700的一示意圖。控制器700含有一處理器702,其藉由執行定義此類操作之電腦程式指令來控制該控制器700之總操作。當需要執行電腦程式指令時,可將該等電腦程式指令儲存在一儲存器件704(例如,磁碟、資料庫等)中且載入進記憶體706中。因此,用於在方法600中執行本文中所說明之方法步驟(諸如抹除編碼、儲存資料以及DHT組織)之應用程式可由儲存在記憶體706及/或儲存704中之電腦程式指令來定義且由執行該電腦程式指令之處理器702來控制。該控制器700亦可包含一或多個網路介面608以經由一網路(例如,一點對點網路等)與其他器件進行通信。該控制器700亦包含輸入/輸出器件710(例如,顯示器、鍵盤、滑鼠、揚聲器、按鈕等),其使得使用者能夠與該控制器700互動。控制器700及/或處理器702可包含一或多個中央處理單元、唯讀記憶體(ROM)器件及/或隨機存取記憶體(RAM)器件。熟習技術人士將識別一實際控制器之實施方案也可含有其他組件,而且基於說明性目的,圖7之控制器為此類控制器之某些組件的高階表示。
依據本發明之某些具體實施例,一程式之指令(例如,控制器軟體)可讀取至記憶體706中,諸如自一ROM器件至一RAM器件或自一RAM適配器至一RAM器件。在該程式中之指令之序列的執行可使該控制器700執行本文中所說明的方法步驟(諸如上文參考方法600所說明之方法步驟及/或上文相對於圖5所說明之抹除編碼)之一或多個。在替代 具體實施例中,可使用硬線電路或積體電路來代替用於實施本發明之程序的軟體指令或與其一起使用。因此,本發明之具體實施例不限於硬體、韌體及/或軟體之任何特定組合。記憶體706可儲存用於控制器700之軟體,其可經調適用以執行軟體程式且從而依據本發明且尤其依據下文所詳細說明之方法來操作。然而,熟習技術人士之一應瞭解本文中所說明之本發明可使用較廣範圍之程式設計技術以及通用硬體子系統或專屬控制器以許多不同的方式來實施。
此類程式可以一壓縮、未編譯及/或加密之格式來儲存。而且,該等程式可包含通常使用之程式元件,諸如一作業系統、一資料庫管理系統、及用於允許控制器與電腦周邊器件介接之器件驅動器、以及其他設備/組件。適當的通用程式元件已為熟習技術人士所瞭解,且不需要在本文中加以詳細說明。
組織本文中所說明之一點對點網路的本發明方法改良網路回彈性。因為各超級節點包含得自一原始資料區塊(例如,藉由抹除編碼)之片段且該等片段之每一者係因此儲存在一分離實體節點上,所以該網路較少受到由於網路變化所致的故障之影響。亦即,點實體節點的改變(諸如故障及節點分離)由於該資料的分散本質而不大可能影響點對點網路。
因此,本發明方法可在一點對點網路上使用。一控制器(例如,控制器700)可執行雜湊函數儲存及/或查詢在該點 對點網路中之一或多個資料件。假如該等實體節點之一或多個喪失(例如,透過故障、未能通信等),則該控制器可進一步經組態用以回復所儲存之資料。當然,在點對點網路中之該等實體節點可改為經組態用以執行一或多個控制器功能。
應在每一個方面將上述實施方式理解為說明性及範例性而非限制性的,本文中所揭示的本發明之範疇不應從該實施方式來決定,而應從依據專利法所允許之完全幅度所解釋之申請專利範圍來決定。應瞭解本文中所顯示及說明的具體實施例僅解說本發明之原理,熟習技術人士可以實施各種修改而不脫離本發明之範疇及精神。熟習技術人士可以實施各種其他特徵組合而不脫離本發明之範疇及精神。
100‧‧‧點對點網路
102‧‧‧實體節點
104‧‧‧實體節點
106‧‧‧實體節點
108‧‧‧實體節點
110‧‧‧底層傳輸網路
112a‧‧‧槽
112b‧‧‧槽
112c‧‧‧槽
112d‧‧‧槽
114a‧‧‧槽
114b‧‧‧槽
114c‧‧‧槽
114d‧‧‧槽
116a‧‧‧槽
116b‧‧‧槽
116c‧‧‧槽
116d‧‧‧槽
118a‧‧‧槽
118b‧‧‧槽
118c‧‧‧槽
118d‧‧‧槽
120‧‧‧客戶端
200‧‧‧點對點網路
202‧‧‧實體節點
204‧‧‧實體節點
206‧‧‧實體節點
208‧‧‧實體節點
210‧‧‧實體節點
212‧‧‧實體節點
214a‧‧‧槽
214b‧‧‧槽/組件
214c‧‧‧槽
214d‧‧‧槽
216a‧‧‧槽
216b‧‧‧槽
216c‧‧‧槽/組件
216d‧‧‧槽
218a‧‧‧槽
218b‧‧‧槽/組件
218c‧‧‧槽
218d‧‧‧槽
220a‧‧‧槽
220b‧‧‧槽
220c‧‧‧槽
220d‧‧‧槽/組件
222a‧‧‧槽/組件
222b‧‧‧槽
222c‧‧‧槽
222d‧‧‧槽
224a‧‧‧槽/組件
224b‧‧‧槽
224c‧‧‧槽
224d‧‧‧槽
226‧‧‧超級節點/虛擬節點
300‧‧‧點對點網路
302‧‧‧實體節點
304‧‧‧實體節點
306‧‧‧實體節點
308‧‧‧實體節點
310‧‧‧組件/槽/超級節點
312‧‧‧組件/槽/超級節點
314‧‧‧組件/槽/超級節點
316‧‧‧組件/槽/超級節點
318‧‧‧組件/槽/超級節點
320‧‧‧組件/槽/超級節點
322‧‧‧組件/槽/超級節點
324‧‧‧組件/槽/超級節點
402‧‧‧前置
404‧‧‧陣列
406‧‧‧版本
408‧‧‧固定前置
410‧‧‧組件索引
412‧‧‧組件版本
502‧‧‧資料區塊
504‧‧‧資料件
506‧‧‧片段/資料片段
508‧‧‧冗餘片段/資料片段
700‧‧‧控制器
702‧‧‧處理器
704‧‧‧儲存器件
706‧‧‧記憶體
708‧‧‧網路介面
710‧‧‧輸入/輸出器件
圖1係依據本發明之一具體實施例之一範例性點對點網路的一圖式;圖2係依據本發明之一具體實施例之一範例性點對點網路的一圖式;圖3係依據本發明之一具體實施例之一範例性點對點網路的一圖式;圖4係依據本發明之一具體實施例之一範例性超級節點組合物及組件說明表格400;圖5係儲存在一點對點網路中之資料的描述;圖6係在依據本發明之一具體實施例之一固定前置點對點網路中儲存資料之一方法的一流程圖;以及 圖7係依據本發明之一具體實施例之一控制器的一示意圖。
200‧‧‧點對點網路
202‧‧‧實體節點
204‧‧‧實體節點
206‧‧‧實體節點
208‧‧‧實體節點
210‧‧‧實體節點
212‧‧‧實體節點
214a‧‧‧槽
214b‧‧‧槽/組件
214c‧‧‧槽
214d‧‧‧槽
216a‧‧‧槽
216b‧‧‧槽
216c‧‧‧槽/組件
216d‧‧‧槽
218a‧‧‧槽
218b‧‧‧槽/組件
218c‧‧‧槽
218d‧‧‧槽
220a‧‧‧槽
220b‧‧‧槽
220c‧‧‧槽
220d‧‧‧槽/組件
222a‧‧‧槽/組件
222b‧‧‧槽
222c‧‧‧槽
222d‧‧‧槽
224a‧‧‧槽/組件
224b‧‧‧槽
224c‧‧‧槽
224d‧‧‧槽
226‧‧‧超級節點/虛擬節點

Claims (14)

  1. 一種在具有複數個實體節點之一固定前置點對點網路中儲存資料的方法,其包括:藉由抹除編碼一資料區塊來產生複數個資料片段,其包括:決定一網路基數;將該資料區塊劃分為若干原始片段;以及建立複數個冗餘片段,其中冗餘片段之數目係等於該網路基數減去原始資料片段之數目;及在不同實體節點中儲存該複數個資料片段之每一者。
  2. 如請求項1之方法,其中在不同實體節點中儲存該複數個資料片段之每一者包括:將該等實體節點之每一者邏輯上劃分為複數個槽;以及在不同實體節點上之不同槽中儲存該複數個資料片段之每一者。
  3. 如請求項2之方法,其進一步包括:將不同實體節點上之該等不同槽相關聯為一虛擬節點。
  4. 如請求項1之方法,其進一步包括將該複數個資料片段之儲存位置映射在一資料結構中,其中該等儲存位置為儲存該複數個資料片段之該等實體節點。
  5. 如請求項4之方法,其中該資料結構係一分散式雜湊表。
  6. 一種具有儲存於其上之程式指令之機器可讀媒體,該等 指令能夠藉由一處理器來執行且定義以下之步驟:藉由抹除編碼一資料區塊來產生複數個資料片段,其包括:決定一網路基數;將該資料區塊劃分為若干原始片段;以及建立複數個冗餘片段,其中冗餘片段之數目係等於該網路基數減去原始資料片段之數目;及在不同實體節點中儲存該複數個資料片段之每一者。
  7. 如請求項6之機器可讀媒體,其中該等指令進一步定義以下之步驟:將該等實體節點之每一者邏輯上劃分為複數個槽;以及在不同實體節點上之不同槽中儲存該複數個資料片段之每一者。
  8. 如請求項6之機器可讀媒體,其中該等指令進一步定義以下之步驟:將不同實體節點上之該等不同槽相關聯為一虛擬節點。
  9. 如請求項6之機器可讀媒體,其中該等指令進一步定義以下之步驟:將該複數個資料片段之儲存位置映射在一資料結構中,其中該等儲存位置為儲存該複數個資料片段之該等實體節點。
  10. 如請求項9之機器可讀媒體,其中該等指令進一步定義以下步驟:將該複數個資料片段之該等儲存位置映射在一分散式 雜湊表中。
  11. 一種在具有複數個實體節點之一固定前置點對點網路中儲存資料的裝置,其包括:藉由抹除編碼一資料區塊來產生複數個資料片段之構件,其執行以下步驟:決定一網路基數;將該資料區塊劃分為若干原始片段;以及建立複數個冗餘片段,其中冗餘片段之數目係等於該網路基數減去原始資料片段之數目;及在不同實體節點中儲存該複數個資料片段之每一者之構件。
  12. 如請求項11之裝置,其中在不同實體節點中儲存該複數個資料片段之每一者之該構件包括:將該等實體節點之每一者邏輯上劃分為複數個槽之構件;以及在不同實體節點上之不同槽中儲存該複數個資料片段之每一者之構件。
  13. 如請求項12之裝置,其進一步包括:將不同實體節點上之該等不同槽相關聯為一虛擬節點之構件。
  14. 如請求項11之裝置,其進一步包括:將該複數個資料片段之儲存位置映射在一資料結構中之構件,其中該等儲存位置為儲存該複數個資料片段之該等實體節點。
TW097105753A 2007-02-20 2008-02-19 在一點對點網路中儲存資料的方法和裝置 TWI433504B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US89066107P 2007-02-20 2007-02-20
US12/023,133 US20080201335A1 (en) 2007-02-20 2008-01-31 Method and Apparatus for Storing Data in a Peer to Peer Network

Publications (2)

Publication Number Publication Date
TW200843410A TW200843410A (en) 2008-11-01
TWI433504B true TWI433504B (zh) 2014-04-01

Family

ID=39707530

Family Applications (2)

Application Number Title Priority Date Filing Date
TW097105753A TWI433504B (zh) 2007-02-20 2008-02-19 在一點對點網路中儲存資料的方法和裝置
TW097105755A TWI432968B (zh) 2007-02-20 2008-02-19 在一點對點網路操作一節點的方法、一點對點網路的節點與機器可讀媒體

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW097105755A TWI432968B (zh) 2007-02-20 2008-02-19 在一點對點網路操作一節點的方法、一點對點網路的節點與機器可讀媒體

Country Status (4)

Country Link
US (2) US20080201335A1 (zh)
AR (1) AR076255A1 (zh)
TW (2) TWI433504B (zh)
WO (2) WO2008103569A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3171574A1 (en) 2015-11-18 2017-05-24 Walton Advanced Engineering Inc. Assistant data transmission method

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335889B2 (en) * 2008-09-11 2012-12-18 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
JP5176835B2 (ja) * 2008-09-29 2013-04-03 ブラザー工業株式会社 監視装置、情報処理装置、情報処理方法並びにプログラム
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
US20100174968A1 (en) * 2009-01-02 2010-07-08 Microsoft Corporation Heirarchical erasure coding
JP2012531674A (ja) 2009-06-26 2012-12-10 シンプリヴィティ・コーポレーション ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8121993B2 (en) * 2009-10-28 2012-02-21 Oracle America, Inc. Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting
US7716179B1 (en) * 2009-10-29 2010-05-11 Wowd, Inc. DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
KR101742451B1 (ko) * 2009-11-13 2017-05-31 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
EP2793130B1 (en) * 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
US9436748B2 (en) 2011-06-23 2016-09-06 Simplivity Corporation Method and apparatus for distributed configuration management
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
WO2013078611A1 (zh) * 2011-11-29 2013-06-06 华为技术有限公司 分布式存储系统中的数据处理方法及设备、客户端
WO2013118189A1 (en) * 2012-02-10 2013-08-15 Hitachi, Ltd. Storage device replacement method, and storage sub-system adopting storage device replacement method
US9032183B2 (en) 2012-02-24 2015-05-12 Simplivity Corp. Method and apparatus for content derived data placement in memory
US9043576B2 (en) 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
EP2863566B1 (en) 2013-10-18 2020-09-02 Université de Nantes Method and apparatus for reconstructing a data block
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10021181B2 (en) * 2014-12-22 2018-07-10 Dropbox, Inc. System and method for discovering a LAN synchronization candidate for a synchronized content management system
US10884633B2 (en) 2015-01-13 2021-01-05 Hewlett Packard Enterprise Development Lp System and method for optimized signature comparisons and data replication
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10003357B2 (en) * 2015-08-28 2018-06-19 Qualcomm Incorporated Systems and methods for verification of code resiliency for data storage
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10303458B2 (en) 2016-09-29 2019-05-28 Hewlett Packard Enterprise Development Lp Multi-platform installer
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
WO2018109612A1 (en) * 2016-12-16 2018-06-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and request router for dynamically pooling resources in a content delivery network (cdn), for efficient delivery of live and on-demand content
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10887176B2 (en) 2017-03-30 2021-01-05 Hewlett Packard Enterprise Development Lp Predicting resource demand in computing environments
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11010300B2 (en) 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US20200153702A1 (en) * 2017-06-20 2020-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Methods and network nodes enabling a content delivery network to handle unexpected surges of traffic
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10860738B2 (en) 2018-01-30 2020-12-08 Hewlett Packard Enterprise Development Lp Augmented metadata and signatures for objects in object stores
US10587454B2 (en) 2018-01-30 2020-03-10 Hewlett Packard Enterprise Development Lp Object counts persistence for object stores
US11126755B2 (en) 2018-01-30 2021-09-21 Hewlett Packard Enterprise Development Lp Object signatures in object stores
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
CN110244904B (zh) * 2018-03-09 2020-08-28 杭州海康威视系统技术有限公司 一种数据存储系统、方法及装置
US10997153B2 (en) 2018-04-20 2021-05-04 Hewlett Packard Enterprise Development Lp Transaction encoding and transaction persistence according to type of persistent storage
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11243703B2 (en) 2018-04-27 2022-02-08 Hewlett Packard Enterprise Development Lp Expandable index with pages to store object records
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130921B2 (en) * 2002-03-15 2006-10-31 International Business Machines Corporation Centrally enhanced peer-to-peer resource sharing method and apparatus
KR20040084530A (ko) * 2003-03-28 2004-10-06 엘지전자 주식회사 이동 통신 단말기의 적외선을 이용한 소프트웨어업그레이드 방법
US7870218B2 (en) * 2003-04-09 2011-01-11 Nec Laboratories America, Inc. Peer-to-peer system and method with improved utilization
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
FR2878673B1 (fr) * 2004-11-26 2007-02-09 Univ Picardie Jules Verne Etab Systeme et procede de sauvegarde distribuee perenne
US7466810B1 (en) * 2004-12-20 2008-12-16 Neltura Technology, Inc. Distributed system for sharing of communication service resources between devices and users
JP2006319909A (ja) * 2005-05-16 2006-11-24 Konica Minolta Holdings Inc データ通信の方法、ピアツーピア型のネットワーク、および情報処理装置
US8060648B2 (en) * 2005-08-31 2011-11-15 Cable Television Laboratories, Inc. Method and system of allocating data for subsequent retrieval
US9047310B2 (en) * 2006-02-22 2015-06-02 Microsoft Technology Licensing, Llc Reliable, efficient peer-to-peer storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3171574A1 (en) 2015-11-18 2017-05-24 Walton Advanced Engineering Inc. Assistant data transmission method

Also Published As

Publication number Publication date
WO2008103568A1 (en) 2008-08-28
TWI432968B (zh) 2014-04-01
TW200843410A (en) 2008-11-01
US8140625B2 (en) 2012-03-20
TW200847689A (en) 2008-12-01
AR076255A1 (es) 2011-06-01
US20080201428A1 (en) 2008-08-21
US20080201335A1 (en) 2008-08-21
WO2008103569A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
TWI433504B (zh) 在一點對點網路中儲存資料的方法和裝置
TWI437487B (zh) 自我管理及可調整網格儲存之系統及方法
US20190012235A1 (en) Hierarchic Storage Policy for Distributed Object Storage Systems
JP5167243B2 (ja) 拡張性及び耐障害性を有する記憶システムのための記憶領域割当て及び消去符号化技法
JP2010079886A (ja) 拡張可能な2次ストレージシステムと方法
CN1894672A (zh) 用于对存储区中的选定数据执行操作的方法和设备
JP2007012058A (ja) フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム
JP2012226770A (ja) Raid管理、再割振り、およびリストライピングのためのシステムおよび方法
JP2007520783A (ja) データストレージシステムにおける冗長データ割り当て
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
CN112230861B (zh) 一种基于一致性哈希算法的数据存储方法及终端
JP2010198276A (ja) ストレージシステム
CN110046160B (zh) 一种基于条带的一致性哈希存储系统构建方法
CN101986276B (zh) 文件存储方法、文件恢复方法、系统及服务器
US20100106808A1 (en) Replica placement in a distributed storage system
CN110383251A (zh) 存储系统、计算机可读记录介质、系统的控制方法
JP4891657B2 (ja) データ記憶システム、ファイル検索装置およびプログラム
JP2006331076A (ja) データ記憶システム及び記憶方法
CN117075821B (zh) 一种分布式存储方法、装置、电子设备及存储介质
US9037762B2 (en) Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data
JP2015148919A (ja) ストレージシステム
JP6255496B2 (ja) ボリュームコーホート内の小ボリュームの照合調整
CN110263012B (zh) 一种磁盘缓存方法及系统
JP2010191903A (ja) 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees