專利名稱:在分布式系統(tǒng)中實(shí)施資源利用的系統(tǒng)、方法和服務(wù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及具有在多個計(jì)算機(jī)上運(yùn)行的共享盤文件系統(tǒng)的分布式計(jì)算機(jī)系統(tǒng)。更具體地說,本發(fā)明涉及在分布式計(jì)算機(jī)系統(tǒng)中的預(yù)定配額內(nèi)實(shí)施(enforce)資源利用的方法。
背景技術(shù):
分布式處理系統(tǒng)包含在一個以上的計(jì)算機(jī)上操作的共享盤文件系統(tǒng)。分布式處理系統(tǒng)中的每個計(jì)算機(jī)(也稱為客戶機(jī))包含操作系統(tǒng)的一個實(shí)例。每個客戶機(jī)被耦接,以便對駐留于呈網(wǎng)絡(luò)附加共享盤形式的存儲器上的文件進(jìn)行并行數(shù)據(jù)共享訪問。用戶(人或應(yīng)用)通過一個或多個客戶機(jī)訪問所述存儲器。
為了管理存儲器,典型的分布式處理系統(tǒng)利用某一形式的配額制,所述配額制把用戶限于預(yù)定量的存儲空間(storage)。配額是關(guān)于用戶能夠保存多少數(shù)據(jù)的限制(建議的或者強(qiáng)制的)。如果沒有配額制,那么用戶可消耗盤上的所有存儲空間,從而拒絕對其它用戶提供服務(wù)。
常規(guī)的集中式文件系統(tǒng),比如計(jì)算機(jī)上的操作系統(tǒng)使用的集中式文件系統(tǒng)使用配額跟蹤來管理應(yīng)用的存儲空間(文件系統(tǒng)空間)使用。這種集中式配額跟蹤方法被進(jìn)一步擴(kuò)展到其中中央服務(wù)器進(jìn)行塊分配的文件系統(tǒng)。利用集中式配額跟蹤方法的文件系統(tǒng)易于實(shí)現(xiàn)。當(dāng)在客戶機(jī)超配額時文件系統(tǒng)不向客戶機(jī)授予寫鎖定或者新的分配的情況下,提供實(shí)施。但是,這種集中式配額跟蹤方法不適用于使用基于對象的存儲裝置的文件系統(tǒng)。此外向中央服務(wù)器轉(zhuǎn)移塊分配限制了分布式系統(tǒng)的可縮放性。
管理存儲配額的另一種常規(guī)方法是基于客戶機(jī)的配額跟蹤系統(tǒng),其中分布式系統(tǒng)跟蹤在每個客戶機(jī)的配額狀態(tài)。客戶機(jī)對照分配給每個用戶的已知配額,監(jiān)視每個用戶的累積存儲使用??蛻魴C(jī)把每個用戶的配額狀態(tài)傳送給分布式處理系統(tǒng)中的中央服務(wù)器?;诳蛻魴C(jī)的配額跟蹤系統(tǒng)能夠?qū)嵤┌踩?security cap),所述安全帽防止當(dāng)客戶機(jī)超過預(yù)定配額時所述客戶機(jī)的寫操作。但是,基于客戶機(jī)的配額跟蹤系統(tǒng)要求存儲系統(tǒng)通知客戶機(jī),在用戶進(jìn)行的每個存儲器存取事件中,使用了多少存儲空間。此外,基于客戶機(jī)的配額跟蹤系統(tǒng)依賴于遵守配額??蛻魴C(jī)中的程序錯誤會導(dǎo)致配額信息受到破壞,需要用于配額跟蹤的檢查和修復(fù)工具。此外,基于客戶機(jī)的配額跟蹤系統(tǒng)難以擴(kuò)展到對相同配額賬戶進(jìn)行寫操作的另外的客戶機(jī)。
管理存儲配額的另一種常規(guī)方法包括物理分離的配額,所述物理分離的配額把與配額相關(guān)的所有域分成單一存儲盤上的單一分區(qū),并設(shè)置關(guān)于該分區(qū)的配額。每個用戶被提供和存儲空間的分配配額相等的存儲盤上的一個分區(qū)。物理分離的配額制相對易于實(shí)施。但是,物理分離的配額制難以擴(kuò)展到另外的存儲盤。在每個存儲盤上需要許多分區(qū)。此外,難以獲得該存儲器的當(dāng)前使用情況。
需要中央服務(wù)器確定對于每個用戶,數(shù)據(jù)去往何處。從而,對于系統(tǒng)配置或配置設(shè)置的變化來說,利用物理分離的配額制的分布式系統(tǒng)不靈活。此外,物理分離的配額制不能實(shí)現(xiàn)獨(dú)立的組配額或用戶配額。
雖然常規(guī)的配額技術(shù)已被證明是有用的,不過最好提出另外的改進(jìn)。分布式處理系統(tǒng)需要一種能夠在客戶機(jī)本地實(shí)施,而不依靠客戶機(jī)或用戶,并且能夠在基于對象的系統(tǒng)中使用的一種配額解決方案。此外,該配額解決方案應(yīng)是準(zhǔn)確的、可縮放的,并且對于獨(dú)立的組或用戶是可定制的。該配額解決方案不受欺騙,并且不會因客戶機(jī)或用戶產(chǎn)生的常見錯誤受到破壞。從而需要一種在分布式系統(tǒng)中實(shí)施資源利用的系統(tǒng)、服務(wù)、計(jì)算機(jī)程序產(chǎn)品和相關(guān)的方法。迄今為止,對這種解決方案的需要仍然未得到滿足。
發(fā)明內(nèi)容
本發(fā)明滿足了該需要,提供一種在分布式系統(tǒng)中實(shí)施(enforce)資源利用的系統(tǒng)、服務(wù)、計(jì)算機(jī)程序產(chǎn)品和相關(guān)方法(這里總稱為“系統(tǒng)”或“本系統(tǒng)”)。雖然在存儲空間方面描述了本系統(tǒng),不過顯然本系統(tǒng)適用于任何可消耗的資源,比如帶寬和每秒的I/O速率。
本系統(tǒng)包含在中央服務(wù)器上操作的銀行,在分布式系統(tǒng)中的客戶機(jī)上操作的錢包管理員,和在分布式系統(tǒng)中的存儲裝置上操作的出納員。銀行為每個用戶(這里還稱為委托人)保持一個賬戶。委托人(principal)可以是在分布式系統(tǒng)中的存儲裝置上產(chǎn)生存儲空間消費(fèi)事件的任何實(shí)體,比如人或應(yīng)用。存儲空間消費(fèi)事件包含影響委托人消耗的存儲空間的數(shù)量的任何事件,例如寫入、刪除、清除、截短等。本系統(tǒng)的配額的實(shí)施是分散的。通過數(shù)字現(xiàn)金或“硬幣”的使用,錢包管理員跟蹤配額。銀行產(chǎn)生硬幣;錢包管理員和委托人不允許擁有產(chǎn)生硬幣的特權(quán)。
每個硬幣代表一個單位的資源使用。對于諸如存儲空間之類的資源,每個硬幣代表預(yù)定單位的盤存儲空間(例如4kB)的倍數(shù)。每個硬幣包含使硬幣與單一委托人相關(guān)聯(lián)的委托人ID。每個硬幣還包含數(shù)字序號和銀行的加密簽名。銀行發(fā)出一定幣值(denomination)的每種硬幣,其中幣值代表預(yù)定單位的盤存儲空間的倍數(shù);即,4kB、8kB、16kB、...1GB等。每個硬幣還包含一個紀(jì)元編號(epoch number)。紀(jì)元編號表示硬幣有效的時期;即,每個硬幣具有到期(expiration)時間。
在銀行為每個委托人提供一個賬戶。賬戶包含和可供委托人之用的資源利用的總量等同的硬幣。當(dāng)計(jì)算會話或資源消費(fèi)事件開始時,錢包管理員訪問委托人在銀行的賬戶,并請求提取(withdraw)硬幣,以換成委托人消耗的資源。錢包管理員代表委托人管理“錢包”中自銀行的硬幣提取。在存儲消費(fèi)事件開始時或者在委托人進(jìn)行的計(jì)算會話開始時,錢包管理員把硬幣提交給出納員以為委托人“購買”存儲空間。如果資源消費(fèi)事件是截短、刪除或者清除,那么出納員不需要任何硬幣。清除或釋放分配給委托人的存儲空間的任何存儲空間消費(fèi)事件導(dǎo)致出納員把一個或多個硬幣返回給代表委托人的錢包管理員。錢包管理員把返回的硬幣存入委托人的錢包中。
如果委托人消費(fèi)的存儲空間的數(shù)量需要的硬幣少于錢包管理員提供的硬幣,那么出納員把一個或多個硬幣返回給錢包管理員。不要求錢包管理員準(zhǔn)確確定存儲空間消費(fèi)事件使用多少存儲空間。通過賬戶中剩余的硬幣的數(shù)量,銀行保持委托人的賬戶的狀態(tài)。如果錢包管理員向賬戶請求比可用硬幣更多的硬幣,那么銀行不向錢包管理員發(fā)給硬幣,防止委托人“透支”他們的賬戶。從而,不準(zhǔn)許委托人消耗超過預(yù)定存儲空間分配的存儲空間,即使委托人消費(fèi)的存儲空間分布在許多不同的存儲裝置。
通過集中保存在“銀行”的賬戶的使用,錢包管理員本地實(shí)施委托人的存儲空間配額,提供一種高效、準(zhǔn)確的實(shí)施資源配額的方法。本系統(tǒng)可放大到大型的分布式系統(tǒng),例如元數(shù)據(jù)服務(wù)器中的數(shù)十個服務(wù)器,或者對象存儲裝置中的數(shù)百到數(shù)千個客戶機(jī)。此外,本系統(tǒng)不會受常見錯誤傷害,并且抵抗委托人的獲得比許可更多的存儲空間的有意或無意嘗試。
下面將參考后面的說明,權(quán)利要求和附圖,更詳細(xì)地描述本發(fā)明的各個方面和實(shí)現(xiàn)它們的方式,附圖中,附圖標(biāo)記被重復(fù)使用,以指示所引用的項(xiàng)目之間的對應(yīng)性,其中圖1是其中可使用本發(fā)明的資源利用實(shí)施系統(tǒng)的例證操作環(huán)境的示意圖;圖2由圖2A、2B和2C構(gòu)成,表示圖解說明在代表委托人獲得和交換存儲量的數(shù)字硬幣方面,圖1的資源利用實(shí)施系統(tǒng)的操作方法的處理流程圖;圖3是圖解說明在紀(jì)元到期時,兌換數(shù)字硬幣方面,圖1的資源利用實(shí)施系統(tǒng)的操作方法。
具體實(shí)施例方式
下面的定義和解釋提供和本發(fā)明的技術(shù)領(lǐng)域有關(guān)的背景信息,并且意圖便于本發(fā)明的理解,而不是限制本發(fā)明的范圍。
數(shù)字硬幣表示資源使用的單位。對于存儲器之類的資源,每個硬幣代表預(yù)定單位的盤存儲量(例如4kB)的倍數(shù)。每個硬幣包含使硬幣與單一委托人相關(guān)聯(lián)的委托人ID,數(shù)字序號,幣值,紀(jì)元編號,和銀行的加密簽名。紀(jì)元編號表示硬幣有效的紀(jì)元或時期;即,每個硬幣具有預(yù)定的到期時間。
存儲空間消耗事件影響委托人消耗的存儲空間的數(shù)量的任何事件,例如寫入、刪除、清除、截?cái)嗟取?br>
圖1描述其中可使用根據(jù)本發(fā)明的在分布式系統(tǒng)(分布式系統(tǒng)100)中實(shí)施資源利用的系統(tǒng)、服務(wù)、計(jì)算機(jī)程序產(chǎn)品和相關(guān)方法(資源利用實(shí)施系統(tǒng)10或“系統(tǒng)10”)的例證的總體環(huán)境。系統(tǒng)10包括配額銀行15,錢包管理員20和出納員25。
系統(tǒng)10包括一般嵌入計(jì)算機(jī)內(nèi)或者安裝在計(jì)算機(jī)上的軟件編程代碼或者計(jì)算機(jī)程序產(chǎn)品。配額銀行15嵌入服務(wù)器30內(nèi)或者安裝在服務(wù)器30上。錢包管理員20嵌入起客戶服務(wù)器(也稱為客戶機(jī)),例如客戶機(jī)1 35、客戶機(jī)2 40到客戶機(jī)M 45(這里總稱為客戶機(jī)50)作用的計(jì)算機(jī)內(nèi)或者安裝在所述計(jì)算機(jī)上。出納員25嵌入存儲裝置,例如存儲裝置1 55到存儲裝置K 60(這里總稱為存儲裝置65)內(nèi)或者安裝所述存儲裝置上。另一方面,系統(tǒng)10可保存在適當(dāng)?shù)拇鎯橘|(zhì)上,比如磁盤、CD、硬盤驅(qū)動器或類似裝置。
用戶,比如人或應(yīng)用由委托人1 70、委托人2 75到委托人N 80(這里總稱為委托人85)表示。每個委托人85通過一個或多個客戶機(jī)50訪問一個或多個存儲裝置65。一個或多個客戶機(jī)50可代表委托人85之一行動。一個或多個委托人85可使用客戶機(jī)50之一。例如,在圖1的例證說明中,委托人1 70訪問客戶機(jī)1 35;委托人2 75訪問客戶機(jī)1 35、客戶機(jī)2 40和客戶機(jī)M 45;委托人N 80訪問客戶機(jī)2 40和客戶機(jī)M 45。客戶機(jī)50通過網(wǎng)絡(luò)90代表委托人85訪問存儲裝置65。
配額銀行15通過使用分配給每個委托人85的賬戶(這里也稱為配額賬戶)實(shí)施資源利用;即,依據(jù)賬戶組織空間配額利用。由于存儲器中的文件具有一個“固有”(owning)用戶或委托人,因此對委托人配額的文件分配是明確的。每個賬戶包含一些數(shù)字硬幣(下面稱為硬幣),所述數(shù)字硬幣代表分配給每個委托人85的存儲量。在參加分布式系統(tǒng)100之前,在配額銀行為每個委托人85提供一個對應(yīng)于存儲配額的賬戶。配額銀行15是集中的,但是和客戶機(jī)50進(jìn)行的寫入動作的量相比,只是偶爾被使用。從而,系統(tǒng)10可放大到大型分布式系統(tǒng)。
分布式系統(tǒng)100的一個例子是大學(xué)。每個學(xué)生、系、實(shí)驗(yàn)組等接收包含存儲配額的賬戶。接收存儲配額的每個實(shí)體是一個委托人。學(xué)生(Fred)可以是作為個人的委托人。Fred也可是和包含F(xiàn)red及George的實(shí)驗(yàn)組一起的委托人。
對于在諸如客戶機(jī)1 35之類客戶機(jī)上工作的每個委托人85來說,錢包管理員20管理錢包。例如,委托人1 70通過訪問客戶機(jī)1 35在分布式系統(tǒng)100中發(fā)起一個計(jì)算會話。客戶機(jī)1 35上的錢包管理員20向配額銀行15請求一個或多個硬幣;硬幣被用于從一個或多個存儲裝置65購買存儲空間。配額銀行15從委托人1 70的賬戶扣除請求的硬幣,并把請求的硬幣傳送給錢包管理員20??蛻魴C(jī)1 35上的錢包管理員20把傳來的硬幣存入分配給委托人1 70的錢包中。
客戶機(jī)135一般請求允許委托人1 70執(zhí)行多個寫命令的硬幣量。當(dāng)委托人1 70發(fā)起客戶機(jī),比如客戶機(jī)1 35的使用時,委托人1 70將既沒有錢包又沒有給錢包的硬幣。根據(jù)各種因素,比如委托人1 70可能執(zhí)行的寫操作的估計(jì)數(shù)目,試探確定客戶機(jī)1 35請求的硬幣的準(zhǔn)確數(shù)量。試探法確定客戶機(jī)1 35請求的硬幣的數(shù)目、配額銀行15向客戶機(jī)1 35發(fā)給多少硬幣,和客戶機(jī)1 35何時向配額銀行15請求另外的硬幣。
與委托人1 70相關(guān)的賬戶反映分配給委托人1 70的存儲配額的狀態(tài)。當(dāng)委托人1 70通過寫入文件等消耗存儲空間時,與委托人1 70相關(guān)的賬戶中的“余額”減小。如果在與委托人1 70相關(guān)的賬戶中剩余的“資金”不足以從存儲裝置65之一購買存儲空間,那么委托人1 70被拒絕訪問,直到委托人1 70刪除存儲空間中的項(xiàng)目或者獲得更大的存儲配額。通過代表委托人1 70請求任意客戶機(jī)50持有的任何多余硬幣,配額銀行15可為委托人1 70獲得額外的硬幣。當(dāng)配額銀行15檢查委托人1 70的賬戶,并發(fā)現(xiàn)對于所請求硬幣來說,資金不足時,委托人1 70被拒絕訪問。從而,不向客戶機(jī)1 35上的錢包管理員發(fā)給任何硬幣,錢包管理員20接收指示銀行將不發(fā)給硬幣的錯誤。在沒有硬幣的情況下,錢包管理員20不能為委托人1 70向任何存儲裝置65要求存儲空間。
如果在委托人1 70的賬戶中留有足夠的硬幣,那么客戶機(jī)1 35上的錢包管理員20從配額銀行15接收請求的硬幣。配額銀行15從委托人1 70的賬戶提取請求的硬幣,并把提取的硬幣傳送給客戶機(jī)1 35上的錢包管理員20??梢愿鞣N幣值把請求的硬幣提供給錢包管理員20。除了把硬幣分成更小的幣值之外,錢包管理員20不能修改錢幣或產(chǎn)生新硬幣。
硬幣的每個單位值代表預(yù)定量的存儲空間,例如4kB。每個硬幣包含硬幣的單位值的幣值,例如4kB、8kB、16kB、...1GB等。具有幣值100的硬幣表示100單位的存儲空間,即400kB。每個硬幣還包含數(shù)字序號、為其發(fā)給硬幣的委托人(委托人85之一)的ID、配額銀行15的加密簽名以及和紀(jì)元編號。數(shù)字序號唯一地識別每個硬幣。通過與委托人的一個賬戶相關(guān)聯(lián)的委托人ID識別選擇的委托人。配額銀行15的加密簽名保證委托人或客戶機(jī)不能產(chǎn)生假幣。
紀(jì)元編號提供硬幣的到期日期或時間。在客戶機(jī)發(fā)生故障的情況下,紀(jì)元編號保護(hù)委托人。例如,客戶機(jī)1 35代表委托人1 70提取100硬幣。在花費(fèi)100硬幣或把100硬幣返回給委托人1 70的賬戶之前,客戶機(jī)1 35發(fā)生故障或者崩潰,并且“丟失”100硬幣的記錄。在每個紀(jì)元結(jié)束之前,配額銀行15檢查已到期而未花費(fèi)的硬幣。與已到期的硬幣相關(guān)的值存入每個賬戶,因?yàn)榕漕~銀行將不會兌付(honor)已到期的硬幣。從而,與丟失的100硬幣相關(guān)的金額被存入委托人1 70的賬戶中。
所有到期硬幣不再可用;持有到期硬幣的錢包管理員20被要求向配額銀行15請求新的硬幣,以替換到期的硬幣。在硬幣到期之前,委托人85可指令錢包管理員20把到期硬幣換成具有新的紀(jì)元編號的新硬幣。當(dāng)向配額銀行15請求硬幣時,錢包管理員20能夠指定多少硬幣以及硬幣的幣值,還能夠返回將到期的硬幣。錢包管理員20還能夠把不再需要的硬幣返回配額銀行15;例如,錢包管理員20將不使用或不能使用的硬幣的幣值。
紀(jì)元編號還保護(hù)配額銀行15免于假幣或者履行較差的委托人85。由于每個硬幣在紀(jì)元的結(jié)尾到期,因此不要求配額銀行15保持硬幣或錢包管理員20的歷史。
每次任意客戶機(jī)50代表任意委托人85進(jìn)行存儲空間消費(fèi)事件時,錢包管理員20把一個或多個硬幣連同存儲空間消費(fèi)請求傳送給存儲裝置,比如存儲裝置1 55。錢包管理員20事先不知道存儲空間消費(fèi)事件需要多少存儲空間。從而,錢包管理員20發(fā)送用于存儲空間消費(fèi)事件可使用的最大量的存儲空間的足夠硬幣。
例如,委托人1 70希望把文件寫入存儲空間中。委托人1 70正在使用客戶機(jī)1 35??蛻魴C(jī)1 35上的錢包管理員20聯(lián)系配額銀行15,并提取足以購買用于該文件的存儲空間的硬幣??蛻魴C(jī)1 35上的錢包管理員20把硬幣和寫請求發(fā)送給例如存儲裝置1 55。存儲裝置1 55通過利用配額銀行15的密鑰,核實(shí)硬幣的真實(shí)性。從而,客戶機(jī),比如客戶機(jī)1 35能夠自動執(zhí)行IO操作,同時配額銀行15保持配額的控制。存儲裝置1 55把文件寫入存儲空間中。如果文件需要比硬幣購買的存儲空間少的存儲空間,那么存儲裝置1 55上的出納員25把硬幣返回給客戶機(jī)1 35上的錢包管理員20。返回的硬幣代表傳送的硬幣和消費(fèi)的存儲空間之間的差值。
當(dāng)寫入文件時,每個單獨(dú)的寫操作可增大文件的資源利用,意味著寫操作與發(fā)起寫操作的委托人,比如委托人1 70的配額極限相關(guān)。例如,如果寫操作只重寫現(xiàn)有數(shù)據(jù),那么寫操作并不增大委托人1 70的資源利用。把新數(shù)據(jù)附到文件結(jié)尾的寫操作使委托人1 70的資源利用增大該寫操作的大小。錢包管理員20為寫操作分配的數(shù)量可以介于0和寫操作的完整大小之間。
任意客戶機(jī)50進(jìn)行改變委托人,比如委托人1 70的空間資源利用的其它操作。委托人1 70能夠截短文件;即,減小文件的大小。委托人1 70能夠清除文件的多個部分,使現(xiàn)有數(shù)據(jù)變成空洞。委托人1 70能夠刪除文件,把文件的空間利用降為0。存儲空間消費(fèi)事件包括寫入、截短、清除和刪除操作。存儲空間消費(fèi)事件還包括影響委托人,比如委托人1 70使用的存儲空間的數(shù)量的任何事件。
出納員25儲存硬幣;儲存的硬幣由配額銀行15提供。當(dāng)存儲空間消費(fèi)事件需要的存儲空間小于客戶機(jī)50之一購買的存儲空間且出納員25不能進(jìn)行準(zhǔn)確的兌換時,儲存的硬幣被傳送給客戶機(jī)。此外,委托人85之一可請求文件的刪除,以釋放存儲空間。例如,委托人170指令客戶機(jī)(例如客戶機(jī)1 35)刪除文件??蛻魴C(jī)1 35向適當(dāng)?shù)拇鎯ρb置(即存儲裝置1 55)發(fā)出刪除命令。
存儲裝置1 55刪除文件。存儲裝置1 55上的出納員25把和刪除操作釋放的存儲空間等同的硬幣值返回給客戶機(jī)1 35上的錢包管理員20。客戶機(jī)1 35上的錢包管理員20把返回的硬幣存放在為委托人1 70保持的適當(dāng)錢包中。
每個硬幣特定于一個委托人,比如委托人1 70。一般來說,每個硬幣包含與該硬幣相關(guān)的委托人(例如委托人1 70)的ID。這種情況下,硬幣更類似于信用卡而不是現(xiàn)金。客戶機(jī)1 35上的錢包管理員20還把多余的硬幣存入配額銀行15中委托人1 70的賬戶中。
在硬幣到期之前,出納員25定期把累積的硬幣傳送給配額銀行15。在一個實(shí)施例中,出納員25返回按照例如序號、幣值、紀(jì)元編號等預(yù)分類的硬幣。在另一實(shí)施例中,出納員承擔(dān)配額銀行15執(zhí)行的一些功能,減少在服務(wù)器30進(jìn)行的處理。例如,出納員對每個硬幣進(jìn)行序號檢查,并把在返回給配額銀行15的一系列硬幣中遺漏的序號通知配額銀行15。
系統(tǒng)10的管理工具被用于為任意委托人建立配額賬戶,并向配額賬戶提供一定配額的硬幣。一旦產(chǎn)生了配額賬戶,那么錢包管理器20能夠進(jìn)行包含獲得或返回硬幣的任何操作。
圖2(圖2A、2B、2C)圖解說明了系統(tǒng)10的代表委托人,比如委托人1 70獲得和兌換存儲空間用硬幣的方法200。委托人1 70能夠與任意客戶機(jī)50交互作用,在本討論中任意客戶機(jī)50被概括地表示成客戶機(jī)35,代表任意客戶機(jī)50。類似地,客戶機(jī)1 35能夠與任意存儲裝置65交互作用,在本討論中任意存儲裝置被概括地表示成存儲裝置1 55,代表任意存儲裝置65。
委托人1 70訪問分布式系統(tǒng)100中的一個客戶機(jī)50(即,客戶機(jī)1 35)(步驟205)??蛻魴C(jī)1 35上的錢包管理員20產(chǎn)生委托人1 70的錢包,并訪問委托人1 70在配額銀行15的賬戶(步驟210)??蛻魴C(jī)1 35上的錢包管理員20以從委托人1 70在配額銀行15的賬戶提款的形式請求硬幣,以便購買存儲空間(步驟215)。
有時,配額銀行15可能接近于為委托人(比如委托人1 70)的配額賬戶過度調(diào)撥(over-committing)配額。當(dāng)配額銀行15收到對配額賬戶上比該配額賬戶經(jīng)授權(quán)具有的更多的硬幣請求時,發(fā)生過度調(diào)撥。當(dāng)委托人,比如委托人1 70同時使用多個客戶機(jī)50,而委托人1 70接近于從配額銀行15提取所有分配的硬幣時,也會發(fā)生過度調(diào)撥。委托人1 70正在使用的每個客戶機(jī)50將請求足夠數(shù)目的硬幣,以負(fù)擔(dān)委托人1 70的可能的存儲空間消費(fèi)事件。有時,客戶機(jī)50之一可能請求配額銀行15不可能發(fā)行的硬幣,因?yàn)樵撜埱笸钢Я宋腥? 70的配額賬戶。
配額銀行15確定委托人1 70的賬戶中的余額是否足以滿足所請求的提款(判定步驟220)。如果余額不足,那么配額銀行15聯(lián)系代表委托人1 70的配額賬戶,目前持有硬幣的任意客戶機(jī)50,請求這些客戶機(jī)50上的錢包管理員20返回和委托人1 70的配額賬戶相關(guān)的任何未用硬幣(步驟225)。該請求是召回請求。一般來說,每個客戶機(jī)50上的錢包管理員20將很快把能夠節(jié)省的硬幣返回給委托人1 70的配額賬戶。
在一個實(shí)施例中,配額銀行15和錢包管理員20之間的通信協(xié)議包括要求代表委托人1 70持有硬幣的客戶機(jī)確認(rèn)該請求的返回消息。在另一實(shí)施例中,租約被用于要求客戶機(jī),比如客戶機(jī)1 35在預(yù)定的時間內(nèi)答復(fù)召回請求。如果召回請求未被兌現(xiàn),那么配額銀行15報(bào)以適當(dāng)?shù)膭幼?,例如?qiáng)制實(shí)現(xiàn)紀(jì)元轉(zhuǎn)變等,以防止“無賴”客戶機(jī)未經(jīng)許可地使用硬幣,和釋放硬幣,從而兌現(xiàn)步驟215的請求。
配額銀行15確定是否足夠的硬幣已被返回給委托人1 70的配額賬戶(判定步驟230)。在判定步驟230中,如果沒有返回足夠的硬幣,那么拒絕委托人1 70訪問(步驟235)。如果足夠的硬幣已被返回給委托人1 70的配額賬戶,那么配額銀行把硬幣發(fā)給客戶機(jī)1 35上的錢包管理員20(步驟240)。在判定步驟220中,如果委托人1 70的賬戶中的余額足以滿足客戶機(jī)1 35上的錢包管理員的請求,那么配額銀行15把硬幣發(fā)給客戶機(jī)1 35上的錢包管理員20(步驟240)。
委托人1 70發(fā)起存儲空間消費(fèi)事件(這里也稱為事件)(步驟245)。存儲裝置1 55執(zhí)行指定的存儲空間消費(fèi)事件(步驟250)。如果存儲空間消費(fèi)事件不消耗存儲空間(判定步驟255),那么指定的存儲空間消費(fèi)事件不需要任何硬幣。如果指定的存儲空間消費(fèi)事件釋放任何存儲空間,那么存儲裝置1 55上的出納員把和釋放的存儲空間等同的硬幣發(fā)送給客戶機(jī)1 35上的錢包管理員20(步驟260);返回的硬幣被放入委托人1 70的錢包中。
如果指定的存儲空間消費(fèi)事件消耗存儲空間(判定步驟250),那么要求錢包管理員20向存儲裝置1 55上的出納員25提供足夠的硬幣,以支付由存儲空間消費(fèi)事件引起的額外的空間使用。如果客戶機(jī)1 35懷疑存儲空間消費(fèi)事件是否將分配,那么客戶機(jī)1 35上的錢包管理員20向存儲裝置1 55上的出納員提交足夠的硬幣,以支付數(shù)據(jù)有效負(fù)載的總長度(即,存儲空間消費(fèi)事件所需的空間的最大可能數(shù)量)。
存儲裝置1 55上的出納員25把來自指定的存儲空間消費(fèi)事件的任何多余硬幣返回給客戶機(jī)1 35上的錢包管理員20(步驟265)。出納員25還向客戶機(jī)1 35上的錢包管理員20返回成功或出錯指示符。成功指示符通知錢包管理員20存儲空間消費(fèi)事件成功發(fā)生。出錯指示符通知在客戶機(jī)1 35上的錢包管理員20和存儲裝置1 35上的出納員25之間的交易中發(fā)生了錯誤??赡艿腻e誤包括錢包管理員20提交到期的硬幣,錢包管理員20試圖使用已用過的硬幣,錢包管理員提交的硬幣不足等。
如果計(jì)算會話結(jié)束(判定步驟270),那么客戶機(jī)1 35上的錢包管理員1 35把委托人1 70的錢包中的硬幣返回給委托人1 70在配額銀行15的配額賬戶(步驟275)。如果計(jì)算會話未結(jié)束(判定步驟270),那么處理返回步驟245,在步驟245中,委托人1 70可發(fā)起另一存儲空間消費(fèi)事件。
圖3圖解說明當(dāng)紀(jì)元到期時,系統(tǒng)10的管理硬幣的方法300。每個硬幣包括和紀(jì)元對應(yīng)的到期日期。錢包管理員20注意到硬幣已到期或?qū)⒁狡?步驟305)。錢包管理員20把將到期或到期的硬幣發(fā)送給配額銀行15(步驟310)。配額銀行15把新鑄造的硬幣返回給發(fā)出請求的錢包管理員20。
在一個實(shí)施例中,文件對存儲空間的消費(fèi)可被分配給配額銀行15中的一個或多個賬戶。例如,用戶委托人或者組委托人可擁有存儲空間中的一個文件。在本實(shí)施例中,無論哪一個配額被首先超過,都停止對用戶或組的進(jìn)一步分配。一般來說,在配額銀行15中可存在賬戶的一維或更多維。此外,存儲空間中的文件可具有每一維的一個賬戶。比較起來,常規(guī)的配額方法把文件局限于一維(用戶配額)或兩維(用戶配額和組配額)。
如果任意存儲裝置65(例如存儲裝置1 55)發(fā)生故障,那么服務(wù)器30更新分布式文件系統(tǒng)100的文件結(jié)構(gòu),把文件標(biāo)記成不能得到或者被損壞。配額銀行15隨后更新與存儲裝置1 55相關(guān)的配額賬戶,以反映不再存在的空間使用。如果存儲裝置1 55暫時發(fā)生故障,那么服務(wù)器30調(diào)整配額賬戶,以反映當(dāng)存儲裝置1 55恢復(fù)時的空間使用。
根據(jù)租約,硬幣被發(fā)給客戶機(jī)50。如果客戶機(jī)50之一(例如客戶機(jī)1 35)發(fā)生故障,那么配額銀行15知道哪些硬幣由發(fā)生故障的客戶機(jī)1 35上的錢包管理員20持有。配額銀行15能夠取回未使用的硬幣。配額銀行15還能夠與每個存儲裝置65上的出納員25協(xié)調(diào)委托人85的配額銀行,以確定客戶機(jī)1 35持有的硬幣有多少已被花費(fèi)。
系統(tǒng)10確??蛻魴C(jī)50不能在相同的出納員25使用同一硬幣兩次。出納員25記錄從每個客戶機(jī)50上的錢包管理員20接收的硬幣的序號。任意客戶機(jī)50可能試圖在一個以上的存儲裝置65上的出納員25使用同一硬幣一次以上。當(dāng)出納員25把硬幣返回給配額銀行15時,發(fā)覺這種不適當(dāng)?shù)挠矌攀褂?。配額銀行15識別完全相同的硬幣,根據(jù)需要調(diào)整任意委托人85的配額賬戶。
顯然上面說明的本發(fā)明的具體實(shí)施例只是舉例說明本發(fā)明的原理的某些應(yīng)用。在不脫離本發(fā)明的精神和范圍的情況下,可對這里說明的在分布式系統(tǒng)中實(shí)施資源利用的系統(tǒng)、方法和服務(wù)做出眾多的修改。此外,雖然只是關(guān)于存儲空間舉例說明了本發(fā)明,不過顯然本發(fā)明也適用于任何可消耗的資源,比如帶寬等。
權(quán)利要求
1.一種在分布式系統(tǒng)中實(shí)施資源利用的方法,包括在配額銀行保持委托人的配額賬戶;代表委托人從配額銀行提取數(shù)字硬幣;把數(shù)字硬幣換成資源;其中通過監(jiān)視委托人的配額賬戶中的余額,配額銀行監(jiān)視委托人的資源使用。
2.按照權(quán)利要求1所述的方法,還包括把數(shù)字硬幣保存在與委托人相關(guān)的錢包中。
3.按照權(quán)利要求1所述的方法,還包括如果余額不足,那么拒絕委托人對資源的訪問。
4.按照權(quán)利要求1所述的方法,其中保持配額包括每個委托人保持單一配額賬戶。
5.按照權(quán)利要求4所述的方法,其中保持配額銀行被集中定位。
6.按照權(quán)利要求1所述的方法,其中提取數(shù)字硬幣包括在配額賬戶中保持足以支付數(shù)字硬幣的余額。
7.按照權(quán)利要求6所述的方法,其中如果余額不足并且資源未被釋放,那么拒絕委托人訪問。
8.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣代表預(yù)定單位的資源使用。
9.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣包含使數(shù)字硬幣與單一委托人相關(guān)聯(lián)的委托人標(biāo)識。
10.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣包含唯一識別數(shù)字硬幣的數(shù)字序號。
11.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣包含銀行的加密簽名。
12.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣包含至少一種幣值。
13.按照權(quán)利要求7所述的方法,其中數(shù)字硬幣包含定義到期時間的紀(jì)元編號。
14.按照權(quán)利要求13所述的方法,其中銀行不兌現(xiàn)已到期的數(shù)字硬幣。
15.按照權(quán)利要求2所述的方法,還包括在計(jì)算會話結(jié)束時,把數(shù)字硬幣返回給銀行。
16.按照權(quán)利要求15所述的方法,其中錢包不是永久的。
17.按照權(quán)利要求1所述的方法,其中兌換數(shù)字硬幣包括傳送數(shù)字硬幣,以購買至少一些資源。
18.按照權(quán)利要求17所述的方法,還包括返回超過資源的價錢的數(shù)字硬幣。
19.按照權(quán)利要求18所述的方法,還包括當(dāng)資源被釋放時,把硬幣退還給客戶機(jī)。
20.一種在分布式系統(tǒng)中實(shí)施資源利用的系統(tǒng),包括保持委托人的配額賬戶的配額銀行;代表委托人從配額銀行提取數(shù)字硬幣的錢包管理員;與錢包管理員進(jìn)行交易,把數(shù)字硬幣換成資源的出納員;其中通過監(jiān)視委托人的配額賬戶中的余額,配額銀行監(jiān)視委托人的資源使用。
21.一種具有保存在計(jì)算機(jī)可讀介質(zhì)上的多個可執(zhí)行代碼,用于在分布式系統(tǒng)中實(shí)施資源利用的計(jì)算機(jī)程序產(chǎn)品,包括執(zhí)行按照權(quán)利要求1-19任意之一所述方法中的步驟的指令代碼。
全文摘要
資源利用實(shí)施系統(tǒng)在分布式系統(tǒng)中實(shí)施資源配額。中央服務(wù)器上的銀行為每個委托人保持一個賬戶;該賬戶等同于委托人的資源配額。通過代表資源消費(fèi)的數(shù)字硬幣的使用,跟蹤配額。銀行被允許具有產(chǎn)生硬幣的特權(quán)。當(dāng)計(jì)算會話開始時,客戶機(jī)上的錢包管理員訪問委托人的賬戶,并請求硬幣以便兌換消費(fèi)的資源。錢包管理員管理委托人的“錢包”的硬幣提取。錢包管理員把硬幣提交給存儲裝置上的出納員,從而為委托人“購買”存儲空間。如果存儲空間消費(fèi)事件釋放存儲空間,那么提供退款。
文檔編號G06F9/46GK1904838SQ20061010199
公開日2007年1月31日 申請日期2006年7月18日 優(yōu)先權(quán)日2005年7月27日
發(fā)明者拉爾夫·A·貝克-贊迪, 達(dá)雷爾·E·龍, 理查德·A·高爾丁 申請人:國際商業(yè)機(jī)器公司