TW409215B - Parallel file system and method for multiple node file access - Google Patents
Parallel file system and method for multiple node file access Download PDFInfo
- Publication number
- TW409215B TW409215B TW087109528A TW87109528A TW409215B TW 409215 B TW409215 B TW 409215B TW 087109528 A TW087109528 A TW 087109528A TW 87109528 A TW87109528 A TW 87109528A TW 409215 B TW409215 B TW 409215B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- node
- intermediary
- data
- storage area
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000011084 recovery Methods 0.000 claims abstract description 16
- 239000000872 buffer Substances 0.000 claims description 152
- 230000002079 cooperative effect Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 11
- 239000000463 material Substances 0.000 claims description 8
- 235000015170 shellfish Nutrition 0.000 claims description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 claims 1
- 238000005065 mining Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 29
- 230000006872 improvement Effects 0.000 abstract description 14
- 230000009471 action Effects 0.000 abstract description 7
- 238000011161 development Methods 0.000 abstract description 5
- 230000018109 developmental process Effects 0.000 abstract description 5
- 238000012986 modification Methods 0.000 abstract description 5
- 230000004048 modification Effects 0.000 abstract description 5
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 30
- 238000013507 mapping Methods 0.000 description 25
- 238000007726 management method Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000033228 biological regulation Effects 0.000 description 7
- 238000007639 printing Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006378 damage Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 101100119135 Mus musculus Esrrb gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 244000205754 Colocasia esculenta Species 0.000 description 1
- 235000006481 Colocasia esculenta Nutrition 0.000 description 1
- 244000068988 Glycine max Species 0.000 description 1
- 235000010469 Glycine max Nutrition 0.000 description 1
- 241000233805 Phoenix Species 0.000 description 1
- 229910052778 Plutonium Inorganic materials 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 208000032005 Spinocerebellar ataxia with axonal neuropathy type 2 Diseases 0.000 description 1
- 240000008866 Ziziphus nummularia Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 208000033361 autosomal recessive with axonal neuropathy 2 spinocerebellar ataxia Diseases 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 210000004602 germ cell Anatomy 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- OYEHPCDNVJXUIW-UHFFFAOYSA-N plutonium atom Chemical compound [Pu] OYEHPCDNVJXUIW-UHFFFAOYSA-N 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000000192 social effect Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
A7 B7 五、發明説明。) ~~ ~~~ ~~ .發明頜碰: 本發明係有關電腦及電腦系統,尤係有關—種在多個電 腦上執行的檔案系統,其中每一電腦有其本身的作業系統 實例,且爲了資料共用而與連接共用磁碟的網路耦合,亦 即本發明係有關一種共用磁碟檔案系統。 口 術語詞彙袅: 雖然字典也提及本文所用的某些術語的意義,但下文所 7JT與本發明有關的某些術語之詞彙表將是相當有用的。 .資料/權案系統資料(Data/File System Data):只有在 一特定應用程式的環境下具有意義的任意位元串。 •檔案(File): —電腦應用程式可存取的一命名位元串。 檔案具有某些標準的屬性,例如長度 '修改時間、及 最近存取的時間。 _中介資料(河“以以3):檔案系統軟體所產生的一種 控制結構,用以描述—檔案的結構、及包含檔案系統 的磁碟之使用情形。應用於此類檔案系統的特定中介 資料類型有: -目錄(Directory):使一名稱與一組資料相關聯且以 一檔案索引表示之控制結構。 -檔案索引(inode):包含檔案屬性 '及包含構成該 樓案的資料的磁碟區之一系列指標。如果構案較 大’則間接區段可補充檔案索引,其中間接區段 係以額外的指標補充檔案索引。 " 分配對映表(A1丨ocation maps): 指示磁碟的特定區 -4 - 本紙狀度適用中_家轉(CNS) Λ4^ (21QX 297公费) ------—. i , . I I .~J I II .*1:: 1--1 I^---I- - I 1·: m II 丁 »-1-='" ί請先閱讀背面之注意事項再填释本頁} 經濟部中央標隼局員工消合作社印製 409215 A7 B7 五、發明説明(2 域(或諸如檔案索引等其他控制結構)是否在使用 中或可使用之控制結構。分配對映表可讓軟體將 可用的區段及檔案索引有效地指定給新的檔案。 -登錄(L〇gs):在系統故障時用來使其他類型的中介 資料保持同步的一组記錄。登綠包含用來描述對 多個結構進行相關更新的單—記綠。 樓案系統(File system):—種軟體元件,利用與檔案資 料相關的乂〇]^11及?031乂這組標準所指示之方式,而管 理可存取資料的一组指定磁碟。亦利用該術語描述— 特定组磁碟内包含的資料及中介資料組。 共用磁碟檔案系統(Shared disk file system) · 一種檔案 系統,其中多個電腦分享檔案系統的管理,而不將所 有的管理指定給單—實體。所有的電腦都注意是否有 任何電腦可能執行管理資料所需的任何任務a可在需 要時將特定的任務指定給特定的電腦。 共用磁碟連接(Shared disk attachmem): 一種利用通訊 協足而將磁碟連接到多個電腦之方法,使磁碟如同在 當地連接到每一檔案系統。到每一電腦的正確連接通 Λ b疋對此工作並不重要;但包含以網路連接的磁 碟、交換式磁碟連接、或存轉連接等這種形式。關鍵 項目是共用磁碟連接如同在檔案系統當地,且對所有 的標案系統實例如同是同一個共用磁碟。 配額(Quota):—檔案系統限制—特定使用者或一群命 名使用者在該檔案系統的使用率之功能。例如,管二 -5- ' —I ! -n f — [ ^ I ___
'1T 經濟部中决標準局肩工消贤合作社印裝 t紙張尺度適用中國國家標準(CNS ) Λ4規輅 (210X297^^ 經濟部个央標來局貝工消f合作社印製 409215 A7 ._ B7 _ 五、發明説明(3 ) 員可將使用者"John"限制爲檔案系統内的100百萬位元 組。配額是UniX(S.C.O公司的商標)環境中所使用的功 能名稱。 -存取控制表(Access Control List): —使用者可限制在 —特定表中出現名稱的使用者對資料的存取之一種檔 案系統技術。 發明背景: 目前需要將檔案服務提供給各電腦,例如一 MPP電腦及 其他的電腦叢集,這些電腦叢集形成連接電腦的—網路之 一部分,而作爲一共用電腦資源。 現在已有與共用磁碟檔案系統的檔案資料相關之某些"開 放性(例如X〇per^ P0SIX)標準,其中將在各電腦上執行 的計算工作需要存取相同的檔案資料,就如同該資料係存 在於執行工作的電腦當地(以便執行IBM爲不同系統所開 發的系統,請參閲諸如美國專利4,274,139、5,202,971、及 5,226,159)。當多個電腦是-1網路的·一部分,且多個磁碟 是該網路的一部分時,需要產生一種共用磁碟檔案系統, 此種共用磁碟檔案系統與各標準相容,且無須改變在各 MMP或叢集等電腦上執行的多種作業系統實例。 共用檔案系統(Shared F"ile System ;簡稱SFS)(請參閲美 國專利5,〇43,S76)適用於IBM的S/390系统之術語,S/390系 統係在IBM的VM下作業,使各虛擬機器得以共用資料。 共用檔案系統也是一種諸如IBM的IMS及GRS等資料共用 媒介’其中係爲了單一系統的環境開發IMS及GRS,且在 -6 - 本纸張尺度適用中國國家標準(CNS ) Λ4规輅(2⑴X 297公苁) (諳先閱讀背而之注意事項再4艿本頁) *π 409215 Λ7 ___B7 五 '發明説明(4 ) ^ ~~ MVS下GRS係用於共用磁碟儲存裝置的一系統叢集,而且 在此種系統中GRS可在共用磁碟上分配小的鎖定標案,以 便循序進行對資料集的存取。MVS必須循序進行對磁碟上 内容表或目綠的存取,因而作業系統需要執行任何類型的 保留作業。此種方式造成了相當大的系統資源虛耗。 已可修改IBM的DB 2而適用於一多重虛擬儲存裝置 (Multiple Virtual Storage ;簡稱 MVS)/ 企業系統架構 (Enterprise System Architectures ;簡稱ESA)環境中之資料 共用,其方式爲使用IBM的耦合設施,以產生多系統的資 料共用,此種資料共用需要—System/39〇 ParaUd Sysplex 環境,這是因爲需要該耦合設施以傳送高效率且可擴展的 資料共用功能,其中該耦合設施利用美國專利5,463,736所 述的訊息路徑機制管理各處理器間之連接,因而該_合設 施在本質上變成了共用資料的超級單—伺服器。 經濟部中央標準局員工消费合作.社印災 (对先閱讀背而之注意事項#填窍本頁)
,1T 如可能是最佳種類的音訊/視訊檔案系統(IBM用於ΑΙχ作 業系統的VideoCharger伺服器)所提出,以往符合標準的對 •a胳系統之解決方案有賴於將檔案系統層級的要求傳送到 一個可取得資料並傳送回資料的一單一伺服器,或有賴於 將一用户端電腦的中介資料要求傳送到一個可讓原來的電 腦直接提取資料之單一伺服器。IBM也提供了—種被稱爲 虛擬共用磁碟(Virtual Shared Disk ;簡稱VSD)的程式產 品’可讓SP2使用者設定各節點的組態,而作爲主要及輔 助IBM VSD伺服器節點。VSD軟體可讓執行作業系統的各 獨又影像之多個節點存取一個在實體上只連接到其中一個 409215 A7
經濟部十央標準局負工消费合作社印製 —_ 409215 五、發明説明(6 ) — 處理器 ' —交換式網路、一將支援Tcp/ip的高速企業内 網路轉合、一非均一記憶體存取匯流排耦合、或其他類似 的連接方式,即可達到上逑目的。根據本發明,該共用磁 碟構案系統係利用相關聯的管理呼叫支援磁碟讀取及窝入 呼叫。作業系統實例是常見的或標準的,因而無須改變作 業系統即可使用本發明之共用磁碟檔案系統。我們提供了 所需的新服務程式’使本發明的共用磁碟檔案系統可以在 實用的方式下進行。 本發明的共用磁碟檔案系統係在一共用磁碟環境下以— 平行檔案系統之方式作業。本發明將一可擴展檔案服務提 供給具有—穩定游標的系統。本發明也提供一分段分配對 映表。在本發明的可擴展平行檔案系統中,本發明實現了 動態預取。藉由提高緩衝儲存區效能及空間利用率:而提 南本發明的可擴展平行檔案系統中之速度。此外,延伸檔 案屬性支援Unix環境中之存取控制表(Access。_丨 簡稱),机首次可在—個在—共用磁料境中可擴展 的平行檔案系統中作業。 本發明所作的各種改良可在—共用磁碟環境中對共用磁 碟及檀案環境的多個電腦作有效率的基本檔案控制。本發 明的目錄服務可以有效率之方式將檔案插入資料結構中: 並自資料結構中刪除檔案’而不會使資料結構造成太太的 混亂。此種方式在必須對所要修改的區域取得獨有控 的平行系統中是相當重要的。本發明所開發的分配對映表 能夠在以平行方式配置的同一群磁碟中分配儲存空 本纸狀度s s以!^Tcns (2m — (請先閱讀背面之注意事項再填$本頁)
409215 A7 B7 五、發明説明(7 維持中介資料的完全-致性。這點是相#重要的,因爲可 存取檔案系統的每-電腦都將希望在不必顧及其他電腦中 進行的情形下產錢外的資料^發明的預取轉法計算 可用I/O頻寬及應用程式對資料的需求,以便決定所要預 取的資料量。這點在對1/0的需求可能超過可用頻寬的平' 行系統中是相當重要的。本發明在緩衝儲存區效能上的發 展平衡了多個存取的緩衝儲存區’且緩衝儲存區效能的發 展雖然與平行處理並不相關,但仍是檔案系統的一般性改 反。利用植案屬性作爲-支援機制也適用於非平行樓案系 統;但是在本發明的整體平行權案系统機制中,此種利用 檔案屬性作爲一支援機制是相當重要的,因爲此種方式可 在一平行檔案系統中有效地實施存取控制表。 訂 本發明提供了可在一共用磁碟環境中對同一檔案或目錄 進行平行更新。本發明提供了 —中介資料節點,用以管理 在平行讀取及寫入動作中使用的檔案中介資料3在本發明 的系統中,將符記(token)用於中介資料節點的選擇及識 別,且本發明具有增強符記模式,用以控制檔案大小,並 以智慧型方式緩衝儲存使用檔案存取型樣的位元組範圍符 經濟部中央標準局負工消费合作社印" 記、及使用一位元組範圍符記介面的位元組範固鎖定演算 法。 、 平行樓案更新需要有一些創新之處,這些創新處仔細考 慮到下列問題:在更新來自多個電腦的同—檔案時,如何 有效率地產生及更新中介資料。本發明的—種解決方案是 建立一中介資料節點,該中介資料節點處理—慣地來自多 _________ -10 - 本纸悵尺度適用中國國家標準(CNS ) Λ;5現格(2丨〇'x 297公龙) 409215 A7 B7 五 、發明説明(8 個發端電腦應用程式的某些可改變中介資料之合併。第二 種解決方案是提供一種鎖定架冑,用以有&地對所有需要 (請先閱讀背而之注意事項再填寫本頁) 其服務者識別該電腦。此種方式無須建立—個可能造:瓶 頸的固定管理點。 現在,檔案大小是—種中介資料,用以經常改變平行更 新的狀況。本發明提供了一種在執行的應用程式需要正確 的檔案大小時”及時"取得正確的檔案大小之方法。此 外,本發明重新界定了鎖定技術,用以減少此環境中符記 管理器之虚耗作業。 本發明提供了在無法使用參與共用磁碟管理的電腦時之 檔案系统回復,可能有多種原因使該電腦無法使用,其中 包括系統的故障。本發明提供了一種平行檔案系統回復模 型,並以同步及非同步之方式接管一中介資料節點。 本發明的平行共用磁碟檔案系統可將某些資源的控制權 暫時指定給一特定的電腦,以供修改。在此種情形中,其 他電腦可得知的磁碟上的結構可能處於一不一致狀態,而 且必須在發生故障時修正該結構。爲了處理此種情形,本 發明提供了一種延伸標準登錄及鎖定回復的方法,使其他 經濟部中央標準局員工消费合作社印掣 電腦持續在存取檔案系統上大部分的時得以進行此種回 復。 現在’在UNIX環境中,配額的觀念以其名稱而廣爲人 知。配額是一種可用來管理一空間的起始範圍之一般性觀 念’且可配合諸如S/390所用的作業系統等其他的作業系 統而使用此種觀念。一般而言,當我們考慮到配額時,必 11 - 表纸張尺度適用中國國家標準(CNS ) Λ4規枱(2!〇x 297公兑) 409215 經濟部中央標率局貝工消贽合作枉印" A7 B?五、發明説明(9 ) ' 肩積極地管理配額,使鎖定不會經常被需要用來代表一使 2者分配新的區段。本發明針對配額管理提供了可回復的 當地分配額(local share),其中情形將於下文中説明之。 見由於配額是一種對—使用者或一群使用者可使用的磁碟 里1限制,所以爲了將該配額觀念用於本發明的平行檔案 系統中,本發明創造了一種由一(存取單一配額檔案的)配 額管理器分配當地分配額以供平行分配之方式。此種方式 對一使用者有多個應用程式實例在共用一檔案系統的若干 不同電腦上執行的情形是相當重要的。本發明開發之方法 在發生故障時有足夠的配額存在時的許多情形中提供了立 即的回復。在某些情形中,需要執行一個諸如υΝΙχ標準 公用程式"qUOtacheck"等的公用程式以完成該回復。本發 明亦開發了一種技術,可在應用程式使用配額的同一時間 執行一 quotacheck公用程式,且只有最小的干擾。 上述這些及其他的改良係述於下文的詳細説明中3爲了 更易於兩解本發明及其優點與特徵,請參閲下文之説明及 圖示。 f付圖簡述 圖1示出一個根據本發明的共用磁碟檔案系統,該系統 包含一個用於各電腦系統節點之符記管理器。 本發明之詳細説明: 設有若干相關元件的本發明共用磁碟檔案系統之一較佳 實施例係示於圖1。如圖I所示,本發明之系統包含一符 記管理器(Π),用以將鎖定能力提供給參與一檔案系統管 -12^ 本紙伕尺度適用中國國家標準(CNS ) Λ4規2】〇χ 297公筇) (讀先閱讀背而之注意事項再填艿本頁) -丨"
*1T 409215 AT B7 五、發明説明(ΊΟ 理的電腦節點U)、(2) '及(3) ^ (請注意,在本發明的符記 管理器中,必須修改美國專利5,454,108之鎖定管理器) 本發明之檔案系统碼管理應用程式所要求的讀取及寫 入。此種管理使用應用程式要求及共同管理的中介資料, 而在標案系統内產生及存取資料ώ該功能是大部分的處 理’且在所有的電腦中都相同。由於設有適當的符記,所 以琢處理利用磁碟讀取、寫入、及控制功能而直接存取磁 碟0 如圖1所示且於前文中概述的共用磁碟實施例有勝過先 则平行及叢集檔案系統的數個主要優點。該共用磁碟實施 例提供了將資料移動進出所用應用程式之可能最短路徑。 資料或中介資料在此路徑中都没有擋案系統伺服器。可使 用任何可用的路徑,以避免使一伺服器成爲瓶頸或單一故 障點。因爲鎖定管理器中所需的各中央功能並未連接到一 特疋的電腦,所以該等中央功能可自茱一電腦移到另一電 腦,以滿足效能及可用性之需求。 輕濟.邙中央榡毕局員工消费合作.社印^ (诗先閱讀背而之注意事項再琪寫本頁) 訂 爲了作出本發明所述的系統,如前文所述的美國專利 5,454;108示出一種鎖定管理器,而本發明已修改該鎖定管 理器,使其夠處理共用磁碟檔案系統所需的不同回復典 範’本發明也增加了中介資料節點處理所需的一些額外鎖 定狀態,而得以對同-檔案進行平行更新。將在下文的詳 細説明之各節中詳述這些特徵及其他特徵。 (extend.ble hashin.)^ ^ 展的目錄服務 13- 本紙張尺度適用中國國家標準(CNS )八4規枯 (210X 297公犮) 經濟部中央標準局只工消费合作社印t 409215 A7 —-- 五、發明説明(u ) 一 在本發明的共用磁碟檔案系統實施例中,本發明開發了 種以支援極快速插入、刪除、及查詢作業之方式而爲— 且資料a綠進彳了儲存及建立索狀方法,該方法並在可 =任何作業系統實例(甚至是單一作業系統)中實施的—環 兄中以不會和現有的介面程式設計標準(例如X/Opei^〇
Slnglel|nix規格)衝突之方式,而循序擷取("掃描")所有 、;料己錄因此,開始時將先説明本發明的循序掃描、 及儲存與查詢資料記錄的基本方法。與先前的建立索引方 法不同’本^'明縱使在循序掃描進行中插人或刪除記錄, 本發明之循序掃描只利用少而有限量的與上下文相關之資 訊(:’游標即可產生可預測的結果。本發明所採用的方 疋在種被稱爲可延伸赫許法的技術領域中。一個實施 勺可L伸赫許法可使用稀疏檔案(sparse ,而不儲存一 個明確的赫許表°因此’由於使用了可延伸赫許法,所以 本發明可在一個符合Unix標準的檔案系統(雖然並未作如 此的限制)中實施目錄。一般而言,可在一 Unix作業系統 3承境中實施本發明之較佳實施例,並將該環境視爲一背 景’然而我們也考慮到使用同一功能的其他作業系統。事 實上’現代的基本系統可配合在實際用於驅動電腦的作業 系統層以上的許多作業系統層而工作。 資料課系統及一般用途的檔案系統係以指定一個可識別 一資料記錄或—檔案的”關鍵字"("key")之方式,而得以 儲存及擷取資料。在一個_般用途檔案系統中,檔案名稱 是作爲擬取樓案中儲存的資料之關键字;通常將一個儲存 -—— _____-14 - 本紙張尺度適财賴紐: (請先閱讀背面之>i意事項再¾¾本頁} ---A1-----訂------ 40^2n 經濟部妒央橾準局員工消费合作社印製 五、發明説明(1: •且福案名稱及相關於沾桃& > , 關知的檔案存取資訊的結構稱爲目錄。 f引的輔助:錄或檔案名稱較大時,經常使用-種被稱爲 ==料結構來加速查詢…索?丨可在—資料庫表 : = 案名稱—而無須掃描整 *31有數種基於赫許表及諸如ML樹與B樹的平衡式搜 方。爲了達到&好的查詢效能,這些方法 或刪除某—數目的資料記錄之後必須重組至少部分 掛二引例如,將—圮錄插入一 B樹時,可能需要將一B P ’么刀割成兩個新的節點,以便讓出空間給該新的記 ,彔因此,可能需要將—些現有^& _㈣—$ 體位置。 此種方式對f要循序掃描—資料庫表或m统目錄 的應用&式(例如列出_目綠的内容)造成問題。此類應用 程式重複呼叫資料庫或檔案系統,而在每一呼叫中擷取一 « ie錄’直到6 M取了所有的記錄或目錄資料項 時爲止。在各次呼叫之間,必須維護某—數量的與上下文 ,關乏訊(通常稱爲"游標"),以便追蹤該掃描已進行了 多遠。此種方式是必要的,使次一呼叫可繼續擷取其餘的 °己錄保案系統目錄的實施例通常使用—目錄内的一資料 項之實體位置或偏移量作爲一循序掃描的游標。因爲—個 如一 B樹分割的索引更新可能將現有的資料項移到目錄内 的一個不同位置,所以在—循序掃描中插入或刪除登錄的 資料項時,將對掃描的結果有不利的影響;亦即,如果移 -15 本紙張尺度適用中國國家標準(CNS ) Λ4現輅(210x 297公总 (請先閒讀背面之注意事項再填{ί5本頁) 丁 ,-° 4092η A1 一 Β7 躂濟部中央榡準局員工消贵合作社印裝 五、發明説明(13 ) 動一個現有的資料項,則循序掃描可能漏掉該資科項, 者可能送回兩次相同的資料項。 s 爲了解決先前晋知索幻方法所發生的此種問題,我們可 使索引獨丘於資料記錄,或者可在一掃描中错存更多的與 上下文相關^資訊。前—種方式使查詢、插入'及删除作 業的成本更高也更爲複雜,這是因爲比本發明之較佳方 需要有額外的間接層級。當系統需要與現有的程式設計二 面標準相料,U儲存肖上下文相關的資訊之方法二 無法適用了。例如,在X/〇Pen Smgle驗規格中規定的目 綠;I 面(readdir、telldir、及 seekdir 函式)可以一個單一 32 位元値作爲一猶序目錄掃描之游標。 由於本發明所開發的採用可延伸赫許法之較佳方式,本 發明可證明如何以一種支援極快速插入、删除 '及查詞作 業以及循序掃描之方式而爲—组極多的資料記錄料儲存 及索引建^。此外,我們當可了解本發明所開發的較佳方 式之下列情形:-個小而有界限的游標值(通常爲”位元) 足以保證-循序掃描將不會送回任何重複的記錄並可糊取 所有現有的記錄(亦即除了在掃描進行中所插 的記錄以外之所有記綠)。 啟]除 、現在;^豕都知道赫許法是—種以關鍵字㈣)儲存及查詢 資料記綠的技術,如果預先知道記綠數的—適當範圍,則 2許法技術將可工作良好。赫許法工作時,係將可用的错 子空間分成固定數目的"赫許儲存區,,("hash bucket")。爲 了儲存-個記綠’應用一種稱爲,,赫許函數"(Μ
I — J I f許先閱讀背而之:15-意亊項再填圬本頁) i" 丁 -=° 本祕尺度適财 -16 (2Ι0Χ 297公势) 409215 A? B7 五、發明説明(14 function")之對映方式,將關鍵字値對映到一赫許儲 數;將新的記錄错存在由赫許植所指示的赫許錯存區 了以關鍵字尋找-個記錄,計算該記綠的赫許値然後: 搜尋該赫許値指示的儲存區中所儲存的記錄,即 ^ 要求的死錄。 -般而Τ’無法事先知道所要儲存的赫許値數,且該 許植數可能成長到任意大的數。此種情形對標準的赫許技 術造成-㈣題,因爲標準㈣許技術需要在—開始時 知,赫許儲存區的最大數目…種稱爲"可延伸赫許法,, 的先進形式的赫許演算法解力了此_問@,其解決。 ::許函數的値中採用可變數目的位元當一赫許儲存二 =即二裂"該赫許儲存區,亦即加入一個新的赫許 儲^,將—些記錄自現有的赫許儲存區移到新的赫許 =乙Γ新評估赫許函數並多使用一個位元來決定赫 之方式而決定要移動哪些記綠,亦即,額外的 位凡馬零的鱗留在現有的儲存區,而 的記錄則被移到新的儲存區。 凡 ®濟部中央標準局員工消費合作社印31 使用本發明採用可延伸赫許法的較佳實施例時,一索引 ^錄開始時係存放在-單一赫許儲存區,亦即第零個儲 要儲存區能夠容納,不論記綠的赫許値爲何,都 被用來決ί綠放入起始儲存區中,亦即赫許函數的零位元 入-個二赫坪儲存區編號。當起始儲存區填滿時,即加 ‘勺赫許儲存區(亦即第—個儲 始儲存區。現在赫許函數的-位元被用㈣二St -17 本紙張尺度適用中國國家標车 (CNS ) Λ4現格(2l0_x 297公并 409215 A7 B? 铉濟郢中夹滹準局負工消费合作社印絮 五、發明説明(15 赫許値的最低有效位元爲 區,而最低有& ρ ά 〈那些記錄留在第零個儲存 區。要將新的記綠加入第己綠則被移到第一個儲存 許値的最低有效位元之値:=7:儲存;二係取決於赫 區又被填滿且需要分裂。 5在^卜赫許儲存 元來決定是否將要移開第—儲广用赫許函數的最後兩個位 的那些記錄留在第—赫許广?己錄。位元値爲01 記錄則進入一個儲存£_ ’而位元値爲11的那些 的1㈣… 爲3(二進位的"等於十進位 許儲存E巾、°儲存區。适次的分裂不會影f到在第零赫 亦即最後兩個位元爲。。或1。的記錄 二存區’直到第零錯存區已被填滿且亦需要分 彳能在第零儲存區分裂之前’第-儲存區被 填滿且再度需要分裂。 表1中實例所示的—66 - A _L+1 . — Ί 的一進位树("赫許樹11 )可代表經過 數次赫許错存區分裂之後的目錄結構。利用赫許値位元決 f在每τ内部節點上時要依循哪-分支,⑥以自根到一葉 即點(万式通過該赫許樹,即可找到—記錄。取決於各赫 許値分佈的情形,赫許樹的某—分支可能比其他的分支更 長對於個經過適當選擇的赫許函數(亦即一個產生均 习刀佈的赫沣値之函數)而言,我們預期所有的樹分支都 有近似相同的深度。以深度優先之方式通過赫許樹,即可 元成循序目綠掃描,此時係以自左到右的順序檢查各葉節 點(赫許儲存區)。 _____—__-18- 本紙张纽制巾關家料(CNS〉(別幻97公处) (讀先聞讀背而之注意事項再填寫本頁)
409215 A7 B7 五、發明説明(π 表1
X
X
X 00=0
X 01=1 11=3 經濟部中央標势历負工消费合作社印^ .910;2 110=6 一個赫許樹在經過4次分裂之後的例子: 第〇儲存區分裂成第〇儲存區及第1儲存區, 第〇儲存區再度分裂成第〇儲存區及第2儲存區, 第2儲存區分裂成第2儲存區及第6儲存區, 第1儲存區分琴成第1儲存區及第3儲存區。 以二進位及十進位的赫許數標示赫許樹的各葉節點。 根據本較佳實施例,係將一赫許樹表示爲磁碟上的稀疏 檔案’且於一赫許儲存區分裂時重新安置各記錄,而且循 序目錄掃描係以只回到所有現有資料項一次之方式通過赫 許樹。每一個這類發展的領域都提供了適用於本發明系統 之改良。 在本發明的系統中,稀疏檔案係用於實施可延伸赫許 法。在一檔案系統中,係將寫入一正規檔案的資料儲存在 磁碟的一個或多個磁碟區段中。Unix及類似Unix的檔案系 統介面可在各寫入呼叫之間發出"搜尋"呼叫,而將新的 表1 (請先閱讀背而之注意事項再填寫本瓦) -19 - 本紙張尺度適用中囷國家標隼(CNS ) Λ4規柏(210X 297公势) 409215 經濟部中央標準局貞工消开合作社印裝 A7. B7 五、發明説明(17 資料寫入超過一檔案的目前結尾之處。此種方式將產生具 有間隙或"空洞"(亦即一檔案内並未被寫入任何資料之區 域)的檔案。將此種檔案稱爲"稀疏擋案,,。對稀疏檔案的 讀取作業將送回一些零値,此時讀取的偏移量及長度交叉 到一空洞。支援稀疏檔案的檔案系統實施例只有效率地分 配磁碟儲存容量給寫入資料的檔案區域,而不分配給空 洞,或者至少不分配给大於區段容量或該檔案系統所用的 磁碟分配單位之空洞。 在本較佳實施例中,係利用一稀疏檔案實施基於可延伸 赫彳法的索引或目錄。每一赫許儲存區係以一偏移量 而儲存在檔案中,其中i是赫許儲存區编號(自零開 始),S是赫許儲存區大小(所有的赫許儲存區都有相同的 大小)。目綠開始時是一個空的檔案。當插入第一記錄 時,係知該C錄儲存在第零赫許儲存區,且循序將記錄寫 入標案中,而將權案大小自零增加到s 3當第零赫許儲存 區需要分裂時,寫入第!儲存區,而將檔案大小自s增加 到2*s。次一赫許儲存區分裂將取決於前兩個儲存區中哪 -儲存區需要作次-分裂,&寫人第2或3赫許儲存區。 如果第1儲存區作次一分裂,則將寫入第3赫許儲存區, 而將檔案大小自2*s增加到4*s,而在偏移量2*s處在檔案留 下一個空洞,其中第2赫許儲存區將自偏料&處開始2 入。表2示出如何將表丨所示實例中之赫許樹儲存在一 疏檔案中。 _一_-20- 本纸浪尺度適用中國國家標準(CNS ) A4規栝(2!〇χ297^犮) (請先閱讀背面之注意事項再填寫本頁)
409215 A7 B7 五、發明説明(18 ) 表2 第0儲存區第1儲存區第2儲存區第3儲存區空洞空洞第6儲存區 表2 :將表1所示的赫許樹對映到一稀疏檔案。 經濟部中央標苹局貝工消費合作社印製 (請先閱讀背16之注意事項#填ϊίτ本頁) 訂 如前文所述,自根(第〇儲存區)開始由上向下通過赫許 樹,即可找到一個具有一特定關鍵字之記錄a然而,因爲 我們預期所有的樹分支都有近似相同的深度,所以更有效 率的方式是由下向上通過該樹。執行的方式如下文所述。 若知道檔案大小,則我們可計算最長赫許樹分支的深度, 因爲在-個最大深度爲d的赫許樹中,所以所有的赫許儲 存區編號都是d個位元或更少的位元,且至少一個儲存區 必須有-個第d位元是-的儲存區編號。目此,可將最大 深度d計算爲最大赫許儲存區編號中之位元數,亦即仏 -1,其中f是㈣大小。爲了以-特定關鍵字查詢-記 :效我們:須先計算以該特定關鍵字的赫許値的」個最低 !上:赫許儲存區編號b。如果赫許樹的所有分 冰度’則即可保證可在以該關鍵字表示的赫 :#中找m己錄1爲儲存該特定關鍵字的分支之 木度可能小於d,户斤以儲存區b可 中。如果發生此種情形,則該標案將在:二:= 許値的-個較小位元計算則我們利用赫 固新的赫許儲存區編號b',此 本紙張尺度適用中國國家標準(CNS ) A4規棺 -21 - 409215 A7 B7 五、發明説明(19 時如果該赫許樹分支的深詹良d 木度爲心1,則將可得到該記錄的 位置。只要在檔案中碰到-個空㈣,即重複上述的程 I (請先閱讀背面之注意事項再填寫本頁) 序。-旦找到-個非空洞之後,如果具有該特定關键字的 記錄存在’則必定在該赫許儲存區中找到該記綠。查詢及 插入作業的處理情形如下: 查詢作業: 1.計算所查詢的關鍵字之赫許値11。 2·以檔案大小除以赫許儲存區大小,在求基爲2的對數 値,然後捨入到次-整數,而計算出赫許樹深心。 3. 將赫許儲存區編號b計算爲個最低有效位元: b=h mod(2,d) 4. 自樓案的偏移量b*s上擷取赫許儲存區,其中s是赫許 儲存區大小。 -二1Γ 5. 如果赫許儲存區未存在(樓案在偏移量上有一空 洞),則將d遞減一,並回到步驟3。 6. 在赫許儲存區b中尋找具有指定關鍵字的記錄;如果 " 找到琢兒綠,則送回該記錄;否則送回"並未找 的錯誤訊息。. 插入作業: 1. 利用所要插入的記錄之關鍵字,以如查詢作 =到5所述之方式,計算赫許深度仏赫許儲存區編 就b。 2. :果具有該特定關鍵字的一記綠業已存在於赫許儲 存區b,則送回"業已存在"的錯誤訊息。 22- 本紙张人度適CNS ) Λ4規格(210>< 297公® A7 409215 五、發明説明(20 ) ~ ~ 3.如果赫許儲存^中有足夠的空間保留给新的記錄, 則儲相記綠並傳送回H必須分裂赫許儲存 --I -n i I l~ 1 - - - 1*I- i n I - I— (請先閲讀背面之注意事項再填寫本頁) 區b,以便讓出空間給新的記錄,其中情形將於下列 步驟中説明之。 4-計算b,=2-!d+b。 5 .對於赫許儲存區b中所有的記錄而言,重複下列步 化計算v=h mod(2 id+l)),其中h是該記錄的關鍵 芋之赫許値。請注意,v必須等於b或b ,,因爲 對赫許儲存區b中所有的記綠而言h m〇d 2 _^等 於b 〇 5b.如果v _ b ,則將該記錄移到赫許儲存區b,;否 則,將該記錄留在b中。 6.將d遞増一,並重新計算1>爲11 m〇d(2 ,其中卜是 所要插入的記錄之關鍵字。 回到步驟3。 鲮螭部中决樣羋局Μ工消贽合作乜印製 雖然本發明所述的可延伸赫許法實施例可配合任何赫許 儲存區大小而工作,但是如果儲存區大小與檔案系統的區 ^大小相同或爲區段大小的倍數,則該實施例將更有效率 地工作。這是因爲在空洞對準檔案系統的區段邊界時,一 甸有效率的稀疏檔案實施例並不需要任何磁媒I/O來讀取 —空洞。因此,如果現在並未在緩衝儲存區中儲存保有該 6己綠的赫許儲存區,則所有的查詢作業只多只需要—個磁 碟I / 0來讀取該赫許儲存區。請注意,此時假設在緩儲 ___ -23- 本紙张尺度適州中國囚家榡牟(cf>is ) Λ4说格(2ί0Χ297公釐〉 經濟部中*標卑局負工消费合作社印製 A7 ________________B7 五、發明説明(21 ) -— 存區中儲存了包含檔案的磁碟區段位置之檀案中介資料。對於均勻分佈的赫許僅而言,我們預期平均在每一查詢 =業中將碰到0.5個空洞。如果可延伸赫許法實施例^接 的中介資料(例如,如果利用可延伸赫許法 實施例實施檔案系統中之目錄),則直接查詢檔案中介資 科,即可識別2洞。否則,查詢作業必須對其計算的每一 赫許儲存區編號至少讀取某些資料,並以該讀取作業送回 的都是零而識別-空洞。儲存具有一個包含—非零値的短 起始碼之赫許儲存區,即可以最簡易之方式執行上述程 序。 現在本發明提供了赫許儲存區的分裂及合併。記綠係儲 存f每一赫許儲存區内,且當一赫許儲存區分裂時,即移 動這二。己綠。在刪除圮綠之後合併若干赫許儲存區,即可 收回磁碟空間。 母—赫許儲存區包含一個具有一"赫許樹層級,'欄位之起 始碼。該襴位的値只是赫許儲存區在赫許樹内的層級,亦 即該儲存區離開赫許樹的根有多遠。開始時赫許樹只有— 個儲存區,亦即在赫許樹層級零上的第零儲存區。當第零 儲存區分裂時,其赫許樹層級自零改變成一:新的儲存區 編號一是第零儲存區在分裂之後的兄弟儲存區,亦即該新 的儲存區之赫許樹層級將也是一。每當一赫許儲存區分裂 時,其層級即増加―,且將與進行分裂的儲存區相同的赫 彳樹層級指定給所增加的新儲存區。 每S知個新的έ己錄加入一赫許儲存區時,即在該時間 -----24- 本紙张尺度^2l0x297ii7 .In —ί I— (請先閲讀背面之注意事項再填跨本頁)
Hi I ..---夂
'1T A7 B7 五 22 --"部中央掠丰局η消贽合作社印來 409215 、發明説明( 將孩圮綠連同赫許儲存區的赫 許儲存區分裂時,即遞増儲 =、·及—起儲存。當該赫 級,但連同每-記錄错存的料^碼中儲存的赫許樹層 新赫許儲存區的記錄也保持其層、.及足保持不變。移到 此,將和—特定印錄細紐,、原九的赫許樹層級値。因 φ 〇 聯的赫許樹層級値與該赫許儲存 上的赫許樹層級比較,即可決定在該儲存區 種能I 插入了該記錄。循序目綠掃描需要此 種旎力,將於下文中詳述其中情形。 描的另—項要求是:—旦插入記錄之後,一赫許 ==綠之偏移量即保持穩定。因此,當我們在 在或刪除-記綠時,現有的記錄被保留 ……的k置’亦即並沒有自由空間的壓縮。此外,當 因分裂而將—記錄移到—個新的赫許儲存區時,即將該纪 T儲存在該新的儲存區中與原始赫賴存區相同的相對偏 移量處。此時,連同赫許樹層級,即可重建—赫許儲存區 在分裂之前的内容。 f某一次數的删除作業之後,最好是收回不再需要的磁 碟空間。如果兩個同胞葉節點中之記錄少到可以放入單一 赫許儲存區’則合併這兩個節點,即可完成上述程序。然 而,循序掃描在合併及分裂中需要保存各記錄偏移量。此 即意指:爲了決定是否可合併兩個赫許儲存區,只在兩個 儲存區中加入自由空間是不夠的;反而需要驗證:當將兩 個赫許儲存區合併成單一赫許儲存區時,任何兩個記錄都 不曰重叠。達到此目的之最簡單方法是將這兩個赫許儲 —____ ___ - 25 - 本紙張尺度^i—捸 (請先閱讀背面之注^|0^項再填寫本頁)
五、發明説明(23 409215 at :并的時機延遲到這兩個赫許儲存區中之一赫許儲存區 元全空出時。 田口併兩個赫許儲存區時,儲存區編號較高的一儲存區 較低己綠被移到儲存區編號較低的另一儲存區,且將編號 儲低的儲存區的起始碼中之赫許樹層級遞減一。清除赫許 :存區値較高的赫許儲存區之内容,*自檔案中去除該赫 艮^存區。在類似Unix的檔案系統中,呼叫fc〖ear函式, ^可執行上逑程序;如果該檔案系統有效率地實施稀疏檔 ’則該程序將因收回該赫許儲存區先前所佔用的磁碟儲 存空間,而產生—空洞。 在本發明的較佳實施例中,爲了支援循序掃描一目錄或 索引中之所有記綠,提供了一種可重複呼叫的掃描作業, 用以送回赫許樹的内容,此種掃描作業被稱爲循序目錄掃 描。每一呼叫送回一個或多個記錄及一"游標"値,且必 須將該游標値傳送到次一呼叫,以便擷取次—组記綠。現 在將首先説明在掃描進行中並未插入或删除任何記錄時目 錄掃描的工作方式’然後將考慮如何處理因對掃描常式的 各呼叫間之插入或刪除而產生的赫許樹變化。 目錄掃描開始時係自赫許樹中最左邊的赫許儲存區(必 然是第零赫許儲存區)擷取記錄。一旦送回第零儲存區的 所有記錄之後’繼續對赫許樹中第零赫許儲存區的兄弟赫 許儲存區掃描。由於建構赫許樹的方式,赫許樹中深度爲 d的兩個兄弟赫許儲存區之赫許儲存區編號間之差異只在 第d個位元,亦即,在赫許儲存區編號的第d個位元上, -26- 本紙張尺度適用中國S家標準(CNS ) Λ4規格(2丨0 X 297公釐) ----.--„---------訂------广 (請先閲讀背面之注意事項再填窍本頁} 經濟部中央榡準局只'.T.消贽合作社印54 409215 37
結:¾—部中夹榡準局员τ_消费合作.社印V 記 於 進 五、發明説明(24 左邊的兄弟赫許儲存區有—個零,而右邊的兄弟赫許儲存 區有-個…因此,第零赫許儲存區的同胞赫許错存區是 bl=2n(d·”(在第d個位置上的單一位元)。在自第μ個赫 許儲存區㈣所有的記錄之後,在赫許樹中在第—赫許樹 通過階深度上繼續對次—赫許儲存區掃描。在第Η個儲 存區之後的次-赫㈣存區並不是—個兄弟赫許儲存區, 而是在赫許樹的一個cM深度上與第bl個赫許儲存區共有 -個共同的來源赫許儲存區。因&,該次—赫許错存區將 在位元位置d-Ι上有一個丨位元並在位置d上有—個零位 元,而得到一個赫許儲存區編號b2= 2 ”(d_2)。一般而 巨,若一第b赫許儲存區是在赫許樹的深度d,則可在第 一赫許樹通過階深度中長到次一葉節點,其尋找的方式 爲:取得b的d個最低有效位元,然後顚倒這些位元,再 將一個模2^d加到所得到的値,最後再度顚倒所得到的結 果。 因此,可利用一個包含一赫許儲存區編號15及一個在— 赫許儲存區内的相對偏移量Γ之游標c=(b,r),而實施—赫 許樹掃描。以一游標値(b,r)呼叫的一掃描作業首先檢查第 b赫許儲存區中在大於或等於1的偏移量處是否還有;何 記綠。如果確係如此,則該掃描作業送回—個在^之後 次一記綠、及一個新的游標値(b,〇,其中r,是在送回哕 錄後的次一偏移量》如果第b赫許儲存區中在大於或^ r的偏移量處沒有任何記錄,則以—(b,,〇)的游標値繼續切 行掃描,其中13_是次一赫許儲存區編號,且係利用上述以 27- 本紙張尺度適用中國园家標苹(CNS ) Λ4規格(210X297公漦) /--J----------訂------4ΛI (請先閱讀背面之注意事項再填寫本頁) 409215 A7 B7 25 五、發明説明( (請先閱讀背面之注意事項再填ί本頁) 位元顚倒/遞增程序,而以儲存在第^^儲存區的起始碼中之 赫許樹層級所提供之一 d値來計算該次—赫許儲存區編 號。如果對v的該計算得到一個0的値,則我們已達到赫 許樹的終端,且不再送回任何記錄。 *11 在對掃描常式的各呼叫之間處理因插入或刪⑨而發生的 赫許樹改變。因爲我們並未移動一區段内的各現有的記 錄,而插入一個新的記錄或刪除—個舊的記錄,所以只要 插入及删除不會造成赫許儲存區的分裂或合併,插入及刪 除就不會影響到循序掃描°因爲在此種情形中現有的記錄 並不會移動’所崎描最多只將發現每-記錄-次,並保 战送回m掃描進行巾被删除者以外的所有現有的記 錄。一個新插人或删除的記錄可不可以找到係取決於記綠 的位置(赫許儲存區及偏移量)、及插入/刪除相對於循序 掃描通過赫許樹的時機。如果分裂/合併在循序掃描到達 刀n /合併所影響的赫許儲存區之前發生,或者如果分裂/ 合併在掃描已前進離開受影響的儲存區之後發生 許儲存區的分裂或合併並不會影響到循序掃描。 只有在循序掃描已送回分裂或合併影響的赫許儲存區中 經7¾-部中决橾準局妇工消资合作社印 =但2部的記錄時’即進行對該赫許儲存區的分裂 = 才而要作特殊的考慮。當-區段分裂時,可將先 回到掃描常式的某些記錄移入新的赫許儲存 :綠”相碰到新的區段時,將再度送回相同的 二丄::=:赫許儲存區合併可能使掃描遺漏-些記 。二自—個該掃描所不曾碰到的區段移入現有 本紙狀度適财關幻料. 28 (210X297公釐) 409215 b77 26 五'發明説明( {請先閎讀背面之注意事項再填湾本頁}
、1T 的赫許儲存區中-個小於現有掃描游標値所指示的偏移量 <偏移量位置。本發明以下述方式解決這些問題:偵測將 影響循序掃描的一赫許儲存區之分裂或合併;以及在必要 時重建分裂或合併之前的赫許儲存區狀態,以便在不回遺 漏或重複記綠的情形下繼績進行掃描。以下文所述之方式 =~赫許樹層級包含在掃描常式所送回的游標値内,即可 完成對一分裂或合併的偵測。當掃描常式自一第b赫許儲 存區送回第一記綠時,該掃描常式送回—游標値 c=(h,b,r),孩游標値包含前文所述的赫許儲存區编號匕與 相對偏移量、《及於讀取該[記錄時在赫㈣存區的赫 冲法中發現的赫許樹層級値h。當將此游標値傳送到對掃 描常式的-後續呼叫時,將該游標値提供的赫許樹層級h 與在該赫許儲存區的起始碼中發現的現有赫許樹層級h ,比 較如果h外,則在對掃描常式的兩次呼叫之間必定發生 第b赫許儲存區的分裂;如果h,<h,或者如果第1?赫許儲存 區不再存在,則(檔案的偏移量b*s處包含一個空洞),則 该赫6午儲存區必定已被合併。 將赫許儲存區重建成游標產生時該赫許儲存區的狀態, 而處理赫許儲存區的分裂。利用一個暫時性的緩衝區來保 存重建後的赫許儲存區 以一次一個的方式讀取原始赫許 儲存區的各衍生赫許儲存區。並將原始第b赫許儲存區中 存在的任何記綠拷貝到該暫時性緩.衝區中。檢查前文所述 連同每一記錄儲存的赫許樹層級,而識別所要拷貝的記 錄,亦即,因而拷貝赫許樹層級小於或等於h且在第匕赫 409215 A7 B7 27 五、發明説明( 許儲存區分裂之前即已存在的所有記錄 =分裂時保存了被移到-個新赫許儲存區的記錄== 請 f 先1 閱 I 讀 背L 面 | I之1 I ' 事I 項 I 再 填I 寫 ^ 頁 同一㈣^ 己錄拷貝回該暫時性緩衝區中的 之狀態(但不包括爾後被刪除: 詩利用該暫時性緩衝區中重建的區段, 當掃描常式當達該暫時性緩衝區的終點時, 讀“式利用上料位元遞増程序, 游標的赫許樹層級h所提供之—d値來計算所要碰到3 —赫許儲存區。 訂 3最後’係在—循序掃描中處理赫許儲存區的合併。如果 知描游標e=(h,b,r)提供的赫許樹層級u於在赫㈣存區b 的起始碼中發現的赫許樹層μ,,或者如果第㈣許儲存 區不再存在(亦即反而發現—個空洞),貝“貞測到一合併。 類似於分裂的情形,將赫許儲存區重建成產生游標時該赫 ㈣存區的狀態(亦即在合併之前的狀態),而執行赫許儲 Τ區合併的處理。然而’在此種情形中,並不需要在一獨 =的緩衝區中重建先前的赫許儲存區。而是掃描係對被合 併7赫許儲存區作業,對該儲存區進行多次掃描。在每一 ’人掃痴中’只运回其中—個原始儲存區的記錄;而不理會 其他的,錄。重新計算每一記綠的赫許値,並將該赫許値 的h個最低有效位凡與現有掃描游標提供的赫許儲存區编 號b比較,而執行上述步膝。如果以上所比較的兩者相 同,則在第b赫許儲存區被合併之前該記錄即已被放入該 -30-
本紙張尺度適财關緖4M 409215 A7 B7 五、發明説明(28 赫才儲存區中,因而掃描作業將送回該記錄。否則,將不 理會該記錄。請注音,1$L u ^ 〜、如果弟b赫許儲存區不再存在(亦 即反而發現—個空洞),則在赫許樹中往上—個或多個層 級,直到發現-個黑空洞區爲止(類似於查詢作業),而以 ==現包含赫許儲存區合併結果的儲存區。當掃描 對所合併赫許儲存區的一掃描之終點時,該掃描 二3二述的位元顚倒/遞增程序’而以自掃描游標的 赫^樹層級h所提供之—d値來計算次一赫許儲存區卜 如果新的儲存W是所合併赫許 =:=^,,。)對所合併= 掃描二:4:=,:==次 赫許儲存區進行作業,其中h"是在第^儲吊對第b 中發現的赫許樹層級。 5子區的起始碼 程式設計師可以可實施掃描作業演 言幹:施本發明所述的方法,該掃插作式語 輸入:游標値c=(h,b,r) 耷如下: 輸出 用於送回一個或多個記錄之緩衝區 在所提供緩衝區中送回的記綠 新的游標値 請〉主意 在對掃描常式的第一次呼叫 (0,0,0)的游標値;在後續的呼·〜'傳送—的 , 死則呼叫咕… 標値應被傳送到次一掃描呼叫。 迗回的游 1 設定 h^h, b'=b -31 -
2 五、發明説明(29 ) 自樓案的偏移量4 # 赫許儲存區大小。赫許儲存區,其中S是 案在偏移量b'處包上:)許儲/區並不存在(制 ^^ ^ ° 二洞),則將h ’遞減一,重朝 计异 b '爲!V=m〇(J 2 -th,,# n 2:i t ,並回到步驟2的開始處。 占又疋h’爲在第b’赫許儲在泛沾』 .,π ^ φ f锗存區的起始碼中發現的赫許掏 層'.及’如果h、b、及θ ^ λ 及1都疋零(掃描的開始),則設定ίι 馬與h 1相同的値。 比較。根據該比較的結果,而繼續進行下文所 不的步驟5、6、或7。 如果h'= h : 清注意’在此種情形中b必須等於b ,。 5.1在第b赫許儲存區中,於大於或等的—偏移 量處搜尋次-記錄。根據是否仍有此種記錄,而 繼續進行下文所示的步驟5.2或5 3。 5.2如果此種記錄存在: 檢查在所提供的緩衝區中是否仍有空間而得以送 回記錄。如果仍有空間,則將該記錄拷貝到所提 供的緩衝區,並在拷貝了該記錄之後將掃描游標 中之偏移量r更新爲次一偏移量’然後回到步驟 4 〇 ' 如果在所提供的緩衝區中已無空間,則自掃描常 式跳出,並送回現有的游標値。 5.3 如果此種記錄不存在: 計算b "等於在第一階深度之次一赫許儲存區。 -32- 本紙张尺度適用中國國家標毕(CNS ) Λ4規格(210X297公釐) (請先閱讀背面之注意事項再填寫本頁} 丨^衣.
*1T 赶系部中吹^次局·,只工ί'/ίφ;合作.打印*'14 409215 A7 B7___ 五、發明説明(30 ) "~^ b"=reverse(reverse(b, h) + 1, h) 其中reverse(x,n)意指取x的η個最低有效位元,然 後將其顚倒之。 如果b "等於零,則我們已到達掃描的終點。在此 種情形中’將自掃描常式跳出,並送回現有的游 標値。 否則,以如下所示方式更新游標c=(h,b,r):設定b 及b 1等於b "。將Γ設定爲零。讀取b的新値所指示 的赫許儲存區,並將h及h,設定爲在該赫許儲存 區的起始碼中所發現的赫許樹層級。 然後回到步驟4。 6 .如果 h' > h : 此種情形意指第b赫許儲存區被分裂了。 61如果尚未執行,則將第b赫許儲存區的内容重建 爲其在分裂前的狀態。其方式爲將赫許樹中第b 赫許儲存區的所有衍生赫許儲存區合併到一暫時 性緩衝區。可能在前一反覆中已爲第b儲存區執 行過此步驟;在此種情形中,可跳過此步驟。 6.2在該暫時性緩衝區中大於或等於r的偏移量處找 到次-記綠。根據是否仍有此一記綠,而繼續進 行上文所示的步驟5.2或5.3。 7 .如果 h1 < h : 此種情形意指第b赫許儲存區被合併了。 7」在第b,赫許儲存區中大於或等於㈣偏移量處找到 __________ -33- 本紙狀度_帽辭鮮(CNsTA4^fe G1{)x 297jJ^ p'·〜 -----:——..---^ ! Γ靖先閑靖背面之ii意事項再填寫本頁) 訂 經1¾-部中夾標沭而負1消贽合作社印製 409215 a7 ____ B7 ______ 五、發明说明(31 ) 次一記錄。根據是否仍有此—記錄,而繼續進行 下文所示的步驟7.2或7.3。 7.2 如果此一記錄存在: 計算該記錄中關鍵字的赫許値,並設定V·爲該赫 許値的h個最低有效位元。如果b,,不等於b,則跳 過該記錄,亦即,更新掃描游標中之偏移量r爲 該記錄之後的次一偏移量,並回到步驟7 . 1。 檢查所提供的缓衝區中是否仍有空間以送回該記 錄;如果並非如此,則送回現有的游標値。 如果有足夠的空間,則將該記錄拷貝到所提供的 緩衝區’並將掃描游標中之偏移量r更新爲剛才 被拷貝的記錄之後的次一偏移量。 回到步驟4。 7.3 如果此一記錄不存在: 計算b "等於在第—階深度之次—赫許儲存區。 b"=reverse(reverse(b, h) + 1, h) 如果b ”等於零,則我們已到達掃描的終點。在此 種情形中’將自掃描常式跳出,並送回現有的游 標値》 否則,檢查(b mod 2 ih,)是否等於(b_ mod 2 -nh)。 如果確係如此,則意指所要掃描的次一儲存區仍 然是其中一個被合併到第b |儲存區之儲存區。在 此種情形中,將r設定爲零,並回到步驟7之開始 處’此時將對所合併的第b ’儲存區開始進行次— ____ -34- 本紙張歧劍巾關轉彳.1 CNS ) Λ4規格~( 210X 2974^ ----1--·---^-- (請先閱讀背面之注意事項再填寫本頁) 丁 -•ο 經M部中次標卑局只T,消许合作社印製 409215 at 五、發明説明(32 ) 掃描。 否則’已完成了對所合併儲存區的最後一次掃 描。在此種情形中,繼續進行步驟53,亦即,將 b及b_設定爲b" ’將1設定爲零,並將h&h,設定 爲在第b赫許儲存區的起始碼中發現的赫許樹層 級,然後回到步驟4。 在説明了本發明的循序掃描程序的實施例之後,現在將 回到用來將游標值編碼的方法。 爲了儘量減少存放一游標値所需的位元値,可將赫許樹 層級及赫許儲存區编號結合成單—値,此時只需要比存放 最大可能儲存區编號所需數g的位元多一個位元。這是有 可能的,因爲儲存區的數目必然小於或等於2^L,其中l 是層級。編碼方式如下。此種編碼所用的一個參數是最大 赫許樹層級,亦即赫許樹的任何分支所能到達的最大深 度。 對赫許樹層級L及赫許儲存區編號B的游標編碼如下: 使Μ =最大赫許樹層級
計算Η = Μ - L 计算R =將Β的每個位元顚倒 將儲存區編號及層級編碼爲2,h+R*2,(Η+1) 在解碼時,計算較低階的零位元數,並以Μ減掉該數而 得到層級(L )。爲了得到儲存區編號,將编碼後的値向右 移動L+ 1個位元,並將所得結果的每一位元顚倒。 當然’熟悉本門技術者在閲讀本發明的説明之後,當可 __*___— __ - 35 - 本紙张尺度適用帽( CNS ) A4ii^TTi〇X 297/>f } ----1--.---k— (請先閱讀背面之注項再填寫本頁) 訂 五 、發明説明(33 409215 at B7 暗批:p。些選項的特徵°例如,本系統可實施鎖定及同 二作業,而得以在不同的赫許儲存區中進行同時的更 眚本發明亦實施上溢的區段。雖然在一循序掃描過程中 、際上並不需要—個暫時性緩衝區來處理分裂,但是可使 :呼」耘式所提供的緩衝區。尤其是我們知道應用程式係 欠/、送回—個結果的循序掃描介面,所以只爲了送 回一個記錄而重建一整個儲存區是不合理的。 基…^案系統中分配儲存交蚤 …T刀配是本發明較佳實施例的一個特徵。此即意指: 本發明提供了對—分配對映表(例如一位元對映表)之編 黾本發月對分配對映表的編碼與傳統编碼的分配對映表 比較時,減少了同時分配多個磁碟上的磁碟區段(包含一 共用磁碟檔案結構)的多個節點間之干擾,本發明之^統 亦可讓多個節則時收回干擾減少的磁碟區段。 雖然在杈案系統中實施了分配的觀念,且雖然檔案系統 使用傳統的方法分配儲存容量,但是用於共用磁碟檔案系 統的傳統方法產纟了 —些問豸,因&需要一種可分配及收 回儲存谷量的發明,且此種發明在一共用磁碟檔案系統及 —平行檔案系統中都執行良好。 一般而I,檔案系統是—種可讓其他的應用程式儲存及 擷取磁碟機等媒體上的資料之電腦程式。爲了簡潔起見, 下文的説明中將使用磁碟的術語,但是此種觀念適用於任 何以區&组成的類似儲存媒體。檔案是一個有名稱的任意 大小之資料物件。檔案系統可讓應用程式產生檔案並爲檔 -36 - 纸張尺度適圯中國园家標孪(CNS ) Λ4規格(2〗〇><297公瘦) (請先閱讀背面之注意事項再填寫本Ϊ ) •1 訂 ϋ9|15 五、發明説明( A7 B7 34 經滴部中央標挲局只工消费合作社印焚 案命名,以便將資料儲存在 除權案,以及對檔案執行其他的作業自‘案4取資料,冊 案㈣結構是磁碟機上的資料之组織。除了權 (夕’檔案結構包含中介資料,亦即—種將声 案名稱對映到對應的檔案之盘: 中尤其重要的有:磁碟上檔案資 料的位置(亦即哪些磁碟區段存放有樓案資料)、—個記錄 哪些磁碟區段目前被用來儲存巾介資料及棺案資料之分配 對映表、以及一個包含與檔案結構有關的整體資訊(例如 目錄、分配對映表、及其他中介資料結構的位 區段。 «另—万面,我們當了解,共用磁碟檔案系統是在各別電 腦上執行的多個檔案系統存取在—個或多個磁碟上常駐的 一檔案結構之一種檔案系統。爲了便於説明本發明之較佳 貫施例,我們爲該檔案結構假設:這些電腦(或節點)沒有 共用圮憶體(縱然這些電腦可以有而且在許多可能的實施 例中將有區域記憶體、及至少某些共用記憶體(如許多 SMP的實施例)’我們也作此種假設),且這些電腦係連接 到若干磁碟,而檔案結構係利用諸如一匯流排或一交換網 路的某一裝置而常駐於這些磁碟上,其中該匯流排或交換 網路都被視爲有這些用途的通訊網路。此外,我們假設: 某一類似的裝置使這些節點相互通訊。共用磁碟檔案系統 可讓一個使用該檔案結構的一計算工作被分成多個部分, 且可在多個節點上平行執行該等多個部分。此種方式可集 37- 本紙滚尺度適用中國囤家標準(CNS ) Λ4現格(2!〇X297公潑) (請先閲讀背面之注意事項再填寫本頁) ίν TJ -=° 409215 A7 B7 五、發明説明(35 ) 合這多個節點的計算能力而完成該計算工作。 (請先閱讀背面之注意事項再填寫本頁) 一分配對映表是本發明的檔案結構之一部分。考慮一個 儲存在N個磁碟DO、D1、...、DN-1上的檔案結構。一對數 子(i,j)識別該檔案結構中的每一磁碟區段,例如,(5 254) 識別磁碟D5上的弟254個區段。分配對映表通常係儲存在 陣列A中,其中元素A(1,j)値表示磁碟區段(i,j)的分配狀 態(被分配/自由)。 分配對映表通常係儲存在磁碟上,作爲檔案結構的一部 分,因而分配對映表係常駐在一個或多個磁碟區段中。傳 統上’ A(i,j)是對映表中的第k個連續元素,其中k=iM+j, 且Μ是某一大於任何磁碟上的最大區段數目之常數。 爲了尋找磁碟空間的一自由區段,檔案系統將Α的一區 段讀進一記憶體緩衝區中,並搜尋該緩衝區,以便尋找— 個其値指示對應的區段(i,j)爲自由的元素A(i,j)。在使用區 段(i,j)之前’檔案系統更新該缓衝區中A(i,j)的値,以便指 示區段(i,j)的狀態爲被分配,並將該缓衝區的内容寫回磁 碟。爲了使一個不再被需要的區段(iJ)成爲自由狀態,檔 案系統將包含A(iJ)的區段讀取到一缓衝區,然後更新 經淖部中央標準而豆工消贽合作社印4.'1木 的値以便指示該區段(i,j)是自由的,並將該區段的内 容自該缓衝區寫回到磁碟。 對以共用方式存取一分配對映表的處理已成爲一特定的 需求。如果包含一共用磁碟檔案系統的各節點並未使其對 共用磁碟的存取有正確的同步,則這些節點可能破壞該檔 案結構。此種情形尤其適用於分配對映表。爲了説明此種 -38 - 本紙張尺度適用中國國家標卒(CNS ) A4規格(210X297公疫) 409215 A7 B7 五、發明説明( 36 .¾¾‘部中央標5?-局兵工消费合作.社印製 情形,現在將考慮前文所述的分配一自由區段之程序。假 設兩個節點同時嘗試分配一區段。在執行此工作的過程 中,這兩個節點可能同時讀取同一分配對映表區段,同時 找到描述自由區段(i,j)的同一元素A(i,j),同時更新A(i,j) 以便示出區段(i,j)是被分配的,同時將該區段的内容寫回 磁碟,以及同時爲了不同的用途而繼續使用區段(i,j),因 而破壞了檔案結構的完整性。如果A(X)及A(Y)係同時包含 在相同的對映表區段中,則縱使各節點同時分配不同的區 段X及Y ’也將發生更微妙也更嚴重的問題。在此種情形 中’第一節點將A(X)設定爲已分配,第二節點將Α(γ)設定 爲已分配’且這兩個節點同時將放在緩衝區的對映表區段 内容寫回磁碟。根據哪一個寫回先被執行,區段X或γ將 在磁碟上的對映表中呈現自由狀態。例如,如果執行第二 節點的窝回是在執行第一節點的寫回之後,則區段X將在 磁碟上的對映表中呈現自由狀態。第一節點將繼續使用區 段χ(例如儲存一檔案的一資料區段),但是在某一稍後的 時間,另一節點可能將區段x分配給其他的用途,此時的 結果又破壞了襠案結構的完整性。 爲了避免檔案結構的破壞,一節點在將每一位元對映表 區段讀取到記憶體之前,必須爲該位元對映表區段取得— 符記,而且如果該節點修改該區段(亦即分配或釋出—區 段)則涊即點必須在釋出該符記之前先將該區段的内容 =磁碟。通常自諸如美國專利5,454,刚所述的鎖定管理 器等的分散式符記管理器,,取得符記,並將符記釋出 (請先閱讀背面之注意事項再填寫本頁) -'ll
St.. 39 - 409215 A7 _________B7_ 五、發明説明(37 ) 到該分散式符記管理器。在釋出區段上存放的符記之前, 自符記管理器取得符記的虛耗作業,以及將對映表區段寫 回磁碟的虛耗作業,都可能大幅降低一共用磁碟檔案系統 的效能。 本發明可如同在一 RAID環境而將拆開在多個磁碟上的 資料。拆開(striping)是一種在不同的磁碟上儲存連續資料 區段(例如—檔案)之技術D拆開之優點包括高效能、及負 載平衡。在拆開中,檔案系統係根據磁碟編號〇、…、N-1 的某一循環組合’而將一檔案的連續區段寫入不同的磁 碟。對於以傳統方式组織的分配對映表而言,寫入一檔案 的N個區段或更多的區段時,需要鎖定、搜尋、更新、及 寫入N個對映表區段(或者在小於n個區段時,需要整個分 配對晚表)。執行上述步騍的虚耗作業遠高於在單一磁碟 上分配N個相接的區段。此外,在一共用磁碟檔案系統 中,寫入檔案的節點可能使其他節點耗用相當長的延遲時 間以等候對所需分配對映表區段的釋出。 爲了解決此一背後的問題,本發明使用—分段分配對映 表而提供了一種磁碟分配器,用以儲存及管理一個支援分 佈在多個磁碟上的分配對映表’並同時可儘量減少與區段 的分配相關聯的鎖定、I/C)、及搜尋虛耗作業。與前文所 述的傳統分配對映表比較時’本發明的磁碟分配器大幅減 少了於分配一拆開檔案時所存取的分配對映表區段數。此 外’在一共用磁碟檔案系統中’該檔案系統大幅減少了於 多個節點同時分配拆開檔案時鎖定之競用、及分配對映表 -40- 本纸依尺度適用中國S家標準(CNS ) Λ4規格(210X 297公楚 (請先閲讀背面之注意事項再填寫本頁) i %
,1T 409215 經消部中央標準局另Κ消赀合作.社印裝 五、發明説明(38 ) 區段之讀取與寫入。 本發明所述磁碟分配器所根據的基本觀念是再將分配對 映表細分爲若干區域。若將對映表分成&個區域,則每一 區域控制N個磁碟中每一磁碟上的1/κ個區段,檔案並非 鎖定分配對映表區段,而是鎖定這些區域,以便同步對映 表之存取。由於使用了不同的區域,所以多個節點可同時 分配拆開檔案’而不會相互干擾。 對於具有Μ個區段的磁碟而言,每—區域包含分配對映 表的ΜΝ/Κ個元素。這ΜΝ/Κ個元素理想上是正好放入—單 一分配對映表區段,但是如果磁碟數(或每一磁碟的容量) 相當大,或者如果區域數相當小,則這些區域可能大於分 配對映表區段。爲了讓分配對映表使用與正规檔案相同的 區段大小,各區域係由一個或多個段落所構成,其中每一 段落的大小最多爲一分配區段,並且控制1^個磁碟的一部 分磁碟上區段的分配。如果區域小於對映表區段大小的一 半’則將多個區域放入每一對映表區段。 決定分段分配對映表组織的參數有區域數κ、磁碟數 Ν、及以每一磁碟的區段數μ表示的磁碟容量。應選擇巴 域數至少等於檔案系統節點數,因而每一節點可自—不同 的區域分配。 如果Β個分配對映表元素正好放入一區段,則係以下式 表示最小區段數、及儲存每一區域所需的最小段落數· ceii((MN/K)/B), 這是因爲每一區域儲存每一磁碟的第1/κ個元素,亦即每 -41 - 本紙張尺度適/fl中國國家標辛(CN’S ) Λ4規格(210X297公t ) ---------袈— (請先閱讀背面之注意事項存填湾本頁) *1Τ 經斌部中次標iv-局s;工消资合作.社印來 409215 A7 ________ B7 五、發明説明(39 ) ~~ 一區域有NM/K個元素。然而’爲了在—特定磁碟上分配 一區段’最好是使對照到同一磁碟的所有分配對映表元素 都放在同一段落内,亦即放在分配對映表的同一區段内。 在此種限制下,每一段落可存放d個不同磁碟的分配元 素,其中係由下式表示6: d=floor(B/(/K) = fl〇or (BK/M)。 请注意,必須選擇κ至少等於,否則,d將爲零,亦 即,對照到同一磁碟的分配對映表元素將無法正好放入單 一區段内。因此,係以下式表示每—區域的段落數· L=ceil(M/d) = ceil (N/floor(BK/M))。 我們將使用記法S(p,q)表示第p個分配對映表區域的第只 個段落’其中p的範園爲自〇到K_1,q的範圍爲自C到L_ 1 °然後以下文所述之方式將分配對映表的各元素指定給 段落°表示第i個磁碟上的第j個區段的分配狀態之元素 A(i,j)係儲存在段落A(p,q),其中 p j mod K,以及 q = floor(i/d)。 係按照下列順序將各段落配置在各連續的分配對映表區 段中: s(0,0)、S(1,0)、s(2,0)、S(K十0), S(0,1)、S(1,1)、s(2,l)、··、s(K-l,l), S(0,L-1)、S(1,L-1) 、S(2,L-1)、...、s(K-l,L-l)。 換言之,每一區域的第一段落係儲存在分配對映表的開 -42- 本紙疚尺度適用中®园家標準(CNS ) Λ4規格(210 X297公超) 象------II-------〆. (請先閱讀背面之注意事項再填寫本頁} 409215 A7 --_ B7 五、發明説明(40 ) ~ ~ ~ ~ 負後1爲每區域的第二段落,其他依此類推。此種配 置方式使擴展檔案系統成爲可能’其方式爲在不需要重新 组織分配對映表的情形下加入更多的磁碟,亦即,將更多 的磁碟加人樓案系統時,需要將更多的分配對映表元素儲 存在每一區域,此時可能需要將一個或多個段落加入每— 區域(―以利用一個新的N値重新計算L之方心决定需要多少 的段落)。只須將頦外的元素添加到現有分配對映表的結 尾即可。 钱滴部中央楛準局矣二消费合作社印" 爲了分配一拆開檔案的各連續區段,—節點利用區域中 的各自由區段(亦即其分配映表元素指示其狀態爲自由的 區段),並根據拆開組合而取得一區域的符記,並分配各 連續區段。在釋出該符記之前,該節點需要將該區域的内 容寫回磁碟。如果在嘗試於一特定磁碟上分配一區段時發 現玆區域在該磁碟上並未包含任何自由區段,則該節點切 换區域,此時該節點將該區域的内容窝回磁碟並釋出符 記,然後爲另一區域取得一符記,並嘗試自該區域分配。 如果該節點嘗試了所有的區域但無法成功找到一特定磁碟 上的自由區^又,則该節點可(根據檔案系統的拆開策略) 而在另一磁碟上分配一區段,或者將—,,空間不夠,,的狀 況傳送回應用程式。在前一種情形中,當已嘗試過所有的 磁碟但不成功時,檔案系統將送回"空間不夠”的訊卓。 在效能強化的實施例中,檔案系統通常允許其他節點在各 檔案區段寫入之間爲其區域而"借用"符記。却 从即點回應 一符記借用要求,而將該區域的内容寫入磁碟,级 -43- 本紙張尺度適用令囤囚家標4M CNS ) Λ4规格(2I0X297公釐) A7 B7 409215 五'發明説明(Μ =記。區段取回係與第21節所述者相同;爲了取回一區 段,檔案系統在包含描述區段的分配對映表之區域讀取資 訊,將其狀態更新爲自由狀態,並在釋出符記之前將該區 域的内容寫回磁碟。 雖然前文所述的分配對映表組織及演算法大幅減少同時 寫入檔案的各節點間之干擾’但還是可能有一些干擾。這 是由於在切換區域時,一節點並無選擇要切換的區域所依 據 < 資訊。該節點理想上應切換到一個其他節點目前並未 使用的區域,且該區域有足夠的自由區段而容許持續的寫 入’無須再度切換到另—區域。 爲了提供一種使一節點得以作出―個有足夠資訊的區域 選擇’本發明導入了—種分配管理程式,這是一種追蹤哪 —節點(如果有此種情形)正在使用每一分配區域並追蹤每 區域中大約還剩下多少自由空間之程式。於擋案系統啓 動時,居为配卞理程式檢查每一區域,而計算出每—區域 中之自由區段數,並將此資訊存放在一表中。在切換區域 之前’一檔案系統節點將一訊息傳送到該分配管理程式, 知該卽點切換前的區域(包括該區域現有的自由空間容量) 通知該分配管理程式,並取得一個建議的切換區域。該分 配管理程式更新其表,以便指示切換前的區域之自由空 間’並釋出已無節點使用該區域。該分配管理程式然後檢 查其表,以便決定目前並未被使用且自由空間容量最大的 另一區域’然後將該區域的編號回覆該檔案系統節點,並 更新其表,以便指示該區域目前被使用。如果所有其他的 44 - 本纸乐尺度適用中國S家標準(CNS ) Λ4規格(210Χ297公釐) (請先閲讀背面之注意事項再填寫本頁) i %
、1T ¾¾部中央榡卑局W工消先合作杜印^ A7 —_ 409215 五、發明説明(42 ) 區域都處於使用狀態,則該分配管理程式隨機選擇—個區 域。該協定優先切換到未使用的區域,而減少區域切換的 次數。 雖然上述演算法將分配對映表存取局限於檔案產生,但 是檔案删除仍然有可能造成頻繁的區域切換,因而干擾到 正在同時寫入檔案的各節點。縱使個別檔案中之區段局限 於單一區域’仍然經常有—節點將刪除若干由不同的節點 在不同的時間所產生的檔案(例如—目錄的内容)且因而自 不同的區域分配之情形。此種情形將產生收回分配,且因 而頻繁地執行區域切換。 爲了減少這些區域切換,分配管理程式及檔案系統提供 了種指不收回對目前正在使用該區域的節點(如果有此 種情形)的區段分配之裝置,用以控制收回對區段之分 配。其實施方式如下:刪除—區段時,檔案系統首先將一 訊息傳送到分配管理程式,以便取得目前使用該區域的節 點之身份。分配管理程式以該節點之身份或該區域目前並 未被使用的指示作爲回應。在後一種情形中,節點以前文 中在3.2郎所述之方式收回對區段之分配。在前—種情形 中,該節點將一訊息傳送到分配管理程式所指定的節點, 告知收回對區段的分配。如果第二節點確實正在使用該區 域’則該第二節點收回龍段的分配,並回應第一節點而 指示該第二節點已如此執行。如果第二節點目前並未使用 該區域,則將此種情形回應第一節點,此時第―節點收回 對區段的分配。 -45·
(CNS ) 2]〇x 297^-f T
-- I- I - I - I - — /衣 t--- !: I -1 . I (請先閲讀背面之注意事項再填寫本頁;I 經濟部中-^標準局h.T.消先含作社印¾ A7 B7 409215 五、發明説明(43 ) 爲了減少訊息的傳送’可成批處理收回分配的訊息。例 如,在刪除-標案時,分配區域可將屬於該擋案的ς區段 分類,然後可將包含屬於同一區域的各區段之單一收回分 配訊息傳送到目前正在使用該區域的節點。 共用磁碟樓案系統干擾之虚珣 本發明之,系統可讓包含-共用磁碟檔案系統的多個節點 避免相互間不必要的干擾。爲達到此一目的,本發明已作 了各種改良。 _可擴展的平行檔案系統之動態預取 預取是一種檔案系統中用來減少1/0延遲時間的一種技 術’其方式爲在應用程式要求資料之前,即讀取若干區段 的循序存取檔案。本發明之系統處理動態排程及調整預取 專用的樓案系統資源之問體’以便盡量增加一平行樓案系 統(亦即同一檔案的資料係分佈在多個磁碟裝置之樓案系 統)的資料傳輸率,並儘量減少I/O延遲時間。 本系統内設有一個稱爲”緩衝管理程式"之系統服務程 式,該緩衝管理程式在競用記憶體的各種不同系統组件之 間仲裁έ己憶體資源之使用權。每一組件必須將缓衝管理程 式決定將多少記憶體分配給每一组件所需的資訊提供給緩 衝管理程式。該資訊包含下列兩個數字: 1 ·所需的記憶體容量。 該數芋指示在可供應的情形下一組件可有效地利用多 少的記憶體。 2 .現行洽動水準。 46 - k纸ft尺度璉州中國國家標卒(cNS ) Α4规格(210Χ297公1 ) -------.----氣------訂--------- * / (諳先閲讀背面之注意事項再填寫本頁) 經"·部中决榡準局:^工消贽合作社印製 409215 ^ —-----—_______ B7 五、發明説明(44 ) 该數字^ 4提供—組件對記憶體使用頻度的—量測 値’通*係<^—段時間中對記憶體存取的次數表示。 该緩衝管理心式隨即將其指定給每一组件使用的記憶體 容量通知該组件。 競用資源的其中—個组件是檔案系統的缓衝區組,該緩 衝區组係用來緩衝儲存最近所擷取的檔案資料 '及爲循序 讀取而預取的資料。本發明將適當的資訊提供給缓衝管理 私式,以便考慮到預取所需的資源,並安排緩衝管理程式 所指疋資源I使用時間,以便儘量提高檔案系統的資料傳 輸率’並儘量減少I/O延遲時間a 下文中將概述如何達到上述目的。表3及4中示出額外 的細即,且在下文的概述之後將另行説明這些細節。 ~檔案系統的緩衝區组在邏輯上被分成兩個部分,其中 一個部分係用於預取(”預取緩衝區组",另—部分係用 於緩衝儲存最近擷取的樓案區段(II —般性緩衝區組")。 "在邏輯上被分成"意指並不需要將個別的緩衝區特別 •is疋給某一緩衝區组或另一緩衝區组;而是維護單一 數字’該數字指示總緩衝區空間中有多少空間係用於 預取’而以此種方式表示這兩種緩衝區组的區分。 好滴部中央枒準局貞-τ消资合作社印判木 -將這兩個緩衝區組提供給缓衝管理程式,作爲兩個獨 土的组件,亦即,檔案系統分別爲一般性緩衝區組及 預取緩衝區组計算各自所需的記憶體容量及活動水 準。 -利用可量測資料存取率的諸如基準計數等傳統的技 _______ -47- $纸浓尺度適用中囡ΐ家標準(CNS ) A4現格(2IOX297公釐) 409215 a7 ----- _ B7 五、發明説明(45 ) ' 術,而計算兩個緩衝區組的活動水準。因爲這兩個緩 衝區組只是在邏輯上隔離,所以保存每一緩衝區組的 各別計數,即可執行上述步騍;在每一次的緩衝區存 取中,根據係由循序或随機1/〇存取緩衝區,而更新適 當的計數。 -利用基準位元及計數器決定在某一段時間中存取不同 檔案資料的總數,量測工作组’而計算一般性緩衝區 组的所需大小。 -然而’係以不同的方式計算預取緩衝區組的所需大 小。該计算考慮到:屬於檔案系統的磁碟裝置數目及 此力、循序存取的檔案數 '及讀取資料的速率。將在 下文中詳述此種計算,且此種計算係示於表3。 -將前—步驟中計算出的數字提供給缓衝管理程式,緩 衝管理程式利用這些數字決定將多少記憶體指定給代 表權案系統的一般性緩衝區组及預取緩衝區組的兩個 組件。植案系統將其緩衝區組的總容量設定爲指定给 這兩個組件的記憶體容量之總和。指定給代表預取緩 衝區组的组件之記憶體容量係用來決定可預取多少資 料。圖2中將詳述預取的時機及預取的資料形式。 開始時最好是以一簡單實例説明表3及4中所示的演算 法,該簡單實例爲自一個儲存在一非平行(單一磁碟)檔案 系統讀取之單一應用程式;然後將考慮如何處理多個應用 程式及具有多個磁碟之檔案系统。 在此簡單實例中,雙重緩衝(兩個預取緩衝區)足以提供 -48- W張尺度適用中國园家標隼(CNS ) Λ4規格(21〇ί_297公釐) (請先閲讀背面之注意事項再填寫本頁) 、1Τ A7 409215 五、發明説明(46 ) 最佳的資料傳輸率及效能。當應用程式開始讀取檔案時, 檔案系統將檔案的第一區段讀取到其中一個預取緩衝區。 當第一I/O結束時,檔案系統將檔案的第二區段讀取到另 一預取緩衝區。在進行第二1/0時,自第一緩衝區擷取檔 案資料,而滿足應用程式的讀取要求。如果到達第一緩衝 區的末端,則當第二I/O結束時,可自第二緩衝區滿足後 續的讀取要求。一旦第二:[/0結束且應用程式已自第一區 段頊取了最後一個位元組之後,即重新使用第一預取緩衝 區預取樓案的第三區段,其他依此類推。 如果應用程式的讀取速率慢於磁碟,則在應用程式完成 讀取前一區段的資料之前,即已結束了各預取I/C)。在此 種情形中,當應用程式已讀取前—緩衝區的最後一個位元 組時,將開始次一預取I/C^在此種情形中,資料的供應 速率將等於應用程式讀取資料的速率,且應用程式將不再 需要等候磁碟I/O。這是最佳的狀況。如果應用程式讀取 责料的速率快於可自磁碟擷取資料的速率,則每當應用程 式到達一個區段的結尾時,即需要等候目前作用的I/C)結 束,且於前一預取I/O結東時,即開始一個新的預取1/()。 在此種情形中,讀取資料的速率將等於自磁碟擷取資料的 速率,再度是一最佳狀況。 表3所示之演算法將多個應用程式及每一檔案系統有多 個磁碟的特性一般化;該演算法計算所需的預取緩衝區 數,因而:(1)如果應用程式嘗試讀取資料的合併資料速 率小於可用總磁碟頻寬,則將以讀取資料的速率將資料供 -49- 本紙张尺度適用中囷囤家標準(C、NS ) Λ4規格(21〇'χ297公楚) ^訂------广 1 (请先閱讀背而之注意事項再填寫本頁) 經滅部中央標卑灼只^消贽合作社印^ 五、發明説明(47 409215 a? _ B7 ¾¾部中央樣卑局;^ T;消於合作71印^ 應給每-應用程式’且不會有1/〇等候β (2)如果應用程式 的合併資料速率太於可用總磁碟頻寬,則將以可自磁碟擷 取資料的速率讀取資料。 〃 '以上兩種情形都需要決定每一應用程式嘗試讀取資料的 速率。量測應用程式的Η思考時間,_(亦即應用程式耗用在 處理檔案系統所供應的資料之時間),即可完成上述程 序。思考時間包括讀取系統要求揭取權案系統緩衝區” 的資料並將該資料拷貝到應用程式的緩衝區之作業時間, 但並不包括檔案系統耗用在等候自磁碟讀取資料的時間。 我們將應用程式在一時間間隔中的"資料耗用率”定義爲 應用程式在該時間間隔中讀取的資料量除以該時間間隔中 之總思考時間。 我們首先考慮總消耗率小於總磁碟頻寬的情形。在此種 情形中’適當的預取作業應可供應所需的資料,而無須任 何應用程式等候1/〇作業。如果總消耗率大於單—磁碟的 頻寬,則將需要以平行方式對多個磁碟執行預取17◦作 業,以便維持所需的資料速率。將總消耗率除以單一磁碟 的頻寬,再將所得結果捨入到次一整數,即可計算出所需 的最小平行I/O數。將該數字稱爲"平行處理因數,, ("parallellsm factor"。爲了供應所需的資料,而無須任何 應用程式等候Z/0作業,必須可使用足狗的額外緩衝區, 使每一應用程式可在進行預取1/0作業時,自另一緩衝區 讀取先前提取的資料。因此,將爲循序1/〇而開啓的檔案 實例數加上平行處理因數,即可得到最佳的預取緩^ = -50- '、紙張尺度適用中國囡家榡孪(CNS ) Λ4規格(210X297公茇) (請先閱讀背面之注意事項再填寫本頁) •I %
-1T 409215 A7 B7 五、發明説明(48 數。當一應用程式自一先前提取的區段讀取最後—個資料 時,即可利用該缓衝區執行次一預取1/〇作業。如表4中之 演算法所示,然後將利用該緩衝區爲最接近目前正在讀取 的緩衝區終端之應用程式預取次—資料區段。”最接近— 緩衝區終端的應用程式”意指根據其現行的消耗速率將最 快要求次一區段的資料之應用程式。 利用最佳預取緩衝區數時,若任何應用程式都不曾在依 據所量測消耗速率而預設的時間之前讀取資料,則該應用 程式將不需要等候I/O作業。如果實際的消耗速率不是固 定的,則可增加預取緩衝區社,以便將消耗速率的變化列 入考慮。除了量測每一應用程式的思考時間之平均値以 外,亦量測思考時間之變異數,即可執行上述步驟。然後 利用該値計算一個"以變易數調整的消耗速率,,,亦即幾 乎所有的讀取要求(例如9〇%或95%的所有讀取要求)之到 達時間不會早於依據以變易數調整的消耗速率預測的時間 之速率。然後利用以變易數調整的消耗速率取代平均消耗 速率’而計算平行處理因數。 見在知考慮所有應用程式的總消耗速率超過標案系統的 總磁碟頻寬之情形。在此種情形中,以前文所述方式計算 的平行處理因數將是一個大於檔案系統可用磁碟數之數 芋。因爲無法起動比現有磁碟數更多的同時I/c>作業數, 所以指定比磁碟數更多的緩衝區給預取1/〇作業時毫無意 義Θ因此,所需的預取缓衝區數係計算爲:爲循序I/。 而開啓的檔案實例數加上磁碟數或平行處理因數(取較小 -51 卜紙浪尺度通用中酬家標辛(CNS ) Λ4規格(2iOX297公楚 ---------裝------訂 (請先閱讀背面之注意事項再填寫本頁) 經濟部中央標準局兵Ti消fr合作社印狀 409215 ΑΊ _________Β7___五、發明説明(49 ) 者)。如果消耗速率超過總磁碟頻寬,則該預取緩衝區數 將足以使所有的磁碟保持忙碌(亦即,當一磁碟上的前一 I/O作業結束時,即開始一個新的預取I/O作業)。因此,供 應資料的速率將等於可自磁碟擷取資料的速率。 最後,將説明對上述計算的兩種改良,這兩種改良考慮 到檔案系統所連接的I/O子系統之特性。第一種改良適用 於在將一 I/O要求提供給裝置驅動程式的時間與開始實際 I/O作業的時間之間有顯著延遲之系統。例如,此種延遲 發生在以網路連接的磁碟(例如VSD),其中一 I/O要求在到 達磁碟之前必須先經過網路的繞送。爲了獲得最大的磁碟 資料傳輸率,在前一 I/O作業結束之前,必須將次一 1/〇要 求發出到裝置驅動程式。爲了執行此一步驟,必須可在比 原來更早的時間使用一預取緩衝區,以啓動次一 1/〇作 業。因此’預取I/O作業專用的緩衝區必須大於磁碟數(1 + ε)倍’其中係以平均I/O要求的延遲時間與平均磁碟I/O時 間的比率表示£。 緩衝區計算的第二種改良考慮到諸如磁碟控制器及 匯流排等I/O子系統组件之限制。如過檔案系統的磁碟數 較大,則增加磁碟頻寬時,可能得到—個大於總磁碟1/0 資料傳輸率且系統無法支援的數目β如果發生此種情形, 則預取I/O作業專用的預取緩衝區數無須等於磁碟數。等 於總I/O資料傳輸率除以單一磁碟頻寬的緩衝區數將足以 平行啓動系統可有效支援的數目之磁碟I/C)作業。決定總 磁碟I/O資料傳輸率時,可利用硬體規格在安裝檔案系統 ----1——I---合! (請先聞讀背面之注意事項再填寫本頁) 訂 __ -52- 本紙浪尺度適用中關家^1 ( CNS ) M规格ί1()χ297公楚) 409215 A7 B7 五、發明説明(5〇 ) 時直接量測資料傳輸率,亦可於執行檔案系統時記錄所觀 測到的最大資料傳輸率。 (請先閱讀背面之注意事項再填寫本頁} 計算一"有效磁碟數”,即可表示上述這兩種改良,然後 如表3所不,以该有效磁碟數取代實際磁碟數,而用於預 取緩衝區的計算。 ---------表3 :計算預取緩衝區組的所需大小........ 1 .計算有效磁碟數如下: n_eff = MIN(ceil((l + L_start/L」o)*n_diska),ceil(T- sts/T_disk)) 其中 n_disks=檔案系統可使用的磁碟數 L_io=讀取磁碟上的區段之平均i/o延遲時間 L_start=平均I/O啓動延遲時間 T一sys=磁碟子系統的最大總υο資料傳輸率 T—disk=單一磁碟的平均1/0資料傳輸率 好"·部中夾標枣局Μ工消赀合作社印" 2 對於被循序存取的每一開啓之檔案實例丨而言,計算一 個經過調整的消耗速率c_i,使對次一資料區段的所有 要求的一部分(例如90%)之到達時間不早於該經過調整 的消耗速率所預測之時間(亦即以檔案系統區段大小除 以c_i所表示的一段長度之時間中)。量刿該檔案實例 的平均消耗速率及變異數,即可以统計方式計算出該 經過調整的消耗速率。 〃 將經過調整的總消耗速率計算爲所有循序開啓的樓案 _______ -53- 本紙狀i適财ϋ隊辟(CNs"m视格(2丨GX 297公楚f 40921^7 I--—____B7 五、發明説明~ ~' ~--- 實例的經過調整的消耗速率之總和: c_total=sum c_i, for i =l...nJnst 其中 n_inst=循序存取的開啓檔案實例數 計算所需的預取平行處理因數如下: n_para=c_total/T_disk J ·然後使用步驟1及2中計算出的數値而計算所需的預取 緩衝區數如下: n_bufs_desired = MIN(n_para, n eff) + n jngt ................表4 :安排預取I/O作業的時程…....... 此程序的輸入是實際預取緩衝區數n—bufs—assigfted,由 緩衝管理程式根據以表3所示方式計算出的所需緩衝區數 n_bufs_desired,而指定該實際預取緩衝區數。 咸算法維護兩個整體性計數器:n_io_t〇tal,是目前進 行中的(或已提供給裝置驅動程式的)預取I/O作業數;以 及n_prefetched ’是存放作爲預取區段使用者的應用程式 尚未讀取的預取區段數。這兩個數目的總和即是目前用於 預取的緩衝區數。 ίί1/Γ-ΐ-部中吹枒準局妇工消费合竹社印¾ ---------參------訂 (請先閱讀背面之注意事項再填寫本頁) 此外,對於每一循序存取的開啓檔案實例i而言,本演 算法追蹤應用程式將存取預取I/O作業尚未開始提取的次 一區段之預測時間。將此數字表示爲t_next[i]。 1.設定 n_io_total&n_prefetched的起始値爲零。 對於每一循序存取的開啓檔案實例i而言,設定n_io[i] -54 - _________ 本紙張中國國家標準(CNS } Λ4規格(210X 297公t } 4093½ __________B7 五、發明説明(52 ) ^ 的起始値爲零’並設定t_next[i]的起始値爲應用程式根 據經過調整的消耗速率c—i而將要求次—資料區段的時 間。 以t—next[i]分類所有循序存取的開啓檔案實例,而建構 一個排序的檔案實例表’其中係將最小値放在最前 面。 2.如果n_io_total + prefetched大於或等於n_bufs-assigned, i % 則進入步驟 4 ;否則,繼續進行次一步驟a 3 ‘將次一預取I/O要求提交給排序樓案實例表中之第— 樓案實例in(將是具有最小t_next[i]的標案實例)。 丁 . -so 將t_next[i]更新爲應用程式將要求的在已開始進行預取 I/O作業的資料區段的次一資料區段之預測時間。根據 此新的t_next[i]値,而爲排序檔案索引表中之所有檔案 實例重新排序。 遞增 n_i〇_total。 回到步骤2。 4 .等候下列事件中的一個事件發生: a) 完成一預取I/O作業: 遞減 n_io_total,並遞增 n—prefectched。 經漓部中次核準局另工消贽合作社印策 回到步驟4的開始(等候次一事件發生)。 b) —讀取作業到達已預取的一區段之末尾。 因爲璜取作業將把資料自預取緩衝區拷貝到應用程 式的位址空間,所以另一預取作業無法使用該緩衝 區。 ______ -55- 本紙汰尺度適用中國國家標糸(CNS ) Λ4規格(2ΐ〇χ 297公釐) 五、發明説明(53 ) 遞減N—prefetched,並回到步骤2。 c )緩衝S理程式改變指定給預取緩衝區組的缓衝區數 (n_biifs—assigned) 〇 回到步驟2。 d)關閉一個開啓的檔案實例i。 自該排序檔案實例表去掉該檔案實例。 將η—prefetched遞減一個爲該檔案實例而預取的缓衝 區數之數字。 回到步驟2。 盖良緩衝儲存區效能4緩衝區瞢琿 本發明之平行標案系統是爲了效能是—個極重要因素的 職電腦系統而開f。可能影響到效能的—個面向是標案 系統的緩衝儲存區使用率。該問題在於:係’以無法預測之 方式向系統要求可變容量的緩衝儲存區空間。本發明實施 了-種緩衝儲存區管理架構,其中先識別系統中現有的使 用模式,然後對應地調整緩衝儲存區的行爲,因而提高了 效能及空間使用率。本發明大致經由使用模式分析,而改 善緩衝儲存區效能、空間使用率、及分佈。 因爲本發明之系統識別目前正在操作的丄作負荷類型, 所以可提高本發明的緩衝儲存區使用及内容替換之有效 性’本發明並因而調整缓衝儲存區的行爲。本發明建議架 構所偵測及回應的這兩種工作負荷是循序及隨機工作負 ^此種區分的理論基礎㈣於兩種Η Μ狀工作组 谷ϊ定義义差異。分析目前的狀態,即可預測未來的行 -56- 本紙張X度迠用中國园家標皁(CNS ) Α4規格(2!〇χ297公釐 ----;--.---知-- (请先閱讀背面之注項存填寫本育) 訂 409215 A7 B7 五、發明説明(54 ) 爲。一旦建立了系統中之現行使用模式,且假設該使用模 式爲相對穩定時,則可使緩衝儲存區作出對應的回應。 (請先閱讀背fi之注意事項再填寫本頁) 完整的缓衝儲存區被分成若干不同的工作單元,每一工 作單元都控制該完整缓衝儲存區空間的一部分,並負貴不 同容量的若干緩衝區。每一工作單元係由兩個子單元所組 成,這兩個子單元分別監視系統所操作的兩類工作負荷。 不同的工作單元數目及這些工作單元所負責的缓衝區容量 係動態地改變。緩衝儲存區管理程式在某一時點識別機率 較高的有大量需求之緩衝區容量,並因應地建立各工作單 元。固定設有一個額外的工作單元,用以照顧送進來的對 與所有其他工作單元固定容量不同的緩衝區容量之要求。 此種方式將送進來的要求直接指向主導所需容量的緩衝區 之緩衝儲存區部分,而縮短了緩衝儲存區的回應時間。該 處理面向將緩衝儲存區分段的問題限制於—個工作單元, 且只在該工作單元中採取合併及重新對映等額外措施,而 有助於減輕該問題。針對每一工作單元的每一子單元不斷 地更新使用統計數字。 定期檢查所搜集的使用統計數字。因此,將緩衝儲存區 空間重新分配給不同的工作單元。因爲本發明之系統藉由 分析現有的使用模式,而預測未來的使用模式,所以並非 立即進行新的空間重新分配,而是在有需要時才起作用β 每一工作單元有兩類空間限制,亦即一内部的及—外部 的。内部的空間限制區分兩個子單元外部的空間限制又再 細分爲兩類限制,亦即實體限制及虚擬限制。實體限制代 _________-57- 本纸帳尺度適用中囷國家標準(CNS )六4規格(21〇χ 297公釐) 經淡部中Λ標準局贤^消费合作社印繁 409215 A7 ΒΊ____ 五、發明説明(55 ) 表在使用模式架構的控制下屬於個別工作單元的實際空間 量。虛擬限制是被使用模式分析及預測程序投射爲該工作 單元應嘗試遵守的實體限制之限制。虚擬限制被用來推論 是否容許一特定工作單元的實體限制擴大,或者收到在一 個不容許擴大的工作單元之要求時在其控制下迫使該特定 工作單元放棄一部分的空間,因而在本質上容許該特定工 作單元的縮小。 設定新虛擬限制的程序係以下文所述之方式工作。各子 工作單元的統計數字被分析JL被用來推論使用模式及活動 水準,用以決定最適合該子工作單元需求的的空間。每一 子工作單元嘗試取得所決定最適合其需求的空間量(亦即 其工作組的容量)^該子工作單元的相對活動水準代表最 適合其需求的空間之上限。 係由一架構管制新空間的取得,在此架構中,每一工作 單疋内的實體限制及虚擬限制係以下文所示之方式互動。 當對一新緩衝區的要求到達時,由控制所要求容量的工作 單兄服務該要求。如果在該工作單元中有一個自由的緩衝 區,或者可極簡便且迅速地取得緩衝區,則可用該緩衝區 來滿足進來的要求。該工作單元繼續比較其實體限制及虛 擬限制。如果實體限制並不小於虚擬限制,則該工作單元 繼續尋找在其控制下最易於取得的空間。否則,現有的工 作單元將找到一個可縮至最小的工作單元,並將一空間取 得要求傳送到該工作單元。接收要求的該工作單元^到在 .其控制下最易於取得的空間’並放棄對該空間的控制權。 ------------—--- - 58 - 本紙張歧^(加x 297^ 了 (請先閲讀背面之注意事項再填寫本筲) ^.
-1T 經7¾部中央榡準局M.T-消贤合作社印犁 409215 A7 ____________B7 五、發明説明(56 ) — 原來的工作單元取得該新空間的控制權,並利用該空間來 滿則進來的要求。 執行使用模式偵測程序的頻率可能對整個架構的有效性 有相當大的影響。如果過於頻繁地執行該程序,則可能對 某一子工作單元中極短期的活動尖峰有太嚴厲的反應。另 —万面,如果每隔一段較長的時間間隔才執行一次該程 序,則架構的有效性及準確性將隨著時間而降低Λ因此, 每當執行該程序時,即決定下次應在何時執行該程序。該 计算係基於所有的工作單元存取在其控制下的所有空間之 預期時間。該時間間隔係受限於預定的上限及下限。該時 間間隔可讓使用模式程序推論工作負荷的分佈,而不受單 一限制事件的影響。對隨機工作負荷用户端程式的工作组 疋推論容易度相當於對循序預讀工作負荷用户端程式所需 空間之推論。 本架構之優點包含在一多用途環境中的可用緩衝儲存區 空間的效能及使用率之提高。 習用的處理方式只將緩衝儲存區視爲單一工作單元,並 以取近最少使用(least recent〖y uSed)之方式釋出缓衝儲 存區2間,以滿足進來的空間要求,而熟悉以習用方式管 理一標案系統缓衝儲存區的人士在認知使用模式是—種對 習用處理方式的改良之後,將可了解本發明之方法如何將 缓衝儲存區的使用最佳化。 當我們預知進來的要求之本質,並已爲該要求做好準備 時,則將每一個進來的要求傳送到一個有最高的機率被用 _ . __ - 59 - (CNS ) Λ4規格(2I0X 297公釐) 其衣ΐτ------r (請先鬩讀背面之注項再填寫本頁) 409215 A7 _________ B7 五、發明説明(57 ) — 來滿足該要求的緩衝儲存區區域。此外,我們知道每—工 作單元中可爲每一工作負荷所專用的空間容量,因而可相 應地調整其他的系統動作(例如預取速率)。 A援存取控制表之延伸檔棄屬她 如如文所述,我們知道最好是將存取控制表提供給本發 明的共用磁碟檔案系統,以利於該環境中不同的電腦之平 行執行。爲了達到上述目的,本發明提供了延伸檔案屬 性,以便有效率地支援Unix環境中習知的這類存取控制 表。 經濟部中央標準局吳工消论合作社印絮 ---------^------ΐτ (請先閲讀背面之注意事項再填寫本頁) 延伸屬性可使可變長度的資訊與一檔案相關聯,而可利 用檔案本身中所儲存的資料各別地存取該檔案。延伸屬性 的一種用途即是用來儲存各存取控制表(ACL),而這些 ACL是用來控制可容許哪些用户或用户群以何種方式(讀 取' 寫入等)存取一檔案。ACL對一延伸屬性實施例所作 的要求與延伸屬性的許多其他用途不同β因爲檢查存取許 可的所有檔案系統作業都需要使用到該檔案的ACl,所以 迅速且有效率地存取ACL的資料對檔案系統的效能是相當 重要的。另一方面,ACL通常是較短的,並不非常頻繁地 改變ACL的内容,而且縱使每一檔案都有一 ACL,但是許 多這類ACL將是相同的,亦即,與檔案中的値比較時,通 常只有相當少的不同ACL値。現在將説明如何利用各acl 所提供的使用特徵,並説明如何提供有效率地利用空間之 屬性儲存區,因而得以迅速地存取屬性資料,而以此種方 式實施延伸屬性。此外,該實施例極有效率地支援屬性繼 ______-60- 本紙張尺度it财關家標準(.0ί7$) Λ4規格(210X297公楚) — 409215 _ 五、發明説明(58 ) , 承。此種方式特別適用於POSIX ACL的實施。 基本上,本發明之延伸屬性實施例採用下列組成部分: (請先閲讀背面之注意事項再填寫本頁) ' 屬性檔案(Attribute File ;簡稱 AttrFile) ° 這是一種儲存所有屬性資料的特殊檔案。該檔案包含 一序列的登錄;每一登錄屬於下列兩種類型的其中之 一:屬性登錄,該屬性登錄包含一特定屬性之値;自 由空間登錄,該自由空間登綠標示屬性檔案内的自由 空間(亦即下一次需要將新的屬性登錄加入AttrFile時 可重新使用的空間)°這兩種登錄都是可變長度,但係 對準適當的邊界(例如,8或1 6位元組的倍數),以便 減少分段。一特定對準長度的選擇取決於屬性登綠的 最小及平均長度。 -屬性參考値(Attribute References ;簡稱 AttrRefs)。 這是儲存在每一檔案的檔案索引中之短値,可在 AttrFile中找出該檔案的屬性資料所在位置。係以對準 長度爲單位,而以AttrFile内屬性登錄的偏移量表示該 位置,亦即,將AttrRef計算爲位元組偏移量除以對準 長度。 -屬性索引("Attribute Index ;簡稱 Attrlndex)。 經潢部中次枒準而只-τ消资合作社印$ 這是一種可在一 AttrFile中找到一特定屬性値之資料結 構。將在下一節的"屬性値查詢”中詳述Attrlndex的結 構及使用。 - 廢棄屬性收集器。 這是一種在適當的時間啓動而自AttrFile中清除不再被 -61- 本紙張尺度適用中國园家標率(CNS ) Λ4規格(2丨οχ”7公釐) 409215 A7 B7 五、發明説明(59 ) 任何現有檔案查詢的屬性登錄之程序。 屬性値共用 在本發明的共用磁碟權案系統較佳實施例中,提供了屬 性値的共用作爲—種延伸屬性實施方式。此種方式可讓屬 性値相同的所有檔案共用實體屬性儲存區a將所有的屬性 #料儲存在一共同位置,即可達到上述目的,該位置即是 AttrFile。儲存在一檔案"f_,的檔案索引之AmRef包含在 AttrFile存放τ的屬性資料的登錄之位置,且係以仏的以 中該登錄之偏移量表示該位置。屬性値相同的各檔案將在 其檔案索引中包含相同的AttrRef値。係以下列兩種方式完 成該屬性値共用: 1 .屬性繼承: 屬性繼承意指:當產生一個新檔案時,將該新檔案之 延伸屬性設定爲與其根源的一現有檔案之相同延伸屬 性値。例如,當拷貝一檔案時,可將該拷貝檔案的屬 性値設定爲與原始檔案相同的値^ POSIX ACL則是一 種不同的屬性繼承實例,提議的POSIX ACL標準規 定:當產生一個新檔案或目錄時,將該檔案或目錄的 ACL設定爲一個與產生樓案的目錄相關聯之系統預設 ACL値。換言之,在p〇SIX之下,一個新的檔案自其根 源目錄繼承其ACL。 根據本發明,只要自作爲屬性繼承根源的檔案或目綠 之檔案索引拷貝AttrRef,即可完成此種屬性繼承。在 此種方式下,被繼承的屬性將共用與所繼承的屬性相 -62- 本紙張尺度適州十國國家標隼(CNS ) Λ4規格(2I0X 297公釐) (請先閲讀背面之注意事項再填寫本頁) -丨裝_
11T 經濟部中次掠準扃.'只-T-消贽合作社印繁 A7 __________B7 五、發明説明(6〇 ) 同的實體儲存區。 2 .屬性値查詢: I. 來-- (請先閱讀背面之注意事項再填寫本頁3 爲了將一屬性設定成或改變成—個並非自另一檔案繼 承的値’採用了屬性索引,用以決定具有相同値的一 登錄是否已經存在於該AttrFile。—種諸如赫許法等的 索引査詢方法可用於此一目的:爲了設定或改變一屬 性値,將一赫許函數應用於屬性資料。利用所得到的 赫許値作爲一赫許表的一索引,其中將找到>AurRefs 表,這些屬性參考値對照到具有散列對映到同一赫許 値的屬性資料的AttrFile中之各登錄。將待儲存的新屬 性資料與所有這些登錄中之資料比較。如果找到相符 者’則將對照到現有登錄的一 AttrRef儲存在該檔案之 檔案索引。如果沒有找到相符者,則將包含新屬性値 的一個新的登錄加入AttrFile,並將該新登錄之AUrRef 儲存在該檔案的檔案索引及赫許表中,因而使用同一 屬性値的未來屬性更新將找到該新的登錄。 爲了增加屬性値共用的可能性,在許可的情形下,先 將新的屬性値轉換成一正規形成,然後才儲存或查詢 這些新的屬性値。例如,可以用户或用户群識別碼儲 存一存取控制表中之各登錄;此時如果兩個ACL的功 能相當’則縱然在設動這兩個ACL時,可能並未以完 全相同的格式呈現這兩個ACL,上述方式也可使這兩 個ACL共用AttrFile中之相同儲存區。 於實施本發明系統的儲存功能時,延伸屬性特別適用於 -63- 本纸張尺度適用中國國家標準(CNS ) A4規格(2丨0>< 297公釐) 409215 經泊部屮次標卑^0^消资合作社印^ A7 B7 _五、發明説明(61 ) 儲存ACL及其他類似的用途。雖然一使用者可能用有大量 的檔案,但是該使用者相當不可能將一不同的ACL與每一 該使用者的檔案相關聯。而是通常有若干群相關的檔案, 這些相關的檔案具有與這些檔案相關聯的相同存取權。例 如,屬於一特定專案的各檔案通常具有相同的ACL,該 ACL將檔案使用權授與和該專案相關聯的各使用者。再舉 另一個例子,在目錄階層的同一目錄或子樹内之各檔案通 常將共用同一 ACL。事實上,在提議的POSIX ACL標準 中’ ACL繼承的目的在於讓一使用者易於爲同一目錄中之 各檔案維護一個共同的ACL。因此,我們預期一標案系統 中不同ACL値的總數將遠小於檔案的總數;事實上,我們 預期將小於一個很小的分數。亦即,與個別儲存每一 acl 比較時,使具有相同ACL的各檔案共用ACL儲存區之方式 將使用於儲存ACL的虛耗空間至少減少到相同的分數。 此外,各ACL通常並不包含一份較長的個別使用者表, 這疋因爲很難官理此種表。大多數的系統反而容許定義用 户群;然後可在一ACL中使用一用户群,以對照到屬於該 用户群的各用户。因此,極長的ACL是很少見的,因而通 常可將一 ACL儲存在一個小容量的空間中。此一事實加上 ACL的共用意指:有可能將大量檔案的ACL資料緩衝儲存 在記憶趙中。此種方是可以極有效率之方式擷取—檔案之 ACL,這是因爲ACL很可能緩衝儲存在記憶體中,因而無 須額外的磁碟I/O作業即可取得ACl資料。 當改變大量檔案的ACL時,許多這類八匚匕有可能被改變 I- ϊ I -:- - n 1 ^1. >z, ^^^1 1.^1 ^^1— r^i *--D (讀先閱讀背面之注意事項再填寫本頁) ___ -64- • 本躲尺度適财關石料(CNS) (2丨Q χ 297公疫) *00215 A7 B7 五、發明説明(62 ) 成同一新値。例如,此種改變將發生於容許一個新用户使 用與一特定專案相關聯的各檔案。由於ACL的共用,一組 相關的ACL改變作業中,只有第一個ACL改變作業需要更 新AttrFile,使用相同ACL値的後續ACL改變作業只需要杏 詢Attrlndex中之ACU直即可。此即意指··縱使在—個具有 大量同時ACL更新的工作負荷下,對AttrFile的存取大部分 將是唯讀作業。因此,此種將所有的屬性儲存在_個共同 的位置之方式將不會產生瓶頸的問題。此種方式對—個最 好是將屬性資料缓衝儲存在當地的分散式處理環境特別重 要,因爲原先的在當地緩衝儲存之方式將因需要使緩衝儲 存在其他節點上的屬性資料無效,而使AUrFile的更新成 本印貴許多。 _ 廢棄屬性收集是一種需要提供的持續性需求。當不再需 要一屬性登錄時,屬性値的共用使收回八咐打16中的空: 增加了一些困難。問題在於偵測何時删除該登錄才安:: 亦即查詢孩登錄的最後一個檔案何時被刪除或該檔案的屬 性何時被改變。此—問題的的—個共用解決方式是爲每— 登錄维護一個參考計數;當查詢該登錄的一 AurRef被儲存 在一檔案的檔案索引時,即遞增該參考計數,且當— AUrRef被刪除時,即遞減該參考計數。然後在該參考:數 回到零時,即可刪除該AttrFile登錄。然而,縱然新的屬 性値業已存在於AttrFlle ’每當繼承、儲存 '或更新—屬 性時,此種解決方式即需更新—參考計數。因此,對哕 AU㈣e的存取不再大部分是唯讀#業,這將造成潛在: 65- n I n I---1 κ — I - n I ____ T 、-° (請先閱讀背面之注意事項再填寫本頁} 木紙狀度制巾賴 $^ ( CNS ) ( 210-^297¾- 409^15 A7 __________ B7_ 五、發明説明(63 ) 瓶頸。 本發明並不使用參考計數,而是利用廢棄屬性收集之方 式收回屬性空間。廢棄屬性收集以下文所述之方式找到並 刪除不再使用的屬性登錄。每一屬性登錄的—部分是一參 考旗標(Reference Flag ;簡稱Refnag),當將—個新的登錄 加入AttrFile時’必然設定該RefFlag。廢棄屬性收集係在 下列三個階段中進行: 階段i : 掃描整個AttrFile ’並關閉該檔案中每—屬性登錄之 RefFlag。 階段2 : 掃描所有的檔案索引。對於在一檔案索引中找到的每一 AttrRef而言,將AttrFile中對應的屬性登綠之參考値開 啓。 階段3 : 再度掃描AttrFile,並刪除RefFlag仍然關閉的所有屬性 登錄。 爲了確保廢棄屬性收集將不會删除在該廢棄屬性收集程 序進行中所產生新參考値之各登錄,廢棄屬性收集必須與 查均作業作業同步,其中該查詢作業是參照前文"屬性値 共用”這節中”屬性値查詢"這一項目所述的設定或改變— 檔案屬性作業之一部分。因爲廢棄屬性收集可能耗用較長 的時間(尤其是在第2階段),所以在執行廢棄屬性收集作 業時,只停止所有的設定屬性/改變屬性之作業並不是一 -66 - 本紙诙尺度適州巾國國家標準(CNS ) Λ4規格(210X297公釐〉 ---------私-- (讀先閱讀背面之;;i意事項再填寫本頁) 訂 A7 B7 M部中次樣準而一只工消贽合作社印製 五、發明説明(64 ) 種良好的方式。反而在設定屬性/改變屬性作業發現 AttrFiie中一個現有的登綠具有—個符合所設定新値的値 時’在其將該AttrRef儲存在檔案的樓案索引之前,也先檢 查該登錄中的RefFlag是否是開啓的。在此種方式下,只 有在廢棄屬性收集的最後一個階段中,且只有在屬性値查 詢作業找到一個RefFlag關閉的屬性登.錄時,廢棄屬性收 集與屬性値查詢作業間之明確同步是必要的。 啓動廢棄屬性收集程序的程序是重要的。若沒有磨棄屬 性收集,則縱然現用屬性資料(即仍然有查詢的屬性値)之 總數並未成長’ AttrFile也將毫無限制地成長^ AttrFile成 長的速率取決於設定屬性/改變屬性作業之速率。對於諸 如ACL等屬性使用而言,此種作業的速率在本質上是無法 預測的。因此,每隔—個固定的時間間隔(例如每天一次) 〇動'人廢棄屬性收集的策略是不適用的。我們反而要監 視屬性資料的總容量,亦即AUrFile的容量減掉仏⑽以中 之總自由空間。每當屬性資料的量成長到某一因數(例如 1<5或2)時,即啓動廢棄屬性收集。此種策略在現用屬性 資料量保持不便時可有效地使AurFUe不會 j介資料節點作f : 本節中將說明中介資料節點之㈣,該作業將提升在多 個電腦需要更新或擴大同一資料物件的情形時之效能。我 們首先將説明爲這些功能而產生—中介資料節點,然後將 况明識別中介資料節點及回復中介資料節點之方法。 _中介資料節點之依用 -67- 表錄尺度賴中關?拆(CNS )罐格(別心了公您 n l^i i ϋ— I I Ij--R, In I- I -- - 1-* 11 U3 ,-·* (請先閱讀背面之注意事項再填寫本頁} A7 409215 五、發明説明(65 ) — 與本發月的中介資料$·點有關之本第—節將大致説明本 發明的中介資料節點是什麼、以及該中介資料節點將解決 哪些問題。在本發明的系統中利用中介資料節點來管理共 用磁碟環境中平行讀取及窝入之檔案中介資料。平行檔案 系統使多個處理器可以獨立存取構成檔案系統的部分或全 邵磁碟。爲了利用此一能力,多個處理器在讀取及寫入時 應共用一個檔案。 ‘ 有幾個問題可能大幅降低此種存取的效能。雖然各節點 在適當鎖定其所讀取或寫入的各區域之情形下,這些節點 可讀取及窝入檔案的各不同區域,但是這些節點都需要存 取相同的中介資料.中介資料包括檔案大小、檔案存取與 修改時間、以及檔案的資料區段之位址。例如,讀取及窝 入檔案的所有作業都需要知道該等作業是否超過了檔案大 小,並在該等作業擴展該檔案時更新該檔案大小^ ^果需 要以70全共用方式平行寫入一檔案,則上述這種單點發生 的事件可能造成一個嚴重的瓶頸。 本發明實施了 一種可讓每一節點於讀取及窝入同—檔安 時儘量獨IL運作之系统,並設計出一種使這些作業同步之 機制’因而只要本發明用來管理中介資料資訊之方法,則 所有的節點都將可得知一致性的檔案狀態ε本發明用於在 一共用磁碟檔案系統中管理一檔案的中介資料資訊之方法 爲:爲每一檔案選擇—單一節點作爲該檔案之中介資科節 點。該中介資料節點負責處理中介資料進出存放中介資^ 的一個或多個磁碟時之所有U0活動。 _________ - 68 - _本紙浪尺度過用中國囚家榡準(CNS ) Λ4規格Γ2_!〇><2们公 (讀先閏讀背面之+注意事項再填穷本頁> 訂 五 :¾¾-部中次榡準局負工消兜合作.iL印 hi B7 、發明説明(66 ) 更:節點都與該中介資科節點通訊,以便提取或 之中介資料資訊。 不直接存取磁碟中 ::存取檔案的第一個節點爲中介資料節點。因此,如 個節點需要存取檔案’則因該節點可直接取得中 4:資=會產生額外的虚耗作業。其他的節點將經由 及千介鸢料節點而取得中介資料。 而2料節點的導入將可避免相當數量的磁碟活動,因 相當的提升。 〕十彳4案系統I效能有 磁節點保存—份緩衝儲存的中介資料,用以反映 :中介資料。其他節點亦保存—份過去 枓即點孩取的緩衝儲存之中介資料,五於需要 改變存取時間時)增添該中介資料。 .r 每-中介資料元素(存取時間、修改時 區段之磁碟位址)有其本身的使用模式及7徵:例 :二本發明之系統不需要—個非常精確的存取時間,炉是 要個準確度在五分鐘内的存取時間 地對中介資料銘 7需要頻繁 ^ U進行更新,因而可節省大量的通訊。 “上’:要系統的行爲具有—致性,所有節點上的樓案 點上的枰央士,咕/ 種複雜的万式來控制所有節 面本'、,將知到—種多個節點可同時擴展檔案 的平行窝入架構。 m心案 利用一種遞延同步演算法,即可“大量的磁碟
--------- - RQ 本紙张纽剌帽 (請先閱讀背面之注意事項再填寫本頁)
、發明説明(67 4092¾ B7 執行之:二?—種作爲。每—節點的作業系統的-部分而 過修改的^料同步服務程式嘗試每_秒即清除磁媒中經 檔案,則咅中介資料°如果M個節點以平行方式寫入 j4母隔N秒對中介資料只有M次磁碟存取。在 傳送二下’所有的節點將其經過更新的中介資料 步服務程i取:7號Γ介資料節點每隔N秒當其自同 〜\取侍一仏唬時,即清除檔案。 —每—節點將存取磁碟,以便讀取或寫人中介資料。 ^ ^ $的平彳T寫人這節的第二部分係有關將鎖定模式用 捧:找七1資料管理節點。在多個處理11可獨立存取構成 :'先的所有磁碟之本發明平行標案系統中,使用鎖定 杈=以哥找中介資料管理節點的符記係用於中介資料節點 勺選擇及識別。爲了利用此種能力,多個處理器於讀取及 寫入時應共用一檔案。 在本系統中,將一節點指派給每一檔案,該節點負貴存 取及更新肩檔案的中介資料。該中介資料節點(或中介節 點)於接收到要求時與其他節點共用此資訊。 孩中介資料節點保存與檔案的中介資料有關的資訊,並 作爲磁碟與存取檔案的所有節點間之一智慧型緩衝儲存裝 置。也會發生中介資料節點(或中介節點)停止服務該功能 的之情況。爲了能得到平順的作業及回復,必須處理這些 情況。此時係以直接的方式從以往都存取該中介資料節點 的各節點中選出一個新的中介節點。 -70 本紙乐尺度適用中國國家標车(CNS > Λ4現格^ΐΤ^χ297公楚] (請先閱讀背面之注意事項再填寫本頁) 裝. 訂 經漭部中央標準扃只τ,ί-f1;赀合作社印«'14 409215^7 ________ _ B7 1 - _ 五、發明説明(68 ) 此時選出一個中介節點,並使所有的節點都知道該資 訊β選擇程序要考慮到樓案的存取模式。每-標案應該有 *個唯一的中介節點。此外,本架構應確實讓中介節點接 管及回復。在本發明的系統中,選出若干中介節點,並使 其他節點都知道這些中介節點的資訊β 本發明使用一符1己管理器子系統。符記管理器是一種將 符記授與各節點的分散式子系統。每一節點可要求一個具 有特疋模式之有名稱符記。如果該模式並未與具有同一 名稱且已授與其他節點的各符記衝突,則符記管理器將該 符圮杈與該節點。爲每—符記設有—份包含可能模式及衝 突表的清單。如果所要求的符記與已授與另—節點的符記 衝犬,則執行一取消作業,且發生衝突的節點將其符記模 式降等爲一個不與被要求的模式發生衝突的模式。 選擇存取檔案的第一節點作爲中介資料節點。因此,如 果只有一個節點需要存取檔案,則因該節點可直接取得中 介資料,而不會產生額外的虛耗作業。其他的節點將經由 該中介節點而取得中介資料β 經滅部中吹標準局κ π消費合作社印欠 II - ---- ---衣! - II - —订 (請先閲讀背面之注意事項再填寫本K ) 對於每一槽案而言,我們界定了”中介節點符記"。該中 介節點符記共有三種模式:"ro〃(唯讀)、,,ww"(弱勢寫 入)、及"XW"(互斥窝入)。規則如下:_,xw"符記與所有的 模式衝突;"WW"與"XW"及本身衝突;"ro"只與”xw,,衝突。 因此,有兩種可能性:〇個或更多個節點保有„Γ〇"中之符 記,然後最多一個節點可保有"ww"中之符記,或單一節 點保有"XW”中之符記。符記管理器(Token Manager ;簡稱 -71 - 本紙张尺度適用中國國家標準(CNS ) A4規格(210X29?公釐) 五、發明説明(69 ) TM)子系統負責管理一節點之符記,益確保符記模式與此 定義一致。可將不同模式間之衝突概述於下表5 : -表 5—------
Γ0 WW XW Γ0 丰* WW * * 伞* χ·\ν 氺本 伞氺 氺* 對於中介節點而言,本發明設計出下列演算法:當一節 點首次開啓一檔案時,該節點嘗試取得模式"ww"中之中 介節點符記=符記管理器tm在有可能時(亦即其他節點並 未保有"WW"或"XW"中之符記時)授與"ww"中之符記°如果 此種情形發生時,該節點變成符記管理器。然而,如果另 一節點保有"WW"中之符記,則TM授與”ro"中之符記。然 後該節點知道另一節點是中介節點。該節點可查詢TM以 便得知該檔案的中介節點是哪一節點。 當一節點變成一中介節點時將發生一些情況。在此種情 形中’要求一"ww"將不會有所助益,因爲舊的中介節點 將不會把其符記降等^此時想要變成中介節點的節點要求 一 "XW"符記。此時將把—個收回訊息傳送到現有的中介節 點°舊的中介節點然後將其符記降等到"r〇",JL TM將一 "ww”符記送回到該新的中介節點。如果一節點要求一 ’,xw__ 符記’且其他節點都未保有該符記,則TM將授與該模式 中之符記。 -72- 本纸張尺度適财國财標準(CNS ) A4規格(2]Dx 297公楚) (讀先閱讀背面之注意事項再填寫本頁) -丨裝
,1T 如果一卽點保百 409215 Α7 __________ Β7 五、發明説明(7〇 ) 疋 itc 1¾ 來 I Ψ 介節點,但是此外’其他節點都沒有使該檔案開啓。在此 種情形中,如果一節點嘗試取得”ww"中之符記,則將一 取消訊息傳送到中介節點。因此’該節點將其"xw"符記 等爲W',然後TM可將一"ro”符記授與新的節點。W 將增強符記模式用於控制檔棄士 相關的檔案系統標準要求可在需要時取得正確的檔案大 小;然而,在有多個應用程式將資料增添到檔案時,以平 行方式維護所有節點上的檔案大小就效能而言是既複雜且 异貴的。該系列特徵的次一部分説明本發明的下列方式: 維護檔案大小,而在需要時可取得該檔案大小,且不會有 固定的虛耗作業。在此種情形下,若多個處理器於讀取及 寫入時共用一檔案且不會產生固定的虛耗作業,則該檔案 可利用多個處理器可獨立存取構成檔案系統的所有磁碟之 一平行檔案系統。 檔案的讀取及寫入共用涉及檔案大小的存取。每一讀取 及寫入作業需要檢查該作業的偏移量是否超過現有的檔案 大小,並且在發生此種情形時,送回—個檔案終止(EM— Of-File·,簡稱EOF)訊息。每―寫人需要檢查該作業的偏移 量是否超過現有的E0F,如果確係如此,則應擴展檔案。 當有數個讀取節點及寫入節點時,所有的檔案大小必須— 致。因此,如果某—節點在偏移量丨〇〇〇上寫入,則任何節 點在邊位置上讀取時,不應送回一 E〇F訊息。 保持一致狀態的—種方式是以串列方式進行對檔案大小 -73 f請先聞讀背面之注意事項再填寫本頁) i % 1 1 f 1 本纸依人度即丨H 標準(CNS ) Λ4規格(2!Οχ297公瘦 五、發明説明(71 4092 5 3; 的存取。然而’此種方式將會對平行“造成—大瓶頸, ^每-窝人(及讀取)在進行作業之前必須取得現有的樓 案大小。 在本發明的較佳實施例中,於每—節點當地内保存 標案大小資訊。此外’相每—份檔案大小資訊亦保持— 鎖定模式…鎖定管理器保證相衝突的就模式不會同時 存在。每-讀取及寫人作業的—適當鎖定模式保證在當地 緩衝儲存㈣案太,1、係精確到足以得到該作業的—正確社 果。不同的模式有: 用於在當地緩衝儲存的檔案大小内的讀取及寫入 -rw 作業 -”rf” -”wf_ -"wa -"xw (請先閱讀背莳之注意事項再填寫本頁) 用於在當地缓衝儲存的檔案大小外的讀取作業。 用於在當地缓衝儲存的樓案大小外的寫入作業。 用於添加到檔案之後的寫入作業。 用於減少檔案大小(類似截除作業)之作業,因 需要一互斥窝入鎖定 標案大小的鎖定模式之衝突表如下: 好滅部中央#^^兵-"消赀合作社印$1 --- ----表 6 - rw rf wf wa xw rw * * rf 承ΐ * * 丰本 wf * + ♦伞 氺+ wa * * * * xw 氺本 本氺 氺宰 氺伞 1—— 米衣------,η--------^ 當—節點將其鎖定模式升等時,即自一個追蹤檔案大小 :-_74 _本紙 4〇92i5 A7 B7 五、發明説明(72 赶境.邙-Ί·央樣卒局;3^消贽合作_社印製 的特殊節點(一中介資料節點(簡稱中介節點”讀取新的檔案 ^小。當-節點將其鎖定模式降等時,即將其檔案大小傳 送〗:a節點。中介節點本身保存其所收到所有檔案大小 中的最大値之—檔案大小(例外情形爲一節點將檔案大小 鎖疋在"XW"模式,此時可減少檔案大小)。 某二節點,、可崤取檔案大小〇w,rf)。某些節點(wf,Wa) :5加,术大小。—模式(xw)可減少檔案大小。實際的檔 大J疋各斤點在當地保存的所有標案大小中之最大値。 在田地緩衝儲存的檔案大小内的讀取或寫入作業需要對 案大小的-VW"鎖定4當地緩衝料的檔案大小外的 Μ取作業需要確保自其上次讀取檔案大小之後該檀案大小 並沒有増加。因此,這些作業需要取得鎖定(與增加 檔案大小的模式衝突)β 増:檔案大小的作業需要取得—"wf,或、a,,鎖定。如果 寫U知道新的絕對插案大小,則需要一"w鎖定。增 添作業需要-"仰"鎖定…增添作業係在現有的E0F處^ 因此個增添作業將在另一增添作業的終止處寫 =。因此’ "wa"與其本身衝突’這是因爲—個增添作業應 等候其他的增添作業0 可減少構案大小的唯一模式爲"xw"。這是一種互斥模 式:將使所有其他節點放棄其鎖定,因而失去了在 衡儲存的㈣大小。gut,在取得„xw”的節點完成其 時^例如完成-棺案截斷時),所有節點將必須自中介 取得新的檔案大小》 ' -75 (請先閲婧背Ϊ&之注意事項再填寫本頁) 裝 訂 4092 五、發明説明(π A7 B7 經¾-部中次標準局負工消费合作社印製 -76 我們無法得知一個在不同的節點上緩衝儲存不同的檔案 大J、足系統内部情形’因而須儘量增加檔案的平行寫入共 用’但疋孩系統仍然將檔案的—致性狀態提供給所有的使 用者。 此種解決方式可讓在不同節點上的使用者擴展檔案,並 因而獲致極高程度的寫入共用。縱然使用者擴展檔案大 小,也不需要以串列方式執行寫入作業。 衝儲存位元組範圍符記 、開發的平行窝人實施例的次—部分將説明用於 有存取(平行及非平行存取)的鎖定。只鎖定立即需要的 ^部分是成本高“ ’且需要利用每__應用程式呼叫而 :Η鎖疋&理器。本演算法嘗試預測應用程式的需求,其 2爲=慮系统中還有其他什麼事情正在進行,並儘量減 ^付记官理器呼叫的次數。 取對讀取及寫入同-構案而言,爲了 "列方式存 若要二此:H:區域’使用一分散式鎖定機制。然而, m :鎖* ’需要先取得—符記,這顯然是一種代 二1卜r業°因此’最好是預測檔案的存取模式,而在 衝儲存各符記。另一方面,取得-個不需要的 本㈣=降低效能’這是因爲另—節點將需要該符記。 式:而Ϊ 項説明了下列演算法··預測標案的存取模 =:即點取得-符記,因而得到最大的效能。
备不同郎點上的程A 元組範圍符艾銷, 丁巧~檔案時,以分散式位 圍付尤鎖疋執行對該檔案中不同區域的串列式存 本纸紅㈣财_家^τ^τ^(210χϋ 丨裝------訂 (請先閲讀背面之注意事項再填Κ本頁) 409215 A7 B7 經"-部中火標嗥历只工消"合作社印製 五、發明説明(74 ) 取。當-程序需要鎖定-位元組範圍時,該程序 取得-個適當的位元組範圍符記。該位元組範園: 該節點對i案的-部分之存取權。因此,= 有-個在讀取模式下用於檔案乂的範圍(⑽,2()·^待 時,則意指#節點可安*地讀取該㉟案的該部*。然3 5己 爲了避免該符記的借用,該節點在實際讀取之前必須二 孩符記’這是因爲如果另一節點需要寫入同—部分,可: 會借用該符記。鎖定該符記即可以借用。在完 ; 業之後,即解除對該符記的鎖定。 我們可將符記視爲"緩衝儲存"鎖定的一種方式。當 點需要鎖定一檔案的—部分時,該節點需要鎖定符:。: 先孩節點需要取得-符記並鎖定該符記…互完成作業且 解除該符記的鎖定之後,該符記仍然存放在該節點。因 此’在同-區域的各後續作業將不f要接觸符記管理器 只有在該符記被借用時’才需要一個新的對符記之要丄。 因此,要I一個比所冑更大的符言己而鎖定之可能是較有 利的。例如,如果-程序循序讀取一檔案,且該程序讀取 麵到2_的範圍,則戟次—鎖定將是刪到胸的範 圍,但該程序可要求—個諸如自1〇〇〇到1〇〇〇〇等的較大符 z然而’此種方式可能在其他節點上產生過量的符記流 通。如果另一節點正在進行自5〇〇〇到6〇〇〇的寫入作業,則 上述的符記取得可能延遲了該寫入作業。 、 本發明的觀念是在要求一位元组範園符記時提供兩個範 園:必要範固(這是作業所f的最小範園)、及希望範圍 -77 本纸ίΑ尺㈣财咖家系準(CNS ) Λ4規^ 參-- (請先閲讀背面之注意事項再填寫本頁)
*1T 40d2 A7 B7 五、發明説明(75 (這是預期將使用到的最大範圍)。符記管理 個涵蓋必要範圍但不大於希望範 〇J1 演算法:⑴如何爲每—作業計了:二…須指定兩個 法T 希望範圍及必要範圍, 孩/貝算法疋在要求端上執行々 .當贫法B .过女々1 ()如何計舁授與範圍,該 决异法疋在保有各相衝突的符記的節點上執行。 對於上述演算、m本發明區分兩種㈣存取模式: 隨機存取及循序存取。在隨婦取t,無法制起始偏移 量^欠:作業。假設循序作業係開始於前—作業結束處。 在母^一印點上每一檀案可客;t > 罹莱了多,人開啓,卫每一此種檔案實例 可展現一種不同的存取模式。 、本發明提供下列較佳的演算法。主要目標是儘量減少符 記的流通。 當嘗試鎖s-位元組範„ ,我們首A查詢符記管理 器,以確認節點上是否存在一個相容的符記。所試探的範 圍是作業必要的最小範圍。如果可在當地取得該符記,則 鎖定該符記’且不會發生其他的符記活動。 然而,如果無法取得該符記,則要求—符記。係根據檔 案作業的偏移量及長度而計算必要範園。係根據該檔案的 存取模式而計算希望範園。如果係隨機存取該檔案,則希 望範圍將等於必要範圍,這是因爲自其他節點借用符記 (可能是不需要的)可能得不到任何好處。然而,如果係循 序存取該標案,則希望範圍開始於必要範圍的起點,但終 止於無限大(將有一個特殊値代表無限大)^此種方式是嘗 試儘量減少未來的符記要求’因爲我們可預測到將需要未 -78- 本紙悵尺度適川中國囡家標準(CNS ) Λ4規格(210X 297公瘦) —----------良_______丁 ,vs (諳先閱讀背面之注意事項再填寫本頁) 五 發明説明( 76 A7 B7 經系‘部中次標準局货Η消贽合作社印製 來的鎖定。 , 節站保有一個與另一節點上的一符記要求衝突的符 =時’該節點得到—取消要求。該取消要求包含要求節點 裳必要範圍及希望範圍。此時,时符記的節點必須決定 也:放棄的範圍。如果該必要範園等於希望範圍,則易於 足,且授與範園是必要範圍(也是希望範圍)。,然而,如 希望範圍與必要範園不同,則意指要求節點正循序存取 ^案,且菘節點希望有—個開始於必要範圍的起點但終止 ^播限大的符記°保有符記的節點隨即掃描要求節點存取 ^案的所有現行程序,檢查這些程序係循序存取或隨機存 % ^檔案。如果所有程序都是隨機存取該檔案,則該節點 ^與希望範固 '然而’如果—個或多個程序循序存取該權 ,則放棄希望圍將是—種浪費,因爲我們有極高的機 率可以得知隨即將被要求的符記。在此種情形巾,檢查所 2循序作業的檔案指標(亦即次一作業的預期位置),且計 算出最小偏移量。我們預期這些作業將不會存取在該最小 偏移量之下的檔案區域,這是因爲這些作業是循序作業。 因此’授與|a園伸展到所計算出的最小偏移量或必要範圍 (取較高値)。 我們然法得知一個基於檔案的存取模式而要求位元组範 圍符記之系統内部情形。 此種解決方式可依據檔案存取模式而緩衝儲存各符記。 因而節約了代價很大的符記取得作業,並因而提高了系統 的整體效能。 ' (請先閱讀背面之:ΐ意事項再填寫本頁)
,1T Γ -79- 409215 A7 B7 五、發明説明(77 ) 此種解決方式適用於需要容許檔案的平行寫入共用且需 要循序存取擋案中各相同區域的任何平行構案手统 位元組範圍符記介面 本發明之平行窝人改良使用—種具有—位元組範圍符記 介面之位元组範圍鎖定演算法,而得以管理描述符記的資 訊。利用多個處理器可獨立存取構成構案系統的所有磁碟 (本發明平行檔案,系統時,要求多個處理器於讀取及寫入 :應共用一個標案。爲了起動平行窝入作業,並同時確保 植案的-致性,需要有一個用於各構案區域的鎖定機制。 在-分散式處理環境中’有時要用到符記。該符 節點對:物㈣存取權。然而,-節點可能執行數個程 序且&些私序嘗試存取—檀案的相同g -個對符記之當地鎖定機制D此外,另—節點可能需:存 取相同區域’因而可能嘗試取消該節點之符記;因此,口 ,一當地程序較符記’則不應提出—取消要求。因此: 應將某些種類的鎖定演算法用於這些符記,本發 管理器(TM)即管理這些種類的演算法,而符記管理器: ==國際商業機器股份有限公司的美心 =0¾部中央標準局·_Μ T;消费合作社印裝 爲了存取一檔案中之—區域,— , 的符記,然後鎖定哕符纪ik Γ、八取得適當 哕符允之銷> 古作業,最後則解除對 鎖疋。有幾個與鎖定符記相關聯的問題;在第一 中,無須再度取得兮符# 得付^己。在此種情形 取件…己。在弟二個問題令,必須 L-_______ 一 -80- 409215 A7 B7 i!r:;"'部中^樣泽^κ-τ·消费 At 作社印" 五、發明説明(78 同—節點内的各鎖定不會衝突;在第二個 問题中,必須處 理其他郎點因需要一個與現用節點目前持有的—符記衝突 之符記而發出的取消要求。本發明所提出的鎖定演算法有 效率地解決了這些問題。 ' 本發明之鎖定演算法係以一組API之方式呈現。其中兩 種API係用於對一位元组範圍的鎖定及解除鎖定。第三種 API是一個由符記管理器呼叫的召回函式。符記管理^當 然也提供三種API。第一種API是用來取得—位元組範圍符 記("Acquire”)。第二種八?1是用來測試是否已在節點上緩 衝儲存一位元組範圍符記("Test")。第三種Αρϊ係用於回應 一取消要求而放棄一符記("Relinguish")。爲了識別檔案中 之各存取區域,每一符記包含其可存取的檔案區域之一範 園(起點、終點)。 現在將詳細説明所採用的各符記管理器ΑΡΙ。一取得函 式的形式如下:
Acquire(byte_range) 呼叫該函式而取得一範圍符記。 一取消函式之形式如下: R>evoke(by te一range) 當另一節點需要該符記時,TM即呼叫該函式。 因此,該節點應呼叫:
Relinquish(byte_jange) 本發明所實施的演算法亦基於必須由TM提供的第四種 介面: -81 - 冬紙乐尺度適用中國國家標毕(CNS ) Λ4規格(210X297公t ) I I.^* ' 1 I~~ 訂 {請先聞讀背面之注意事項再填寫本頁) 經漳部中央樣準局后J-消费合作社印¾ A7 B7五、發明説明(79 ) T est(byte_range) 該介面向TM查詢節點上的符記是否存在。 爲了簡化實施方式,各節點並不追蹤所保有的各符記; 而將此項工作留給符記管理器,且各節點將利用測試介面 查詢是否需要取得一符記。於取得一符記時,通常要執行 一些動作。因此,最好是知道是否已保有一符記而可省掉 這些動作。 該演算法係基於一鎖定表(範圍鎖定表(Range Lock Table ;簡稱RLT)),該RLT存有所有現有的鎖定a — mutex 偵測該表,以起動鎖定的自動插入及刪除。三個主要的函 式爲:LOCK,用以鎖定一位元組範圍;UNLOCK,用以解 除一先前被鎖定的範園;以及REVOKE,用以處理一取消 要求。 本發明提供這些介面的虛擬碼如下: LOCK(rang) { retry '· old_revokes=nrev〇kes ; if(not Test(byte_range)){ //the token does not exist of this node acquiTe_mutex ; i_am_fetching=true : fetch_is_pending=true ; release一mutex ; ___-82-__ 本紙張尺度適用中國®家榡( CNS ) Λ4規格(2[OX 297公釐) (請先E讀背面之注意事項再填寫本f} 訂 K、 4092 A7 B7 五、發明説明(so )
Acquire(byte_range); get_data_associated_with byte range ; goto retry ; } else{ stolen are 經消部中夾標羋局只工消φ;合作社印1i to revokes //we have the token locally-check that it was not acquire_mutex ; if(old_revokes !=nrevokes) release_mutex ; goto retry ;} // make sure there are nc pending acquires ; if there // make sure they are finished first if (not i_am_fetching) { if (fetch—is_pending) { sleep(); goto retry} }· II if we acquired the token before the Test, we need // release other threads, we hold the mutex, so no 83 - 本纸張尺度適用中國國家標準(CNS ) Λ4規格(210X 297公釐) (請先M讀背面之注意事項再填寫本頁) ^ 117 409:^5 A7 好濟部中吹樘準局β,τ.消许合作社印說 B7 五、發明説明(81 ) // can interfere here if (i_am_fetching) { i_am_fetching=false ; fetch_is_pending=false ; wakeup();}} err=insert_range_into_lock_table ; if (err==E_CONELICT) { sleep( ) ; //wait for someone to release the lock goto retry ;} exit if (i_am_fetching) { fetch_is_pending=fa!se ' i_am_fetching=false ;} release—mutex ;} UNLOCK(range){ acquire_mutex ; delete_range_from_lock_table i wakeup ; -84- ---------^------IT------ (讀先閱讀背面之注意事^再填寫本頁) 本紙張尺度適用中國园家標準(CNS ) Λ4说格(21〇Χ 297公釐) 409215 A7 B7 五、發明説明(82 release mutex : REVOKE(range){ retry acquire mutex ; err=insert_range_into_lock_table if (err==E_CONELICT) { sleep(); goto retry :} nrevokes++ ; release_mutex ; put_data_associated_with_byte—range Relinquish (range); acquire_mutex ; delete_range_from」〇ck一table ; wakeup ; release mutex ; 至此已説明了 一種位元組範圍鎖定。雖然我們無法得知 位元组範圍鎖定的任何演算法,但是我們注意到先前對非 位元组範圍鎖定的解決方式會在符記管理器之外保存—份 -85- 本纸狀度4用巾§1财轉(CNS ) M娜(21()>< 297公楚 (請先閲讀背面之注意事項再填艿本頁) ^ 訂 ^ A7 五、發明説明(83 ) 符記狀態》 此處’請注意本發明的分散式符記管理器將若干介面 (Acquire、Revoke、Relinguish、及 Test)提供給範圍(亦即一 檔案的位元組範圍)之鎖定。可在共用讀取模式或互斥寫 入模式中要求—特定範圍。 本發明的一項特徵在於:符記管理器檢查對一指定位元 組範圍的符記要求,並將該要求與整個多節點系統中現有 的各衝突範圍比較,並授與一個無須另—電腦的符記取消 之珉大可能位元組範圍。此種方式將減少在要求節點上的 ^入作業心出另一符記要求的機率。利用計數器及非阻隔 鎖定呼叫以取得符記,並同時保有其他的鎖定。此種技術 可在單一節點内更有效率地循序進行多個要求,而得以進 行所需的多個節點循序存取a 根據本發明,符記管理器的Acquire介面以一個模式以及 兩個範圍(一"必要"範圍及一"希望"範圍作爲輸入。希望 範圍必須是必要範圍的一超集合。對一個呼叫Acqnre介面 的應用%式保證:至少將必要範圍授與該應用程式。符記 管理器知決定是否已將任何衝突範圍(亦即在—衝突模式 中與必要範圍衝突的各範圍)授與其他節點。如果找到任 何衝突範圍’則符記管理器將要求具有—衝突範圍的每— 節點將重疊的範圍降等到一非衝突模式。 又根據本發明,在解決了與必要範圍的任何衝突之後, Acquire介面將決定完全涵蓋必要範圍的—個最大相接範 圍’該範圍也是希望範圍的一個予集;該範圍也是 -86- 本紙張尺度適用中國國家標準(CNS ) Λ4規格ΠΙΟΧ297公釐) (锖先閲讀背而之注意事項再填寫本頁)
-1T 經湞部中央樣準局只工消费合作社印?水 409215 A7 --- --B7 五、發明説明(84 )
Acquire介面將送回給呼叫應用程式的範圍。事實上,符 °己ί理赛將授與無須執行額外的取消處理之最大可能範園 (但受希望範圍參數之限制)。 付記管理器之Revoke介面係用來將與另—節點的一衝突 範園要求相關之資訊傳送到一應用程式。當一八叫以代要 求偵測到已授與其他節點的衝突範圍時,將要求在每—衝 突節點上執行的應用程式將已授與的範園降等。經由 Revoke介面而傳送的資訊包含模式、及在Acquire呼叫中指 定的必要範圍/希望範圍。 一應用程式接收到一取消要求時,將呼叫尺化吨“比介 面’將已授與該應用程式的任何衝突範圍降等到一非衝突 模式。可要求該應用程式將與"必要"範固衝突的任何範 圍降等到一個最小的非衝突模式,但是亦可降等到該應用 程式想要的一個較大範圍。 付冗管理器亦提供一 Test介面,該介面將決定是否已將 —特定範圍授與當地的節點。一應用程式可利用該丁est介 面以決定對一特定範固的—Acquire要求是否將向符記词 服器節點提出一通訊要求。 利用一特定位元組範園的一些循序數字而處理時,將可 正確地在相同的位元组範園上處理取得及取消。符記管理 器的Acquire介面將一循序數字作爲一引數。對於每一符 έ己而g ’符|己管理器爲已被授與一範圍的每—節點維護— 循序數字。於一 Acquire作業結束時,符記管理器利用 Acquire介面中指定的値更新包含一節點循序數字之糊 _______________-87- 本紙张尺度適Λ]中國囤家標準(CNS ) Λ4規格(2I0X 297公漦) (請先聞讀背面之注意事項再填寫本頁) T -* 五、發明説明( 85 A7 B7 經浸部中决標卑局負工消资合作社印製 位。當一後續的Acquire作業必須取消各衝突節點的範圍 時,符記管理器將自該節點經由符記管理器Rev〇ke介面傳 送上次成功取得之循序數字β 考慮到分散式符記管理器的各介面(Acquire、Rev〇ke、 Relmguish、及Test),本發明提供了 一種在所用的程式碼 中實施當地位元組範圍鎖定之改良式方法。這些程式方法 或演算法簡潔地解決了數種潛在的複雜性,並提供了—些 將於下文中説明的精緻特徵。 ,,本發明利用將於下文中配合原創揭露事項中之虛擬碼而 說明(鎖定技術,以平行方式處理多個符記取得及取消作 業。本發明容許以平行方式處理數個符記取得作業。例 如,如果數個檔案系統作業嘗試以平行方式存取一檔案的 不同區域時,即可發生上述的情形。 本發明也容許對一樓案的—部分之符記取消作業 得作業同時發生,只要這兩個作業不會衝突即可。 我們當了解,本發明並不f要在位元组範園鎖定 内保存一份當地符記狀態。 … 若在取得一符記之後但在鎖定該符記之前,另 消了該符記,貝.】此種情形被稱爲㈣⑽,本發明消除 此種livelock的情形。另一節點取得 -、 兮& h、义 付"己’但在鎖定 Π ’該符記又被借用。此種交替效應停止進行。 -份當地符記狀態,所以將減少本發明存 求,因爲該資訊業已儲存在㈣中。如果業已 請 先 閱 讀 背 之 注 意 事 項 再 ▲ 寫 本 頁 訂 -88 - 本紙烺纽適财關 ^$4*- ( CNsTa^# ( 210Χ 297^Ϊ Α7 Β7 五、發明説日S ( 86 ) 記’則一 API將查詢TM以尋找符記。在鎖定位元組範圍之 後,提供一特殊機制,以便確定在測試過符記的存在但在 鎖定該符記之前不會發生取消作業。但是有可能在取得與 鎖定之前取消該符記,在此種情形中,將再度取得該符記 並嘗試鎖定。 取消召回函式也使用檔案系統作業所使用的同一位元组 fe圍鎖足程式碼。然而’將有—個特殊的旗標指示這是一 個用於取消的鎖定》此種方式使該程式碼的長度更爲缩 短’而得以使用相同的鎖定表。 鎖疋一位元组範圍的API支援可增強其作業的各選項: 非阻隔、當地鎖定、測試、及循序。非阻隔選項可容許一 非阻隔作業;如果各節點並沒有符記,或一衝突鎖定已被 持有,則鎖定程式碼立即送回—個適當的送回碼β 當地鎖定選項可容許一個非分散式作業;如果我們不需 要整體性的鎖定,只需要在節點内的鎖定,則可使用該選 項。 測試選項可檢查是否可鎖定位元組範圍但不實際鎖定。 循序選頁可提示我們鎖定了 —位元組範圍,以供讀取 (或寫入)一個循序存取的檔案。如果需要一符記,則使用 該提示。在此種情”,希望(但不是必須)有-個大於時 序需要的符記之符記。 本發明作了特殊的準備,以便追縱各執行緒(thread)所持 有的各種鎖定。—除錯公用程式傾出現有的位元組範圍鎖 足、及持有這些鎖定的執行緒编號。此外,也保存統計數 ---—~一 __ ' 89 - 本紙狀舰 1 t ‘ .17------ir. I (請先閲讀背面之注意事項再填荇本頁) 409215 A7 B7 五v發明説明(87 ) 經肩部中夹標枣局^:工消玢合作社印絮 字,以便了解檔案存取模式、及鎖定行爲。 藉由送回每—成功鎖定作業的一檔案代碼伽 解除歧《快速進行,且並不需要_搜#或查詢作業使 由於保存了各現有鎖定模式的計數器,所以檢查 鎖定是否存在的作業是快速的。例如,如果我們保存現= 共用讀取鎖定及現用互斥寫入鎖定數目的—計數器 經常了解範圍的重4情形n如果並無互斥窝入 定’且我們需要—共用讀取歧,則我們知道此時並無衝 突’且我們只需要在鎖定表中找到叫固空的儲存區即可。 鎖定程式碼支援τ、限㈣目的a a組範圍鎖定要求 鎖定表已滿的情形中’或在要求—衝突鎖定的情形中1 要求該鎖定的執行緒$於睡眠狀態’並在解除_鎖定 該執行緒唤醒。 本發明之解決方式並不複製符記資訊,因而使用較小 儲存2間且具有效率。 在二符記管理器瑗嫱中夕向痏 由於多個處理器隨時讀取及寫入檔案系統的各部分, 以平行檔案系統是相當複雜的。我們可能想知道當此環現 中的某一部分故障時將會發生何事。本發明提供了此環境 中t回復機制。第一種回復機制係有關於當一節點故障時 正在更新中介資料之處理情形。現在將説明一種與回復符 記狀態、重新執行中介資料登綠及固定作業順序有關的 術0 平行標案系統之回復模型 在 將 所 境 技 {請先閱讀背面之注意事項再填寫本頁} .1-.. -90- 本紙张尺度適用中國國家標4M CNS ) Λ4規格(210X297公釐) B7 五、發明说明(88 本發明之回復模型適用於本發明之共用磁案 各磁碟係經由多個磁碟境線(例如㈣或 ^平 式的網路連㈣存裝“連接。每—處理M = = = Γ散式鎖定管理器而維持資料7中介資料 的-致性。每-處理器獨立登錄各中介資料 : 在故障時不需要用到檔案系统掃描。 因而 困難的問題在於各處理器(不論是硬體或軟體)。這 障的形式可爲嚴㈣實際燒燦處理器、或失掉參*_技 理協定的通訊能力。發生這些故障時,故障的處理器可: 持有可讓其修改共用磁磲的某些區域之鎖定β依照鎖定= 理的拓撲情形,甚至可能要取得額外的鎖定 : 理器最後將知道其狀況,但是外部無法得知執行的時間處 因爲這將取決於故障處理器中出現的狀況。 本發明之目的在於讓所有並未故障的處理器利用共用磁 碟文全地執行作業,且也讓故障的處理器於可回到—已知 狀態時即提供使用應用程式的支援。 本發明之回復模式實施下列觀念: 赶滅部中*樣準局;〇<工消费合作社印 _ 組監視服務程式(類似於Phoenix group的服務程 式),用以監視所有處理器上的程序,並偵測處理器 及通訊的故障。由參與"程序群"提供該服務程式, 當一成員程序故障或一新的程序想要參與—程序群 時即和此訊息通知該程式群的所有成員程序。於 啓動時,各處理器必須參與各〃程序群"。 -分散式鎖定。經由分散式鎖定而協調各群成員程 本躲尺度適用中_轉準(CNS) Λ4%格(21GX 297讀) 經滅部中夾標準灼货工消资含作社印絮 ^ ^00215 4092^5 —]「_ —. 厂_ — . . ——— - _ 五、發明説明(89 ) 間之所有磁碟存取: -一成員程序在讀取或改變一共用磁碟中的—特定 部分之資料/中介資料之前,必須取得鎖定。 -一程序群的成員程序是一鎖定協調者;該鎖定協 調者知道可將哪些鎖定保存在哪一節點上。 -法定成員程序數(quorum)。於啓動時,且於發生通訊 故障時,可能形成一個以上的程序群。此時可能導 致不同程序群中之鎖定協調者作出衝突的鎖定決 定。爲避免此一情形’如果可存取磁碟的處理器中 之半數以下是,,程序群"中之成員程序,則將不容許 任何檔案系統作業。 -登錄(logging)。登綠一故障後可能造成資訊不—致的 所有資料/中介資料更新。每一處理器有其本身的登 錄’但是並不將這些登錄儲存在共用磁碟中,因而 在發生故障時所有的節點都可擷取這些登錄。 -隔離(fencing)。必須擁有不使一特定處理器存取一特 定磁碟之能力。 -關卡(barriers)。因爲各回復步驟原本即是循序進行, 且需要在所有節點上執行某些回復步驟,所以利用 關卡以確保在任何節點執行次一步驟之前必須先在 所有節點上完成前一步驟。 本發明的回復模型可在不利用硬體鎖定機制的情形下處 理節點的故障。檔案系統的每—檔案實例只有在其可成爲 —程序群"的一現有成員程序時,才可作業。當偵測到 _________-92- 本紙張尺度適用中國ϋ標準(CNS ) Λ4規格 (諳先閲讀背面之注意事項再填寫本頁) ο%- 丁 、-& r 好湞部中央楛窣局;^工消赀合作ii印*0表 A7 —--——------ B7 五、發明説明(9〇 ) '-— 處理器的故障,且該故障的表現形式爲—實際的處理器 故障或無法順利通訊時,程序群的監視服務程式將通知所 有其餘的%序群成員程序。利用未故障的程序群成員程序 門之關卡同步協定執行將於下文所述的各回復步驟,即 :執行故障處理器的回復。因爲是在一個處理器上執行某 —回復步驟,所以選出一個檔案系統協調處理器 列這些步驟。 术執行下 -所有未故障處理器停止與該故障處理器間之通訊。 檔案系統協調處理器隔離故障的處理器。此時將使 磁碟子系統停止接受該故障處理器的磁碟存取要 求。縱然尚未偵測到該故障處理器有通訊上的故 障’也將禁止該故障處理器存取共用磁碟。 -次―。關卡是在必要時回復鎖定狀態。㈣系統協調 處理器通知該鎖定協調者。該鎖定協調者暫停該故 障處理器於發生故障時所持有的授與鎖定。此種方 式使其他節點不會存取該故障節點可能留在一個不 一致狀態之資料。如果故障處理器原來是鎖定協調 者則替代的鎖定協賙者自未故障的處理器收集 緩衝儲存的鎖定狀態資訊,而計算新的鎖定狀態。 如果此一階段不是必要的,則可在未故障的節點上 重新開始暫停鎖定未涵蓋的資料之正常檔案系統 業。 -第三個關卡是檔案系統協調處理器重新進行該故障 節點的登綠。在知道故障處理器與各磁碟隔離,且 -93- 本紙浪尺ϋδ射關家標準(〇VS ) Λ视格(210X 297^*^7 其衣 訂r (請先閲讀背面之注意事項再填寫本頁) 409· B7 五、發明説明(91 未故障的處理器將不會授與被阻隔的鎖定時,才執 重新進行=> 在完成此步驟時,磁碟上的資料將 疋一致的,且可釋出各鎖定。解除該關卡意指完成 了成功的回復,且可方袖女+ A . 所有未故障的處理器上重新 進行正常的作業。 處理於回復過程中偵測到的處理器故障時,係自第 步驟重新開始。以不超出原先故障程度的方式執 行個別回復步驟,因而在完成回復協定之前,如果 執行多次的個別回復步驟,也不會有壞處,不會有 額外的故障。 、上述這些回復步職明了—個擒案系统的时,但如果 —:了自以上的檔案系統,則對所有的檔案系統造行每 —步驟中所有的回復動作。 二於處理〜點回復而s,故障處理器在許可時將儘速嘗 ^重新加人程序群。如果故障回復仍在進行中,則無法加 二序群直到完成故障回復協定爲丨。有兩種可能 丄t故障節點可加入一個現有的程序群,亦可加入 —個等待凑齊法定成員程序數的程序群。如果該故障節點 口入-個寺待凑齊法定成員程序數的程序群,則杏—法定 數凑齊時(此時知道不會有衝突的鎖定):將重新 撤::過該故障節點加入-個現有的程序群,則將 撤销對Μ點的隔離,且容許正常㈣案系統作業。 第::回復特徵處理回復的交叉及中介資科節點的需 〆。中介資料節點維護需要在-故障中保留的各狀態。 ______ - 94- 本紙張尺料; I , ^ I— (請先閲讀背面之注意事項再填寫本頁) 訂 "丨 -"』部中"榡"局兵丁:消贽合作杜印" A7 A7 -碎部中失樣芈局荬工消费合作社印^ B7 五、發明説明(92 ) 也介資料節點的同步及非同步拉管 本發明之平行檔案系統工作時,構成檔案系統的所有磁 碟係分佈在一個諸如tcp/ip網路的網路上,或分佈在可讓 多個處理器以如同大量平行系統或叢集之方式互動的一交 換機上,因而多個處理器需要存取且可獨立存取—檔案。 爲了利用此種能力,多個處理器應在讀取及窝入時共用— 樓案。 在一分散式檔案中各檔案的窝入共用造成幾個問題。其 中一個問題是本發明所提供中介資料之存取及更新。本發 明之中介資料節點是一種用來控制—分散式檔案系統中的 中介資料之機構。存取-構案的每—節點需要讀取或寫入 中介資料資訊到中介資料節點(或中介節點)。 中介資料節點保存與標案的中介資料㈣的資訊,並作 ^磁碟與存取樓案的所有節點間之—智慧型緩衝儲存裝 二。也會發生中介資料節點(或中介節點)停止服務該功能 $之情況。爲了能得到平順的作業及回復,必須處理這此 :::二時係以直接的方式從以往都存取該中介節點的各 即點中返出一個新的中介節點。 我們特.此説明可能處理—中介節點接f 起動一接管而選擇之方法。 及為了 =種::下會發生—中介節點停止執行中介 =二=兩種㈣是非同步的,亦即其他節點無法立 P侍知此種h形。第三種情形是 得知有接管的情形。 π即所有郎點都 i__ 05 ^^適用中 {請先閱讀背面之注意事項再填寫本頁)
起"·部中夾標準局工消处合作社印製 -96 40921^7 —B7 五、發明説明(93 ) ~ 1 ·中介節點故障(損毁); 2.中介節點關閉稽案,< 自其緩衝错存區中清除該樓 案; 3-另一節點希望成爲中介節點。 在所有這些情料,我Μ需要保證發生一丨可靠的接 管。在非同步作業中,嘗試存取舊中介節點的第一節點傾 測到-個錯誤;該中介節點可能故障,在此種情形中將得 到—個通訊錯誤;或者舊中介節點決定不再作中介節點, 在此種情形中該節點自舊中介節點得到—個適當的錯誤訊 息。在兩種情形中,該節點向丁“要求適當的符記,而嘗 試成爲一中介節點。如果没有其他的中介節點(若該節點 是=一個存取舊中介節點的節點即爲此種情形),則該節 =將成爲新的中介節,點。隨後嘗試存取舊中介節點的其他 節點亦將經過相同的過程,但是將無法取得適當的符記。 向符°己s理益查詢時,將透露新的中介節點。因此,每— 即點最後將發現其已變成新的中介節點,或中介節點已鲈 改變了。不論在哪—種情形,都將採取適當的動作。如果 ^即點變成一中介節點,則該節點自磁碟讀取最新的中介 資料。如果一節點的中介節點已改變,則該節點將其自2 的申介資料更新重新傳送到新的中介節點,這是因爲舊, 中介節點有可能在將這些更新清除到磁碟之前即已故障的 由於利用每一個此類更新的一版本编號,所以 道哪些更新是在磁碟中以及必須將哪些更新重新傳、: 的中介節點。 运到新 本紙狀度@削,:縣(eNs )以規格 (210X297公釐 1丨 "裝--------訂--I----f (請先閱讀背面之注意事項再填寫本頁) 經"部中次標卑局吳工消贽合作社印製 A7 B7五、發明説明(94 ) 因爲一個節點在嘗試成爲一中介節點時可能會失敗,所 以涉及存取中介節點的每一作業具有下列的大綱: --表 7- retry : if (I am metanode) then DO this and theat else { errl=send_message_to_the_metanode ; //so the metanode will do // "this_and_that" if (ot1=METAN0DE_IS_DEAD | |end=METANODE_NOT_ANY_MORE){ err2=try_to_becom_metanode ; if (err2==0K) then//we became the metanode read_metadata_from_disk(and other stuff to do when becoming a metanode) else // someone else became the metanode // find_out_the_new_metanode, and_send_it_information_theat_is not yet on disk // metanode has changed ; in both cases, retry the origina // operation } goto retry * } ----END TABLE- 上述用於動態接管中介節點的系統是獨有的,且本發明 ______-97-_ 本紙張尺度適用中阖因家榡準(CNS ) A4規格(2丨0.X297公f ) (請先閲讀背面之注意事項再填寫本頁) -?τ ·"t - 經-欢部中次標if-局貨工消费合作社印製 409^15 a7 ------------B7五、發明説明(95 ) ~ ~ 的特定解決方式之優點在於:此種方式將-個有其他用途 (符記管理器)的子系統用於依據檔案活動性而選擇—個新 的中介節點。因爲所有的作業都涉及一個故有的,,重新嘗 試”機制,且因爲每—節點都可作爲一中介節點,所以^ 咒將選出一個中介節點,因而可保證終究將動態地發生— 次接管》 保存在每—節點的資訊保證:縱使一中介節點故障,回 復程序將重建所有的資訊,而能得到檔案内容的一致性。 配額的分< 然後將説明本發明在該共用磁碟檔案系統中對配額分配 万面的改良。基本的困難點在於必須嚴格維護一组節點的 配額。大家可能想到在一中央伺服器中維護這些配額,但 是我們發現這不是一種可行的解決方式,因爲當每—新的 資料寫入在寫入資料之前需要先向該單一伺服器要求許可 時点中央伺服器將變成一個瓶頸。此處將説明本發明將 配額分配給代表一配額持有的使用者而正在窝入一檔案系 統的各電腦之方法。隨後將論及在發生故障時回復此種配 額之方式。 在一平行檔案系統中,其中多個處理器可獨立存取構成 檔案系統的所有磁碟,以便讀取及窝入各磁碟上的檔案, 此時必須將一磁碟的若干磁區指定給產生檔案的每—處理 器之標案°分配給一特定使用者擁有的棺案之磁區受限於 配额’為配額指定容許該使用者或一群使用者使用的磁 碟2間谷量。其問題在於‘各使用者可能正在多個處理器 (靖先閲讀背面之注意事項再填焉本頁) -------- % -訂 S.--—. -98- 本纸依尺度通用中國國家標窣(CNS ) Λ4現格(2!〇><297公 經,¾部屮決榡準扃妇工消贽合作社印褽 4〇92i5A7 _____ Β7 五、發明説明(96 ) 上同時執行,且索取同一配額。若在中央分配新的磁碟區 段時’將使本發明的大量平行處理系統之使用慢下來。 本發明實施了 一種系統,該系統將配額分配給每一節 點’並根據需要而重新分配配額,且於發生故障時回復該 配額。本發明之解決方式是在—大量平行電腦運算環境或 本文所述的多個電腦之其他環境中,提供一種管理每一樓 案系統的檀案索引及磁碟區段配額之方法。將此工作分給 每一檔案系統的一配額伺服器、及每一檔案系統中正操作 該檔案系統内資料的每一節點之一配額用户端電腦。 配額限度是一臨界値’在此臨界値之下可將檔案索引及 樓案系統空間分配給一使用者。在本文中,將一使用者可 以擁有的的檔案索引數及空間容量稱爲配額。當地分配額 是一配額用户端電腦無須與配額伺服器互動即可代表使用 者分配的空間容量。 該伺服器維護一常駐磁確的標案,該樓案包含整個MPP 系統中所有使用者的配額限度及累積使用量。只有該飼服 器可存取該檔案,該伺服器爲所有的處理器執行該檔案的 所有讀取及更新。因此’只有該伺服器可完全知道各配額 的使用量及仍然可使用的分配量。 在配額伺服器上執行與整體配額管理有關的所有行動。 限度改變、分配當地分配額' 及顯示現行狀態等情形都需 要與配額伺服器互動。配額用户端電腦在其當地分配額容 許的範圍内改變構案系統的分配量,並根據其分配額的使 用量而定期更新伺服器。該伺服器可取消一用户的分配 _______- 99 - 本纸張尺度適用中國國家^準(CNS ) Α4規格(210X297公茇) Α^- * .ITn Ϊ ' — (請先閲讀背面之注意事項再填寫本頁) A7 _B7____ 五、發明説明(97 ) 額,以滿足另一用户的分配額要求。 配额用户端電腦開始時具有零的當地分配額。只有在處 理器上的一應用程式嘗試產生新的檔案系統資料時,才爲 該使用者要求一當地分配額。只有在該用户端程式接收到 一個適當的當地分配額時,才能滿足該應用程式的要求; 否則將無法接受該應用程式的要求。該配額用户端電腦维 護一個包含當地分配額及使用掉多少的該分配額之記錄a 釋出磁碟空間的各應用程式將增加該使用者的當地分配 額。該配額用户端電腦將就其使用量而定期更新配額词服 器,並將根據應用程式的使用模式而釋出過量的配額。 只要配額伺服器仍有可用的配額,該配額伺服器將送出 當地分配額,亦即不會超過系統的整體配額限度。如果已 提供所有的配額限度作爲當地分配額,配額伺服器將取消 一些當地分配額,以滿足新的要求。取消部分的當地分配 額’讓用户端程式繼續使用剩餘的分配額,即可執行上述 程序。這些要求愈來愈強烈地取消較大部分的當地分配 額,直到不再有可用的配額可滿足這些要求爲止,此時將 拒絕應用程式的要求。 該方法的困難處在於必須設想到用户端電腦及伺服器的 故障。用户端電腦故障時可能有部分使用的當地分配額, 而伺服器可能與一用户端電腦同時發生故障。使用者永遠 不得超過所分配的配額,且亦預期能取得空間容量。此時 需要使用配額分配的"不確定"方法。每當配額伺服器分 配一當地分配額時,即將一個形式爲”不確定値”的當地 -100- 本紙張尺度通用中家標孪(CNS )八4規格(2!0^ 297公釐) (請先聞讀背面之i£意事項再填寫本頁}
11T 409215 A7 B7 .¾¾.部屮次摞準历只工消拎合作社印?木 五、發明説明(98 ) 分配額總和記錄存放在可回復的磁碟上。該記綠代表伺服 器沒有正確資訊的配額空間容量。不得重新分配不確定的 空間’因而不會有一使用者超過其限度的危險。用户端電 腦的當地分配額使用量之定期訊息更新這些不確定値。該 $間自不確定狀態移到被使用狀態。也自不確定値中扣除 一用户端電腦所放棄的空間。一使用者可使用的總分配量 等於該使用者的分配量減.掉已知用掉的分配量再減掉不確 定的分配量。不確定値的所有修改都被強制立即傳送到磁 碟,以處理回復作業。 如果一用户端電腦故障,則一使用者無法使用不確定的 儲存容量,直到執行一個確認該使用者的實際儲存使用量 之"配額檢查"公用程式爲止。某些部分的不確定値代表 使用者的實際使用量;但某些部分則代表暫時喪失的潛在 使用量。分配分配額的演算法對用户端電腦上新磁碟儲存 裝置的使用量相當敏感,並爲了效能的表現而嘗試提供用 户端電腦其即將用到的使用量,但爲了回復作業而限制過 度的當地分配額。該方法可就使用者配額中並非不確定的 部分繼續使用者的作業’直到執行配額檢查公用程式爲 止。遠方法亦可爲了效能的表現而容許平行分配磁碟區 段。 當配額词服器故障時,將選擇一個新的配額伺服器。將 不會有尚未寫入磁碟的任何資訊。新的配額伺服器將取消 所有的當地分配額,並根據回覆而更新不確定値,因而產 生該資訊。請注意,用户端電腦故障及伺服器故障同時發 -101 - 本、紙张尺度適用中國因家標準(CNS ) Λ4規格(公釐〉 (锖先閱讀背面之注意事項再填寫本頁)
•IT 409215 at 五、發明説明(99 ) ' 生時,將造成在執行配額檢查公用程式之前的磁碟區段内 容喪失。本演算法可在一故障之後迅速針對非不確定分配 量正確地執行配額強化。 我們不知道有任何對一平行系統的所有節點獨立分配磁 碟區段的平行檔案系統。亦即,使用者在嘗試網路連接式 儲存系統之前’將不會碰到此種問題。 本發明爲了效能的表現而以平行方式分配儲存容量。任 何分配伺服器的解決方式都會碰到瓶頸及回復的問題。本 發明必須設立配額,因爲使用者想要在整個平行處理系統 上控制磁碟儲存裝置的使用量。本發明之解決方式容許平 行分配,並不強制繼續鎖定一個將是緩慢的整體性配額, 並可以即時方式回復處理上的故障β 任何使用磁碟連接的共用磁碟模型之平行處理系統都可 利用本發明所開發的方法。 芎復當地分配額以供平行處理中之配額管理 本節中將説明在此環境中本發明的配額檢查公用程式之 作業。配額檢查的功能類似於在—Unix作業環境中發生故 障後用於修復配額檔案的一標準公用程式Qu〇taehk,但是 Quotachk無法如本發明所述在共用配額的多個節點中執 行。本發明開發之方式可執行一 "Qu〇tachk",而無須關閉 存取資料的所有電腦。 本希中將説明一種公用程式/方法,用以在一故障之後 回復這些不知已被使用/已被分配或仍可使用的分配額。 該公用程式工作時不會讓使用者在分配或收回檔案系統中 -102-
本紙張反度適W中國®家標隼(CNS—) Λ4規格(2!0X (請先閱讀背面之:ix意事項再填寫本頁) A衣 經".部中"標苹局ρ、-τ·-'-ίϊ!资合作社印欠 A7 ---____B7 五、發明説明(1〇〇 ) 之磁碟空間時產生混亂。 爲了管理一大量平行電腦運算環境中每一檔案系統的擋 案索引及磁碟區段配額,將此工作分給每一檔案系統的— 配額伺服器、及每一檔案系統中正在操作每一檔案系統的 每一節點之一配額用户端電腦。 配額限度是一臨界値,在此臨界値之下可將檔案索引及 檔案系統空間分配給一使用者。在本文中,將—使用者可 以擁有的的檔案索引數及空間容量稱爲配額。當地分配額 是一配額用户端電腦無須與配額伺服器互動即可代表使用 者分配的空問容量。 該飼服器維護一常駐磁碟的檔案,該檔案包含整個MPP 系統中所有使用者的配額限度、累積使用量 '及"不確定 値"。”不確定値"代表伺服器並無正確相關資訊的配額空 間量。重新分配不確定的空間時,可能造成—使用者超過 其限度的危險。某些部分的不確定値代表使用者的實際使 用量;但某些部分則代表暫時喪失的潛在使用量。 本發明所述之解決方式是一種自"不確定値"中回復當地 分配額的方法,因而能夠再度使用這些未使用的或暫時喪 失的配額。此種機制(後文中稱爲配額檢查)對一現用檔案 系統工作,而不會混亂磁碟空間及檔案索引的分配及收回 分配。 配額檢查在配額伺服器中產生所有配額記錄的一份對映 拷貝,並累積在檔案索引資訊中找到的配額使用量。雖然 配額檢查係掃描各檔案索引,但是分配及收回分配的所有 -103- 本紙張尺度適川中国园家標準(CiNS ) Λ4規格(210X297公t ) (請先閏讀背面之注意事項再填寫本頁)
A
,1T 409215 A7 ------------- --------B7_____ 五、發明説明(101) 改變係記綠在原始的配額記錄及配額伺服器的對映記錄 中。必須分別處理在現行配額檢查位置(亦即現行讀取樓 案索引)之前及之後的配額使用量更新。在原始配額記錄 及對映記錄中更新在現行配額檢查位置之後(已檢查的樓 案索引)的分配改變;只在原始配額記錄中更新在現行配 額檢查位置之前(尚未檢查的檔案索引)的分配改變。同樣 更新兩個記錄中之"不確定値",因而在配额檢查結束後 配額用户端電腦上的當地分配額總和是正確的。 將現行配額檢查位置通知各配額用户端電腦,因而這些 配頦用户端電腦可在對映登錄中收集在各別現行配額檢查 位置之後的所有已分配或收回分配的這些配額。當配額檢 查結束對各樓案索引的掃描且開始合併原始及對映的配額 登錄時,各配額用户端電腦將其所收集的對映配額記錄之 改變傳送到配額伺服器。 在產生所有對映記錄且自各用户端電腦取消所有的當地 分配額之後,但在配額檢查開始掃描檔案索引以取得配額 使用量資訊之前(亦即’對映"不確定値”開始時爲零,且 正规的”不確定値"顯示喪失的配額),同時更新對映記錄 的"不確定"値及伺服器上原始配额記綠的,'不確定',値。 當在配額檢查結束時合併對映及正規配額記錄時,將對映 記錄的"不確定"値拷貝到正規的配額記錄中。 我們不知道有任何對一平行系統的所有節點獨立分配磁 碟區段的平行摇案系統。亦即,使用者在嘗試網路連接式 儲存系統之前,將不會碰到此種問題。 ___- 104- { CNS } AWT2iOX:97^t ) (諳先閱讀背面之注意事項再填寫本頁) 丁 '-° A7 B7 五 '發明説明(1〇2) 本發明爲了效能的表現而以平行方式分配儲存容量,並 避免了單一伺服器的解決方式會碰到瓶頸及回復的問題。 本發明必須設立配額,因爲使用者想要在整個平行處理系 統上控制磁碟儲存裝置_的使用量。本發明之解決方式容許 平行为配,並不強制繼續鎖定一個將是緩慢的整體性配 額,並可以即時方式回復處理上的故障。 雖然至此已説明了本發明之較佳實施例,但是熟悉本門 技術者當可了肖’不論在目前或在未來,在下文申請專利 範圍的範圍内仍可作出各種改良及強化。這些申請專利範 圍應對首度揭示的本發明提供適當的保護。一 (請先閱讀背面之注意事項再填寫本頁) 裝 r anir·:部t次標準扃資工消fr合作社印^ -105- 本紙狀賴财酬家縣(
Claims (1)
- 40921δ8 Βδ CB D8 經濟部中央榡準局貝工消费合作社印製 申請專利範圍 r :種料-系統之方法,㈣統採Κ目料 之檔案系統,並具有一個包含中介資_ ' .Λ. 丨貧科·^檔案結構,該 系說設有存取該檔案系統的若干分 .,χ 丁刀散式通訊電腦節點, 孩万法包含下列步驟: .將一常駐在一個或多個磁碟的檔案結構提供給一檔案系 統’在各別電腦節點上執行的多個檔案系統可存取該等 磁碟,該檔案系統可讓一個使用檔案結構的—計算2作 分成多個部分,且可在各別的該等電腦節點上以平行方 式執行這些部分;以及 將一機制提供給該檔案結構的每—檔案之—中介資料節 點,以便控制一分散式檔案系統中之中介資料’其中可 服務存取一檔案且需要將中介資料資訊讀取或寫入到中 介資料節點的每一節點。 2. 如申請專利範圍第i項之方法,其中一系統係採用—個如 申請專利範圍第1項之檔案系統,其中該中介資料節點保 存與檔案的中介資料有關之資訊,且係作爲磁碟與存取 檔案的所有節點間之一智慧型缓衝儲存區^ 3. 如申請專利範園第2項之方法,其中—系統係採用—個如 申請專利範圍第2項之檔案系統,其中在該中介資料節點 停止作爲一中介資料節點的服務之情形中,於轉變而能 夠得到平順的作業及回復之過程中,必須處理這些情 形’且進行其中包括動態接管的回復作業。 4. 如申請專利範圍第3項之方法,其中一系統係採用—個如 申請專利範圍第3項之檔案系統,其中在三種情形下會發 106 本紙張尺度適用中园國家榡準(CNS ) Λ4現格(210 X 297公釐) (請先閲讀背面之注意事項再填寫本瓦) 裝. -II 8 8 8 8 ABCD 經濟部中央標準局—工消費合作杜印製 六、申請專利範圍 生-中介節點停止執行中介節點應有的作業;有兩種情 形是非同步的’且於一中介節點故障,或於一中介節點 關閉檔案或將該檔案自其緩衝儲存區清除時,其他節點 無法立即得知這些情形,而第三種情形是❹的,且於 另-節點需要變成該檔案的中介節點時,所有節點都得 知有接管的情形。 5·如申請專利範圍第4項之方法,其中_系統係採用—個如 申請專利範園第4項之檔案系統,其中在非同步作業中, 當-舊中介節點故障時,嘗試存取該舊中介節點的第一 節·點偵測到一個錯誤,在此種情形中將得到—個通訊錯 誤’或者舊中介節點決定不再作中介節點,在此種情形 中該節點自舊中介節點得到一個適當的錯誤訊息,然後 在這兩種非同步作業中停止使該節點成爲一中介節點, 並向一符记f理器要求一個用於存取檔案的適當符記。 6, 如申請專利範圍第5項之方法’其中一系統係採用—個如 申請專利範圍第5項之樓案系統’其中當該符記管理器自 —個想要變成一中介節點的節點接收到一個對一適當符 I己t要求時,如果沒有其他的中介節點,則提出要求的 該節點將成爲新的中介節點,且隨後嘗試存取舊中介節 點的其他節點亦將經過相同的過程,但是將無法取得— 適當的符記,且向符記管理器查詢時,將透露該新的中 介節點。 7. 如申請專利範園第6項之方法,其中—系統係採用—個如 申請專利範圍第6項之檔案系統,其中當一中介節點改辯 -107 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------裝------,玎------# (請先閲讀背面之注意事項再填寫本頁) 409215 申請專利範圍 時’該樓案系統的每-電腦節點終將知道該節黏已變成 新的中介節點,或中介節點己經改變了。 8. ^請專利範圍第6項之方法,其中—系統係採用一個如 申凊士利範圍第6項之檔案系統,其中如果_節點變成一 中介即點,則孩節點自磁碟讀取最新的中介資料,同時 如果-節點知道其中介節點已改變,則該節點利用每一 此種更新的-版本編號,而將其自己的中介資料重新傳 送到新的中介節點。 m . I I I 裝 I I (請先閱讀背面之注意事項再填寫本頁) 經濟部中央標隼局員工消f合作社印裝 -108- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/893,865 US6023706A (en) | 1997-07-11 | 1997-07-11 | Parallel file system and method for multiple node file access |
Publications (1)
Publication Number | Publication Date |
---|---|
TW409215B true TW409215B (en) | 2000-10-21 |
Family
ID=25402252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW087109528A TW409215B (en) | 1997-07-11 | 1998-06-16 | Parallel file system and method for multiple node file access |
Country Status (4)
Country | Link |
---|---|
US (1) | US6023706A (zh) |
EP (1) | EP0899667B1 (zh) |
DE (1) | DE69840905D1 (zh) |
TW (1) | TW409215B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892611B2 (en) | 2006-07-28 | 2014-11-18 | Condusiv Technologies Corporation | Assigning data for storage based on speed with which data may be retrieved |
TWI472935B (zh) * | 2010-07-29 | 2015-02-11 | Ind Tech Res Inst | 漸進式備份之基于片段的高延展的去複本系統與方法 |
US9052826B2 (en) | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
Families Citing this family (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5707634A (en) * | 1988-10-05 | 1998-01-13 | Pharmacia & Upjohn Company | Finely divided solid crystalline powders via precipitation into an anti-solvent |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6374336B1 (en) | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6260040B1 (en) * | 1998-01-05 | 2001-07-10 | International Business Machines Corporation | Shared file system for digital content |
US7725433B1 (en) * | 1998-01-26 | 2010-05-25 | International Business Machines Corporation | Data navigation system and method employing data transformation lineage model |
US6493720B1 (en) * | 1998-01-26 | 2002-12-10 | International Business Machines Corporation | Method and system for synchronization of metadata in an information catalog |
US20020049573A1 (en) * | 1998-05-13 | 2002-04-25 | El Ata Nabil A. Abu | Automated system and method for designing model based architectures of information systems |
US7031901B2 (en) * | 1998-05-13 | 2006-04-18 | Abu El Ata Nabil A | System and method for improving predictive modeling of an information system |
US7389211B2 (en) * | 1998-05-13 | 2008-06-17 | Abu El Ata Nabil A | System and method of predictive modeling for managing decisions for business enterprises |
US7783468B2 (en) * | 1998-05-13 | 2010-08-24 | Accretive Technologies, Inc. | Automated system and method for service and cost architecture modeling of enterprise systems |
US6311144B1 (en) | 1998-05-13 | 2001-10-30 | Nabil A. Abu El Ata | Method and apparatus for designing and analyzing information systems using multi-layer mathematical models |
US6990437B1 (en) * | 1999-07-02 | 2006-01-24 | Abu El Ata Nabil A | Systems and method for determining performance metrics for constructing information systems |
US7870239B1 (en) * | 1998-06-30 | 2011-01-11 | Emc Corporation | Method and system for securing network access to dynamically updateable data stored in a data storage system |
US6973455B1 (en) | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US6363396B1 (en) * | 1998-12-21 | 2002-03-26 | Oracle Corporation | Object hashing with incremental changes |
US6411964B1 (en) * | 1998-12-23 | 2002-06-25 | International Business Machines Corporation | Methods for in-place online reorganization of a database |
US6922708B1 (en) | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US7010554B2 (en) * | 2002-04-04 | 2006-03-07 | Emc Corporation | Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner |
US6185659B1 (en) | 1999-03-23 | 2001-02-06 | Storage Technology Corporation | Adapting resource use to improve performance in a caching memory system |
US6654772B1 (en) * | 1999-04-28 | 2003-11-25 | Emc Corporation | Multi-volume extent based file system |
US7280995B1 (en) | 1999-08-05 | 2007-10-09 | Oracle International Corporation | On-the-fly format conversion |
US6549916B1 (en) * | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US7418435B1 (en) | 1999-08-05 | 2008-08-26 | Oracle International Corporation | Multi-model access to data |
US6389420B1 (en) * | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US7596563B1 (en) * | 1999-10-28 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | Computerized file system and method |
US6516344B1 (en) | 1999-11-08 | 2003-02-04 | Sun Microsystems, Inc. | Reducing network traffic for remote file system accesses by keeping track of unallocated regions in files |
EP1109104A1 (en) * | 1999-12-14 | 2001-06-20 | Sun Microsystems, Inc. | Deleting unused templates |
US6449613B1 (en) * | 1999-12-23 | 2002-09-10 | Bull Hn Information Systems Inc. | Method and data processing system for hashing database record keys in a discontinuous hash table |
JP2001184249A (ja) * | 1999-12-27 | 2001-07-06 | Fujitsu Ltd | 分散処理システム,共有ファイルシステム操作装置,及び、コンピュータ可読媒体 |
US7246120B2 (en) | 2000-01-28 | 2007-07-17 | Oracle International Corporation | Techniques for achieving higher availability of resources during reconfiguration of a cluster |
US6751616B1 (en) | 2000-01-28 | 2004-06-15 | Oracle International Corp. | Techniques for DLM optimization with re-mapping responsibility for lock management |
US6920454B1 (en) | 2000-01-28 | 2005-07-19 | Oracle International Corporation | Techniques for DLM optimization with transferring lock information |
US6529906B1 (en) | 2000-01-28 | 2003-03-04 | Oracle Corporation | Techniques for DLM optimization with re-mastering events |
US6742035B1 (en) * | 2000-02-28 | 2004-05-25 | Novell, Inc. | Directory-based volume location service for a distributed file system |
US6442562B1 (en) * | 2000-03-15 | 2002-08-27 | International Business Machines Corporation | Apparatus and method for using incomplete cached balance sets to generate incomplete or complete cached balance sets and balance values |
US6597907B1 (en) * | 2000-05-05 | 2003-07-22 | Ericsson Inc. | Detection of a deadlocked resource condition in a pool of shared resources |
US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
WO2001098952A2 (en) * | 2000-06-20 | 2001-12-27 | Orbidex | System and method of storing data to a recording medium |
AU6778601A (en) | 2000-06-26 | 2002-01-08 | International Business Machines Corporation | Data management application programming interface for a parallel file system |
US6928459B1 (en) | 2000-07-18 | 2005-08-09 | International Business Machines Corporation | Plurality of file systems using weighted allocation to allocate space on one or more storage devices |
US6829678B1 (en) * | 2000-07-18 | 2004-12-07 | International Business Machines Corporation | System for determining the order and frequency in which space is allocated on individual storage devices |
US7881920B2 (en) | 2000-08-29 | 2011-02-01 | Abu El Ata Nabil A | Systemic enterprise management method and apparatus |
US8935307B1 (en) | 2000-09-12 | 2015-01-13 | Hewlett-Packard Development Company, L.P. | Independent data access in a segmented file system |
US7836017B1 (en) | 2000-09-12 | 2010-11-16 | Hewlett-Packard Development Company, L.P. | File replication in a distributed segmented file system |
US7406484B1 (en) | 2000-09-12 | 2008-07-29 | Tbrix, Inc. | Storage allocation in a distributed segmented file system |
US20040236798A1 (en) * | 2001-09-11 | 2004-11-25 | Sudhir Srinivasan | Migration of control in a distributed segmented file system |
US20060288080A1 (en) * | 2000-09-12 | 2006-12-21 | Ibrix, Inc. | Balanced computer architecture |
US6782389B1 (en) * | 2000-09-12 | 2004-08-24 | Ibrix, Inc. | Distributing files across multiple, permissibly heterogeneous, storage devices |
US7058648B1 (en) | 2000-12-01 | 2006-06-06 | Oracle International Corporation | Hierarchy-based secured document repository |
US6823337B2 (en) * | 2000-12-27 | 2004-11-23 | International Business Machines Corporation | One writer, multiple readers, shared data table concurrent access |
JP2002215659A (ja) * | 2001-01-18 | 2002-08-02 | Noriaki Kawamae | 情報検索支援方法および情報検索支援システム |
US6970892B2 (en) * | 2001-02-16 | 2005-11-29 | Stratus Technologies Bermuda Ltd | Implementing standards-based file operations in proprietary operating systems |
US6748380B2 (en) * | 2001-05-14 | 2004-06-08 | International Business Machines Corporation | Method, system, and program product for permission to access software |
JP2003215880A (ja) * | 2002-01-23 | 2003-07-30 | Oki Data Corp | カラー画像記録装置 |
US7062338B1 (en) | 2002-02-14 | 2006-06-13 | Visteon Global Technologies, Inc. | Track access management for large playlists in a vehicular multimedia player |
US6820238B1 (en) | 2002-02-19 | 2004-11-16 | Visteon Global Technologies, Inc. | Rotary control for quick playlist navigation in a vehicular multimedia player |
US6700839B1 (en) | 2002-02-19 | 2004-03-02 | Visteon Global Technologies, Inc. | Fast seek between multiple selections in a multimedia player |
AU2003219835A1 (en) * | 2002-02-22 | 2003-09-09 | Mission Critical Linux, Inc. | Clustering infrastructure system and method |
GB2387085A (en) * | 2002-03-25 | 2003-10-01 | Sony Uk Ltd | System |
US6985995B2 (en) | 2002-03-29 | 2006-01-10 | Panasas, Inc. | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data |
US7007047B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Internally consistent file system image in distributed object-based data storage |
US7007024B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Hashing objects into multiple directories for better concurrency and manageability |
US7191357B2 (en) * | 2002-03-29 | 2007-03-13 | Panasas, Inc. | Hybrid quorum/primary-backup fault-tolerance model |
US7036039B2 (en) * | 2002-03-29 | 2006-04-25 | Panasas, Inc. | Distributing manager failure-induced workload through the use of a manager-naming scheme |
US7464125B1 (en) * | 2002-04-15 | 2008-12-09 | Ibrix Inc. | Checking the validity of blocks and backup duplicates of blocks during block reads |
US20030220943A1 (en) * | 2002-05-23 | 2003-11-27 | International Business Machines Corporation | Recovery of a single metadata controller failure in a storage area network environment |
US7010528B2 (en) * | 2002-05-23 | 2006-03-07 | International Business Machines Corporation | Mechanism for running parallel application programs on metadata controller nodes |
US8140622B2 (en) | 2002-05-23 | 2012-03-20 | International Business Machines Corporation | Parallel metadata service in storage area network environment |
US7448077B2 (en) | 2002-05-23 | 2008-11-04 | International Business Machines Corporation | File level security for a metadata controller in a storage area network |
US7287046B2 (en) * | 2002-09-30 | 2007-10-23 | Emc Corporation | Method and system of compacting sparse directories in a file system |
US7069268B1 (en) | 2003-01-13 | 2006-06-27 | Cisco Technology, Inc. | System and method for identifying data using parallel hashing |
US7035860B2 (en) * | 2003-01-17 | 2006-04-25 | International Business Machines Corporation | Trusted access by an extendible framework method, system, article of manufacture, and computer program product |
US7478096B2 (en) * | 2003-02-26 | 2009-01-13 | Burnside Acquisition, Llc | History preservation in a computer storage system |
US7409389B2 (en) * | 2003-04-29 | 2008-08-05 | International Business Machines Corporation | Managing access to objects of a computing environment |
US7447786B2 (en) * | 2003-05-09 | 2008-11-04 | Oracle International Corporation | Efficient locking of shared data that is accessed for reads in a cluster database |
US7373520B1 (en) * | 2003-06-18 | 2008-05-13 | Symantec Operating Corporation | Method for computing data signatures |
US8694510B2 (en) * | 2003-09-04 | 2014-04-08 | Oracle International Corporation | Indexing XML documents efficiently |
US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
US7555504B2 (en) * | 2003-09-23 | 2009-06-30 | Emc Corporation | Maintenance of a file version set including read-only and read-write snapshot copies of a production file |
US7379952B2 (en) * | 2004-01-30 | 2008-05-27 | Oracle International Corporation | Techniques for multiple window resource remastering among nodes of a cluster |
US7266558B2 (en) * | 2004-02-02 | 2007-09-04 | Gray Michael D | Method and apparatus for global relief management |
US7085907B2 (en) * | 2004-02-17 | 2006-08-01 | International Business Machines Corporation | Dynamic reconfiguration of memory in a multi-cluster storage control unit |
US7844646B1 (en) * | 2004-03-12 | 2010-11-30 | Netapp, Inc. | Method and apparatus for representing file system metadata within a database for efficient queries |
US7539702B2 (en) * | 2004-03-12 | 2009-05-26 | Netapp, Inc. | Pre-summarization and analysis of results generated by an agent |
US7293039B1 (en) | 2004-03-12 | 2007-11-06 | Network Appliance, Inc. | Storage resource management across multiple paths |
US7930277B2 (en) * | 2004-04-21 | 2011-04-19 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
US20070208946A1 (en) * | 2004-07-06 | 2007-09-06 | Oracle International Corporation | High performance secure caching in the mid-tier |
US7315926B2 (en) * | 2004-09-21 | 2008-01-01 | Emc Corporation | Lock management for concurrent access to a single file from multiple data mover computers |
US20060074940A1 (en) * | 2004-10-05 | 2006-04-06 | International Business Machines Corporation | Dynamic management of node clusters to enable data sharing |
US7904906B2 (en) * | 2004-11-23 | 2011-03-08 | Stratus Technologies Bermuda Ltd. | Tracking modified pages on a computer system |
US7627547B2 (en) * | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
US8131766B2 (en) * | 2004-12-15 | 2012-03-06 | Oracle International Corporation | Comprehensive framework to integrate business logic into a repository |
US7921076B2 (en) | 2004-12-15 | 2011-04-05 | Oracle International Corporation | Performing an action in response to a file system event |
US7613701B2 (en) * | 2004-12-22 | 2009-11-03 | International Business Machines Corporation | Matching of complex nested objects by multilevel hashing |
US20060200469A1 (en) * | 2005-03-02 | 2006-09-07 | Lakshminarayanan Chidambaran | Global session identifiers in a multi-node system |
US7209990B2 (en) * | 2005-04-05 | 2007-04-24 | Oracle International Corporation | Maintain fairness of resource allocation in a multi-node environment |
US7653624B1 (en) * | 2005-04-18 | 2010-01-26 | Emc Corporation | File system change tracking |
US7634516B2 (en) * | 2005-08-17 | 2009-12-15 | International Business Machines Corporation | Maintaining an aggregate including active files in a storage pool in a random access medium |
US7660834B2 (en) * | 2005-08-17 | 2010-02-09 | International Business Machines Corporation | Maintaining an aggregate including active files in a storage pool |
US7617216B2 (en) * | 2005-09-07 | 2009-11-10 | Emc Corporation | Metadata offload for a file server cluster |
US7567966B2 (en) * | 2005-09-15 | 2009-07-28 | International Business Machines Corporation | Method and apparatus for managing multi-stream input/output requests in a network file server |
US8073841B2 (en) * | 2005-10-07 | 2011-12-06 | Oracle International Corporation | Optimizing correlated XML extracts |
US8356053B2 (en) * | 2005-10-20 | 2013-01-15 | Oracle International Corporation | Managing relationships between resources stored within a repository |
US7840314B2 (en) * | 2005-10-28 | 2010-11-23 | General Motors Llc | Computer peripheral device method and apparatus |
US20070118693A1 (en) * | 2005-11-19 | 2007-05-24 | International Business Machines Cor | Method, apparatus and computer program product for cache restoration in a storage system |
US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
US7836020B1 (en) * | 2006-04-03 | 2010-11-16 | Network Appliance, Inc. | Method and apparatus to improve server performance associated with takeover and giveback procedures |
US7925681B2 (en) * | 2006-04-28 | 2011-04-12 | Microsoft Corporation | Bypass of the namespace hierarchy to open files |
US8190571B2 (en) | 2006-06-07 | 2012-05-29 | Microsoft Corporation | Managing data with backup server indexing |
US20090132621A1 (en) * | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
US7571165B2 (en) * | 2006-09-28 | 2009-08-04 | Sap Ag | Method and system for providing locking behavior |
US7827177B2 (en) * | 2006-10-16 | 2010-11-02 | Oracle International Corporation | Managing compound XML documents in a repository |
US9183321B2 (en) * | 2006-10-16 | 2015-11-10 | Oracle International Corporation | Managing compound XML documents in a repository |
US7797310B2 (en) * | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
US8150870B1 (en) * | 2006-12-22 | 2012-04-03 | Amazon Technologies, Inc. | Scalable partitioning in a multilayered data service framework |
US7930270B2 (en) * | 2007-02-26 | 2011-04-19 | Microsoft Corporation | Managing files on multiple computing devices |
US8990954B2 (en) * | 2007-06-20 | 2015-03-24 | International Business Machines Corporation | Distributed lock manager for file system objects in a shared file system |
US7890555B2 (en) * | 2007-07-10 | 2011-02-15 | International Business Machines Corporation | File system mounting in a clustered file system |
US8156164B2 (en) | 2007-07-11 | 2012-04-10 | International Business Machines Corporation | Concurrent directory update in a cluster file system |
US8655919B2 (en) * | 2007-07-30 | 2014-02-18 | International Business Machines Corporation | Storage system and method for updating a hash tree |
US20090049047A1 (en) * | 2007-08-15 | 2009-02-19 | Microsoft Corporation | Storing custom metadata using custom access control entries |
US8214641B2 (en) * | 2007-08-23 | 2012-07-03 | Microsoft Corporation | File access in multi-protocol environment |
US8091094B2 (en) | 2007-10-10 | 2012-01-03 | Sap Ag | Methods and systems for ambistateful backend control |
US9767120B2 (en) * | 2008-01-16 | 2017-09-19 | Hitachi Data Systems Engineering UK Limited | Multi-way checkpoints in a data storage system |
US20090112668A1 (en) * | 2007-10-31 | 2009-04-30 | Abu El Ata Nabil A | Dynamic service emulation of corporate performance |
US20090222509A1 (en) * | 2008-02-29 | 2009-09-03 | Chao King | System and Method for Sharing Storage Devices over a Network |
US7971099B2 (en) * | 2008-04-02 | 2011-06-28 | International Business Machines Corporation | Method for enabling faster recovery of client applications in the event of server failure |
US9678879B2 (en) * | 2008-05-29 | 2017-06-13 | Red Hat, Inc. | Set partitioning for encoding file system allocation metadata |
US7958112B2 (en) * | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
US8898418B2 (en) | 2008-08-26 | 2014-11-25 | International Business Machines Corporation | Method, apparatus and computer program for provisioning a storage volume to a virtual server |
US8996835B2 (en) * | 2008-09-15 | 2015-03-31 | International Business Machines Corporation | Apparatus and method for provisioning storage to a shared file system in a storage area network |
CN101539873B (zh) * | 2009-04-15 | 2011-02-09 | 成都市华为赛门铁克科技有限公司 | 数据恢复的方法、数据节点及分布式文件系统 |
EP2275952A1 (en) | 2009-07-01 | 2011-01-19 | Thomson Telecom Belgium | Method for accessing files of a file system according to metadata and device implementing the method |
US8495044B2 (en) * | 2009-09-02 | 2013-07-23 | Microsoft Corporation | File system node updates |
US8495250B2 (en) | 2009-12-16 | 2013-07-23 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
US8473582B2 (en) * | 2009-12-16 | 2013-06-25 | International Business Machines Corporation | Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system |
US9158788B2 (en) | 2009-12-16 | 2015-10-13 | International Business Machines Corporation | Scalable caching of remote file data in a cluster file system |
US8458239B2 (en) | 2009-12-16 | 2013-06-04 | International Business Machines Corporation | Directory traversal in a scalable multi-node file system cache for a remote cluster file system |
US9058334B2 (en) * | 2010-02-11 | 2015-06-16 | Emc Corporation | Parallel file system processing |
EP2561322B1 (en) | 2010-04-20 | 2021-08-04 | Hewlett-Packard Development Company, L.P. | A self-arranging, luminescence-enhancement device for surface-enhanced luminescence |
US8655847B2 (en) | 2010-08-16 | 2014-02-18 | Microsoft Corporation | Mirroring data changes in a database system |
US8463788B2 (en) * | 2010-09-03 | 2013-06-11 | Marvell World Trade Ltd. | Balancing caching load in a peer-to-peer based network file system |
WO2012054024A1 (en) | 2010-10-20 | 2012-04-26 | Hewlett-Packard Development Company, L.P. | Metallic-nanofinger device for chemical sensing |
WO2012054027A1 (en) | 2010-10-20 | 2012-04-26 | Hewlett-Packard Development Company, L.P. | Chemical-analysis device integrated with metallic-nanofinger device for chemical sensing |
KR101755421B1 (ko) | 2011-01-10 | 2017-07-10 | 삼성전자주식회사 | 클라이언트 장치를 이용한 호스트 장치의 파일 정보 시스템 편집 방법 및 시스템 |
US8639971B1 (en) | 2011-02-17 | 2014-01-28 | Scale Computing | Condition detection and reporting in complex systems |
US8949258B2 (en) | 2011-03-28 | 2015-02-03 | Microsoft Corporation | Techniques to manage file conversions |
US9104651B1 (en) | 2011-07-15 | 2015-08-11 | Scale Computing, Inc. | Techniques for distributing tests and test suites across a network |
US8949305B1 (en) | 2011-07-15 | 2015-02-03 | Scale Computing, Inc. | Distributed dynamic system configuration |
US9077665B1 (en) | 2012-05-24 | 2015-07-07 | Scale Computing, Inc. | Transferring virtual machines and resource localization in a distributed fault-tolerant system |
US10430216B1 (en) | 2012-08-23 | 2019-10-01 | Scale Computing Inc | Virtual machine automated selection |
US10019287B1 (en) | 2012-08-23 | 2018-07-10 | Scale Computing | Virtual machine resource display |
US9648103B2 (en) | 2014-02-11 | 2017-05-09 | Red Hat, Inc. | Non-uniform file access in a distributed file system |
US20150378993A1 (en) * | 2014-06-27 | 2015-12-31 | Netapp, Inc. | System and method for implementing a quota system in a distributed file system |
US10496607B2 (en) * | 2016-04-01 | 2019-12-03 | Tuxera Inc. | Systems and methods for enabling modifications of multiple data objects within a file system volume |
US10237335B2 (en) * | 2016-06-15 | 2019-03-19 | Advanced Micro Devices, Inc. | Managing cluster-level performance variability without a centralized controller |
US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
CN110519319B (zh) * | 2018-05-22 | 2022-02-11 | 杭州海康威视数字技术股份有限公司 | 一种分裂分区的方法及装置 |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
RU2708356C1 (ru) * | 2018-06-29 | 2019-12-05 | Акционерное общество "Лаборатория Касперского" | Система и способ двухэтапной классификации файлов |
US11221989B2 (en) * | 2018-07-31 | 2022-01-11 | International Business Machines Corporation | Tape image reclaim in hierarchical storage systems |
US11403261B2 (en) * | 2018-12-07 | 2022-08-02 | Vmware, Inc. | Isolation of concurrent read and write transactions on the same file |
EP3935515B1 (en) * | 2019-03-04 | 2024-02-14 | Hitachi Vantara LLC | Metadata routing in a distributed system |
CN113742364B (zh) * | 2021-09-10 | 2023-12-26 | 拉卡拉支付股份有限公司 | 数据访问方法、装置、电子设备、存储介质及程序产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737549A (en) * | 1994-01-31 | 1998-04-07 | Ecole Polytechnique Federale De Lausanne | Method and apparatus for a parallel data storage and processing server |
US5742812A (en) * | 1995-08-28 | 1998-04-21 | International Business Machines Corporation | Parallel network communications protocol using token passing |
-
1997
- 1997-07-11 US US08/893,865 patent/US6023706A/en not_active Expired - Lifetime
-
1998
- 1998-06-16 TW TW087109528A patent/TW409215B/zh not_active IP Right Cessation
- 1998-06-17 DE DE69840905T patent/DE69840905D1/de not_active Expired - Lifetime
- 1998-06-17 EP EP98304758A patent/EP0899667B1/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892611B2 (en) | 2006-07-28 | 2014-11-18 | Condusiv Technologies Corporation | Assigning data for storage based on speed with which data may be retrieved |
US9052826B2 (en) | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
TWI472935B (zh) * | 2010-07-29 | 2015-02-11 | Ind Tech Res Inst | 漸進式備份之基于片段的高延展的去複本系統與方法 |
Also Published As
Publication number | Publication date |
---|---|
US6023706A (en) | 2000-02-08 |
EP0899667A2 (en) | 1999-03-03 |
EP0899667A3 (en) | 2005-02-23 |
EP0899667B1 (en) | 2009-06-17 |
DE69840905D1 (de) | 2009-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW409215B (en) | Parallel file system and method for multiple node file access | |
TW412692B (en) | Parallel file system and method with a metadata node | |
TW440769B (en) | Parallel file system and method for granting byte range tokens | |
Chen et al. | Fast in-memory transaction processing using RDMA and HTM | |
US20230100223A1 (en) | Transaction processing method and apparatus, computer device, and storage medium | |
CN107077495B (zh) | 数据库管理系统中的高性能事务 | |
US20210390080A1 (en) | Actions based on file tagging in a distributed file server virtual machine (fsvm) environment | |
JP4557975B2 (ja) | 非共有データベースシステムにおける所有権の再割当 | |
TWI431474B (zh) | 在交換式記憶體中之平行巢狀交換 | |
US9367459B2 (en) | Scheduling method and multi-core processor system | |
JP4833590B2 (ja) | 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) | |
US20180157674A1 (en) | Distributed nfs metadata server | |
CN108292235B (zh) | 使用选择性资源迁移的网络附连存储器 | |
JP7549137B2 (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
CN106663047A (zh) | 用于优化的签名比较和数据复制的系统和方法 | |
CN103514298A (zh) | 一种实现文件锁的方法及元数据服务器 | |
US20130232379A1 (en) | Restoring distributed shared memory data consistency within a recovery process from a cluster node failure | |
WO2018120810A1 (zh) | 一种解决数据冲突的方法和系统 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
KR102105478B1 (ko) | 고 쓰루풋, 고 신뢰성의 데이터 처리 시스템 | |
CN106293510B (zh) | 一种面向多虚拟存储系统的数据共享方法及系统 | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
CN114281765A (zh) | 分布式文件系统中的元数据处理方法及设备 | |
US10628391B1 (en) | Method and system for reducing metadata overhead in a two-tier storage architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MK4A | Expiration of patent term of an invention patent |