TW440769B - Parallel file system and method for granting byte range tokens - Google Patents
Parallel file system and method for granting byte range tokens Download PDFInfo
- Publication number
- TW440769B TW440769B TW087109530A TW87109530A TW440769B TW 440769 B TW440769 B TW 440769B TW 087109530 A TW087109530 A TW 087109530A TW 87109530 A TW87109530 A TW 87109530A TW 440769 B TW440769 B TW 440769B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- node
- storage area
- data
- disk
- Prior art date
Links
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
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
440769 A 7 -------B7 五、發明説明(1 ) - 屋1明領域: 本發明係有關電腦及電腦系統,尤係有關 腦上執行的檔案系統,其中每一電腦有夕电 , ο ή ? . 丹不·身的作業系統 {且為了貝料共用而與連接共用磁碟的網路耦合,,,、
即本發明係有關一種共用磁碟檔案系統。 W 術語詞彙表: 雖然字典也提及本文所用的某些術語的意義,但下文所 不與本發明有關的某些術語之詞彙表將是相當有用的。 -資料/檔案系統資料(E»ata/FiIe SyStem Data):只有在 一特定應用程式的環境下具有意義的任意位元牟。 -檔案(File): —電腦應用程式可存取的—命名位元串。 樓案具有某些標準的屬性,例如長度、修改時間、及 最近存取的時間。 -中介資料(M e t a d a t a):檔案系統軟體所產生的一種 控制結構’用以描述一檔案的結構、及包含棺案系統 的磁碟之使用情形。應用於此類檔案系統的特定中介 資料類型有: ' 目錄(Directory):使一名稱與一組資料相關聯且以 —檔案索引表示之控制結構。 - 樓案索引(inode):包含檔案屬性、及包含構成該 檔案的資料的磁碟區之一系列指標。如果檔案較 大,則間接區段可補充檔案索引’其中間接區段 係以額外的指標補充檔案索引。 - 分配對映表(Allocation maps):指示磁碟的特定區 本紙張尺度適用中國國家標芈(cns ) λ4規格(2i〇x2m>^ ) 請先閱讀背面之注意事項再填巧木頁 »·
,1T 經漓部中央標隼局員工消费合作社印聚 440769 A? R7 五、發明説明(2 (請先閱讀背兩之:¾意事項再填寫本頁 域(或諸如檔案索引等其他控制結構)是否在使用 中或可使用之控制結構。分配對映表可讓軟體將 可用的區段及檔案索引有效地指定給新的檔案。 -登錄(L〇gs):在系統故障時用來使其他類型的中介 資料保持同步的一组記綠。登錄包含用來描述對 多個結構進行相關更新的單一記錄β -樓案系統(File system): —種軟體元件,利用與檔案資 料相關的Xopen及P0SIX這組標準所指示之方式,而管 理可存取資料的一组指定磁碟。亦利用該術語描述一 特定组磁碟内包含的資料及中介資料组, -共用磁碟樓案系統(Shared disk file system): —種檔案 系統’其中多個電腦分享檔案系統的管理,而不將所 有的管理指定給單一實體。所有的電腦都注意是否有 任何電腦可能執行管理資料所需的任何任務。可在需 要時將特定的任務指定給特定的電腦。 經濟部中央標準局負工消资合作社印" -共用磁碟連接(Shared disk attachment): —種利用通訊 協定而將磁碟連接到多個電腦之方法,使磁碟如同在 當地連接到每一樓案系統。到每一電腦的正確連接通 訊協定對此工作並不重要:但包含以網路連接的磁 碟、交換式磁碟連接、或存轉連接等這種形式。關鍵 項目是共用磁碟連接如同在標案系統當地,且對所有 的標案系統實例如同是同一個共用磁碟。 -配額(Quota): —樓案系統限制一特定使用者或一群命 名使用者在該檔案系統的使用率之功能。例如,管理 -5 - 本紙乐尺度適用中國國家標华(CNS ) A4规枋(210x297公兑) 440769 A7 R7 五、發明説明(3 貝可將使用者,,John"限制爲檔案系統内的1〇〇百萬位元 组。配額是Unix(S.C.O公司的商標)環境中所使用的功 請 閱 漬 面 之 注- 意 事 項 再‘ 填 寫 本 頁 能名稱。 -存取控制表(Access Control List):—使用者可限制在 一特疋表中出現名稱的使用者對資料的存取之一種檔 案系統技術。 發明背景: 目七品要將棺案服務提供給各電腦,例如—Mpp電腦及 其他的電腦叢集,這些電腦叢集形成連接電腦的一網路之 一部分,而作爲一共用電腦資源。 訂 現在已有與表蜂m皇的棒案資赴_相關之某些,,開 放性M (例如X〇pen及POSIX)標準,其中將在各電腦上執行 的計算工作需要存取相同的檔案資料,就如同該資料係存 在於執行工作的電腦當地(以便執行IBM爲不同系統所開 發的系統’请參閱諸如美國專利4,274139'5202971、及 5,226,159)°當多個電腦是一網路的一部分,且多個磁碟 是該網路的一部分時’需要產生—種共用磁碟檔案系統, 此種共用磁碟樓案系統與各標準相容,且無須改變在各 MMP或叢集等電腦上執行的多種作業系統實例。 經濟部中央標準局員工消f合作社印¾ 共用檔案系統(Shared File System ;簡稱SFS)(請參閱美 國專利5,〇4?,876)適用於IBM的S/39〇系統之術語,s/39〇系 統係在IBM的VM下作業’使各虚擬機器得以共用資料。 共用檔案系統也是一種諸如IBM的IMS及GRS等資料共用 媒介,其中係爲了單一系統的環境開發iMS及GRS,且在 本紙張尺度適用中國國家標準(CNS ) Λ4坭枋(210X 297公处) 經濟部中央標率局貝工消费合作社印^ w 在4 Q7 6 9 a? _ 137 五、發明説明(4 ) — MVS下GRS係用於共用磁碟儲存裝置的—系統叢集,而且 在此種系統中GRS可在共用磁碟上分配小的鎖定棺案,以 便循序進行對資料集的存取。MVS&須循序進行對磁碟上 内容表或目綠的存取,因而作業系統需要執行任何類型的 保留作業。此種方式造成了相當大的系統資源虛耗。 已可修改IBM的DB 2而適用於一多重虛擬儲存裝置 (Multiple Virtual Storage ;簡稱 MVS)/ 企業系統架構 (Enterprise System Architectures ;簡稱ESA)環境中之資料 共用,其方式爲使用IBM的耦合設施,以產生多系統的資 料共用,此種資料共用需要—System/39〇 ParaUe丨办呐以 環境,這是因爲需要該耦合設施以傳送高效率且可擴展的 資料共用功能,其中該耦合設施利用美國專利5,463,736所 述的訊息路徑機制管理各處理器間之連接,因而該耦合設 施在本質上變成了共用資料的超級單一伺服器。 如可能是最佳種類的音訊/視訊檔案系統(IBM用於作 業系統的VideoCharger伺服器)所提出,以往符合標準的對 電腦系統之解決方案有賴於將檔案系統層級的要求傳送到 一個可取得資料並傳送回資料的一單一伺服器,或有賴於 知一用户端電腦的中介資料要求傳送到—個可讓原來的電 腦直接提取資料之單一伺服器。IBM也提供了一種被稱爲 虛擬共用磁碟(Virtual Shared Disk ;簡稱VSD)的程式產 品’可讓SP2使用者設定各節點的組態,而作爲主要及輔 助ΓΒΜ VSD伺服器節點3 VSD軟體可讓執行作業系統的各 獨立影像之多個節點存取—個在實體上只連接到其中一個 本紙乐尺度適用中國國家標準(CNS)六衫兄輅(2|〇χ29?公μ ) (請先間讀背1&之^-意事項再填{:"本">
4407 69 五、發明説明(5 ) 郎點的磁碟裝置,就如同該磁碟裝置連接到所有的節點一 般,IBM已將VSD實施在ΑΙχ作業系統中,當一組虚擬共 用磁碟的主要伺服器節點故障時,可透通地切換到一輔助 词服器節點。縱使如美國專利5,454,1〇8的鎖定管理器、美 國專利5,49Q,27G與美國專利5,566,297的叢集配置所述及的 IBM足VideoCharger等此種單—伺服器系統已有不錯的進 展,但是不論在哪一種情形,該單一伺服器的存在都是— 個瓶頸及個潛在的故障點。此外,在國際商業機器公司 勺系,4中也有刀剳一個經由一網路存取的磁碟空間之能 力,因而一特定的電腦管理並存取該共用磁碟的一特定區 域,而並不使用指定給其他電腦的區域。 然而’以前的這㈣'統並没有提供下㈣題的滿意解決 方案:g可經由網路存取多個磁碟的許多電腦可讓任—電 腦在任何時間存取任何資料,尤其是讓無須改變作業系统 或標準的那些電腦執行上述功能。我們已發展出_種解決 万案’且將在本發明的共用磁碟㈣系統環境中說明之d 然而’我們必須感謝美國專利5,454,刚的發明人先前所完 成的工作’因爲我們已能利用該專利的鎖定管理程式的— 毯濟部中央標準局員工消泠合作枉印^ 修^而作爲本發明的共用磁碟樓案系統中之先進符記管 理器(token manager)。 發明概述 本發明以共了 —種共用磁碟樓案系統,丨中每—機器上 的-檔案系統實例可同樣存取耦合到該檔案系统的所有磁 碟’而且這些磁碟形成該標案系統的—料。使用—問道 用中國 ~~ 440769 Α7 五 、發明説明(6 ) f里恭乂—換式網路、—將支援TCP/IP的高速企業内 ,.罔路轉合、—非均—,憶體存取匯流排Μ合、或其他類似 I I - I - - I — - I— n '^n I I I ! ----- T, * V '-0 (¾先閱讀背而之;>:£-意事項-r填寫本頁) e L接方式即可達到上述目的。根據本發明,該共用磁 碟檔案系統係制㈣聯的管理呼叫支援磁碟讀取及寫入 呼叫。作《統實例是常見的或標準的,因而無須改變作 業系統即可使用本發明之共用磁碟標案系'统。我們提供了 所需的辦.服務程式,使本發明的共用磁碟棺案系統可以在 實用的方式下進行。 本發明的共用磁碟棺案系統係在一共用磁碟環境下以一 .平行檔案系統之方式作業。本發明將—可擴展樓案服務提 供給具有一叙定游標的系統。本發明也提供—分段分配對 映t。在本發明的可擴展平行檔案系統中,本發明實現了 動態預取。藉由提高緩衝儲存區效能及空間利用率,而提 高本發明的可擴展平行檔案系統中之速度。—此外-,延伸楼 案屬性支援υχηχ環境中之存取控制表(Aeeess CQntrQi Lists ; 簡稱ACL)’ ACL首次可在一個在—共用磁碟環境中可擴展 的平行檔案系統中作業。 經濟部中央標挛局員工消费合作社印t 本發明所作的各種改良可在一共用磁碟環境中對丘用磁 碟及樓案環境的多個電腦作有效率的基本Μ控制。本發 明的目錄服務可以有效率之方式將檔案插入資料結構中7 並自資料結構中刪除檔案,而不會使資料結構造成太大的 混亂。此種方式在必須對所要修改的區域取得獨有控制權 的平行系統中是相當重要的。本發明所開發的分配對映表 能夠在以平行方式配置的同一群磁碟中分配儲存空間,至 -9- 本紙法尺度適用中國國家標隼(CNS ) Λ4規格(2丨0Χ 297公苁) 五 、發明説明(- A7 137 持中小資料的完全一·致性。p 』 ,. . ^ ' 坆點疋相當重要的’因爲可 , 版都將希望在不必顧及其他電腦中 進伃的情形下產生頦外的次拉 ^ m 、卜的貝科。本發明的預取演算法計算 可用I/O頻寬及應用程式對资拉 . 枉八對貝枓的需求,以便決定所要預 貝料# 點在對卯的需求可能超過可用頻寬的平 统中是相當重要的。本發明在緩衝儲存區效能上的發 £農了多個存取的緩衝儲存區,且緩衝儲存區效能的發 展雖然與平行處理並不相關,但仍是檔案系統的—般性改 么艮。利㈣案屬性作爲—支援機制也適用於非平行樓案系 但是在本發明的整體平行檔案系統機制中,此種利用 U $屬性作爲一支援機制是相當重要的,因爲此種方式可 在一平行檔案系統中有效地實施存取控制表。 本發明提供了可在一共用磁碟環境中對同一檔案或目錄 進行平行更新。本發明提供了一中介資料節點,用以管理 在平行讀取及寫入動作中使用的檔案中介資料。在本發明 的系統中,將符記(token)用於土金資料節點的選擇及識 別,且本發明具有增強後記模式,用以控制檔案大小,並 以智慧型方式缓衝儲存使用檔案存取型樣的位元组範圍符 -濟.邓中央標準局員工消费合作社印" i己 '及使用一位元組範圍符記介面的位元组範園鎖定演質 法Q 、 平行檔案I新需要有一些創新之處,這些創新處仔細考 慮到下列問題:在更新來自多個電腦的同一檔案時,如何 有故率地產生及更新中介資料。本發明的一種解決方姿是 建立一中介資料節點,該中介資料節點處理一慣地來 -10 本紙乐尺度適用中國國家標準(CNS ) Λ4現格(210/ 297公犮) 440769 五、發明説明(s ) 個發端電腦應用程式的某些可改變中介資料之合併。第二 種解決方案是提供一種鎖定架構,用以有效地對所有需要 其服務者識別該電腦。此種方式無須建立一個可能造成瓶 頬的固定管理點。 現在,樓案大小是一種中介資料,.用以經常改變平行更 新的狀況。本發明提供了一種在執行的應用程式需要正確 的檔案大小時,,及時"取得正確的檔案大小之方法。此 外’本發明重新界定了鎖定技術,用以減少此環境中符記 管理器之虛耗作業。 本發明&供了在典法使用參與共用磁碟管理的電腦時之 才&案系統回復’可能有多種原因使該電腦無法使用,其中 包括系統的故障。本發明提供了一種平行檔案系統回復模 型,並以同步及非同步之方式接管—中介資料節點。 本發明的平行共用磁碟檔案系統可將某些資源的控制權 暫時指定給一特定的電腦,以供修改^在此種情形中,其 他電腦可得知的磁碟上的結構可能處於一不—致狀態,而 且必須在發生故障時修正該結構。爲了處理此種情形,本 發明提供了一種延伸兔準登綠及鎖宅1復的方法,使其他 經濟部中央標準局®:工消费合作社印製 (ίΐ先聞讀背面之注意事項再填ίϊ··3本頁) 訂 電腦持績在存取檔案系統上大部分的時得以進行此種回 復。 現在,在議X環境中,配額的觀念以其名稱而廣爲人 知。配額是-種可用來管理—空間的起始範園之一般性觀 念,且可配合諸如S/390所用的作業系統等其他的作業系 統而使用此種觀念。-般而言,當我們考慮到配額時,必 07 6 9 Λ 7 Β7 五、發明説明(9
經濟部中央標华局R工消费合作社印" 須積極地管理配額,使鎖定不會經常被需要用來代表—使 用者分配新的區段。本發明針對配額管理提供了可回復的 當地分配額(local Share),其中情形將於下文中説明之。 由於配額是-㈣-使用者或—群使用者可使用的磁碟 量之限制,所以爲了將該配額觀念用於本發明的平行檔案 系統中,本發明創造了 一種由_(存取單一配額檔案的^配 額管理器分配當地分配額以供平行分配之方式。此種方式 對-使用者有多個應用牙呈式實例在共用—樓案系統的若干 不同電腦上執行的情形是相當重要的。本發明開發之方法 在發生故障時有足夠的配額存在時的許多情形中提供了立 即的回復。在某些情形中,需要執行一個諸如υΝΐχ標準 公用程式"quotacheck"等的公用程式以完成該回復。本發 明亦開發了一種技術,可在應用程式使用配額的同一時間 執行一quotacheck公用程式’且只有最小的干擾。 上^:這些及其他的改良係述於下文的詳細説明中。爲了 於兩解本發明及其優點與特徵,請參閱下文之説明及 圖示。 附/圖簡述 W® 1^出一個根據本發明的共用磁碟檔案系統,該系統 包含一個用於各電腦系統節點之符記管理器。I 主重明之詳細説明: 一 設有若干相關元件的本發明共用磁碟檔案系統之—較佳 實施例係示於圖1。如圖1所示,本發明之系統包含一符 记官理器(1 1)’用以將鎖定能力提供給參與一檔案系統管 12- 本纸張尺度適用中國國家標準(CNS ) Λ心見格(21〇x 297公荩) {請先間讀背面之注意事項再4寫本頁 i"
k1T 44 0 7 6 9 A7 ____________D7 五、發明説明(1〇 ) ~~ 理的電腦節點(〗)、(2)、及(3)。(請注意,在本發明的符記 管理器中,必須修改美國專利5,454,108之鎖定管理器) 本發明之檔案系統碼管理應用程式所要求的讀取及寫 入。此種管理使用參.^及并同管j里的土介資料, 而在檔案系統内產生及存取資料。該功能是大部分的處 理’且在所有的電腦中都相同。由於設有適當的符記,所 以該處理利用磁碟讀取、窝入、及控制功能而直接存取磁 碟。 如圖I所示且於前文中概述的共用磁碟實施例有勝過先 前平行及叢集檔案系統的數個主要優點。該共用磁碟實施 例提供了將資料移動進出所用應用程式之可能最短路徑。 資料或中介資料在此路徑中都沒有檔案系統伺服器。可使 用任何可用的路徑’以避免使一伺服器成爲瓶頸或單一故 障點。因爲鎖定管理器中所需的各中央功能並未連接到一 特定的電腦,所以該等中央功能可自某一電腦移到另一電 腦,以滿足故能及可用性之需求。 鯉濟部中央標準局貝工消Φ;合作社印製 n _ ·ι了 - ! ί - 1 ^^1 I— I -丨 m i I . Τ» (锖先M讀背1&之注意事項#填寫本頁) 爲了作出本發明所述的系統’如前文所述的美國專利 5,454,108示出一種鎖定管理器,而本發明已修改該鎖定管 理器’使其能夠處理共用磁碟檔案系統所需的不同回復典 範,本發明也增加了中介資料節點處理所需的一些額外鎖 定各態’而得以對同一檔案進行平行更新。將在下文的詳 細説明之各節中詳述這些特徵及其他特徵。 具」%足存及可延伸赫許法(extendible hastiirtp"!方f擴_ 展的目錄服務 -13- 本纸伕尺度適用中國國家標準(CNS )八4規_辂(210X29?公ft ) 4407 69 ΑΊ 五 、發明説明(” B7 :明的共用磁碟檔案系統實施例中,本發明開發了 大㈣ί板極快速插入、删除、及查詢作業之方式而爲一 在… 綠進行儲存及建立索引之方法,該方法並在可 /何作業系統實例(甚至是單—作業系統)中實施的一環 =,以不會和現有的介面程式設計標準(例如x/open的 gle: Unix戍格)衝突之方式,而循序擷取("掃描")所有 的資料記錄。因此,開始時將先說明本發明的循序掃描、 健A與的基本方法。與先前的建立索引方 去不同,本發明縱使在循序掃描進行中插入或刪除記錄, 本發明之循序掃描只利用n有―是皇的與上下文相關之資 訊γ游標"),即可產生可預測的結果。本發明所採用的方 法是在一種被稱爲·可隻並羞_^的技術領域中。一個實施 的可延伸赫許法可使用稀疏檔案(sparse file),而不儲存一 個明確的赫許表。因此,由於使用了可延伸赫許法,所以 本發明可在一個符合標準的樓案系統(雖然並未作如 此的限制)中實施目錄。一般而言,可在一 Unix作業系統 環境中實施本發明之較佳實施例,並將該環境視爲一背 景,然而我們也考慮到使用同一功能的其他作業系統。事 實上,現代的基本系統可配合在實際用於驅動電腦的作業 系統層以上的許多作業系統層而工作。 資_料_課系統及二孽用途的檔案系統係以指定一個可識別 一資料記錄或一檔案的"關键字"("key")之方式,而得以 儲存及擷取資料。在一個一般用途檔案系統中,檔案名稱 是作爲擷取檔案中儲存的資枓之關鍵字;通常將一個儲存 14- 本紙張尺度適苽中國國家標华(CNS ) Λ4規格(210X297公兑) (請先閱讀背而之•注意事項存填寫本I ) -----年 經濟部中央樣準局負工消費合作.社印奴 4407 69 Α7 Η7 五、發明説明(12 ) — —组檔案名稱及相關聯的檔案存取資訊的結構稱爲目錄。 當這组資料記錄或檔案名稱較大時,經常使用一種被稱爲 索引的輔助資料結構來加速查詢。一索引可在一資料庫表 中或在-目纟㈣«名射#找—個記錄,而無須掃描整 個資料庫表或目錄。 目则有數種基於赫許表及諸如AVL樹與B樹的平衡式搜 尋樹之習知索引方。爲了達到良好的查詢效能,這些方法 在插入或刪除某一數目的資料記錄之後必須重組至少部分 引。例如,將一記錄插入一B樹時,可能需要將 樹節點分割成兩個新的節點,以便讓出空間给該新的記 綠。因此,可能需華將—些現有的記錄移到—個不同的實 fla 1®. ° 經漪部中次標洚扃另工消赀合作社印製 此種方式對需要循序掃描一資料庫表或一檔案系統目綠 的應用程式(例如列出—目錄的内容)造成問題。此類應用 程式重複呼叫資料庫或檔案系統,而在每一呼叫中擷取一 個或多個記錄,直到已經擷取了所有的記錄或目綠資料項 時爲止。在各次呼叫之間,必須維護某一數量的與上下文 相關疋資訊(通常稱爲,,游標"),以便追蹤該掃描已進行了 多遠。此種方式是必要的,使次一呼叫可繼續擷取其餘的 記錄。檔案系統目錄的實施例通常使用一目綠内的一資料 項之實體位置或偏移量作爲一循序掃描的游標。因爲一個 如一:B樹分割的索引更新可能將現有的資料項移到目錄内 的一個不同位置,所以在一循序掃描中插入或刪除登錄的 負料項時,將對掃描的結果有不利的影響;亦即,如果移 ____-15- 本祕尺度適用t@@w(cNs 440769 A7 B7 經濟部中央標準局K工消资合作社印装 五、發明説明(13 動一個現有的資料項,則循序掃描可能漏掉該資料項,或 者可能送回兩次相同的資料項α 爲了解決先前習知索引方法所發生的此種問題,我們可 使索引獨立於資料記綠,或者可在一掃描中儲存更多的與 上下又相關t資訊。前一種方式使查詢'插入、及刪除作 業的成本更高也更爲複雜,這是因爲比本發明之較佳方式 需要有額外的間接層級。當系統需要與現有的程式設計介 面標準相容時,後—種儲存與上下文相關的資訊之方法就 無法通用了。例如,在X/〇Pen Single Unix規格中規定的目 綠’丨面(readdir、telidir、及seekdir函式)可以一個單_ 32 位元値作爲一循序目錄掃描之游標。 由\本發明所開發的採用可延伸赫許法之較佳方式,本 發明可戍明如何以—種支援極快速插人、删除、及查詢作 業以及循序掃&之方式而爲—组極多的資料記錄進行儲存 .索引建 此外’我們當可了解本發明所開發的較佳方 式1下列W __個小而有界限料標値(通常爲32位元) 足以保證-循序掃描將不會送回任何重複的記錄並可權取 所有現有的記綠(亦即除了在掃描進行中所插入的或刪除 的記錄以外之所有記錄)。 現在大知道赫許法是—種以關鍵字(㈣)儲存及查詢 資科記錄的技術,如吳箱+ . w t ,,-·, ^ 先知以4己録數的—適當範圍,則 赫诈法技術將可工祚自杯 〇心“ & 午法工作時,係將可用的儲 存玄間刀成固定數目的,_枯母件六 叱数目的赫泎儲存區"("hashbucket")a爲 了儲存一個記綠,應用一 % ^赫許函數"("hash 16- ----- -- -----/衣 I--1--- i _ 訂 {計先閱讀背而之:>χ·意事項再填5tr本頁) 紙乐尺度適用中國國家標準(CNS )Λ4規格(2丨0X 297公处 -44 07 6 9 A; ---~~---------B7 五、發明説明(14 ) ' '—~— nctiyn )之對映方式,將關鍵字値對映到一赫許儲存區 數j將新❾έ己錄儲存在由赫許値所指示的赫許儲存區 ^ :關鍵I尋找~個記錄,計算該記錄的赫許値;然後只 搜尋及赫许値指示的儲存區中所儲存的記錄,即可找 要求的綠。 .般而s 無法事先知道所要儲存的赫許値數,且該赫 :午値數可能成長到任意大的數。此種情形對標準的赫許技 術k成㉟Μ題,因爲標準的赫許技術需要在一開始時即 知道赫許儲存區的最大數目。一種稱爲"可延伸赫許法 的先進形式的赫許演算法解決了此一問題,其解決方式爲 在赫許函數的値中採用可變數目的位元當一赫許儲存區填 滿時,即"分裂”該赫許儲存區,亦即加人—個新的赫許 儲存區,並將-些記錄自現有的赫許儲存區移到新的赫許 儲存區β以重新評估赫許函數並多使用—個位元來決定赫 許儲存區數之方式而決定要移動哪些記錄,亦即,頦外的 位元爲零的記錄留在現有的儲存區,而額外的位元値爲— 的記錄則被移到新的儲存區3 經漪部中央標率局員工消资合作社印製 使用本發明採用可延伸赫許法的較佳實施例時’—索引 或目錄開始時係存放在—單_赫許儲存區,亦即第零個儲 存區只要儲存區能夠容納,不論記綠的赫許値爲何,都 对所有的圮綠放入起始儲存區中,亦即赫許函數的零位元 被用來決足赫許儲存區編號。當起始儲存區塡滿時,即加 入一個新的赫許儲存區(亦即第一個儲存區),而分裂該起 始儲存區。現在赫許函數的一位元被用來放置記綠,亦即 _____ -17- 本紙张尺度適用中國國家標辛·( CNS ) Λ4規枋(2]ΟΧ:29Τ^
A Λ
A 7 69 Λ7 B7 Λ、發明説明(15 先 間 讀 背 ιέ 之 注- 意 事 再· 填 本 頁 赫許値的最低有效位元爲零之那些記綠留在第零個儲存 區’而最低有效位元爲一的那些記綠則被移到第一個儲存 區。要將㈣記錄加人第零以―個料區,係取決於赫 許値的最低有效位元之値。例如,現在假設第—赫許儲存 區又被填滿且需要分裂。現在利用赫許函數的最後兩個位 凡來決定是否將要移開第一儲存區之記錄。位元値爲〇 i 的那些記錄留在第-赫許儲存區,而位元値爲u的那些 記錄則進入一個儲存區編號爲3(二進位的丨丨等於十進位 的3)的新赫許儲存區。這次的分裂不會影"在第零赫 許儲存區中之記錄,亦即最後兩個位元爲〇〇或】〇的記錄 仍留在第零料區’直到第零儲存區已被填滿且亦需要分 訂 裂爲止。也有可能在第零儲存區分裂之前,第一儲存區被 填滿且再度需要分裂。 嫂濟邡中央榡漭扃貝工消费合作社印裝 表1中R例所不的一的二進位樹(”赫許樹„)可代表經過 數次赫許儲存區分裂之後的目錄結構。利用赫許値位元決 定在每一内部節點上時要依循哪一分支,而以自根到一葉 即點又方式通過該赫許樹,即可找到—記錄。取決於各赫 办値分佈的情形,赫許樹的某一分支可能比其他的分支更 長。對於一個經過適當選擇的赫許函數(亦即一個產生均 句刀佈的赫許値之函數)而言,我們預期所有的樹分支都 有近似相同的深度。以深度優先之方式通過赫許樹,即可 /〇成循序目綠掃描,此時係以自左到右的順序檢查各葉節 點(赫許儲存區)。 本紙张尺度通用中國國家桴隼 -18- (CNS )八4規_格(210x291公尨 > Λ 69 A 7 B7 五、發明説明(Ί6 ) .....表1
X /
X
X 00=0
X 01=1 11=3 表1 以 °10'2 110=6 •:個赫許樹在經過4次分裂之後的例子: 第0儲存區分裂成第0儲存區及第1儲存區, 第0儲存區再度分裂成第〇儲存區及第2儲存區, 第2儲存區分裂.成第2儲存區及第6儲存區, 第1儲存區分裂、成第1儲4區及第3儲存區。 進位及十進位的赫許數標示赫許樹的各葉節點。 1 J, t^I [ ' 订 (锖先Μ讀背而之^-意事項^填寫本茛) 經濟部中央標準局貝工消贽合作社印說 根據本較佳實施例’係將一赫許樹表示爲磁碟上的稀疏 檔案,且於一赫許儲存區分裂時重新安置各記錄,而且循 序目錄掃描係以只回ilj所有現有資料項_次之方式通過赫 許樹。每一個這類發展的領域都提供了適用於本發明系統 之改良。 在本發明的系統中,稀疏檔案係用於實施可延伸赫許 法。在一檔案系統中,係將寫入一正規檔案的資料儲存在 磁碟的一個或多個磁碟區段中。Unix及類似Unix的檔案系 統介面可在各寫入呼叫之間發出,,搜尋"呼叫,而將新的 本紙張尺度適用中國國家標準(CNS) Λ4規格(2I0X 297公K ) A7 B7 *--------
^^0?SQ 五、發明説明(17 資料窝入超過一檔案的目前結尾之處。此種方式將產生具 有間隙或,,空洞"(亦即一檔案内並未被寫入任何資料之區 域)的樓案=將此種樓案稱爲"稀疏檔案"。對稀疏擋案的 讀取作業將送回一些零値,此時讀取的偏移量及長度交又 到一空洞。支援稀疏檔案的檔案系統實施例只有效率地分 配磁碟儲存容量給寫入資料的檔案區域,而不分配給空 洞’或者至少不分配給大於區段容量或該檔案系統所用的 磁碟分配單位之空洞。 經濟部中央標率局員工消资合作社印製 在本較佳實施例中,係利用一稀疏檔案實施基於可延伸 赫許法的一索引或目錄。每一赫許儲存區係以一偏移量 而儲存在檔案中,其中t是赫許儲存區編號(自零開 始),s是赫許儲存區大小(所有的赫許儲存區都有相同的 大小)。目錄開始時是一個空的檔案。當插入第一記綠 時i係將通5己綠儲存在第零赫許儲存區,且循序將記錄寫 入檔案中,而將檔案大小自零増加到s。當第零赫許儲存 區需要分裂時’寫入第i儲存區,而將檔案大小自s增加 到2*s。次一赫許儲存區分裂將取決於前兩個儲存區中哪 —儲^ Μ作次—分裂寫人第2或3赫許儲存區。 如果第1儲存區作次一分裂,則將寫入第3赫許儲存區, 而將檔2大小自2*s増加到,而在偏移量處在標案留 下個i洞’其中第2赫許儲存區將自偏移量力處開始放 表2 丁出如何將表】所不實例中之赫許樹儲存在一稀 疏檔案中。 k紙張尺度適用中國國家標华了^^· 20- )Λ4規格(2!Οχ297公及 440769 經M‘郏中央標準局負工消资合作社印氧 A7 B7 五、發明説明(18 ) * 〜 ^一〜”............ 2........................ 第0儲存區第1错存區第2儲存區第3儲存區空洞1空洞1第幡存丄 表2 ··將表1所示的赫許樹對映到一稀疏檔案。 i納文所述,自根(第〇儲存區)開始由上向下通過赫許 樹,即可找到—個具有一特定關鍵字之記錄。然而,因爲 我們預期所有的樹分支都有近似相同的深度,所以更有效 率的方式疋由下向上通過該樹。執行的方式如下文所述。 若知道檔案大小,則我們可計算最長赫許樹分支的深度, 因爲在一個最大深度爲d的赫許樹中,所以所有的赫許儲 存區编號都是d個位元或更少的位元,且至少一個儲存區 必須有一個第d位元是一的儲存區編號。因此,可將最大 木度d计算爲最大赫許儲存區編號中之位元數,亦即% -1,其中f是檔案大小。爲了以一特定關鍵字查詢一記錄, 我們必須先計算以該特定關鍵字的赫許値的d個最低有效 位兀表示之赫許儲存區编號b。如果赫許樹的所有分支都 有相同的深度,則即可保證可在以該關鍵字表示的赫許儲 存區中找到該記綠。因爲儲存該特定關鍵字的分支之深度 可能小於d,所以儲存區b可能尚未存在於該赫許樹中, 如果發生此種情形’則該檔案將在以|^5表示的偏移量上 有一2洞。因此’如果找到—個空洞,則我們利用赫許値 的一個較小位元計算一個新的赫許儲存區编號b,,此時如 -21 - 本紙張尺度適用中國國家樣準(CNS ) A4規格(.2丨〇 X 297公筇 (請先閱讀背而之-;i意事項再填{;15本頁) --'衣. 訂 440769 A 7 B7 五 發明説明(19 果該赫許樹分支的深度爲d_l, 、 d將可#到該記錄的伯 *~·。只要在樓案中碰到一個空洞昧 — ·, ' Π時’即重複上述的程序。 —找到一個非空洞之後,如果在古,,^ 左产 果具有孩特定關键字的記錄 =,則必定在該赫許儲存區中找到該記錄。杏詢及插入 作業的處理情形如下: 一.’ 、音詢作、 ____ 1 ·計算所查詢的關鍵字之赫許値h。 2_以檔案大小除以赫許儲存區大小,在求基爲2的對數 値,然後捨入到次一整數,而計算出赫許樹深度(1。 3 -將赫許儲存區編號b計算爲h的d個最低有效位元: b=h mod(2 -id) 4·自檔案的偏移量b*s上擷取赫許儲存區,其中s是赫許 儲存區大小。 5.如果赫許儲存區b並未存在(檔案在偏移量上有一空 洞)’則將d遞減一,並回到步驟3。 6,在赫許儲存區b中尋找具有指定關鍵字的記錄;如果 找到該記錄,則送回該記錄:否則送回”並未找到η 的錯誤訊息。 rr··· 〜 插入作業Ύ、 .•V · ·- 一- .·· ί£漓部中央標準局員工消費合作社印焚 1 ‘利用所要插入的記綠之關键字,以如查詢作業中步 驟】到5所述之方式,計算赫許深度d及赫許儲存區編 號b。 2 ·如果具有該特定關鍵字的一記< 存區b,則送回彳參^已存在π的錯备‘ /已存在於赫許 -22- 本紙張尺度適用中國國家標準( (2I0X 297公兑) A7 B7 440769 五、 發明説明(2〇 ) '如果赫許儲存區b中有足夠的空間保留給新的記錄, 則儲存該記綠並傳送回3否則’必須分裂赫許儲存 區b,以便讓出空間给新的記錄,其中情形將於下列 步驟中説明之。 4 .計算 b_=2 "nd+b。 5 ‘對於赫許儲存區b中所有的記綠而言,重複下 驟: * 計算v=h mod(2 yd+Ι)),其中h是該記錄的關键 罕之赫許値。請注意,v必須等於b或b,,因爲 對赫許儲存區b中所有的記綠而言h m〇d 2 ”(1等 於b。 否 5b.如果v = b,,則將該記錄移到赫許儲存區^ ; 則’將該記綠留在b中。 是 知d遞增一,並重新計算b爲h ,其中匕 所要插入的記錄之關鍵字β 回到步驟3。 經濟部中央標隼局员工消费合作社印紫 ^隹汰本發明所述的可延伸赫許法實施例可配合任何赫許 :存區大小而工作,但是如果儲存區大小與檔案系統的區 又大小相同或爲區段大小的倍數,則該實施例將更有效率 。攻疋因爲在空洞對準檔案系統的區段邊界時,— 個有效率的稀疏檔案實施例並不需要任何磁碟I/O來讀取 工洞。因此,如果現在並未在緩衝儲存區中儲存保有該 记%的赫許赌存區,則所有的查詢作業只多只需要一個磁 茱I / 0來&取该赫許儲存區。請注意,此時假設在緩衝儲 23- (210x 297公兑) 本紙张尺度適用中國國家標準(cxs ) Λ4規格 4407 69 A 7 B7 五、 發明説明(21 存區中儲存了包含檔案的磁碟區段位置之檔案中介資料。 對於均勻分佈的赫許値而言,我們預期平均在每一查詢 作業中將碰到0.5個空洞。如果可延伸赫許法實施例直接 存取橋案系統的中介資料(例如,如果利用可延伸赫許法 實施例實施檔案系統中之目錄)’則直接查詢檔案中介資 料,即可識別空洞《否則,查詢作業必須對其計算的每— 赫》午儲存區編號至少讀取某些資料,並以該讀取作業送回 的都是零而識別一空洞。儲存具有—個包含一非零値的短 起始碼之赫許儲存區,即可以最簡易之方式執行上述程 序。 現在本發明提供了赫許儲存區的分裂及合併。記錄係儲 存在每一赫許儲存區内,且當一赫許儲存區分裂時,即移 動這些記錄。在刪除記錄之後合併若干赫許儲存區,即可 收回磁碟空間。 每一赫許儲存區包含一個具有一"赫許樹層級,,攔位之 始碼。該爛位的値只是赫許儲存區在赫許樹内的層級,亦 即咸儲存區離開赫許樹的根有多@。開始時赫許樹只有— 個儲存區,亦即在赫許樹層級零上的第零儲存區 灾 儲存區分裂時,其赫許樹層級自零改 — - 编號-是第零儲存區在分裂之後的兄弟:存區新=區 的儲存區乙赫許樹層級將也是—。每卷— ’、Λ新 W 赫許儲存區分梨 寺’其層級即增加一,且將與進行分裂 許樹層級指定給所增如的新儲存g _相同的赫 間 24- ^^1 :---·- - - - —^1 ! I νί^. 1» - n^i ——I _ τ» 、1 (請先閱讀背面之>1'意事項再填寫本頁) -濟部中央標孳局負工消泠合作社印^ 每當將—個新的記錄加人—赫許儲存區時,即在該時 本紙張尺度適用中國國家標準(CN,S )’以規枱(210x 297公;^ ) 440769 A7 B? 五、發明説明( 22 輕漪部中央標卑局具工消费合作社印^ 將該記錄連同赫許儲存區的赫許樹層級—起。杏 許儲存區分裂時,即遞增儲存區起存 A t . ^ ^ 存的赫許樹層 級,但連同每- 1己錄儲存的赫許樹層級足保持不變 新赫許儲存區的記錄也保持其原始的赫許樹層㈣。因 此,將和-特定記錄相關聯的赫許樹層級値與該赫 區起始碼中儲存的赫許樹層級比較,即可決定在該儲存區 上次分裂之前或之後插入了該記錄。循序目綠掃描需要此 種能力,將於下文中詳述其中情形。 循序掃描的ϋ要求是:H記錄之後,一赫呼 儲存區朽的-記錄之偏移量即保持穩定。因此,杰我們^ -赫許儲存區中插入或删除一記錄時,現有的記^被保留 在其原始的位置,亦即並沒有自由空間的壓縮。此外,當 因分裂而將一記錄移到—個新的赫許儲存區時,即將該記 錄儲存在該新的儲存區中與原始赫許儲存區相同的相對偏 移量處。此時,連同赫許樹層級,即可重建一赫許儲存區 在分裂之前的内容。 在某一次數的删除作業之後,最好是收回不再需要的磁 碟空間。如果兩個同胞葉節點中之記錄少到可以放入單— 赫許儲存區,則合併這兩個節點,即可完成上述程序。然 而,循序掃描在合併及分裂中需要保存各記錄偏移量。此 意彳g爲了決定是否可合併兩個赫許儲存區,只在兩個 儲存區中加入自由空間是不夠的;反而需要驗證:當將兩 個赫許儲存區合併成單一赫許儲存區時,任何兩個記錄都 不會重疊。達到此目的之最簡單方法是將這兩個赫許儲存 ("先閱讀背面之注意事項再填蹲本頁) 装------>; 訂 本紙張尺度適用中國g|家標準 -25- (CNS )八4现格(210X297公匁) iU07 69 A7 B7 經濟部中央榫準局員工消费合作杜印¾ 五、發明説明(23 ) 區合併的時H遲料兩㈣許料g巾之-赫許儲存區 芫全空出時=> 田合併兩個赫許儲存區時,儲存區編號較高的一儲存區 中之記錄被移到儲存區編號較低的另—儲存區,且將编號 較低的儲存區的起始碼争之赫許樹層級遞減一。清除赫許 儲存區値較高的赫許儲存區之内容,而自檔案中去除該赫 許儲存區。在類似Unix的檔案系統中,呼叫fclear函式, I5可執仃上述&序;如果琢樓案系統有效率地實施稀疏樓 案a】泫和·序知因收回该赫許儲存區先前所佔用的磁碟儲 存2間,而產生—空洞。 在本發明的較佳實施例中,爲了支援循序掃描—目錄或 索引中之所有記錄,提供了一種可重複呼叫的掃描作業, 用以送回赫許樹的内容,此種掃描作業被稱爲循序目錄掃 描3每一呼叫送回一個或多個記錄及一”游標"値,且必 須將琢游標値傳送到次—呼叫,以便擷取次— 、凡。匕綠。現 在將首先説明在掃描進行中並未插入或刪除任何記綠時目 錄如為的工作方式,然後將考慮如何處理因對掃描常弋的 各呼叫間之插入或刪除而產生的赫許樹變化。 目録知描開始時係自赫許樹中最左邊的赫許错广^ ' 然疋弟零赫自午儲存區)揭取記錄。一旦送回裳带° '、 珩苓儲存區的 所有記錄之後’繼續對赫許樹中第零赫許儲存區 , . 〃兄弟赫 許儲存區掃描。由於建構赫許樹的方式,赫許樹+ ^ 」Τ ϊ木度爲 d的兩個兄弟赫許儲存區之赫許儲存區编說間 j〈差異只在 第d個位元,亦即,在赫許儲存區編號的第d ' 位元上, 26 - 各紙張尺度適用中國國家樣準(CNS ) ,\4現掊(:MOX297公犮) n^n HI ^^1 i nn - ν^ι^ί \ , (請先閱讀背.&之-注达事#再填寫本頁) Α7 Η 7 五、發明説明(24 ) 左邊的兄弟赫許儲存區有一個零,而右邊的兄弟赫許儲存 區有一個一。因此,第零赫許儲存區的同胞赫許儲存區是 bl=2 ’(d-i)(在第d個位置上的單一位元)。在自第bl個赫 許儲存區擷取所有的記綠之後,在赫許樹中在第一赫許樹 通過階深度上繼續對次一赫許儲存區掃描。在第b丨個儲 存區之後的次一赫許儲存區並不是—個兄弟赫許儲存區, 而是在赫許樹的一個d—〗深度上與第b 1個赫許儲存區共有 —個共同的來源赫許儲存區。因此,該次一赫許儲存區將 在位元位置d-Ι上有一個丨位元並在位置d上有一個零位 凡’而得到一個赫許儲存區編號b2= 2 ] (d-2)。一般而 δ ’若一第b赫許儲存區是在赫許樹的深度d,則可在第 一赫許樹通過階深度中長到次一葉節點,其尋找的方式 烏:取得b的d個最低有效位元’然後顚倒這些位元,再 將一個模2 ~nd加到所得到的値,最後再度顚倒所得到的結 果。 因此,可利用一個包含一赫許儲存區編號b及一個在一 赫許儲存區内的相對偏移量r之游標c=(b,r),而實施一赫 4树知拓j °以—游標値(b,r)呼叫的一掃描作業首先檢查第 b赫5午儲存區中在大於或等於『的偏移量處是否還有任何 °己錄:°如果確係如此’則該掃描作業送回一個在r之後的 久一 A錄、及一個新的游標値汁〆),其中产是在送回該記 錄後的次一偏移量。如果第b赫許儲存區中在大於或等於 Γ的偏和量處沒有任何記綠,則以一(b,,0)的游標値繼續進 行·摘拓I ’其中b ’是次—赫許儲存區編號,且係利用上述的 請 閱 讀 背 1¾ 之 ii' 意 事 项- 再 4 寫 本 頁 袈 訂 Μ濟部中央標苹局員工消费合作社印狀 -27- 本紙伕尺度適用中國囡家標? )Λ4規枋(21〇χ 297公芹) 4407 69 A7 ________B7 五、發明説明(25 ) _ 位7C顚倒/遞增程序,而以儲存在第b儲存區的起始碼中之 赫許樹層級所提供之一d値來計算該次一赫許儲存區編 號。如果對b_的該計算得到一個〇的値,則我們已達到赫 终樹的終端,且不再送回任何記錄。 ‘ 在對掃描常式的各呼叫之間處理因插入或刪除而發生的 赫許樹改變。因爲我們並未移動一區段内的各現有的記 錄,而插入一個新的記錄或刪除一個舊的記錄,所以只要 插入及刪除不會造成赫許儲存區的分裂或合併,插入及刪 除就不會影響到循序掃描。因爲在此種情形中現有的記錄 並不會移動,所以掃描最多只將發現每一記綠一次,並保 證送回除了在掃描進行中被删除者以外的所有現有的記 綠。一個新插入或刪除的記錄可不可以找到係取決於記錄 的位置(赫許儲存區及偏移量)、及插入/刪除相對於循序 掃描通過赫許樹的時機。如果分裂/合併在循序掃描到達 分裂/合併所影響的赫許儲存區之前發生,或者如果分裂/ 合併在掃描已前進離開受影響的儲存區之後發生,則一赫 許儲存區的分裂或合併並不會影響到循序掃描。 經濟部中央標準局員工消费合作社印取 只有在循序掃描已送回分裂或合併影響的赫許儲存區中 一邵分但非全邵的記錄時,即進行對該赫許儲存區的分裂 或合併’才需要作特殊的考慮。當一區段分裂時,可將先 前的呼叫已送回到掃描常式的某些記綠移入新的赫許儲存 區其中當循序掃描碰到新的區段時,將再度送回相同的 記錄。相反地,一赫許儲存區合併可能使掃描遣漏一些記 錄,這些記綠係自一個該掃描所不曾碰到的區段移入現有 -28- 本紙張尺度適用中國國家標牟(CNS ) Λ4规格(2丨0X 297公筇) 440769 Α7 Β7 經濟部中央標準局妇工消费合作让印^ 五、發明説明(26 ) 的赫許儲存區中一個小於現有掃描游標値所指示的偏移量 之偏移量位置。本發明以下述方式解決這些問題:偵測將 影響循序掃描的一赫許儲存區之分裂或合併;以及在必要 時重建分裂或合併之前的赫許儲存區狀態,以便在不回遺 漏或重複記錄的情形下繼續進行掃描。以下文所述之方式 將一赫許樹層級包含在掃描常式所送回的游標値内,即可 完成對一分裂或合併的偵測。當掃描常式自一第b赫許儲 存區迗回第一記錄時,該掃描常式送回一游標値 C = (h,b,r),該游標値包含前文所述的赫許儲存區編號b與 相對偏移[以&於讀取該第一記錄時在料儲存區的赫 許法中發現的赫許樹層㈣h。此游標値#送到對掃 描常式的-後續呼叫時,將該游標値提供的赫許樹層級h 與在該赫許儲存區的起始碼中發現的現有赫許樹層級h,比 較。如果li’>h,則在對掃描常式的兩次呼叫之間必定發生 第b赫許儲存區的分裂;如果㈣,或者如果第_許儲存 區不再存纟,則(樓案的偏移量b*s處包含—個空洞),則 該赫許儲存區必定已被合併。 將赫許儲存區重建成游標產生時該赫許儲存區的狀能, 而處理赫許儲存區的分裂,一個暫時性的緩衝區來保 存重建後的赫許儲存區。以—次—個的方式讀取原始赫許 儲存區的各衍生赫許儲存區。並將原始第b赫許儲存區中 存在的任何記錄拷貝到該暫時性緩衝區中。檢查前文所述 連同母-冗綠儲存的赫許樹層級,而識別所要拷貝的記 綠;亦即’因而拷貝赫許樹層級小於或等於h且在第_ _______-29- 本紙ί長尺度適用中( cns ) Λ4& 々垃) I -----1 ----1 1 士 义___ 1·___ 丁 *不 '1C ("先閱讀背而之-念事^再填{:!5本頁) Α7 Β7 在69 五、發明説明(27 ) ' 許儲存區分裂之前即已存在的所有記錄。因爲一赫許儲存 區分裂時保存了被移到—個新赫許儲存區的記錄之原始偏 移量,所以保證可將這些記錄拷貝回該暫時性緩衝區中的 同—偏移量處,因而該暫時性緩衝區就如同產生游標時原 L的赫许儲存區之狀恐(但不包括爾後被刪除的那些記 錄)。掃描常式然後利用該暫時性緩衝區中重建的區段, 而繼續處理。當掃描常式當達該暫時性緩衝區的終點時, 该掃描常式利用上述的位元顚倒/遞增程序,而以自掃描 游標的赫許樹層級h所提供之一 d値來計算所要碰到的次 一赫許儲存區。 最後,係在一循序掃描中處理赫許儲存區的合併。如果 掃描游標C = (h,b,r)提供的赫許樹層級h大於在赫許儲存區b 的起始碼中發現的赫許樹層級}1,,或者如果第}?赫許儲存 區不再存在(亦即反而發現一個空洞),則偵測到一合併。 類似於分裂的情形,將赫許儲存區重建成產生游標時該赫 許儲存區的狀態(亦即在合併之前的狀態),而執行赫許儲 存區合併的處理。然而,在此種情形中,並不需要在一獨 互的緩衝區中重建先前的赫許儲存區。而是掃描係對被合 併的赫許儲存區作業,對該儲存區進行多次掃描。在每一 次掃描中,只送回其中一個原始儲存區的記錄;而不理會 其他的圮錄。重新計算每一記錄的赫許値’並將該赫許値 的h個最低有效位元與現有掃描游標提供的赫許儲存區编 號b比較,而執行上述步驟。如果以上所比較的兩者相 同,則在罘b赫許儲存區被合併之前該記錄即已被放入 ___ -30- 度適玥中國 _ 家標準(CNS ) ( 21 0 X 29^"^ .-------—装——-----1T------^ (請先閱讀背面之>1意事喂再4将本頁) 經濟部中央標準局貝工消费合作祍,5-¾ 輸出 經濟部中央標準局負工消肾合作社印^ 請注意 Α7 Η 7 五、發明説明(28 ) 赫許儲存區中’因而掃描作業將送回該記錄。否則,將不 a ’己綠。清’/主意’如果第b赫許儲存區不再存在(亦 即反而發現—個空洞),則在赫許樹中往上一個或多個層 "L j發現個黑空洞區爲止(類似於查詢作業),而以 種方式發現包含赫許儲存區合併結果的儲存區。當掃描 2業J達對所合併赫許儲存區的一掃描之終點時,該掃描 上述的位元顚倒/遞增程序’而以自掃描游標的 Γ=Γ所提供之一d値來計算次-赫許儲存區b,。 如果新的儲存Μ,是所合併赫許儲存區的另一衍 2二將Γ:游標値c,=(h,b',°)對所合併的儲存區開 掃二:經完成對所合併儲存區的最後-次 知描,且掃描常式以—游標値c h, 人 赫許儲存區進行作業,其中h"是在^繼續正常對第b, 中發現的赫許樹層級。 储存區的起始碼 权式設計師可以可實施掃描作業演〜、 言,實施本發明所述的方法,該掃:决的任何程式語 輸入:游標值c=(h,M 走的摘要如下: 用於送回一個或多個記綠之緩衝品 在所提供緩衝區中送回的記綠1 新的游標値 在對掃描常式的第-次呼H (〇,〇,〇)的游標値:在後續的呼叫中,先< ·心傅迗~的 標値應被傳送到次一掃描呼叫。 ]呼彳所送回的游 1 .设定 hl=h,b'=b -31 - 本紙伕尺度適用中國®家樣準(CNS ) Λ4規柢(2 IΟX 297^Γ - ^m· _ ^^^^1 .^( 1 I 士* _ —^E— ^ (請先閱讀背而之;i意事Jij·再填-11?本頁:! 440769 A7 Η 7 五、發明説明(29 ) 2. 自檔案的偏移量b,*s處讀取第b•赫許儲存f 赫許儲存區大'卜如以b,赫許儲存區並=^中s是 案在偏移量b,*s處包含—僉 子在(孩檔 丄洞)’則將h丨遞減_ ’ 計算b_爲D,=mod2,h,,並回到步驟2的開始處。重新 3. 設定h,爲在第V赫許儲存區的起始碼中發 層級,如果都是零(掃描的開始.匕: 爲與h,相同的値。 、匕又疋h 4. 將h·與h比較。根據該比較的結果,而繼續進 示的步驟5、6、或7。 又所 5 .如果 h'= h : 請注意,在此種情形中b必須等於b _。 5.1在第b赫許儲存區中,於大於或等於r的—偏移 量處搜尋次一記綠。根據是否仍有此種記綠,而 繼續進行下文所示的步驟5.2或5 3。 5.2 如果此種記錄存在: 檢查在所提供的緩衝區中是否仍有空間而得以送 回圮錄。如果仍有空間,則將該記錄拷貝到所提 供的緩衝區,並在拷貝了該記錄之後將掃描游標 中之偏移量r更新爲次一偏移量,然後回到步^ 經濟部中央標準扃貝工消费合作社印製 4。 ’ 如果在所提供的緩衝區中已無空間,則自掃描常 式跳出,並送回現有的游標値3 5.3如果此種記錄不存在: 計β b 〃等於在第—階深度之次一赫許儲存區。 32- 、紙掁尺度適用中國®家揉準(CNS ) Λ4規格(::丨0>< 297公兑 A? 440769 五 '發明説明(30 ) bM=reverse(reverse(b, h) + 1, h) 其中reVerse(x,n)意指取χ的^個最低有效位元,然 後將其顚倒之。 如果b ”等於零,則我們已到達掃描的終點^在此 種知形中,將自掃描常式跳出’並送回現有的游 標値。 否則,以如下所示方式更新游標c=(h,b,r):設定b 及b 1等於b ” ^將r設定爲零。讀取b的新値所指示 的赫許儲存區,並將h&h,設定爲在該赫許儲存 區的起始碼中所發現的赫許樹層級。 然後回到步驟4。 6 .如果 h1 > h : 此種情形意指第b赫許儲存區被分裂了。 6.1如果尚未執行,則將第b赫許儲存區的内容重建 爲其在分裂前的狀態。其方式爲將赫許樹中第b 赫許儲存區的所有衍生赫許儲存區合併到一暫時 性緩衝區。可能在前-反覆中已爲第㈣存區執 行過此步驟;在此種情形中,可跳過此步驟。 6.2在該暫時性緩衝區中大於或等於r的偏移量處找 到次-記綠。根據是否仍有此—記錄,而繼續進 行上文所示的步驟5.2或5.3。 7 .如果 h· < h : 此種4形意指第b赫許儲存區被合併了。 7.1在第b 1赫許儲存區中大於或等於 g码移量處找到 -33- 本紙痄尺度適用中國园家標辛(CNS ) Λ4坭格(ΉΟΧ 297公Φ ) :;ί k, 閱 讀 北 η 而 今· 意 事 項. 再 填 本 頁 装 訂 經濟部中央梂嗥局負工消费合作社印聚 ^40769 A 7 B7 五、發明説明(31 次一圮綠。根據是否仍有此一記綠, 、而繼續進行 下文所π的步驟7.2或7.3。 7.2 如果此一記錄存在: 計算該記錄中關键字的赫許値,龙設< 許値的h個最低有效位元。如果b " 馬琢赫 .. 、f於b,則减 過該記錄,亦即,更新掃描游襟中、 、T <偏移量r爲 該記錄之後的次一偏移量,並回到+ 少碟7 . 1 〇 檢查所提供的緩衝區中是否仍有空 上間以适回兮 錄:如果並非如此,則送回現有的游授 " 如果有足夠的空間,則將該記錄挣 ^ J貝到所提供的 缓衝區,並將掃描游標中之偏移督 里r更新爲剛才 被拷貝的記錄之後的次一偏移量。 回到步驟4。 7.3 如果此一記錄不存在: 計算b "等於在第一階深度之次—赫許儲存巴 b"=reverse(reverse(b, h) + 1, h) 如果b 等於零’則我們已到達掃描的終點。在此 種情形中,將自掃描常式跳出,並送回現有的游 標値。 · 經消部十央標4,-局貝工消资合作社印裝 否則,檢查(b mod 2ilV)是否等於(b, m〇d 2,h)。 如果確係如此,則意指所要掃描的次—儲存區仍 然是其中一個被合併到第b,儲存區之儲存區。在 此種情形中,將r設定爲零,並回到步戰7之開始 處’此時將對所合併的第b |儲存區開始進行次一 34- 本紙張尺度適用中國國表標举(CNS ) /\4斤格(2丨0 X 297公及 A7 B7 現在將 4d〇769 五、發明説明(32 知'描。 否則,已完成了對所合併儲存 描。在此種情形中,繼續後一次掃 設定爲b",^設定爲零,即’將 爲在第b赫許儲存區的走私 " 級,然後回到步驟4。 赫4樹層 在説明了本發明的循序掃描程序的實施例之後 回到用來將游標値編碼的方法。 爲了儘量減少存放一游標値所需的位元値,可 層級及赫許儲存區編號結合成單—値,此時只“ 最大可能儲存區編號所需數目的位元多一個位元。這是 可能的,因爲儲存區的數目必然小於或等於2,其^匕 是層級。編碼方式如下。此種編碼所用的—個參數:最大 赫許樹層級,亦即赫許樹的任何分支所能到達的=大深 度。 對赫許樹層級L及赫許儲存區編號㈣游標編碼如下:
使Μ =最大赫許樹層級 計算Η = Μ - L 计算R =將Β的每個位元顚倒 將儲存區編號及層級編碼爲2 iH+r*2 ](Η + ι) /解碼時’計算較低階的零位元數,並減掉該數而 得到層,.及(L)。爲了得到儲存區編號,將編碼後的値向右 移動L+〗個位元,並將所得結果的每—位元顚倒。 當然,熟悉本門技術者在閱讀本發明的説明之後,當可 -35- —------------裝-- (請先閱讀背而之"意事項再填3本頁} -1Τ 經濟部中央榡率局員工消货合作社印裝 本纸ί長尺度適用中囷國家標準( CNS ) Λ4規枯(2丨0X 297公左) 經濟部中央標準局^;工消费合作社印裝 厶厶Q 7 6 υ A? '-~~~_________Η 7 五、發明説明(33 ) "—- 易彳于知些選項的特徵。例如,本系統可實施鎖定及同 時控制作業,而得以在不同的赫許儲存區中進行同時的更 承本發月亦實施上溢的區段。雖然在一循序掃描過程中 只際上並不需要—個暫時性緩衝區來處理分裂,但是可使 乎Η程式所提供的緩衝區。尤其是我們知道應用程式係 欠送回一個結果的循序掃描介面,所以只爲了送 回一個記錄而重建一整個儲存區是不合理的。 檔案系統中分配儲存宏吾 平行分配是本發明較佳實施例的—個特徵。此即意指: 本發明提供了對一分配對映表(例如一位元對映表)之编 碼,本發明對分配對映表的編碼與傳統編碼的分配對映表 比車X時,減少了同時分配多個磁碟上的磁碟區段(包含一 共用磁碟檔案結構)的多個節點間之干擾,本發明之系統 亦可讓多個節點同時收回干擾減少的磁碟區段。 雖然在檔案系統中實施了分配的觀念,且雖然檔案系統 使用傳統的方法分配儲存容量,但是用於共用磁碟檔案系 統的傳統方法產生了一些問題,因而需要一種可分配及收 回儲存容量的發明,且此種發明在—共用磁碟檔案系統及 一平行檔案系統中都執行良好。 一般而言,檔案系統是一種可讓其他的應用程式儲存及 擷取磁碟機等媒體上的資料之電腦程式。爲了簡潔起見, 下文的説明中將使用磁碟的術語,但是此種觀念適用於任 何以區段組成的類似儲存媒體。檔案是一個有名稱的任意 大小之資料物件。檔案系統可讓應用程式產生檔案並爲檔 —J-ϋ fn - 1 - t^氏- u - I ----- 丁 *τ {請先閱讀背面之:注意事^-再填寫本頁) 本纸乐尺度適用中國國家標隼(CNS ) 公兑) αλ〇769 Α7 B? 五、發明説明(34 案’.名&便將資料儲存在檔案中,自檀案讀取資料,刪 除:案,:及對檔案執行其他的作業。 安( 。榀案結構是磁碟機上的資料之組織。除了檔 木、料本身之外,肖案結構包含中介資料’亦即一種將檔 a名稱對映到斜應的檔案之目錄,檔案中介資料包含與檔 案有關的ΐι訊’這些資訊中尤其重要的有:磁碟上檔案資 料的位g (亦gp哪些磁碟區段存放有樓案資料)、—個記綠 那些磁碟區段目前被用來儲存中介資料及標案資料之分配 對映表、以及—個包含與檔案結構有關的整體資訊(例如 目錄'分配對映表、及其他中介資料結構的位置)之超級 區段。 經漪部中央標隼局具工消於合作社印繁 另方面’我們當了解,共用磁碟檔案系統是在各別電 月®上執行的多個檔案系统存取在一個或多個磁碟上常駐的 一植案結構(~種檔案系統。爲了便於説明本發明之較佳 貫施例’我們爲該檔案結構假設•這些電腦(或節點)沒有 共用此憶體(縱然這些電腦可以有而且在許多可能的實施 例中將有區域記憶體、及至少某些共用記憶體(如許多 SMP的實施例),我們也作此種假設),且這些電腦係連接 到若干磁碟,而檔案結構係利用諸如一匯流排或一交換網 路的某一裝置而常駐於這些磁碟上,其中該匯流排或交換 網路都被視爲有這些用途的通訊網路。此外,我們假設: 某一類似的裝置使這些節點相互通訊。共用磁碟檔案系統 可讓一個使用該檔案結構的一計算工作被分成多個部分, 且可在多個節點上平行執行該等多個部分,此種方式可集 -37- 本紙張尺度適用中國國家榡準(CNS ) ,\4坭桤(2i〇X297公犮 f A; B' 五、發明説明(35 ) 合這多個節點的計算能力而完成該計算工作。 —分配對映表是本發明的檔案結構之一部分。考慮一個 儲存在N個磁碟DO、D1、…、ON-1上的檔案結構。一對數 字(i J)識別該檔案結構中的每一磁碟區段,例如,(5,254) 識別磁碟D5上的第254個區段。分配對映表通常係儲存在 —陣列A中,其中元素八(1」)値表示磁碟區段(ij)的分配狀 態(被分配/自由)。 分配對映表通常係儲存在磁碟上,作爲檔案結構的一部 刀,因而分配對映表係常駐在—個或多個磁碟區段中。傳 统上,α(μ)是對映表中的第k個連續元素,其中k=iM+j, 且Μ是某一大於任何磁碟上的最大區段數目之常數。 爲了尋找磁碟空間的一自由區段,檔案系統將Α的一區 段讀進一記憶體緩衝區中,並搜尋該緩衝區,以便尋找一 個其値指示對應的區段(U)爲自由的元素Α(ι,』)。在使用區 段(ij)乙前,檔案系統更新該緩衝區中A(ij)的値,以便指 示區段(i,j)的狀態爲被分配,並將該緩衝區的 碟。爲了使-個不再被需要的區段(1,」)成爲自由狀態,檔 案系統將包含A(iJ)的區段讀取到—緩衝區,然後更新 裡濟部中央標準局負工消费合作社印裝 的値以便指示該區段(ij)是自由㈤,並將該區段的内 容自該缓衝區寫回到磁碟。 對以共用方式存取-分配對映表的處理已成爲—特定的 需求。如果包含一共用磁碟檔案系統的各節點並未使其對 共用磁碟的存取有正確的同步,則這些節點可能破壞該橋 案結構。此種情形尤其適用於分,料咕* . . ________ -38- I祕尺ϋ用中 標準(CNS ) Λθϋ^ίοχ297妙"i---—-~~_ 4d〇,69 A7 I__________ Ϊ37 五、發明説明(36 ) 情形’現在將考慮前文所述的分配一自由區段之程序。假 設兩個節點同時嘗試分配一區段。在執行此工作的過程 中’這兩個節點可能同時讀取同一分配對映表區段,同時 找到描述自由區段(i,j)的同一元素A(i,j),同時更新A (i,j) 以便示出區段(i,j)是被分配的,同時將該區段的内容寫回 磁碟’以及同時爲了不同的用途而繼續使用區段(ij),因 而破壞了檔案結構的完整性。如果A(X)及A(Y)係同時包含 在相同的對映表區段中,則縱使各節點同時分配不同的區 ί又X及Y ’也將發生更微妙也更嚴重的問題。在此種情形 中’第—節點將Α(Χ)設定爲已分配,第二節點將Α(γ)設定 爲已分配’且這兩個節點同時將放在缓衝區的對映表區段 内容寫回磁碟。根據哪一個寫回先被執行,區段X或Υ將 在磁碟上的對映表中呈現自由狀態。例如,如果執行第二 節點的寫回是在執行第一節點的寫回之後,則區段X將在 磁碟上的對映表中呈現自由狀態。第一節點將繼績使用區 段X (例如儲存一檔案的一資料區段),但是在某一稍後的 時間’另一節點可能將區段X分配給其他的用途,此時的 結果又破壞了檔案結構的完整性。 經濟部中央標隼局员工消资合作社印說 J--- - I - - ...... 1^衣-- -I (請先閱讀背面之ίϊ·意事II-再填巧本頁) 爲了避免檔案結構的破壞,一節點在將每一位元對映表 區段“取到s己憶體之前’必須爲該位元對映表區段取得一 符1己’而且如果該節點修改該區段(亦即分配或釋出—區 段),則該節點必須在釋出該符記之前先將該區段的内容 寫回磁碟3通常自諸如美國專利5,454,1 08所述的鎖定管理 器等的一"分散式符記管理器"取得符記,並將符記釋出 ______-39- 本紙張尺度過用中國國家標年(CNS ) Λ4現格(21 Οχ 297公对) ΑΛ〇7 69 Λ; Β: 五、發明説明(π ) 至忑刀散式付記官理器。在釋出區段上存放的符記之前 自符記管理器取得符記的虛耗作業,以及將對映表區段寫 回磁碟的虛耗作業,都可能大幅降低—共用磁碟樓案系統 的效能。 “ 本發明可如同在一RAIr^f境而將拆開在多個磁碟上的 貝料。拆開(striping)是一種在不同的磁碟上儲存連續資料 區段(例如一檔案)之技術。拆開之優點包括高效能、及負 載平%。在拆開中,檔案系統係根據磁碟編號〇、 、 的某一循環组合,而將—檔案的連續區段寫入不同的磁 碟。對於以傳統方式組織的分配對映表而言,寫入—檔案 的N個區段或更多的區段時,需要鎖定、搜尋、更新、2 寫入N個對映表區段(或者在小於n個區段時,需要整個分 配對映表)。執行上述步驟的虛耗作業遠高於在單—磁碟 上分配N個相接的區段.此外,在—共用磁碟檔案系統 中,寫入檔案的節點可能使其他節點耗用相當長的延遲時 問以等候對所需分配對映表區段的釋出3 經濟部中央標準局負工消f合作社印製 爲了解決此一背後的問題,本發明使用一分段分配對映 表而提供了一種磁碟分配器,用以儲存及管理—個支援分 佈在多個磁碟上的分配對映表,並同時可儘量減少與區段 的;ij配相關聯的鎖定、I/O、及搜尋虛耗作業。與前文所 述的傳統分配對映表比較時,本發明的磁碟分配器大幅減 少了於分配一拆開檔案時所存取的分配對映表區段數。此 外’在一共用磁碟檔案系統中,該檔案系統大幅減少了於 多個節點同時分配拆開檔案時銷定之競用、及分配對映表 -40 - 本紙張尺度適用中國國家標率(CNS ) Λ4规枋(210X 297公兑) 140769 Λ 7 -----------Β7 五、發明説明(38 ) 區段之讀取與寫入。 本發明所述磁碟分配器所根據的基本觀念是再將分配對 映表細分爲若干區域。若將對映表分成κ個區域,則每— 區域控制Ν個磁碟中每—磁碟上的1/κ個區段,槽案並非 鎖定分配對映表區段,而是鎖定這些區域,以便同步對映 表之存取。由於使用了不同的區域,所以多個節點可同時 分配拆開標案’而不會相互干擾。 對於具有Μ個區段的磁碟而言,每—區域包含分配對映 表&ΜΝ/Κ個元素。這ΜΝ/Κ個元素理想上是正好放入—單 -分配對映表區段’但是如果磁碟數(或每—磁碟的容幻 相當大’或者如果區域數相當小,則這些區域可能大於分 配對映表區段。爲了讓分配對映表使用與正規檔案相同的 區段大小,各區域係由—個或多個段落所構成,其中每一 段落的大小最多爲-分配區段,並且控制則固磁碟的 分磁碟上區段的分配。如果區域小於對映表區段大小的一 半’則將多個區域放入每—對映表區段。 決定分段分配對映表组織的參數有區域數κ、磁碟數 Ν、及以每-磁碟的區段數料示的磁碟容量。應選❹ 經漓部中央樣準局員工消t合作杜印製 域數至少等於樓案系統節點數’因而每一節點可自—不 的區域分配3 如果Β個分配對映表元素正好放入一區段,則係以下式 表示最小區段數 '及儲存每—區域所需的最小段落數:J ceil((MN/K)/B), 這是因爲每-區域儲存每—磁碟的第1/κ個元素,亦即每 ______________ - 41 « 未紙張尺賴财晒家辟( 4407 69 A7 ------- B7 丨丨1 - - ____ 五、發明説明(39 ) ' ' " 區域有NM/K個tl素。然而,爲了在—特定磁碟上分配 一區段,最好是使對照到同一磁碟的所有分配對映表元素 都攻在同一段落内,亦即放在分配對映表的同—區段内。 在此種限制下,每一段落可存放d個不同磁碟的分配元 素,其中係由下式表示d: d=fl〇〇r(B/(/K) = floor (BK/M)。 請注意,必須選擇K至少等於M/B,否則,d將爲零,亦 即1對照到同一磁碟的分配對映表元素將無法正好放入單 一區段内。因此,係以下式表示每一區域的段落數: L = ceil(M/d) = ceil (N/fl〇or(BK/M))。 我們將使用1己法S(p,q)表示第p個分配對映表區域的第q 個段落,其中p的範圍爲自〇到Κ-1,q的範圍爲自C到 1二然後以下文所述之方式將分配對映表的各元素指定給 段落。表示第i個磁碟上的第j個區段的分配狀態之元素 A(i,j)係儲存在段落A(p,q),其中 p j mod K,以及 q = floor(i/d)。 係按照下列順序將各段落配置在各連續的分配對映表區 段中: 經濟部中央標準局貝工消费合作社印^ s(〇,〇)、S(1'0)、s(2,0)、…、s(K-l,〇), S(0’l)、S(l,l)、s(2,l)、...、s(K-l’l), S(〇,L-l) ^S(1,L-1) 、S(2,L-1)、...、δ(Κ_1Λ_υ。 換言之,每一區域的第一段落係儲存在分配對映表的開 -------— -42- 本紙张尺度適用中國國家標辛(CNS )八4叱祐(2]0 X 29"?公及、| Μ濟部中央標準局ii-J工消费合作杜印奴 A7 B7 五 '發明説明(40 ) 頭’後續爲每一區域的第二段落,其他伖此類推。此種配 置方式使擴展樓案系統成爲可能,其方式爲在不需要重新 組織分配對映表的情形下加入更多的磁媒,亦即,將更多 的磁碟加入檔案系統時,需要將更多的分配對映表元素儲 存在每一區域’此時可能需要將一個或多個段落加入每一 區域(以利用一個新的N値重新計算L之方式決定需要多少 的段落)。只須將額外的元素添加到現有分配對映表的結 尾即可。 爲了分配一拆開標案的各連續區段,—節點利用區域中 的各自由區段(亦即其分配映表元素指示其狀態爲自由的 區段),並根據拆開组合而取得一區域的符記,並分配各 連續區段。在釋出該符記之前,該節點需要將該區域的内 容寫回磁碟。如果在嘗試於一特定磁碟上分配一區段時發 現该區域在該磁碟上並未包含任何自由區段,則該節點切 換區域,此時該節點將該區域的内容寫回磁碟並釋出符 記,然後爲另一區域取得一符記,並嘗試自該區域分配。 如果該節點嘗試了所有的區域但無法成功找到_特定磁碟 上的一自由區段,則該節點可(根據檔案系統的拆開策略) 而在另一磁碟上分配一區段,或者將一"空間不夠"的狀 況傳送回應用程式。在前一種情形中,當已嘗試過所有的 磁碟但不成功時,檔案系統將送回》空間不夠"的訊自。 在效能強化的實施例中,檔案系統通常允許其他節點在各 檔案區段寫入之間爲其區域而"借用,,符記3該節點回廊 一符記借用要求,而將該區域的内容寫入磁碟,然後釋^ -43- 請先閱讀背面之>!意事^-再填寫本頁) I裝- .1Τ 本紙掁尺度適用中國國家標準(CN.S ) Λ4^祐( 210X297 公允 440 η Α7 -濟部中央愫準局買工消资合作社印製 五、發明説明⑷) 符記。區段取回係與第2.1節所述者相同;爲了取回—區 奴’樓案系統在包含描述區段的分配對映表之區域讀取資 訊’將其狀態更新爲自由狀態’並在釋出符記之前將該區 域的内容窝回磁碟。 雖然前文所述的分配對映表组織及演算法大幅減少同時 寫入檔案的各節點間之干擾,但還是可能有一些干擾。這 是由於在切換區域時,一節點並無選擇要切換的區域所依 據疋資訊。該節點理想上應切換到一個其他節點目前並未 使用的區域’且該區域有足夠的自由區段而容許持續的寫 入’無須再度切換到另一區域。 爲了提供一種使一節點得以作出一個有足夠資訊的區域 選擇,本發明導入了一種分配管理程式,這是一種追蹤哪 —節點(如果有此種情形)正在使用每一分配區域並追蹤每 —區域中大約還剩下多少自由空間之程式。於檔案系統啓 動時,該分配管理程式檢查每—區域,而計算出每一區域 中之自由區&數,並將此資訊存放在一表中。在切換區域 之前,一檔案系統節點將一訊息傳送到該分配管理程式, 知涊即點切換前的區域(包括該區域現有的自由空間容量) 通t該分配管理程式,並取得一個建議的切換區^。該分 配管理程式更新其表,以便指示切換前的區域之自由空 門並釋出已揲節點使用琢區域。該分配管理程式然後檢 查/、表,以便決足目前並未被使用且自由空間容量最大的 另一區域,然後將該區域的編號回覆該擋案系統節點,並 更新其表,以便指示該區域目前被使用3如果所有其他的 -- ,I | |. - _ - 44 本紙張尺度( CNS)糾⑽ ----------------訂 (請先閱讀背面之·注意事項再填巧本頁〕 4r4 07 6 9 Α7 ________Β7 五、發明説明(42 ) 區域都處於使用狀態,則該分配管理程式隨機選擇一個區 域。該協定優先切換到未使用的區域,而減少區域切換二 次數。 雖然上述演算法將分配對映表存取局限㈣案產生,但 是檔案删除仍然有可能造成頻繁的區域切換,因而干擾到 =同時窝入檔案的各節點。縱使個別檔案中之區段局限 於單-區域,仍然經常有一節點將刪除若干由不同的節點 在不同的時間所產生的檔案(例如一目錄的内容)且因而自 不同的區域分配之情形。此種情形將產生收回分配,五因 而頻繁地執行區域切換。 :了減少這些區域切換’分配管理程式及樓案系統提供 了一種指示收回對目前正在使用該區域的節點(如果有此 種μ形)的區段分配之裝置,用以控制收回對區段之分 配。其實施方式如下:刪除-區段時,樓案系統首先將一 汛息傳运到分配管理程式”乂便取得目前使用該區域的節 點之身份。分配管理程式以該節點之身份或該區域目前並 未被使用―的才曰不作爲回應。在後一種情形中,節點以前文 中在^2即所述之方式收回對區段之分配。在前一種情形 經濟部中央標4'-局貞工消资合作社印装 中,孩節點將一訊息傳送到分配管理程式所指定的節點, 告知收回:區段的分配。如果第二節點確實正在使用該區 :'、彳第一節點收回對區段的分配,並回應第一節點而 =y <第—即點已如此執行。如果第二節點目前並未使用 孩區域,則將此種情形回應第—節點,此時第—節點收回 對區段的分配。 本·尺度適用令iii標準( 經濟部中央標隼局員工消f合作社印取 A 7 B7 五 '發明説明(43 ) 爲了減少訊息的傳送’可成批處理收回分配的訊息^例 如’在刪除一檔案時,分配區域可將屬於該檔案的各區段 分類,然後可將包含屬於同一區域的各區段之單—收回分 配訊息傳送到目前正在使用該區域的節點。 差_用磁碟檔案系統干擾乏ϋ 本發明之系統可讓包含一共用磁碟檔案系統的多個節點 避免相互間不必要的干擾。爲達到此—目的,本發明已作 了各種改良。 展的平行檔案系統之動熊預取 預取是一種檔案系統中用來減少1/0延遲時間的一種技 術,其方式爲在應用程式要求資料之前,即讀取若干區段 的循序存取楼案。本發明之系統處理動態排程及調整預取 專用的檔案系統資源之問體,以便盡量增加一平行檔案系 統(亦即同一檔案的資料係分佈在多個磁碟裝置之檔案系 統)的資料傳輸率,並儘量減少I/O延遲時間。 本系統内設有一個稱爲"緩衝管理程式之系統服務程 式,該緩衝管理程式在競用記憶體的各種不同系統组件之 門仲裁„己憶m貝源之使用權。每—組件必須將緩衝管理程 式決定將多少記憶體分配給每—組件所需的資訊提供給缓 衝官理程式。該資訊包含下列兩個數字: 1 _所需的記憶體容量。 该數字指示在可供應的情形下—組件可有效地利用多 少的記憶體。 2 .現行活動水準。 ___ _ -46- 本紙張( CNS ) ,\4^^~2心 297公^^ ~ {請先閏讀背面之•注意事項再填艿本頁) --裝. 訂 ---------H7 — __ _ --------— 五、發明説明(44 ) .1 . - - -- I I— - .1 - .—^衣-I (請先閱讀背面之-;±'意事項再填圬本頁) 該數字必須提供一组件對記憶體使用頻度的—量測 値,通常係以一段時間中對記憶體存取的次數表示。 該缓衝管理程式隨即將其指定給每一組件使用的記憶體 容量通知該組件。 競用資源的其中一個組件是檔案系統的缓衝區組,該緩 衝區组係用來緩衝儲存最近所擷取的檔案資料、及爲猶序 讀取而預取的資料。本發明將適當的資訊提供給緩衝管理 程式,以便考慮到預取所需的資源,並安排緩衝管理程式 所指定資源之使用時間,以便儘量提高檔案系統的資料傳 輸率,並儘量減少I/O延遲時間。 下文中將概述如何達到上述目的。表3及4中示出額外 的細節,且在下文的概述之後將另行説明這些細節6 - 檔案系統的緩衝區組在邏輯上被分成兩個部分,其中 一個部分係用於預取("預取緩衝區组",另一部分係用 於緩衝儲存最近擷取的檔案區段("一般性缓衝區組,_)。 M在邏輯上被分成"意指並不需要將個別的緩衝區特別 指足給某一緩衝區組或另一緩衝區组;而是維護單一 數字’該數字指示總緩衝區空間中有多少空間係用於 預取,而以此種方式表示這兩種緩衝區組的區分。 經濟部中央標準局員工消赍合作社印黑 - 將這兩個緩衝區组提供給缓衝管理程式,作爲兩個獨 立的組件,亦即,檔案系統分別爲一般性緩衝區組及 預取緩衝區組計算各自所需的記憶體容量及活動水 準。 - 利用可量測資料存取率的諸如基準計數等傳統的技 -47- 用中國國家標準(CNS ) Λ4ί« ( 2IOX 297/.>^.) 4407 69
^ '算兩個緩衝區组的活動水準。因爲這兩個緩 衡區% CJ Θ + ^ ,,、疋在邏輯上隔離,所以保存每一缓衝區組的 :--1-------4------訂 (請先閱讀背面之;3意事項‘再填寫本頁) 別计數,即可執行上述步驟;在每一次的緩衝區存 中根據係由循序或隨機I/O存取緩衝區,而更新谪 當的計數。 2用基準位元及計數器決定在某一段時間中存取不同 k案資料的總數,量測工作組,而計算一般性緩衝區 組的所需大小。 然而,係以不同的方式計算預取緩衝區组的所需大 ^ 涊计算考慮到:屬於檔案系統的磁碟裝置數目及 此力、循序存取的檔案數、及讀取資料的速率。將在 下又中詳述此種計算,且此種計算係示於表3。 經满部中央標準局貝工消费合作社印^ •將前—步驟中計算出的數字提供給緩衝管理程式,緩 衝1理程式利用這些數字決定將多少記憶體指定給代 表仏衣系統的一般性緩衝區组及預取緩衝區组的兩個 组件。檔案系統將其緩衝區組的總容量設定爲指定給 這兩個组件的圮fe體容量之總和。指定給代表預取緩 衝區组的组件之έ己憶體容量係用來決定可預取多少資 料。圖2中將詳述預取的時機及預取的資料形式。 開始時最好是以一簡單實例說明表3及4中所示的演算 法,該簡單實例爲自一個儲存在—非平行(單一磁碟)檔案 系統明取之單一應用釭式,然後將考慮如何處理多個應用 程式及具有多個磁碟之檔案系統。 在此簡單實例中,雙重緩衝(兩個預取緩衝區)足以提供 _____________^48^- 本纸张尺度適用中囡國家標準(CNS ) ( 210^Τ^-: 440769 五、發明説明(46 ) ~ 最佳的資料傳輸率及效能。當應用程式開始讀取槽安時, 標^系統將檔案的第—區段讀取到其中—個預取二區。 當第一 I/O結束時,檔案系統將檔案的第二區段嘈取到另 -預取緩衝區。在進行第二1/〇時,自第—緩衝=擴取樓 案資料,而滿足應用程式的讀取要求。如果到達第一緩衝 區的末端,則當第二1/〇結束時,可自第二緩衝區滿足後 續的讀取要求。一旦第二1/〇結束且應用程式已自第一區 •k凟取了最後一個位元组之後,即重新使用第—預取緩衝 區預取檔案的第三區段,其他依此類推。 經濟部中央標苹局只工消费合作社印製 如果應用程式的讀取速率慢於磁碟,則在應用程式完成 讀取前一區段的資料之前,即已結束了各預取1/〇。在此 種情形中’當應用程式已讀取前—緩衝區的最後一個位元 組時’將開始次一預取I/C)。在此種情形中,資料的供應 速率將等於應用裎式讀取資料的速率,且應用程式將不再 需要等候磁碟I/O。這是最佳的狀況。如果應用程式讀取 資料的速率快於可自磁碟擷取資料的速率,則每當應用程 式到達一個區段的結尾時,即需要等候目前作用的I/O結 束’且於前一預取]7〇結束時,即開始一個新的預取I/O。 在此種情形中,讀取資料的速率將等於自磁碟擷取資料的 速率,再度是一最佳狀況。 表3所示之演算法將多個應用程式及每一檔案系統有多 個磁碟的特性一般化;該演算法計算所需的預取缓衝區 數,因而:(1)如果應用程式嘗試讀取資料的合併資料速 率小於可用總磁碟頻寬,則將以讀取資料的速率將資料供 44 07 6 9 經濟部中央標準局負工消费合作社印策 Λ7 _______B7五、發明説明(47 )應给每一應用程式,且不會有I/O等候。电… ^ 、~如果應用程式 的合併資料速率大於可用總磁碟頻寬,則將 V自磁碟掏 取資料的速率讀取資料。 ” 以上兩種情形都需要決定每一應用程式嘗試讀取資科的 速率。量測應用程式的"思考時間"(亦即庳用 ' ν 1战州程式耗用在 處理檔案系統所供應的資料之時間),即可完成上成 序。思考時間包括讀取系統要求擷取檔案系統緩衝區 的資料並將該資料拷貝到應用程式的緩衝區之作業時間, 但並不包括樓案系統耗用在等候自磁碟讀取資料的時間。 我們將應用程式在一時間間隔中的Η資料耗用率"定義爲 應用程式在該時間間隔中讀取的資料量除以該時間間隔令 之總思考時間。 我們首先考慮總消耗率小於總磁碟頻寬的情形。在此種 情形中,適當的預取作業應可供應所需的資料,而無須任 何應用程式等候I/O作業。如果總消耗率大於單—磁碟的 頻見,則將需要以平行方式對多個磁碟執行預取"〇作 業,以便維持所需的資料速率。將總消耗率除以單一磁碟 的頻見,再將所得結果捨入到次一整數,即可計算出所需 的最小f行I/O數^將該數字稱爲„平行處理因數,, ("parallelism factor’’。爲了供應所需的資料,而無須任何 應用程式等候1/0作業,必須可使用足夠的額外緩衝區, 使每一應用程式可在進行預取ί/〇作業時,自另一緩衝區 璜取先則提取的資料。因此,將爲循序1/〇而開啓的檔案 實例數加上平行處理因數,即可得到最佳的預取緩衝區 「 t'請先閱讀背而之注意事項#填巧本頁) 裝
*1T 一 -50- 本紙張尺度ii/ί 中ISS 彳、^^4*·- ( CNS ) ( 21〇X 2~97^>ir. ) A 7 137 440769 五 '發明説明(48 ) - I. 1-: n - !. 1: - - I i —I. - n . ..... 丁 W3 *-p f"先閱讀背而之"意事唄再^巧本頁) 數。當一應用程式自一先前提取的區段讀取最後一個資料 時,即可利用該緩衝區執行次一預取I/O作業。如表4中之 演算法所示,然後將利用該缓衝區爲最接近目前正在讀取 的緩衝區终端之應用程式預取次一資料區段。"最接近〜 緩衝區終端的應用程式"意指根據其現行的消耗速率將最 快要求次一區段的資料之應用程式。 利用最佳預取緩衝區數時,若任何應用程式都不曾在依 據所量測消耗速率而預設的時間之前讀取資料,則該應用 程式將不需要等候1/〇作業。如果實際的消耗速率不是固 定的’則可增加預取緩衝區社,以便將消耗速率的變化列 入考慮。除了量測每一應用程式的思考時間之平均値以 外’亦量測思考時間之變異數,即可執行上述步驟。然後 利用該値計算一個"以變易數調整的消耗速率",亦即幾 乎所有的讀取要求(例如90%或95%的所有讀取要求)之到 達時間不會早於依據以變易數調整的消耗速率預測的時間 之速率3然後利用以變易數調整的消耗速率取代平均消耗 速率’而計算平行處理因數。 經濟部中央標嗥局只工消费合作社印¾ 現在將考慮所有應用程式的總消耗速率超過檔案系统的 總磁碟頻寬之情形。在此種情形中,以前文所述方式計算 的平行處理因數將是一個大於檔案系統可用磁碟數之數 字。因爲無法起動比現有磁碟數更多的同時ί/〇作業數, 所以指足比磁碟數更多的緩衝區給預取1/〇作業時毫無意 義的。因此’所需的預取緩衝區數係計算爲:爲循序ι/〇 而開啓的檔案實例數加上磁碟數或平行處理因數(取較小 _____ -51 - 本纸浪尺度適用中國國家標举厂(CNS ) /\4規枋( 4407 69 A7 B7 五、發明説明(49 ) 者)。如果消耗速率超過總磁碟頻寬,則該預取緩衝區數 將足以使所有的磁碟保持忙綠(亦即,當—磁碟上的前一 I/O作業結束時,即開始一個新的預取1/〇作業)。因此,供 應資料的速率將等於可自磁碟擷取資料的迷率。 最後,將説明對上述計算的兩種改良,這兩種改良考慮 到檔案系統所連接的I/O子系統之特性。第一種改良適用 表在將一I/O要求提供給裝置驅動程式的時間與開始實際 I/O作業的時間之間有顯著延遲之系統。例如,此種延遲 發生在以網路連接的磁碟(例如VSD),其中—要求在到 達磁碟之前必須先經過網路的繞送。爲了獲得最大的磁碟 資料傳輪率,在前一 I/O作業結束之前,必須將次一 I/O要 求發出到裝置驅動程式。爲了執行此—步驟,必須可在比 原來更早的時間使用一預取緩衝區,以啓動次一 1/〇作 業。因此’預取U◦作業專用的緩衝區必須大於磁碟數(1 + ε )倍,其中係以平均I/O要求的延遲時間與平均磁碟時 間的比率表示ε。 經满部中央標準局負工消资合作社印^ 緩衝區計算的第二種改良考慮到諸如磁碟控制器及I/O U等I/O子系統組件之限制。如過標案系統的磁碟數 =大,則增加磁碟頻寬時,可能得到一個大於總磁碟1/〇 w料傳輸率且系統無法支援的數目。如果發生此種情形, 則預取I/O作業專用的預取緩衝區數無須等於磁碟數。等 於總I/O資料傳輸率除以單_磁碟頻寬的緩衝區數將足以 平行啓動系統可有效支援的數目之嵫碟I/O作業。決定绅 磁碟1/0資料傳輸率時,可利用硬體規格在安裝檔案系统 ---—_ _ -52- 本纸乐尺度相中@®家料(CNS)⑽植(21Qx 297公及 經濟部中央標隼扃負工消费合作社印^ 除 例 讀 案 440769 A7 ___B? 五、發明説明(5〇 ) 時直接量測資料傳輸率,亦可於執行檔案系統時記錄所觀 測到的最大資料傳輸率。 計算一"有效磁碟數",即可表示上述這兩種改良,然後 如表3所示,以該有效磁碟數取代實際磁碟數,而用於預 取緩衝區的計算。 ' 表3 :計算預取緩衝區组的所需太小 1 ·計算有效磁碟數如下: n eff = MIN(ceiI((l + L_start/L_i〇)*n_diska), ceil(T-sts/T_disk)) 其中 n_disks-樓案系統可使用的磁碟數
Ljo=讀取磁碟上的區段之平均1/〇延遲時間 L—start=平均I/O啓動延遲時間 T_sys=磁碟子系統的最大總1/〇資料傳輸率 T_disk=單一磁碟的平均1/〇資料傳輸率 2.對於被循序存取的每—開啓之棺案實例丨而言,計算〜 個經過調整的消耗速,使對次—資料區段的所: 要求的-部分(例如9〇%)之到達時間不早於該經過調教 的消耗速率所制之時間(亦即以標案系統區段大小疋 以cj所表示的一段長度之時間中卜量測該標案實 的平均消耗速率及變異數,即可、 經過調整的消耗速率。 井出 將經過調整的總消耗速率計算爲所有循序開啓⑼ -53 -I - —Hi 1 I -- I -1 IV I I - -I i _ : ——T* 、-*0 f請先閱讀背而之注念事項再填邦本頁} 本紙浪尺度適用中國因家標準( <1;\$)八4規格(210父297公处) 經消部中央標挲历貝工消资合作社印" -----—-------—____ B7
五、發明説明(51 ) — '一J 實例的經過調整的消耗速率之總和; c_total = sum c_i3 f〇r i =l...n_inst 其中 n_inst=循序存取的開啓檔案實例數 計算所需的預取平行處理因數如下: n_para=c_total/T_disk 3 -然後使用步驟1及2中計算出的數値而計算所需的預取 緩衝區數如下: n^bufs^desired = MlN(n_para, n_eff) + n inst ................表4 :安排預取I/O作業的時程......... 此程序的輸入是實際預取缓衝區數n—bufs__assigned,由 緩衝管理程式根據以表3所示方式計算出的所需緩衝區數 n_bufs_desired,而指定該實際預取缓衝區數s 該演算法維護兩個整體性計數器:n_i〇—totaI,是目前進 行中的(或已提供給裝置驅動程式的)預取I/O作業數;以 及n_prefetched,是存放作爲預取區段使用者的應用程式 尚未讀取的預取區段數。這兩個數目的總和即是目前用於 預取的緩衝區數。 此外,對於每一循序存取的開啓檔案實例i而言,本演 算法追蹤應用程式將存取預取I/O作業尚未開始提取的次 一區段之預測時間。將此數字表示爲t_next[i]。 1 .設定n__io_total及n_prefetched的起始値爲零。 對於每一循序存取的開啓檔案實例i而言’設定η— -54-__ 家標辛(CNS ) Λ4規格(210X297公 (請先閱讀背而之‘注意事項再填寫本頁) i裝 44 07 69 A: B1 五、發明説明(52 的起始値爲零,並設定⑼剛的起始値爲應用 據經過調整的消耗速率〇將要求次-資料區段^ 間。 寸 以分類所有循序存取的開啓標案實例, -個排序的槽案實例表,其中係將最小値放在最前 面。 2.如果n」0_t0tal + n—prefetched大於或等於〇‘咖如a, 則進入步驟4 ;否則,繼續進行次一步驟。 3·將次一預取1/〇要求提交給排序檔案實例表中之第一 檔案實例uH將是具有最小t~next[i]的檔案實例)。 將^以屮]更新爲應用程式將要求的在已開始進行預取 I/O作業的資料區段的次一資料區段之預測時間。根據 此新的t_next[i]値,而爲排序檔案索引表中之所有檔案 實例重新排序。 ™ 遞增 n_io_total。 回到步驟2。 4 ·等候下列事件中的一個事件發生: a) 冗成一預取I/O作業: 遞減 n J〇_t〇ta丨’並遞增 n_prefectched。 回到步驟4的開始(等候次一事件發生)。 b) —讀取作業到達已預取的一區段之末尾。 因爲讀取作業將把資料自預取緩衝區拷貝到應用程 式的位址空間,所以另一預取作業無法使用該緩衡 區。 -55- 本紙掁尺度適用中國國家標準(CNS ) Λ视格(210Χ297公及) 閱 绩 而 之 注· 再 填 本 頁 訂 經满部中央標率局員工消资合作社印裂 440769 A7 ________—_ B7 _____ 五、發明説明(53 ) 遞減N_prefetched,並回到步驟2。 c )緩衝管理程式改變指定給預取緩衝區組的缓衝區數 (n_bufs_assigned) ° 回到步騾2。 d)關閉一個開啓的檔案實例丄。 自該排序檔案實例表去掉該檔案實例。 將n—prefetched遞減一個爲該檔案實例而預取的緩衝 區數之數字。 回到步驟2。 緩衝儲存區效能的結術庶斧谉 本發明之平行擒案系統是爲了效能是一個極重要因素的 IBM電腦系統而開發。可能影響到效能的—個面向是檔案 系統的緩衝儲存區使用率。該問題在於:係以無法預測之 方式向系統要求可變容量的緩衝儲存區空間。本發明實施 了一種緩衝儲存區管理架構,其中先識別系統中現有的使 用模式,然後對應地調整緩衝儲存區的行爲,因而提高了 政能及S間使用率。本發明大致經由使用模式分析,而改 善緩衝儲存區效能、空間使用率、及分佈。 -濟部中央標窣局員工消費合作社印裝 I HI- - --- I - - . ---- ----- T {請免閱讀背而之,注意事項再填{:!i本頁) 因爲本發明之系統識別目前正在操作的工作負荷類型, 所以可提高本發明的緩衝儲存區使用及内容替換之有效 性,本發明並因而調整緩衝儲存區的行爲。本發明建議架 構所偵測及回應的這兩種工作負荷是循序及隨機工作負 荷。此種區分的理論基礎起源於兩種工作負荷間之工作組 答量足義之差異。分析目前的狀態,即可預測未來的行 -56- 本紙抉尺度適用中國國幂標準(CNS ) Λ4ί^7Τΐ〇Χ 297.:.>^Τ 440769ΓΓ; Λ7 Β7 發明説明(54 —建立了系統中之現行使用模式,且假設該使用模 J,相對穩定時,則可使缓衝儲存區作出對應的回應。 =整的緩衝儲存區被分成若干不同的工作單元,每—工 作$元都控制該完整緩衝儲存區空間的一部分,並負責不 同备量的右丨緩衝區。| 工作單元係由兩個子單元所組 成這兩個子單元分別監視系統所操作的兩類工作負荷。 不同的工作單元數目&這些工作單元所負冑的緩衝區容量 係地改變。缓衝儲存區管理程式在某一時點識別機率 較问的有大量f求之缓衝區容量,並因應地建立各工作單 兀。固定設有一個額外的工作單元,用以照顧送進來的對 與所有其他工作單元固定容量不同的緩衝區容量之要求。 此種方式將送進來的要纟直接指向±導所需容量的緩衝區 (緩衝儲存區部分’而縮短了緩衝儲存區的回應時間。該 處理面向將緩衝儲存區分段的問題限制於一個工作單元f 且,、在该工作單凡中採取合併及重新對映等額外措施,而 有助於減輕孩問題。針對每—工作單元的每一子單元不斷 地更新使用統計數字。 定期檢查所搜集的使用統計數字。因此,將緩衝儲存區 空間重新分配給不同的工作單元。因爲本發明之系統藉由 分析現有的使用模式,而預測未來的使用模式,所以並非 立即進行新的空間重新分配,而是在有需要時才起作用。 每一工作單元有兩類空間限制,亦即一内部的及一外部 的。内邵的空間限制區分兩個子單元外部的空間限制又再 細分爲兩類限制,亦即實體限制及虚擬限制。實體限制代 -57 本纸铁尺度適用中國國家標準(〇^),^見格(2丨0乂 297公势) 請 k. 閱 讀 背 1¾ 之 注_ t-事 項. 再 頁 訂 經濟部中央標準局員工消费合作社印^ 440769 A7 B7 五 '發明説明( 55 -消部中央標準局負工消费合作社印" 表在使用模式架構的控制下屬於個別工作單元的實際空間 虛擬限制是被使用模式分析及預測程序投射爲該工作 嘗試遵守的實體限制之㈣卜虛擬限㈣用來推論 是否容許一特定工作單元的實體限制擴大,或者收到在一 個不容許擴大的工作單元之要求時在其控制下迫使該特定 工作單元放棄一部分的空間,因而在本質上容許該特定工 作單元的縮小。 设定新虛擬限制的程序係以下文所述之方式工作。各子 工作單μ統計數字被分析且被用來推論使用模式及活動 水準’用以決定最適合該子上作單^需求的的空間。每一 子工作單元嘗試取得所決定最適合其需求的空間量(亦即 其工作組的容量)。該子工作單元的相對活動水準代表最 適合其需求的空間之上限a 係由一架構管制新空間的取得,在此架構中,每一工作 單元内的實體限制及虛擬限制係以下文所示之方式互動。 f對一新缓衝區的要求到,由_所要求容量的工作 單元服務該要求。如果在該工作單元中有一個自由的緩衝 區,或者可極簡便且迅速地取得緩衝區,則可用該緩衝區 來滿足進來的要求。該工作單元繼續比較其實體限制及虚 擬限制。如果實體限制並不小於虛擬限制,則該工作單元 繼續尋找在其控制下最易於取得的空間u,現有的工 作單元將找到—個可縮至最小的工作單元,並將一空間取 得要求傳送到該工作單元。接收要求的該工作單元找到在 其控制下最易於取得的空間,並放㈣該空間的控制權。 58- I l^n ml n t^n ( ^pvli - I— ml —^n \ J. (請先閱讀背面之,注意事項再4寫本頁) 本紙張尺度適/Π t國國家標準(CNS ) Μ規将( 2JOX297 公犮) "440769 A / B? 五、發明説明(56 經满部中央標準局V貝工消赍合作社印灰 原來的工作單元取得該新空間的控制權,並利用該 滿則進來的要求。 執行使用模式❹】程序的頻率可能對整個架構的有效性 ^相w大的W。#果過於頻繁地執行該程序,則可能對 木子工作單疋中極短期的活動尖峰有太嚴厲的反應。另 方面’如果每隔一段較長的時間間隔才執行—次該程 序J未構的有效性及準確性將隨著時間而降低。因此, 每f執行該程序時,即決定下次應在何時執行該程序。 十算係基於所有的工作單元存取在其控制下的所有空間 預期時間。該時間間隔係受限於預定的上限及下限。該 間間隔可4使用模式程序推論工作負荷的分佈,而不受 -限制事件的影響α對隨機工作負荷用户端程式的工作 之推論容易度相當於對循序預讀工作負荷用户端程式所 空間之推論。 本架構之優點包含在一多用途環境中的可用緩衝儲存 空間的效能及使用率之提高。 3白用的處理方式只將緩衝儲存區視爲單一工作單元, 取近取y使用(least recentiy used)之方式釋出緩衝 存區空間’以滿足進來的空間要求,而熟悉以習用方式 理—梅案系統緩衝儲存區的人士在認知使用模式是一種1 習用處理方式的改良之後,將可了解本發明之方法如何將 緩衝儲存區的使用最佳化。 %我們預知進來的要求之本質,並已爲該要求做好準備 時’則將每一個進來的要求傳送到一個有最高的機率被 該 之 時單 需 區 並 儲管對 用 ----------------訂 (讀先間讀背面之-江意事項存填寫本頁) -59-
本纸伕尺度適用中國國家標準(CNS )Λ4規格(210X297公允) Λ7 B7 ~ -- - I, 五、發明説明(57 ) 外π知道每 工 來滿足該要求的緩衝儲存區區域。此外 作單元中可爲每—工作負荷所專用的空間容 至 囚而可相 ----------裝-------訂 〈诗先閱讀背面之'注意事^再填巧本芬0 應地調整其他的系統動作(例如預取速率)。 之延伸檔案屬性 如前文所述,我們知道最好是將存取控制表提供給本發 明的共用磁碟檔案系統,以利於該環境中不同的電腦之= 行執行。爲了達到上述目的,本發明提供了延伸^ =屬 性,以便有效率地支援Unix環境中習知的這類存:控制 表。 工 延伸屬性可使可變長度的資訊與—樓案相關聯,而可利 用樓案本身中所儲存的資料各別地存取該檔案。延伸屬性 的一 f用途即是用來儲存各存取控制表(ACL),而這些 ACL是用來控制可容許哪些用户或用户群以何種方= 取、寫入等)存取-檔案a ACL對一延伸屬性實施例所: 的要求與延Μ性的許彡其他用途^。㈣檢查存取許 可的所有樓案^ .统作業都需要使㈣該檔案的ACL,所以 迅速且有效率地存取ACL的資料對㈣系统的 經濟部中央標準局負工消費合作社印製 面,^通常是較短的’並不非常:繁: 改的内容,而且縱使每一樓案都有—ML,但 多這類ACL將是相同的,亦即’與檔案中的値比較時,通 常只有相當少的不同ACL値。現在將説明如何利用各· 所提供的使料徵’並說明如何提供有效率地利用*間之 屬性儲存區,因而得以迅速地存取屬性資料,而^種方 式實施延伸屬性。此外,兮_ >办丨士 此外,4她例極有效率地支援屬性繼 L_一_____ -60- 本纸狀度適用中® Μ濟部中央標隼局員工消费合作社印紫 44 07 6 9 A1 _ B7 五、發明説明(58 ) 承。此種方式特別適用於POSix ACL的實施。 基本上,本發明之延伸屬性實施例採用下列組成部分: ~ 屬性樓案(Attribute File ;簡稱 AttrFile)。 這是一種儲存所有屬性資料的特殊檔案。該檔案包含 一序列的登錄;每一登錄屬於下列兩種類型的其中之 一:屬性登錄,該屬性登錄包含一特定屬性之値;自 由空間登錄,該自由空間登錄標示屬性檔案内的自由 空間(亦即下一次需要將新的屬性登錄加入AttrFUe時 可重新使用的空間)。這兩種登錄都是可變長度,但係 對準適當的邊界(例如,8或1 6位元組的倍數),以便 減少分段。一特定對準長度的選擇取決於屬性登錄的 最小及平均長度。 -屬性參考値(Attribute References ;簡稱 AttrRefs)。 這是儲存在每一檔案的檔案索引中之短値,可在 AttrFile中找出該檔案的屬性資料所在位置。係以對準 長度爲單位,而以AttrFile内屬性登錄的偏移量表示該 位置,亦即,將AttrRef計算爲位元組偏移量除以對準 長度3 -屬性索引("Attribute Index ;簡稱 Attrlndex)。 這是一種可在一 AttrFile中找到一特定屬性値之資科結 構。將在下一節的"屬性値查詢”中詳述Attrlndex的結 構及使用。 - 廢棄屬性收集器s 這是一種在適當的時間啓動而自AttrFile中清除不再被 -61 - 本紙法尺度適用中國國家標準(CNS ) Λ4规格(210X29?公垃) (請先閱讀背面之>ϊ·意事項再填本頁) 1^^_ 、1Τ A7 B7 440769 五、發明説明(59 任何現有檔案查詢的屬性登錄之程序D 屬性値共用 ί . ----· - II I - - - IJJ/ - I. - -I - I .—— (請先閱讀背面之注意Ϋ項再填本頁) 在本發明的共用磁碟樓案系統較佳實袍例中,提供了屬 性値的共用作爲一種延伸屬性實施方式。此種方式可讓屬 性値相同的所有檔案共用實體屬性儲存區。將所有的屬性 貪料儲存在一共同位置,即可達到上述目的,該位置即是 AmFUe。儲存在一檔案"Γ的檔案索引之AttrRef包含在 AttrFile存放"Γ的屬性資料的登錄之位置,且係以 中该登錄之偏移量表示該位置。屬性値相同的各檔案將在 其棺案索引中包含相同的AttrRef値。係以下列兩種方式完 成該屬性値共用: 1 ·屬性繼承: 經濟部中央標準局,。月工消费合作社印裝 屬性繼承意指:當產生一個新檔案時,將該新檔案之 延伸屬性設定爲與其根源的一現有檔案之相同延伸屬 性値。例如,當拷貝一檔案時,可將該拷貝檔案的屬 性値設定爲與原始檔案相同的値。p〇SIX ACL則是一 種不同的屬性繼承實例,提議的p〇SIX ACL標準規 定:當產生一個新檔案或目錄時,將該檔案或目錄的 ACL設足爲—個與產生檔案的目錄相關聯之系統預設 ACL値。換言之,在POSIX之下,一個新的檔案自其根 源目錄繼承其ACL。 根據本發明,只要自作爲屬性繼承根源的檔案或目錄 之檢案索?丨拷貝AttrRef,即可完成此種屬性繼承3在 此種方式下,被繼承的屬性將共用與所繼承的屬性相 ___ -62- 本紙張尺度) 規梠(2!〇χ 297公及)~ ^ ^ 44 07 6 9 A y B7 五、發明説明(60 ) 同的實體儲存區。 2 .屬性値查詢: 爲了將一屬性設定成或改變成一個並非自另一檔案繼 承的値’採用了屬性索引,用以決定具有相同値的一 登錄是否已經存在於該AttrFile。一種諸如赫許法等的 索引查詢方法可用於此一目的:爲了設定或改變一屬 性値’將一赫許函數應用於屬性資料。利用所得到的 赫4値作爲一赫許表的一索引’其中將找到—AttrRefs 表’這些属性參考値對照到具有散列對映到同一赫許 値的屬性資料的AttrFile中之各登綠。將待儲存的新屬 性資料與所有這些登錄中之資料比較。如果找到相符 者’則將對照到現有登錄的__ AttrRef儲存在該檀案之 檔案索引。如果沒有找到相符者,則將包含新屬性値 的一個新的登錄加入AmFiIe,並將該新登錄之八“伙“ 储存在該樓案的檔案索引及赫許表中,因而使用同一 屬性値的未來屬性更新將找到該新的登錄。 經濟部中央標準局員工消费合作社印裝 ---------裝------.玎 (請先閱讀背而之注念事項再填芎本頁) 爲了增加屬性値共用的可能性,在許可的情形下,先 將新的屬性値轉換成—正規形成,然後才儲存或查詢 砭些新的屬性値。例如,可以用户或用户群識別碼儲 存存取控制表中之各登錄;此時如果兩個acL的功 能相當,則縱然在設動這兩個ACL時,可能並未以完 全相同的格式呈現這兩個ACL ,上述方式也可使這兩 個ACL共用AttrFiIe中之相同儲存區。 於P'施本發明系統的儲存功能時,延伸屬性特適用於 __________-63- 本紙張尺ϋ财關^^ ( CNS ) ΤΤ|〇1729Τ^Γ7 f A407 69 A? _ 五、發明説明(61 ) 儲存ACL及其他類似的用途。雖然一使用者可能用有大量 的標案,但是該使用者相當不可能將一不同的ACL與每一 該使用者的檔案相關聯。而是通常有若干群相關的檔案, 這些相關的檔案具有與這些檔案相關聨的相同存取權。例 如’屬於一特定專案的各檔案通常具有相同的ACL,該 ACL將檔案使用權授與和該專案相關聯的各使用者。再舉 另一個例子,在目綠階層的同一目錄或子樹内之各檔案通 常將共用同一ACL。事實上’在提議的p〇six ACL標準 中’ ACL·繼承的目的在於讓一使用者易於爲同一目綠中之 各標案維護一個共同的ACL。因此,我們預期一樓案系統 中不同ACL値的總數將遠小於檔案的總數;事實上,我們 預期將小於一個很小的分數。亦即,與個別儲存每一 ACL 比較時,使具有相同ACL的各檔案共用ACL儲存區之方式 將使用於儲存ACL的虛耗空間至少減少到相同的分數。 經漪部中央標準局負工消費合作祍印製 » . II —^^1 —^ϋ t 士交 I - -- - -n 1 - 圓.^ · -3.-έ (請先閲锖背面之^·意事項真填寫本頁) 此外’各ACL通常並不包含一份較長的個別使用者表, 這是因爲很難管理此種表。大多數的系統反而容許定義用 户群;然後可在一 ACL中使用一用户群,以對照到屬於該 用户群的各用户。因此,極長的ACL是很少見的,因而通 常可將一ACL儲存在一個小容量的空間中。此—事實加上 ACL的共用意指:有可能將大量標案的acl資料缓衝儲存 在記憶體中。此種方是可以極有效率之方式擷取一標案之 ACL,這是因爲ACL·很可能緩衝儲存在記憶體中,因而無 須額外的磁喋I/O作業即可取得ACL資料3 當改變大量檔案的ACL時,許多這類ACL有可能被改變 -64 - 孓紙ί長尺度適用中國國家標準(CNS ) Λ4規格(2丨0X 297公發 /td〇7 69 A7 ____ B7 五、發明説明(62 ) 成同一新値。例如,此種改變將發生於容許一個新用户使 用與一特定專案相關聯的各檔案。由於ACL的共用,一組 相關的ACL改變作業中,只有第一個acl改變作業需要更 新AttrFile,使用相同ACL値的後續ACL改變作業只需要查 詢Attrlndex中之ACL値即可。此即意指:縱使在—個具有 大量同時ACL更新的工作負荷下,對AttrFi〗e的存取大部分 將是唯讀作業。因此,此種將所有的屬性儲存在一個共同 的位置之方式將不會產生瓶頸的問題。此種方式對一個最 好是將屬性資料緩衝儲存在當地的分散式處理環境特別重 要,因爲原先的在當地緩衝儲存之方式將因需要使緩衝儲 存在其他節點上的屬性資料無效,而使AttrFUe&更新成 本昂貴許多13 經漓部中央標準局員工消合作社印" 廢棄屬性收集是一種需要提供的持續性需求。當不再需 要—屬性登錄時,屬性値的共用使收回AttrFik中的空二 增加了 一些困難。問題在於偵測何時删除該登錄才安全, 亦即查詢該登綠的最後一個檔案何時被刪除或該檔案的屬 性何時被改變。此一問題的的一個共用解決方式是爲每— 登錄維護-個參考計數;當查詢該登綠的—她Ref被儲存 在一檔案的檔案索引時,即遞增該參考計數,且去— AttrRef被刪除時,即遞減該參考計數。然後在該參考二數 回到零時’即可刪除該AttrFlle登綠。然而,縱然新的屬 性値業已存在於AttrFile,每當繼承 '儲存、或更新—屬 性時,此種解決方式即需更新一參考計數3因此’對哼 AUrFUe的存取不再大部分是唯讀作業,這將造成潛在: ___ -65- 本ϋ尺度適用中國(2IGX 297公处)— - 440769 A7 B7 五 '發明説明(63 ) 瓶頸。 本發明並不使用參考計數’而是利用廢棄屬性收集之方 式收回屬性空間。廢棄屬性收集以下文所述之方式找到並 刪除不再使用的屬性登錄。每一屬性登錄的—部分是一參 考旗標(Reference Flag ;簡稱RefFlag),當將—個新的登錄 加入AttrFile時,必然設定該RefFUg。廢棄屬性收集係在 下列三個階段中進行: 階段]: 掃描整個AttrFile,並關閉該檔案中每—屬性登錄之 RefFlag ° 階段2 : 掃描所有的檔案索引。對於在一檔案索引中找到的每一
AttrRef而言,將AttrFile中對應的屬性登錄之參考値開 啓。 階段3 : 再度掃描AttrF"ile,並删除RefFlag仍然關閉的所有屬性 登綠。 經濟部中央榡準局焉工消費合作社印裝 爲了確保廢棄屬性收集將不會刪除在該廢棄屬性收集程 序進行中所產生新參考値之各登錄,廢棄屬性收集必須與 查詢作業作業同步,其中該查詢作業是參照前文”屬性値 共用”這節中"屬性値查詢"這一項目所述的設定或改變一 U菜屬性作業之一部分。因爲廢棄屬性收集可能耗用較長 =時間(尤其是在第2階段),所以在執行廢棄屬性收集作 業時’只停止所有的設定屬性/改變屬性之作業並不是— -66- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公漦) A7 B7 007 69 五、發明説明(64 種良好的方式。反而在設定屬性/改變屬性作業發現 AttrFiIe中一個現有的登錄具有—個符合所設定新値的値 時,在其將該AttrRef儲存在檔案的檔案索引之前,也先檢 查該登錄中的RefFIag是否是開啓的。在此種方式下,只 有在廢棄屬性收集的最後一個階段中,且只有在屬性値查 *句作業找到一個RefFlag關閉的屬性登錄時,廢棄屬性收 集與屬性値查詢作業間之明確同步是必要的。 啓動廢棄屬性收集程序的程序是重要的。若沒有廢棄屬 性收集,則縱然現用屬性資料(即仍然有查詢的屬性値)之 總數並未成長,AttrFile也將毫無限制地成長。△扣贝卜成 長的速率取決於設定屬性/改變屬性作業之速率。對於諸 如ACL等屬性使用而言’此種作業的速率在本質上是無法 預測的。因此,每隔一個固定的時間間隔(例如每天—次) 啓動一次廢棄屬性收集的策略是不適用的。我們反而要監 視屬性資料的總容量’亦即AttrFile的容量減掉AttrFile中 i總自由Ϊ間。每當屬性資料的量成長到某—因數(例如 1.5或2)時’即啓動廢棄屬性收集。此種策略在現用屬性 資料量保持不便時可有效地使AttrFile不會成長。 中介資料節點作業: 本節中將説明中介資料節點之作業,該作業將提升在多 個電腦需要更新或擴大同一資料物件的情形時之效能。我 們首先將説明爲這些功能而產生一中介資料節點,然後將 説明識別中介資料節點及回復中介資料節點之方法。 中介資料節點之估m -67- 本纸張尺度適用中國國家標準(CNS > Λ4規格(210X297公总) • · .11 --- - I ( - - _ __ I_ I : T# 、-'° (請先閱讀背而之注意事項再填寫本頁) 經濟部中央標苹局員工消费合作社印^ 44 07 6 9 Α7 ___—___B? 五、發明説明(肪) 與本發明的中介資料節點有關之本第一節將大致説明本 發明的中介資料節點是什麼、以及該中介資料節點將解決 哪些問題。在本發明的系統中利用中介資料節點來管理共 用磁碟環境中平行讀取及寫入之檔案中介資料。平行檔案 系統使多個處理器可以獨立存取構成檔案系統的部分或全 部磁碟。爲了利用此一能力,多個處理器在讀取及寫入時 應共用一個檔案。 有幾個問題可能大幅降低此種存取的效能。雖然各節點 在適當鎖定其所讀取或寫入的各區域之情形下,這些節點 可讀取及寫入檔案的各不同區域,但是這些節點都需要存 取相同的中介資料。中介資料包括檔案大小 '檔案存取與 修改時間、以及檔案的資料區段之位址。例如,讀取及寫 入檔案的所有作業都需要知道該等作業是否超過了檔案大 小’並在該等作業擴展該檔案時更新該標案大小。Z果需 要以完全共用方式平行窝入一檔案,則上述這種單點發生 的事件可能造成一個嚴重的瓶頸。 經濟部中央標準局負工消費合作社印製 n ·1 ΊΙ -I. ------ n ./^!— n m 丁 、-·0 (請先閱讀背面之.,¾意"項再填寫本頁) 本發明實施了 一種可讓每一節點於讀取及寫入同一檔案 時儘量獨立運作之系統,並設計出一種使這些作業同^之 機制,因而只要本發明用來管理中介資料資邙 只4又万法,則 所有的節點都將可得知一致性的檔案狀態。本發明用於在 —共用磁碟檣案系統中管理一檔案的中介資料資訊之方法 爲:爲每一檔案選擇一單一節點作爲該檔案之中介資料γ 莖。該中介資料節點負貴處理中介資料進出存’一- 叫仔攻中介資料 的一個或多個磁碟時之所有J/0活動。 -68- 本紙張尺度適用中國國家標準(CNS ) Λ4規枯(210.X 297公势 4407 69 Λ7 B? 五 、發明説明(66 經滴部中央標革局員工消费合作社印^ 所有其他的節點都與該中介資 Φ A貪科即點通訊,以便提取或 更新中介資料資訊。然而,這此銪 、 即點並不直接存取磁碟中 I中介資料資訊。 選擇存取檔案的第一個節點爲ψ人、其μ〜 丨J馬中介資料節點。因此,如 =只有-個節點需要存取槽案,則因該節點可直接取得 乃資料,而不會產生額外的虛耗作業α其他的節點將經 孩中介資料節點而取得中介資料。 中介資料節點的導人將可避“當數量的磁碟活動, 而使-個具有快速通訊交換能力的平行樓案系統之效能 相當的提升。 中介資料節點保存—份緩衝儲存的中介資料,用以反 磁碟中的中介資料。其他節點亦保存__份過去自該中介 料節點讀取的緩衝儲存之中介資料’且於需要時(例如 改變存取時間時)增添該中介資料。 每中介資料元素(存取時間、修改時間、檔案大小 資科區段之磁碟位址)有其本身的使用模式及特徵。 如,本發明疋系統不需要一個非常精確的存取時間,但 要一個準確度在五分鐘内的存取時間。因此,不需要頻 地對中介資料節點進行更新,因而可節省大量的通訊。 此外,只要系統的行爲具有_致性,所有節點上的檔 大小不一定要正確的。利用一種複雜的方式來控制所有 點上的檔案大小時,將得到一種多個節點可同時擴展檔 的平行寫入架構。 利用一種遞延同步演算法,即可節省大量的磁碟存取 中 由 因 有 映 資 例 繁 案 Α-/Τ 即 案 —I I .fl^i —^ϋ UK 1· n^i n - - - I I J I 1 - *-° - (請先閱讀背而之:七意事項再填寫本頁) -69 440769 五、發明説明(π ) A 7 B7 同步服務程式是一種作爲I — π , 、Α 馬母—節點的作業系統的一部分% 執行之軟體。同步服務程* a 刀而 式&試每隔N秒即清除磁碟中 過修改的資料及中介資科。如果m個節 請 ί 先I 閱 讀I 背 J 之I 1.1 I 2· | 4 I 本 , 頁 標案皆則意指每隔N秒對中介資料只有m次磁碟存取窝^ 平厅寫入的情形下,所有沾〜 在 :送财介資料節點,而中介資料節點每_秒當= 步服務程式取得—信號時,即 每-節點將存取磁壤,以便讀取或寫入中介 符記的使用 ,=説明的平订寫人@節的第二部分係有關將鎖定模式 於4找中介資料管理節點。在多個處理器可獨立存取構成 訂 =系2的所有磁碟之本發明平行標案系統中,使 楔式以尋找中介資料普Ttp & - _ 即點的符記係用於中介資料節點 ^擇及識別。爲了利用此種能力,多個處理器於讀= 寫入時應共用一檔案。 在本系統中,將一節耻如β Μ > ,沾扣派給母一檔案,該節點έ貴存 取及更新職“中介料。該中介資料節點(或^:介節 則於接收到要求時與其他節點共用此資訊。 經濟部中央標隼局貝工消费合作杜印敦 孩中t資料節點保存與權案的中介資料有關的資訊,並 作為磁%與存取樓案的所有節點間之—智慧翌緩衝儲存裝 置。也會發生中介資料節點(或中介節點)停止服務該功能 的(情況。爲了能得到平順的作業及回復,必須處理這些 h…此時係以直接的方式從以往都存取該中介資料節點 的各節點中選出-個新的中介節點。 ' 本紙張尺度賴中_ 4407 69 A? 五、發明説明(68 此時選出一個中介節點,並 訊。選擇程序要考慮到檔案的存取模式’二 管及回復。在本發明的系統中本節點指 其他節點都知道這些中介節點的資訊。^丨即點’並值 本發明使用一符記管理器子系 斿今妒彻欠伙朴认、* 付έ己官理器是一種將 竹Α抆與各即點的分散式子系統。每— 有一特定模式之有名稱符記。如$ 爷 〆 、 了 G如果琢杈式並未與具有同— 授:其他節點的各符記衝突,則符記管理器將該 =授與㈣點。騎—符記份包含可騎式及銜 j的清單:如果所要求的符記與已授與另—節點的符記 ^ 卞桌且發生衝大的郎點將其符記模 式降等爲一個不與被要求的模式發生衝突的模式。 選擇存取檔案的第一節點作爲中介資料節點。因此,如 果只有一個節點需要存取檔案,則因該節點可直接取得中 介資料,而不會產生额外的虛耗作業。其他的節點將經由 該中介節點而取得中介資料。 經濟部中央樣4ί局員工消费合作社印^ 對於每一檔案而言’我們界定了"中介節點符記„。該中 介節點符1己共有三種模式^ro"(唯讀)、,,ww,,(弱勢寫 入)、及"XW"(互斥寫入)。規則如下:”xw"符記與所有的 模式衝突;"ww"與"xw"及本身衝突;”roll只與"xw"衝突。 因此,有兩種可能性:0個或更多個節點保有"r〇"中之符 i ’然後最多一個節點可保有"ww"中之符記,或單—節 點保有"XW"中之符記。符記管理器(Token Manager ;簡稱 71 - 本紙張尺度適用中國國家標準(CNS ) Λ4現棉(2!OX29U^ ) 44 07 69 A7 B7 五、發明説明(69 ) 丁 M)子系統負責管理一節、 , —# 即點之符記,並確保符記模式與此 疋致》可將不同模式間之衝突概述於下表5 : 一表5----- ΓΟ
WW
ro WW XW * * 氺氺 氺氺 XW 本本 氺氺 經漪部中央標準局貝工消费合作社印奴 對於中介卽點而s,本發明設計出下列演算法:當— 點:次開啓-檔案時,㈣點嘗試取得模式,,卿":之; 介節點符記。符記管理器TM在有可能時(亦即其他節點並 未保有W,或"XW"中之符記時)授與"ww”中之符記。如果 此種情形發生時,該節點變成符記管理器。然而,如果另 一節點保有"WW"中之符記,則TM授與·,ro"中之符記。然 後眾節點知道另一節點是中介節點。該節點可查詢以 便得知該檔案的中介節點是哪—節點a 當一節點變成一中介節點時將發生一些情況。在此種情 形中,要求一 "WW"將不會有所助益,因爲舊的中介節點 將不會把其符記降等。此時想要變成中介節點的節點要求 一、w"符記。此時將把一個收回訊息傳送到現有的中介節 點。舊的中介節點然後將其符記降等到,,ro”,且TM將一 "ww"符記送回到該新的中介節點。如果—節點要求一,Ιχλγ„ 符記,且其他節點都未保有該符記,則TM將授與該模式 中之符記。 卽 請 閱 讀 背 意 事 項— 填!裝 頁 訂 -72- 本紙張尺度適用中國國家標準(CNS )以规格(210X297公及1 ) 440769 A7 B7 五、發明说明(7〇 ) 如果一節點保有,_xw,.中之符記,則該節點是此樓案之中 介節點,但是此外,其他節點都沒有使該構案開啓。在此 種情形中,如果—節點嘗試取得"W中之符記,則將一 傳送到中介_ °因此’該節點將其w符記降 等爲"ww__,然後TM可將一 "Γ〇,ι符記授與新的節點。 將增強符記模式用於抟未丨丨@ f丄丨 — 相關的# t系統帛準要求可纟需要時取得正冑的標案大 小;然而’在有多個應用程式將資料增添到樓案時,以平 行方式維護所有節點上的楼案大小就效能而言是既複雜且 昴貴的。㈣列特徵的次—部分説明本發明的下列方式: 維護檔案大小,而在需要時可取得該檔案大小,且不會有 固定的虚耗作業。在此種情形下,若多個處理器於讀^及 寫入時共用一檔案且不會產生固定的虛耗作業,則該檔案 可利用多個心里器可獨立存取構成㈣系統的所有磁碟之 一平行檔案系統。 檔案的讀取及寫入共用涉及檔案大小的存取。每一讀取 及寫入作業需要檢查該作業的偏移量是否超過現有的檔案 大小,並且在發生此種情形時,送回一個檔案終止(End_ Of-File;簡稱E0F)訊息。每—寫入需要檢查該作業的偏移 量是否超過現有的EOF,如果確係如此,則應擴展檔案。 當有數個讀取節點及寫入節點時,所有的檔案大小:須― 致。因此,如果某一節點在偏移量〗〇〇〇上寫入,則任何節 點在該位置上讀取時,不應送回—E〇f訊息。. 保持一致狀態的一種方式是以串列方式進行對檔案大小 73-
本紙乐纽朗+削緖孽(CNS ) Λ4^ ( 2tOX297^T 讀 閲 讀 背 之, 意 事 項 再 ά η 本 頁 裝 訂 經濟部中央標挲局頁工消费合作社印奴 4407 69 A7 五 '發明説明(71 ) 的存取。然而,此種方式將會對平行窝入造成—大瓶頸, 因爲每一窝入(及讀取)在進行作業之前必須取得現有的檔 案大小。 在本發明的較佳實施例中,於每一節點當地内保存一份 檔案大小資訊。此外,連同每一份檔案大小資訊亦保持一 鎖定模式。一鎖定管理器保證相衝突的鎖定模式不會同時 存在。每一讀取及寫入作業的一適當鎖定模式保證在當地 緩衝儲存的檔案大小係精確到足以得到該作業的—正確結 果。不同的模式有: ° :用於在當地緩衝儲存的檔案大小内的讀取及寫 用於在當地緩衝儲存的檔案大小外的讀取作業。 用於在當地緩衝儲存的檔案大小外的寫入作業。 用於添加到檔案之後的窝入作業。 用於減少樓案大小(類似截除作業)之作業,因 需要一互斥寫入鎖定 檔案大小的鎖定模式之衝突表如下: n*m - ! -- I 1— i m - HI n n _ 丁 --ts (請先閱讀背而之'注意事項再填{"本页) 入 作業 -"rfM -"wf" -"waM -"xw" 而 rw rf wf '表 6 — wa xw 經濟部中央標苹局員工消资合作社印裝 rw rf wf wa xw *本 03即點和其鎖足模式升等時,即.自一個追蹤檔案大 -74 (210X 297公及)
4 4 of 0哪9530號專利申請案 中文說明書修正頁(90年4月) 五、發明説明(72) 的特殊節點(中介資料節點(簡稱中介節點))讀取新的檔案 大小。當一節點將其鎖定模式降等時,即將其檔案大小傳 送到中介節點。中介節點本身保存其所收到所有檔案大小 中的最大值之一檔案大小(例外情形為一節點將檔案大小 鎖定在"XW"模式’此時可減少檔案大小)。 某些節點只可讀取檔案大小(rw,rf)。某些節點(wf,wa) 可增加檔案大小。一模式(xw)可減少檔案大小。實際的檔 案大小是各節點在當地保存的所有檔案大小中之最大值β 在當地緩衝儲存的檔案大小内的讀取或窝入作業需要對 檐案大小的一”rw"鎖定〃在當地緩衝儲存的檔案大小外的 讀取作業需要確保自其上次讀取檔案大小之後該檔案大小 並沒有增加。因此,這些作業需要取得一,,rf"鎖定(與增加 檔案大小的模式衝突)^ 增加檔案大小的作業需要取得一” wf"或"wa,_鎖定。如果 寫入知點知道新的絕對檔案大小,則需要一 ,,wf"鎖定。增 添作業需要一”wa"鎖定增添作業係在現有的£〇1?處寫 入。因此’數個増添作業將在另一增添作業的終止處寫 入*因此,"wa"與其本身衝突,這是因為一個增添作業應 等候其他的增添作業》 可減少棺案大小的唯一模式為"XW’|。這是一種互斥模 式’將使所有其他節點放棄其鎖定,因而失去了在當地缓 衝儲存的檔案大小。因此,在取得"xw"的節點完成其作業 時(例如完成一檔案截斷時),所有節點將必須自中介節點 取得新的檔案大小。 -75- 本紙張尺度通用中國固家梯率(CNS) A4規格(210X297公瘦) -· (請先閱讀背面之注^I-項再填寫本頁) 策. 經濟部中央標準局爲工消费合作社印製
AT B7 五、發明説明(73 ) 我們無法得知一個在不同的節點上緩衝儲存不同的檔案 大+1系統内部情形,因而須儘量増加檔案的平行寫入共 用,但是該系統仍然將檔案的一致性狀態提供給所有的使 用者。 此種解決方式可讓在不同節點上的使用者擴展檔案,並 因而獲致極高程度的寫入共用。縱然使用者擴展檔案大 小,也不需要以_列方式執行寫入作業。 衝儲存位元组範圊符記 本發明所開發的平;fT寫人實施例的次—部分將説明用於 所有存取(平行及非平行存取)的鎖1。只較立即需要的 檔案邵分是成本高昴的,且需要利用每一應用程式呼叫而 呼叫鎖疋管理器。本演算法嘗試預測應用程式的需求,其 方式爲考慮系統中還有其他什麼事情正在進行,並儘量減 少符記管理器呼叫的次數。 / 對於平行讀取及寫人同—擔案而言,爲了以率列方式存 取-檔案中之同—區域,使用一分散式鎖定機制。缺而, 右要取仔此—鎖定,需要先取得-符記,這顯泱是一種代 價業。因此’最好是預測檔案的存取模式,而在 起濟部中央樣毕局貞工消贽合作祍印# 符取得,需要的 坆疋因馬另一節點將需要哕尨々 =揭露事項説明了下列演算法:預測構案:;存;模 式H郎點取得—符記,因而得到最大的效於。耳拉 -當不的程序料行寫人_料時: 凡組範圍符記鎖定㈣賴檔案中^區域的 --~— 440769 Α7 Η 7 五、發明説明(74 ) 取。當一程序需要鎖定一位元組範圍時,該程序首先需要 取得一個適當的位元组範圍符記。該位元組範圍符記代表 菽節點對一檔案的一部分之存取權。因此,如果一節點持 有—個在讀取模式下用於檔案X的範圍(丨〇〇,2〇〇)之符記 時,則意指該節點可安全地讀取該檔案的該部分。然而, 爲了避免该忖§己的借用’該節點在實際讀取之前必須鎖定 該符記,這是因爲如果另一節點需要寫入同一部分,可能 會借用該符記。鎖定該符記即可避免借用。在完成讀取作 業之後,即解除對該符記的鎖定。 我們可將符記視爲”缓衝儲存"鎖定的一種方式。當一節 點需要鎖定一檔案的一部分時,該節點需要鎖定符記。首 先該節點需要取得一符記並鎖定該符記。一旦完成作業且 解除通符記的鎖定之後’該符記仍然存放在該節點β因 此’在同一區域的各後續作業將不需要接觸符記管理器。 只有在孩符記被借用時,才需要一個新的對符記之要求。 因此’要求一個比所需更大的符記而鎖定之可能是較有 利的。例如,如果一程序循序讀取一檔案,且該程序讀取 1000到2000的範圍,則雖然次一鎖定將是1〇〇〇到2〇〇〇的範 經消部十央標準局負工消费合作社印^ 圍’但該程序可要求一個諸如自丨〇〇〇到1 〇〇〇〇等的較大符 記。然而,此種方式可能在其他節點上產生過量的符記流 通。如果另一節點正在進行自5000到6000的寫入作業,則 上述的符記取得可能延遲了該寫入作業。 本發明的觀念是在要求一位元組範圍符記時提供兩個範 圍:必要範圍(這是作業所需的最小範園)、及希望範園 _ -77 - 本纸張尺度適用中國國家標準(CNS ) Α4忧枯(2]〇>< 297公垃) 4407 G ο A7 五、發明説明(75 ) —— —^ — 2是預期將使用到的最大範園)。符記管理器保證授與一 涵蓋必要fc圍但不切希望範園的符記。必須指定兩個 0)如何爲每-作業計算希望範圍及必要範圍, I !!算法疋在要求端上執行;⑺如何計算授與範圍,該 演算法是在保有各相衝突的符記的節點上執行。 對於上逑凟算法而言,本發明區分兩種檔案存取模式: L機存取及循序存取。在隨機存取中,無法預測起始偏移 里及次一作業。假設循序作業係開始於前一作業結束處、 在每-節點上每一檔案可多次開啓,且每一此種檔案實例 可展現一種不同的存取模式。 本發明提供下肢佳的演算b主要目標是儘量減少符 記的流通。 當嘗試鎖定一位元组範圍時,我⑺首先^查詢符記管理 器’以確認節點上是否存在一個相容的符#。所試探的範 圍是作業必要的最小範園3如果可在當地取得該符記,目 鎖定該符記,且不會發生其他的符記活動。 經濟部中央標"局員工消费合作社印製 4 „- ---I- I— 1 __ (請先間讀背而之:旧意事項再填衿本頁) 然而,如果無法取得該符記,料求—符記。係根據標 案作業的偏移量及長度而計算必要範圍。係根據該標案的 存取模式而計算希望範圍。如果係隨機存取該樓案,則希 望範圍將等於必要範圍’這是因爲自其他節點借用符記 (可能是不需要的)可能得不到任何好處。然而,如果係循 序存取1¾檔案,則希望範園開始於必要範園的起點,但终 止於無限大(將有一個特殊値代表無限大)。此種方式是嘗 試儘量減少未來的符& |纟’因A仙可預測到將需要 本紙張尺度適用中國國家標準(匚阳〉/\4規枯(2丨〇\ 297公及 44 07 69 A7 _____ _ 五 '發明説明(76 ) — 來的鎖定。 :保有個與另-節點上的-符記要求衝突的符 1 ’該節點得到—取消要求。該取消要求包含要求節點 廿必要範園及希望範圍。此時,保有符記的節點必須決定 、可放棄的範ϋ。如果該必要範料於希望範圍,則易於 決足·,且授與範圍是必要範圍(也是希望範圍)。然而,如 :希望範圍與必要範園不同’則意指要求節點正循序存取 且該節點希望有_個開始於必要範圍的起點但終止 =無限大的符記。保有符記的節點隨即掃描要求節點存取 田案的所有現订程序,檢查這些程序係循序^^隨機存 取琢稽案。如果所有程序郐是随機存取該檔案,則該節點 &與希望範® —個或多個程序循序存取該標 案’則放棄希望範圍將是-種浪費,因爲我們有極高的機 率可以得知隨即將被要求的符記。在此種情形中,檢查所 =循序作業的標案指標(亦即次―作業的預期位置),且計 算出偏移量。我們預期這些作業將不、會存取在該最小 偏和$之下的檔案區域,這是因爲這些作業是循序作業。 因此’授與範gj伸展到所計算出的最小偏移量或必要範圍 (取較高値)a 經"部t央標準局員工消合作社印^ 我們無法得知—個基於㈣的存取模式而要求位元組範 圍符記之系統内部情形。 此種解決方式可依據檔案存取模式而緩衝儲存各符記。 因而節約了代價很大的符記取得作業,並因而提高了系統 的整體效能。 ____ -79- 本紙張尺度適用中國國家榡準(CNS ) Λ4現格(210x 297公势) A7 B7 五、發明説明(77 此種解決方式適用於需要容許樓案的平行寫入 ^ 要循序存取檔案中各相同區域的任何平行權案系統。再 位元組範圍符記介面 本發明之平行寫入改良使用—種具有—位元組範 介面(位元組範圍鎖定演算法,而得以管理描述符" 訊:利用多個處理器可獨立存取構成樓案系統的所;則 (本發明平行樓案系統時,要求多個處理器於讀取 ::共用-個樓案。爲了起動平行寫入作業,並同時確保 ^:案的—致性’需要有—個用於各《區域的鎖定機制。 分散式處理環境中,有時要用到符記。該符記代表— 即點對:物件的存取權。然而’-節點可能執行數個程 序’且故些程序嘗試存取—標案的相同區域;因此, -個對符記之當地鎖錢制。此外,另―節點可能需要存 取相同區域’因而可能嘗試取消該節點之符記;因此,口 要-當地程序鎖定符記,則不應提H肖要求。因此, 應將某些種類的鎖定演算法用於這些符記,本發明之符纪 Γ理器(TM)即管理這些種類的演算法,而符記管理器是 本發明對讓渡给國際商業機器股份有限公司的美國專利 5 = 343,1〇8之改良。 經濟部中央榡準局負工消資合作社印製 爲J存取-檔案中之—區域,—節點首先必須取得適當 符屺&後鎖疋该符记’執行相關作業,最後則解除對 琢符記之鎖定。有幾個與鎖定符記相關聯的問肖;在第— :間題中’可能已在節財缓衝儲存―心。在此種情形 ’無須再度取得該符記。在第二個問必須確保在 本紙CN'S ) Μ賴(2 丨σχ29·^ΓΡ~~~— 4 4 經濟部中央標準扃貝工消费合作社印裝 07 6 9 五、發明説明(78 ) 同—節點内的各鎖定不會衝突;在第三個問題中,必須處 理其他節點因需要一個與現用節點目前持有的一符記衝突 之符記而發出的取消要求。本發明所提出的鎖定演算法有 效率地解決了這些問題。 本發明之鎖定演算法係以一组API之方式呈現。其中兩 種API係用於對一位元組範圍的鎖定及解除鎖定。第三種 API是一個由符記管理器呼叫的召回.函式。符記管理器當 然也提供三種API。第一種API是用來取得一位元组範圍符 記(’’Acquire")。第二種API是用來測試是否已在節點上緩 衝儲存一位元组範圍符記("Test")。第三種API係用於回應 —取消要求而放棄一符記("Relinguish")。爲了識別檐案中 之各存取區域,每一符記包含其可存取的檔案區域之一範 圍(起點 '終點)。 現在將詳細説明所採用的各符記管理器API。一取得函 式的形式如下:
Acquire(byte_range) 呼叫該函式而取得一範圍符記。 —取消函式之形式如下:
Revoke(byte一range) 當另一節點需要該符記時,TM即呼叫該函式。 因此,該節點應呼叫:
Relinquish (by te_range) 本發明所實施的演算法亦基於必須由TM提供的第四種 介面: 81 - 本纸ft尺度適用中國國家標準(CNS ) Λ4規栝(2丨0 x 297公犮 440769 A 7 j_______ B7 五、發明説明(79 ) ~~~~ ---
Test(byte__range) 該介面向TM查詢節點上的符記是否存在。 (錡先閒讀背而之ir意事項再填艿本百c 爲了簡化實施方式,各節點並不追蹤所保有的各符記; 而將此項工作留給符記管理器,五各節點將利用測試介面 查詢是否需要取得-符記。於取得一符記時,通常要執行 -些動作。因此,最好是知道是否已保有—符記而可省掉 這些動作。 該演算法係基於一鎖定表(範圍鎖定表(Range L〇ck Table :簡稱RLT)),該RLT存有所有現有的鎖定。一 mutex 偵測該表’以起動鎖定的自動插入及刪除。三個主要的函 式爲· LOCK,用以鎖定一位元組範園;UNLOCK,用以解 除一先前被鎖定的範園;以及REVOKE,用以處理一取消 要求。 本發明提供這些介面的虛擬碼如下: LOCK(rang) { retry : old—revokes=nrevokes ; if(not Test(byte_range)){ 經漪部f央標'局員工消阶合作社印製 //the token does not exist of this node acquire mutex ; i_am_fetching=true ; fetch_is_pending=true : release mutex ; -82- 本紙張尺度適用中國國家標準(CNS ) Λ4規格(210X2?7公犮) 4 4.07 69 A7 B7 五、 發明説明(8〇 )
Acquire(byte_range): get_data_associated_with byte_range ; goto retry ; } else{ stolen are 經濟部中央標準局員工消費合作社印製 to //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 ;i} // if we acquired the token before the Test, we need // release other threads, we hold the mutex, so no (請先閱讀背面之注意事項再填艿本頁) revokes -83 - 本纸張尺度適用中國a家標準(CNS ) Λ4规格(210X297公犮 440769 A7 B7 五、發明説明) // 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=false ; i_am_fetching=false ; } release mutex ; } 經濟部中央標準/9M工消费合作社印裝 --1-n ------ n l -1 - ----- u T ' ν'11 (諳先閱讀背面之·注意事Ji!-再填艿本頁) UNLOCK(range) { acquire_mutex ; delete_ran.ge_from_lock_table ; wakeup ; -84- 本纸張尺度適用中國國家標莘(CNS ) Λ4規格(210X297公犮) r 4407 69 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_lock_table ; wakeup ; release mutex ; (請先閱讀背而之注意事項再填巧本頁) 經濟部中央標隼局員工消費合作社印製 至此已説明了 一種位元组範圍鎖定。雖然我們無法得务 位元組範圍鎖定的任何演算法,但是我們注意到先前對# 位元组範圍鎖定的解決方式會在符記管理器之外保存一伤 85- 本纸張尺度適用中國國家標準(CNS ) Λ4規格(210X297公犮) 440769 A7 B7 五、發明説明(83 ) 符記狀態β 此處,請注意本發明的分散式符記管理器將若干介面 (Acqinre、Revoke、Relinguish、及 Test)提供給範圍(亦即— 檔案的位元組範圍)之鎖定。可在共用讀取模式或互斥窝 入模式中要求一特定範園,
本發明的一項特徵在於:符記管理器檢查對一指定位元 組範圍的符記要求,並將該要求與整個多節點'系统中現有 的各衝突知圍比較,並授與—個無須另—電腦的符記取消 疋取大可能位元組範圍。此種方式將減少在要求節點上的 次作業提出另—符記要求的機率。利用計數器及非阻隔 鎖足呼叫以取得符記,並同時保有其他的鎖定。此種技術 可在單一節點内更有效率地循序進行多個要求,而得以進 行所需的多個節點循序存取D 經濟部中央標準局男工消f合作社印製 根據本發明,符記管理器的Acquire介面以—個模式以及 兩個範圍(一 ”必要"範園及一 I,希望,,範圍作爲輸入。希望 範圍必須是必要範圍的一超集合。對一個呼叫Acqnre介面 的應用程式保證:至少將必要範園授與該應用程式。符記 官理器將決定是否已將任何衝突範圍(亦即在—衝突模式 中與必要範圍衝突的各範圍)授與其他節點。如果找到任 何衝突範固,則符記管理器將要求具有—衝突範圍的每一 節點將重疊的範圍降等到一非衝突模式。 又根據本發明,在解決了與必要範圍的任何衝突之後, Acquire介面將決定完全涵蓋必要範園的—個最大相接範 圍’該範圍也是希望範圍的—個子集;該範圍也是 ____ ~86 -
本紙張尺度適用中國國~^^·(⑶)d:x29U 4d〇769 A7 B7 經濟部中央標卑局負工消费合作社印51 五、發明説明(84
Acquire介面將送回給呼叫應用程式的範圍。事實上,符 圮管理器將授與無須執行額外的取消處理之最大可能範圍 (但受希望範圍參數之限制)。 /夺纪管理器之Revoke介面係用來將與另一節點的一衝突 範園要求相關之資訊傳送到一應用程式。當一要 求$測到已授與其他節點的衝突範圍時,將要求在每—衝 突筇點上執行的應用程式將已授與的範圍降等。經由
ReV〇ke介面而傳送的資訊包含模式、及在Acquire呼叫中指 定的必要範圍/希望範園。 一應用孝呈式接收到—取消要求時,將呼叫㈣吨㈣介 $ '將已杈與該應用程式的任何衝突範圍降等到—非衝突 模式。可要求該應用程式將與"必要"範圍衝突的任何範 圍:等到一個最小的非衝突模式,但是亦可降等到該應用 私式想要的一個較大範園3 一=官理器亦提供—Test介面,該介面將決^是否已將 :特^®授與當地的節點。—應用程式可利用該丁如介 服二::一特定範圍的一Acquire要求是否將向符記词 服备即點提出一通訊要求。 :用-特定位元組範圍的一些循序數字而處理時,將可 :二在相同的位元組範圍上處理取得及取消。符記管理 =一:崎面將一循序數字作爲-引數。對於每-符 循二广己官理器爲已被授與一範圍的每一節點維護— :序數:。於-作業結束時,符記管理器利用 cqulre U中指定的値更新包含一節點循序數字之欄
本紙張尺度通用中國國家標毕(CNS 87- ---I-------裝-----1丨訂 (請先閱讀背而之注意事項再4{:(,J本頁) 44 07 6 9 A7 B7 五、發明説明(85 經滴部中央標準局員工消費合作社印製 位。當一後續的Acquire作業必須取消各衝突節點的範圍 時,符记官理器將自該節點經由符記管理器Rev〇ke介面傳 送上次成功取得之循序數字。 考慮到分散式符記管理器的各介面(Acquire、Revoke、 Rehngmsh、及Test),本發明提供了 一種在所用的程式碼 中實施當地位元組範園鎖定之改良式方法。這些程式方法 或演算法簡潔地解決了數種潛在的複雜性,並提供了 —些 將於下文中説明的精緻特徵。 — 本發明利用將於下文中配合原創揭露事中之虛擬碼而 說明义鎖足技術’以平行方式處理多個符記取得及取消作 業。本發明容許以平行方式處理數個符記取得作業。 如,如果數個檔案系統作業嘗試以平行方式存取—檔案 不同區域時’即可發生上述的情形。 木 本發明也谷许對一檔案的—部分之符記取消作業與— 得作業同時發生,只要這兩個作業不會衝突即可。、 我們當了解’本發明並不需要在位元組範固鎖定 内保存一份當地符記狀態。 八 若在取得一符記之後但在鎖定該符記之前,另—節署 消了該符記,則此種情形被稱爲llvd〇ck ,本發明=點 此種Hvelock的情形。另—節點取得了一 7除 __ ,但在鎖 涊符記之前’該符記又被借用。此種交替效應停止進二。 現在,由於本發明無須在位元组範圍鎖定程式々仃。 一份當地符記狀態,所以將減少本發明程式二二内保存 求,因爲該資訊業已儲存在ΤΜ中。如果業已緩衝儲, 例 碼 取 了 定 而 付 j i 1*- - —^ϋ nn -- —i^i - - !i - -I ^lj TpV* 、-0 (請先閱讀背面之ii:意事項再填寫本頁} -88- 本紙張尺度適用中國國家標革(CNS )/\4規拮(2]0Χ 297公兑 440769 A7 B7 經濟部中央標準局負工消费合作社印製 五、發明説明(86 ) ' 記,則一API將查詢TM以尋找符記。在鎖定位元組範圍之 後,提供一特殊機制,以便確定在測試過符記的存在但在 鎖足該符記之前不會發生取消作業。但是有可能在取得與 鎖定之前取消該符記,在此種情形中,將再度取得該符記 並嘗試鎖定。 取消召回函式也使用檔案系統作業所使用的同一位元组 範圍鎖定程式碼。然而,將有一個特殊的旗標指示這是一 個用於取消的鎖定。此種方式使該程式碼的長度更^縮 短,而得以使用相同的鎖定表0 鎖定一位元組範圍的API支援可增強其作業的各選項: 非阻隔、當地鎖定、測試、及循序。非阻隔選項可容畔一 非阻隔作業;如果各節點並沒有符記,或—衝突鎖定^被 持有,則鎖定程式碼立即送回一個適當的送回碼。 當地鎖定選項可容許-個非分教式作業;如果我們不需 要整體性的鎖定’ K需要㈣點内的鎖定,則可使 項。 測試選項可檢查是否可鎖定位元組範圍但不實際鎖定。 循序選項可提示我們鎖定了 一位元 / + ☆ 丨凡組範圍,以供讀取 (或寫入)一個循序存取的標案。如 .,, 水而要—符記,則使用 忒k π。在此種情形中,希望(但不 序需要的符記之符記。 Τ…)有一個大於時 本發明作了特殊的準備,以便追跑 .^ t k各執行緒(thread)所持 :的=…除錯公用程式傾出現有的位元組範圍鎖 疋、及持有這些鎖定的執行緒編號”匕外,也保存統計數 木纸恢尺度適用中國國家標準(CNS ) Λ4現枱 -89- (210X297公犮 \ ----- -------______ I _ 丁_______\ _ . -: u ml I J - I — --- n I I -- - I— : 1 --1 1- - - - - -I - --1 I (請先閱讀背面之..^-意事^再填寫本頁) * 440769 A7 ___—_ B7 * 丨 . ___ 五、發明説明(87 ) 字’以便了解檔案存取模式、及鎖定行爲。 精由送回每一成功鎖定作業的—檔案代碼(handle),使 解除鎖定作業快速進行,且並不需要—搜尋或查詢作業。 由於保存了各現有鎖定模式的計數器,所以檢查一衝突 鎖足,否存在的作業是快速的。例如,如果我們保存現用 共用讀取鎖定及現用互斥寫入鎖定數目的—計數器,則可 ,常了解範圍的重疊情形。例如,如果並無互斥寫入鎖 疋,且我們需要一共用讀取鎖定,則我們知道此時並無衝 突,^我們只需要在鎖定表中找到—個空的儲存區即可。 鎖定程式碼支援不限制數目的位元組範圍鎖定要求。在 鎖定表已滿的情形中,或在要求一衝突鎖定的情形中,將 要求該鎖定的執行緒置於睡眠狀態,並在解除—鎖定時將 該執行緒唤醒。 本發明t 決方式並不複製符記資訊,因而使用較小的 儲存£間且具有效率。 中之回德 經濟部中央標準局負工消费·合作社印製 I . - -1 1—i 1 —^n - - n^i - I . —^ϋ I ί ^IJ. "*-:0 f^先閱靖背面之:>ζ4事項再填{:,s本頁) 、由於多個處理器隨時讀取及寫入檔案系統的各部分,所 以平行標案系統是相當複雜的6我們可能想知道當此環境 中的某-部分故障時將會發生何事a本發明提供了此環境 中之回復機制。第-種回復機制係有關於當一節點故障時 正在f新中介貝料之處理情形。現在將説明一種與回復符 f新執仃中介資料登錄及固定作業順序有關的技 術。 f行檔案系統之回违M_^l -------------- _ 9〇 - 本錄尺度剌巾_ 440769 A: 五、發明説明(88 經濟部中央標莘局Μ工消费合作.杜印袈 本發明之回復模型適用於本發明之共用磁碟檔案系統。 各磁碟係經由多個磁碟境線(例如scsi或Ssa)或經由某—形 式的網路連接儲存裝置而連接。每—處理器係獨立存取磁 碟,且係利用一分散式鎖定管理器而維持資料/中介資料 的一致性。每一處理器獨立登錄各中介資料之更新,因而 在故障時不需要用到檔案系統掃描。 困難的問題在於各處理器(不論是硬體或軟體)。這些故 障的形式可爲嚴重到實際燒燬處理器、或失掉參與鎖定管 理協足的通訊能力。發生這些故障時,故障的處理器可 持有可讓其修改共用磁碟的某些區域之鎖定。依照鈎定官 理器的拓拨情形,甚至可能要取得額外的鎖定。故障的Z 理器最後將知道其狀況,但是外部無法得知執行的時間 因爲這將取決於故障處理器中出現的狀況。 本發明工目的在於讓所有並未故障的處理器利用共用 碟安全地執行作業,且也讓故障的處理器於可回到—已 狀態時即提供使用應用程式的支援。 本發明之回復模式實施下列觀念: -一组監视服務程式(類似於Ph〇emx _叩的服務 式)’用以監視所有處理器上的程序,並偵測處理 及通訊的故障。由參與"程序群,,提供該服務程式 當一成員程序故障或一新的程序想要參與一程1 時’即將此訊息通知該程式群的所有成員程^。 啓動時,各處理器必須參與各"程序群"。 - 分散式鎖定。經由分45· 46 τ· - 工田刀政式鎖疋而協調各群成員程 能管 知 程 器 群於 序 -91 本紙張尺度適用中國國家標準(CNS ) △5規格(210'/297公兑) (請先聞讀背而之?1*意事^再^-{^本頁_)
440769 A? B7 五、發明説明(89 ) 經濟部中央橾準局焉工消f合作枉印况 間之所有磁碟存取: -—成員程序在讀取或改變一共用磁碟中的—特定 部分之資料/中介資料之前,必須取得銷定。 -一程序群的成員程序是一鎖定協調者;該鎖定協 調者知道可將哪些鎖定保存在哪—節點上。 -法足成貝程序數(qu〇rum)。於啓動時,且於發生通訊 故障時可能形成一個以上的程序群。此時可能導 致不同程序群中之鎖定協調者作出衝突的鎖定決 疋爲避免此—情形,如果可存取磁碟的處理器中 之半數以下是"程序群,,中之成員程序,則將不容許 任何檔案系統作業。 -登錄(丨〇gg〗ng)。登錄一故障後可能造成資訊不一致的 所有資料/中介資料更新。每一處理器有其本身的登 錄,但是並不將這些登錄儲存在共用磁碟中,因而 在發生故障時所有的節點都可糊取這些登錄。 _隔離(fenemgp必須擁有不使一特定處理器存取一特 定磁碟之能力。 -關卡(barriers) ^因爲各回復步驟原本即是循序進行, 且需要在所有節點上執行某些回復步驟,所以利用 關卡以確保在任何節點執行次一步驟之前必須先在 所有節點上完成前一步驟。 本發明的回復模型可在不利用硬體鎖定機制的情形下處 理節點的故障。檔案系統的每一檔案實例只有在並可成爲 -程序群"的-現有成員程序時,彳可作業。當 -92 本纸ί,4尺度適用中國國家標挛(CNS ) Λ4規栝(210X 297公势) _____* (請先閲讀背而之注意事項再填艿本頁) 敌 訂---- 440769 A7 B7 五、發明説明(90 故故障',且該故障的表現形式爲—實際的處理器 有其餘的料群成員程序。㈣未故障❹序2 =; 間之-關卡同步協定執行將於下文所述的各:程: 可執行故障處理器的回復。因爲是在一個處理2::: 些回復步驟’户斤以選出-個檔案系統協調處理器來執二 列這些步驟。 王态术執仃下 =有未故障處理器停止與該故障處理器間之通孰。 -檔案系統協調處理器隔離故障的處理器。此時將使 T碟子系統停止接受該故障處理器的磁碟存取要 =°縱然尚未偵㈣該故障處理器有⑲上的故 障,也將禁止該故障處理器存取共用磁碟。 -是在必要時回復鎖定狀態9標案系統協調 I部中—I消2作社 陸鎖定協調者1鎖定協調者暫停該故 ,處理器於發生故障時所持有的授與鎖定。此種方 ,使其他節點不會存取該故障節點可能留在一個不 :致狀態之資料。如果故障處理器原來是鎖定協調 :二替代的鎖定協調者自未故障的處理器收集 忒衝儲存的鎖足狀態資訊’而計算新的鎖定狀能。 2果此-階段不是必要的,則可在未故障的節^上 :新開始暫停鎖定未涵蓋的資料之正常檔案系統作 菜。 f:個闕卡是檔案系統協調處理器重新進行該故障 即點的登錄。在知道故障處理器與各磁碟立 -93- (210X297公及) 本纸張尺度適用中國國家標準(C'NS) Λ4^祐 440769 A? 經濟部中央標4·-局貝工消费合作社印1i 五 '發明説明(91 /未故障的處理器將不會授與被阻隔的鎖定時,才執 了 '^重新進仃。在完成此步驟時,磁碟上的資料將 疋致的且可釋出各鎖定。解除該關卡意指完成
了成功的回德,Α匕士 I 且了在所有未故障的處理器上重新 進行正常的作業。 -處理相復過程中偵測到的處理器故障時,係自第 :步驟重新開始。以不超出原先故障程度的方式執 仃個別回復步驟,因而在完成回復協定之前,如果 執行多次的個別回復步驟,也不會有壞處,不會有 額外的故障。 妾回復步驟説明了一個檔案系統的回I,但如果 —牛㈣ 上的擒案系統,則對所有的檔案系統進行每 步驟中所有的回復動作。 •ηίΐ?理節點回復而t,故障處理器在許可時將儘速嘗 ί 程序群。如果故障回復仍在進行中,則無法加 ::序群,直到完成故障回復協定爲止。有兩種可能 :二入數個現有的程序群,亦可加人 加入-序群^果該故障節點 個寺#凑齊法定成員程序數的程序群,則杏— 成員程序數凑齊時(此時知道不會有衝突的鎖:希 進仃么錄。如過該故障節點加入—個 / ' . 撤鈷耕兮π机 〜紅序群,則將 # 2 W即玷的隔離,且容許正常的檔案系統作業。 系一種回復特徵處理回復的交叉及中 求。各中介资Μ Μ " U «科即點的需 甲a«枓郎點維護需要在一故障中保留的各狀興。 —i I I--«^---- n ---T ^3->3 - (請先閱請背!&之注意亊項再填寫本頁) 本紙張尺度適用 -94- (CNS ) Λ4現枱(2丨0X 297公尕) 440769 A 7 B7 五、發明説明(92 中介資料節點的同步及非同步接斧 本發明之平行檔案系統工作時,構成橋案系統的所有磁 碟係分佈在一個諸如TCP/IP網路的網路上,或分佈在可讓 多個處理器以如同大量平行系統或叢集之方式互動的—交 換機上,因而多個處理器需要存取且可獨立存取一檔案。 爲了利用此種能力,多個處理器應在讀取及窝入時共用— 檔案3 在一分散式檔案中各檔案的寫入共用造成幾個問題。其 中一個問題是本發明所提供中介資料之存取及更新。本發 明之中介資料節點是-種用來控制—分散式樓案系統中的 中介資料之機構<> 存取一檔案的每一節點需要讀取或寫入 中介資料資訊到中介資料節點(或中介節點)。 中介資料節點保存與檔案的中介資料有關的資訊,並作 爲磁碟與存取㈣的所有節點間之m緩衝儲存裝 置。也會發生中介資料節點(或中介節點)停止服務該功能 的之情況。爲了能得到平順的作業及回復,必須處理這些 以直接的方式從以往都存取該中介節點的各 即....i中選出一個新的中介節點β 經濟部中央標华局負工消资合作枉印髮 我們特此説明可能處理—中介節點接管的情形、及 起動一接管而選擇之方法。 在三種情形下會發生一中介節點停止執行中介節 的作業。前面兩種情形是非同步的,… 即得知此種情形。第三種情形是同步的,亦即所二= 得知有接管的情形。 Η所有即點都 -------- - 95 - 本紙从 440769 五 、發明説明(93 A: Bi 經濟部中央橾準局ίΗ消舟合作社印製 1 肀介節點故障(損毁); 2 ‘中介節點關閉檔案,或自且 案: 义目其綾衝儲存區中清除該檔 3 .另一節點希望成爲中介節點。 在所有這些情形中’我們需 Ά ^ Ί而要保證發生一個可靠的接 e 。在非同步作業中,嘗試存 ,9| 卞%售甲介即點的第一節%俏 4到一個錯誤;該中介節點可 ’、 r ϊ 把故障’在此種情形中摇ί里 到一個通訊錯誤;或者舊中介節$顆形中知仔 即點決定不再作中介銘赴, 在此種情形中該節點自舊中 白。在兩# & ,丨即點仔到—個適當的錯誤訊 試成爲-中介節點。如果沒當的符心而嘗 3t七 又有其他的中介節點(若該節點 疋罘一個存取舊中介節點的 (右X郎點 WL L 7郎點即馬此種情形),目丨丨兮γ 點知成爲新的中介節點。隨 ’、^即 節點亦將經過相同的過程, 2的其他 1一疋私然法取得適去66饵4 向符記管理器查詢時,將诜咖 题田的付,己。 節點最後將發現其已變節=因此,每- 改變了。不論在哪一種情形, 叉肀>1即點已經 ^ ^ /,都將採取適當的動作。如f —即點變成一中介節點,目ιΜ ΠΎγ如果 資料。如果—節點的中介節磁碟讀取最新的中介 的中介資料更新重新傳送到新^ ’則孩節點將其自己 、新的中公銪,‘二η 中介節點有可能在將這些步杯 "' 故疋因爲舊的 由於利用每-個此類更除到磁碟之前即已故障。 道哪些更新是在磁碟中以 叮乂母—郎點知 的中介節點。 一无祈重祈傳送到新 請先閱讀背而之注意事項再填itT本頁)
I 訂
A7 B7 440769 五、發明説明(94 ) 因爲一個節點在嘗試成爲一中介節點時可能會失敗,所 以涉及存取中介節點的每一作業具有下列的大綱: (請先閱讀背面之注意事項再填窍本S ) -表7- retry : if (I am metanode) then DO this and theat else { errl=sendjtnessage_to_the_metanode ; //so the metanode will do // "this_and_that" if (errl=METANODE_IS_DEAD | |erri=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 -£ND TABLE- 上述用於動態接管中介節點的系統是獨有的,且本發明 -97 本纸張尺度適用中國园家標準(CN'S ) Λ4規格(210X297公兑) 在69 A7 ~----B7 五、發明説明(95 ) 〜 (符4故解決„方式夂優點在於:此種方式將一個有其他用途 “己官理器)❾子系統用於依據樓案活動性而選擇—個新 的中4即點。因爲所有的作業都涉及一個故有的"重新嘗 二機制’且因爲每一節點都可作爲一中介節點,所以終 九將選出一個中介節點,因而可保證終究將動態地發生— 次接管。 包保存在每—節點的資訊保證:縱使一中介節點故障,回 復程序將重建所有的資訊,而能得到樓案内容的一致性。 配額的分配_ 、然後將説明本發明在該共用磁碟檔案系統中對配額分配 万面的改良3基本的困難點在於必須嚴格維護-組節點的 配額。大家可能想到在一中央伺服器中維護這些配額,但 $我們發現這不S —種可行的解決方式,因爲當每-新的 貪料寫入在窝入資料之前需要先向該單一伺服器要求許可 時,該中央伺服器將變成—個瓶頸。此處將説明本發明將 配額分配給代表—配額持有的使用者而正在寫入一檔案系 統的各電腦之方法。隨後將論及在發生故障時回復此種配 額之方式。 經濟部中央標準局男工消f合作社印製 r -: i . -- —I- - --- - 1 . n-"-I ]---- - I ^-» « ^ 、-p (¾先聞讀背兩之ΪΪ4事項再¾¾本頁} 在一平行檔案系統中,其中多個處理器可獨立存取構成 檔案系統的所有磁碟,以便讀取及寫入各磁碟上的檔案, 此時必須將一磁碟的若干磁區指定給產生檔案的每一處理 器之植案。分配給一特定使用者擁有的檔案之磁區受限於 一配額,茲配額指定容許該使用者或—群使用者使用的磁 碟空間谷量。其問題在於:各使用者可能正在多個處理器 _ —1—--—------ 98 -_ 本紙张尺度適用中國S家標华(CNS ) Λ4規祐(2Ι〇κ 29?公犮) 4407 69 A; B7 五、發明説明(96 上同時執行,且索取同-配額。若在中央分配新的磁碟區 段時,將使本發明的大量平行處理系統之使用慢下來。 (請先"請'背而之:;i意事項再填巧本頁) 本發明實施了一種系統,該系統將配額分配给每—節 點,並根據需要而重新分配配額,且於發生故障時回復該 配額。本發明之解決方式是在—大量平行電腦運算環境或 本文所述的多個電腦之其他環境中,提供—種管理每—構 案系統的標案索引及磁碟區段配額之方法。將此工作分給 每一標案系統的一配額伺服器、及每一檔案系統中正操作 該樓案系統内資料的每一節點之—配額用户端電腦。 配額限度是一臨界値,在此臨界値之下可將樓案索引及 植案系統空間分配給一使用者。在本文中,將_使用者可 以擁有的的樓案索引數及空間容量稱爲配額β當地分配額 是一配額用户端電腦無須與配額伺服器互動即可代表使用 者分配的空間容量。 該伺服器維護一常駐磁碟的檔案,該檔案包含整個Μρρ 系統中所有使用者的配額限度及累積使用量。只有該伺服 器可存取該檔案,該伺服器爲所有的處理器執行該檔案的 所有讀取及更新。因此,只有該伺服器可完全知道各配頦 的使用量及仍然可使用的分配量。 經濟部令央榡寒局員工消圯合作社印鉍 在配額伺服器上執行與整體配額管理有關的所有行動。 限度改變、分配當地分配額、及顯示現行狀態等情形都需 要與配額伺服器互動。配額用户端電腦在其當地分配額容 許的範圍内改變檔案系統的分配量,並根據其分配額的使 用量而定期更新伺服器。該伺服器可取消一用户的分配 99- 本纸張尺度適用中囡國家樣準(CNS ) Λ4現格(210Χ 297公犮
Claims (1)
- ABCD 4 4 07 6 9 六、申請專利範圍 1. 一種在一電腦系統中使用之方法,該兩 用於在多個電腦節點上執行的多個檔;、二…有-個 系統,每-電腦節點有其本身的;U磁碟檔案 +牙的作業系統實例,且芒此 電編係爲了以平行資料共用方式存取常駐在二 接式共用磁碟上的各檔案而耦合,其 :緩衝儲存與檔案存取模式相關的符記,卫以循序:: 一稽案中各不同區域之方式’而使該系統令多個電腦節 點可存取一檔案中相同的區域。 2.如申請專利範固第i項之方法’其中—系統係採用—個 如申請專利範圍第1項之檔案系統,其中: 一要求首先查詢一符記管理器,該符記管理器試探一 個作業所需最小位元组範園的位元組範圍,而決定一節 點上是否存在一個相容的符記i 3..如申請專利範圍第2項之方法,其中—系統係採用一個 如申請專利範圍第2項之檔案系統,其中如果可在提出 要求的節點當地取得所需的符記,則鎖定該符記,且不 會發生其他的符記活動^ 4. 如申請專利範圍第2項之方法,其中一系統係採用一個 如申讀專利範圍第2項之檔案系統,其中如果無法在提 出要求的節點當地取得所需的符記,則向該符記管理器 要求一節點,且係根據檔案作業的偏移量及長度而計算 必要的範圍。 5. 如申請專利範圍第4項之方法,其中一系統係採用一個 如申請專利範圍第4項之檔案系統,其中當檔案存取模 -106- 本紙浪尺度適用中國國家標準(CNS ) Λ4#見格(2I0X297公釐) ---------^------1Τ I * (请先閱讀背面之注意事項再填寫本頁) 經濟部中喪標準局貝νί消費合作社印製 αο 8 8 oo ABCD 440769 々、申請專利範圍 式是隨機時’所授與的希望範圍將等於必要範圍,但是 當循序存取檔案時,希望範圍開始於必要範圍的開始處 JL終止於一個代表無限大的値。 6. 如申請專㈣圍第2項之方法,其巾—系統係採用一個 如申請專利範園第2項之檔案系統,其中: β要求首先查詢該符記管理器,該符記管理器決定一 即點是否持有一個與對另—節點上的一符記的要求衝突 之符圮,如果確係如此,則該符記管理器要求取消該另 一節點所持有的該符記。 7. 如申請專利範固第6項之方法,其中一系統係採用一個 如申凊專利範圍第6項之檔案系統,其中該取消要求包 含提出要求的節點之必要範圍及希望範圍。 8-如申請專利範固第6項之方法,其中一系統係採用—個 如申請專利範園第6項之檔案系統,其中如果一要求具 有一個適於循序存取的希望範圍,則持有該符記的節點 is且對其怳案的存取’並計算一個最小偏移量,並將一 授與範園伸展到所計算出的最小偏移量及必要範園中之 較高値。 -- - - rf n - I I n n - I I HI V J (請先閔讀背面之注意事項再填寫本頁) 經濟部中央標隼局員工消f合作社印繁 -107- 本紙張尺度適用中國國家標準(CNS ) Λ4規格(210X297公釐)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/893,725 US5950199A (en) | 1997-07-11 | 1997-07-11 | Parallel file system and method for granting byte range tokens |
Publications (1)
Publication Number | Publication Date |
---|---|
TW440769B true TW440769B (en) | 2001-06-16 |
Family
ID=25401974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW087109530A TW440769B (en) | 1997-07-11 | 1998-06-16 | Parallel file system and method for granting byte range tokens |
Country Status (4)
Country | Link |
---|---|
US (1) | US5950199A (zh) |
EP (1) | EP0890915B1 (zh) |
DE (1) | DE69840903D1 (zh) |
TW (1) | TW440769B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615594B2 (en) | 2009-07-15 | 2013-12-24 | Aten International Co., Ltd. | Virtual media with folder-mount function |
US9237186B2 (en) | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function and graphical user interface for mounting one or more files or folders |
US9235583B2 (en) | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US6473774B1 (en) | 1998-09-28 | 2002-10-29 | Compaq Computer Corporation | Method and apparatus for record addressing in partitioned files |
US7596563B1 (en) * | 1999-10-28 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | Computerized file system and method |
US6826570B1 (en) | 2000-07-18 | 2004-11-30 | International Business Machines Corporation | Dynamically switching between different types of concurrency control techniques to provide an adaptive access strategy for a parallel file system |
US6973542B1 (en) * | 2000-07-18 | 2005-12-06 | International Business Machines Corporation | Detecting when to prefetch inodes and then prefetching inodes in parallel |
US20020116648A1 (en) * | 2000-12-14 | 2002-08-22 | Ibm Corporation | Method and apparatus for centralized storing and retrieving user password using LDAP |
US6970892B2 (en) * | 2001-02-16 | 2005-11-29 | Stratus Technologies Bermuda Ltd | Implementing standards-based file operations in proprietary operating systems |
US7246104B2 (en) * | 2001-03-21 | 2007-07-17 | Nokia Corporation | Method and apparatus for information delivery with archive containing metadata in predetermined language and semantics |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US6708175B2 (en) | 2001-06-06 | 2004-03-16 | International Business Machines Corporation | Program support for disk fencing in a shared disk parallel file system across storage area network |
US6768993B2 (en) * | 2001-06-28 | 2004-07-27 | International Business Machines Corporation | System and method for file system cooperation in a multi-threaded environment |
US6976076B2 (en) | 2001-06-29 | 2005-12-13 | International Business Machines Corporation | Architecture for the graphical management and analysis of authentication tokens |
US7325064B2 (en) * | 2001-07-17 | 2008-01-29 | International Business Machines Corporation | Distributed locking protocol with asynchronous token prefetch and relinquish |
US7085815B2 (en) * | 2001-07-17 | 2006-08-01 | International Business Machines Corporation | Scalable memory management of token state for distributed lock managers |
US20030097443A1 (en) * | 2001-11-21 | 2003-05-22 | Richard Gillett | Systems and methods for delivering content over a network |
JP2003215880A (ja) * | 2002-01-23 | 2003-07-30 | Oki Data Corp | カラー画像記録装置 |
US7194467B2 (en) * | 2002-03-29 | 2007-03-20 | Panasas, Inc | Using whole-file and dual-mode locks to reduce locking traffic in data storage systems |
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 |
US8140622B2 (en) | 2002-05-23 | 2012-03-20 | International Business Machines Corporation | Parallel metadata service in 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 |
US7448077B2 (en) | 2002-05-23 | 2008-11-04 | International Business Machines Corporation | File level security for a metadata controller in a storage area network |
US20040019640A1 (en) * | 2002-07-25 | 2004-01-29 | Bartram Linda Ruth | System and method for distributing shared storage for collaboration across multiple devices |
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 |
US7548986B1 (en) * | 2003-03-17 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Electronic device network providing streaming updates |
US7107293B2 (en) * | 2003-04-30 | 2006-09-12 | International Business Machines Corporation | Nested recovery scope management for stateless recovery agents |
US20050039049A1 (en) * | 2003-08-14 | 2005-02-17 | International Business Machines Corporation | Method and apparatus for a multiple concurrent writer file system |
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 |
US7746777B2 (en) * | 2003-09-30 | 2010-06-29 | International Business Machines Corporation | Centralized bandwidth management method and apparatus |
US7085907B2 (en) * | 2004-02-17 | 2006-08-01 | International Business Machines Corporation | Dynamic reconfiguration of memory in a multi-cluster storage control unit |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US20060036579A1 (en) * | 2004-08-10 | 2006-02-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a time based algorithm |
US20060059118A1 (en) * | 2004-08-10 | 2006-03-16 | Byrd Stephen A | Apparatus, system, and method for associating resources using a behavior based algorithm |
US7661135B2 (en) * | 2004-08-10 | 2010-02-09 | International Business Machines Corporation | Apparatus, system, and method for gathering trace data indicative of resource activity |
US7546601B2 (en) * | 2004-08-10 | 2009-06-09 | International Business Machines Corporation | Apparatus, system, and method for automatically discovering and grouping resources used by a business process |
US7630955B2 (en) * | 2004-08-10 | 2009-12-08 | International Business Machines Corporation | Apparatus, system, and method for analyzing the association of a resource to a business process |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US20060074940A1 (en) * | 2004-10-05 | 2006-04-06 | International Business Machines Corporation | Dynamic management of node clusters to enable data sharing |
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 |
US20070198978A1 (en) * | 2006-02-22 | 2007-08-23 | David Dice | Methods and apparatus to implement parallel transactions |
US8028133B2 (en) * | 2006-02-22 | 2011-09-27 | Oracle America, Inc. | Globally incremented variable or clock based methods and apparatus to implement parallel transactions |
WO2007146710A2 (en) | 2006-06-08 | 2007-12-21 | Hewlett-Packard Development Company, L.P. | Device management in a network |
US7698273B2 (en) * | 2006-06-23 | 2010-04-13 | Microsoft Corporation | Solving table locking problems associated with concurrent processing |
US8752044B2 (en) | 2006-07-27 | 2014-06-10 | Qualcomm Incorporated | User experience and dependency management in a mobile device |
US8150870B1 (en) * | 2006-12-22 | 2012-04-03 | Amazon Technologies, Inc. | Scalable partitioning in a multilayered data service framework |
US7673169B1 (en) | 2007-05-09 | 2010-03-02 | Symantec Corporation | Techniques for implementing an adaptive data access error handling policy |
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 |
US9807468B2 (en) * | 2009-06-16 | 2017-10-31 | Microsoft Technology Licensing, Llc | Byte range caching |
US9058334B2 (en) * | 2010-02-11 | 2015-06-16 | Emc Corporation | Parallel file system processing |
US20120016854A1 (en) * | 2010-03-25 | 2012-01-19 | Hitachi, Ltd. | File-sharing system and method for managing files, and program |
US8392428B1 (en) * | 2012-09-12 | 2013-03-05 | DSSD, Inc. | Method and system for hash fragment representation |
US9280578B1 (en) * | 2013-06-30 | 2016-03-08 | Emc Corporation | Combining transactions in a metadata transaction log |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
US10572386B1 (en) | 2018-09-12 | 2020-02-25 | International Business Machines Corporation | Increased parallelization efficiency in tiering environments |
US20200272424A1 (en) * | 2019-02-21 | 2020-08-27 | Research & Business Foundation Sungkyunkwan University | Methods and apparatuses for cacheline conscious extendible hashing |
US11271992B2 (en) * | 2020-01-22 | 2022-03-08 | EMC IP Holding Company LLC | Lazy lock queue reduction for cluster group changes |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2023314B (en) * | 1978-06-15 | 1982-10-06 | Ibm | Digital data processing systems |
US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
US5043876A (en) * | 1988-05-27 | 1991-08-27 | International Business Machines Corporation | N-level file shadowing and recovery in a shared file system |
US5175851A (en) * | 1989-05-15 | 1992-12-29 | International Business Machines Corporation | System and method for controlling client machine access to a portion of a file with a variable length |
US5226159A (en) * | 1989-05-15 | 1993-07-06 | International Business Machines Corporation | File lock management in a distributed data processing system |
JP2575543B2 (ja) * | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
JP2532194B2 (ja) * | 1992-03-30 | 1996-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プロセッサと結合機能間に対するメッセ―ジ経路指定機能を有するデ―タ処理システム |
US5454108A (en) * | 1994-01-26 | 1995-09-26 | International Business Machines Corporation | Distributed lock manager using a passive, state-full control-server |
US5566297A (en) * | 1994-06-16 | 1996-10-15 | International Business Machines Corporation | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments |
US5490270A (en) * | 1994-06-16 | 1996-02-06 | International Business Machines Corporation | Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes |
JPH0816470A (ja) * | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
US5634122A (en) * | 1994-12-30 | 1997-05-27 | International Business Machines Corporation | System and method for multi-level token management for distributed file systems |
US5764905A (en) * | 1996-09-09 | 1998-06-09 | Ncr Corporation | Method, system and computer program product for synchronizing the flushing of parallel nodes database segments through shared disk tokens |
-
1997
- 1997-07-11 US US08/893,725 patent/US5950199A/en not_active Expired - Fee Related
-
1998
- 1998-06-16 TW TW087109530A patent/TW440769B/zh not_active IP Right Cessation
- 1998-06-17 DE DE69840903T patent/DE69840903D1/de not_active Expired - Lifetime
- 1998-06-17 EP EP98304749A patent/EP0890915B1/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615594B2 (en) | 2009-07-15 | 2013-12-24 | Aten International Co., Ltd. | Virtual media with folder-mount function |
TWI421692B (zh) * | 2009-07-15 | 2014-01-01 | Aten Int Co Ltd | 具有資料夾分享功能的虛擬媒體之系統及其執行方法 |
US9237186B2 (en) | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function and graphical user interface for mounting one or more files or folders |
US9235583B2 (en) | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function |
Also Published As
Publication number | Publication date |
---|---|
EP0890915A2 (en) | 1999-01-13 |
EP0890915B1 (en) | 2009-06-17 |
EP0890915A3 (en) | 2005-02-23 |
DE69840903D1 (de) | 2009-07-30 |
US5950199A (en) | 1999-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW440769B (en) | Parallel file system and method for granting byte range tokens | |
TW412692B (en) | Parallel file system and method with a metadata node | |
TW409215B (en) | Parallel file system and method for multiple node file access | |
US8156164B2 (en) | Concurrent directory update in a cluster file system | |
US5963963A (en) | Parallel file system and buffer management arbitration | |
JP6371859B2 (ja) | 分散格納システムにおけるセッション管理 | |
EP0892347B1 (en) | Parallel file system and method for independent metadata logging | |
JP6259532B2 (ja) | 分散格納システムにおける名前空間管理 | |
JP6371858B2 (ja) | 複数エクステント動作のための原子書き込み | |
KR101914019B1 (ko) | 분산 데이터베이스 시스템들을 위한 고속 장애 복구 | |
CN106462545B (zh) | 可缩放文件存储服务 | |
US5987477A (en) | Parallel file system and method for parallel write sharing | |
US5946686A (en) | Parallel file system and method with quota allocation | |
US5940838A (en) | Parallel file system and method anticipating cache usage patterns | |
US5940841A (en) | Parallel file system with extended file attributes | |
KR101827239B1 (ko) | 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피 | |
US5893086A (en) | Parallel file system and method with extensible hashing | |
US5956734A (en) | Parallel file system with a quota check utility | |
US5960446A (en) | Parallel file system and method with allocation map | |
CN106716412B (zh) | 用于支持分布式计算环境中的零拷贝二进制基数树的系统和方法 | |
JP2017511541A (ja) | 可変ストライプサイズを使用するファイル格納 | |
WO2018157602A1 (zh) | 一种同步活动事务表的方法及装置 | |
CN101819577A (zh) | 维护文件系统客户端目录高速缓存的方法、系统和装置 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
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 | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |