TW440769B - Parallel file system and method for granting byte range tokens - Google Patents

Parallel file system and method for granting byte range tokens Download PDF

Info

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
Application number
TW087109530A
Other languages
English (en)
Inventor
Frank B Schmuck
Robert J Curran
Boaz Shmueli
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Application granted granted Critical
Publication of TW440769B publication Critical patent/TW440769B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1858Parallel file systems, i.e. file systems supporting multiple processors
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, 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)

  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公釐)
TW087109530A 1997-07-11 1998-06-16 Parallel file system and method for granting byte range tokens TW440769B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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