專利名稱:在網(wǎng)絡(luò)中的緩沖數(shù)據(jù)的搶先重發(fā)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式聯(lián)網(wǎng)容錯(cuò)系統(tǒng)的領(lǐng)域,更具體地說,涉及其中數(shù)據(jù)發(fā)送的速度和可靠性重要的那些系統(tǒng)。
背景技術(shù):
分布式系統(tǒng)正在變?yōu)樵絹碓狡毡榈难b置,用于提供用于多種功能的平臺(tái),所述功能包括存儲(chǔ)控制器類型功能。它們的普遍性產(chǎn)生自這樣的系統(tǒng)提供的靈活性和可擴(kuò)縮性。以多個(gè)相互支持的方式來實(shí)現(xiàn)容錯(cuò),所述方式諸如提供冗余的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)或冗余的存儲(chǔ)附件。分布式應(yīng)用依賴于網(wǎng)絡(luò)連接和通信能力以執(zhí)行它們的功能。這些容錯(cuò)特征改善了系統(tǒng)的可用性。高可用性也對(duì)于許多應(yīng)用越來越重要。
許多系統(tǒng)實(shí)現(xiàn)了用于它們的網(wǎng)絡(luò)接口的重試算法,其操作如下1.錯(cuò)誤發(fā)生,諸如分組被丟失。
2.超時(shí)間隔期滿。
3.網(wǎng)絡(luò)硬件或協(xié)議棧檢測(cè)到了所述錯(cuò)誤。
4.向請(qǐng)求的發(fā)出者報(bào)告所述錯(cuò)誤。
5.發(fā)出者可能使用替代硬件來第二次嘗試所述請(qǐng)求。
這樣的方案是簡(jiǎn)單的,并且當(dāng)可接受等待原始請(qǐng)求失敗時(shí)是足夠的。但是,對(duì)于一些重要的環(huán)境,僅有可用性(缺少當(dāng)嘗試訪問服務(wù)時(shí)的實(shí)際失敗)是不夠的。在這些環(huán)境中,在特定時(shí)間內(nèi)接收響應(yīng)是重要的。在那個(gè)時(shí)間內(nèi)未能響應(yīng)將帶來與在訪問服務(wù)中完全失敗的懲罰可相比的懲罰,例如,另一個(gè)應(yīng)用可能超時(shí)并且返回錯(cuò)誤狀態(tài),或者因特網(wǎng)用戶在不高興的時(shí)候可能點(diǎn)擊到競(jìng)爭(zhēng)者的網(wǎng)站。
因此,有益的是,提供一種使得能夠在期望時(shí)限內(nèi)進(jìn)行重試的方法,但是現(xiàn)有的系統(tǒng)不當(dāng)然地使得能夠如此。存在大量要解決的問題。首先,系統(tǒng)可以嘗試以更及時(shí)的方式來檢測(cè)錯(cuò)誤。有可能降低在接口適配器或硬件中的超時(shí)間隔,但是經(jīng)常在這些間隔可以如何地低這方面存在結(jié)構(gòu)的限制。例如,在光纖信道中,直到由開關(guān)限定的錯(cuò)誤超時(shí)間隔期滿,通常才能重新使用未能完成的交換,所述錯(cuò)誤超時(shí)間隔經(jīng)常是10秒。而且,如果網(wǎng)絡(luò)錯(cuò)誤超時(shí)間隔被降低得太多,則許多網(wǎng)絡(luò)實(shí)現(xiàn)不能表現(xiàn)魯棒性。
有可能使用一些其他的超時(shí)機(jī)制——與已經(jīng)失敗的接口軟件或硬件不相關(guān)聯(lián)的一個(gè)——來嘗試重新驅(qū)動(dòng)所述請(qǐng)求,但是這不解決問題,因?yàn)樵颊?qǐng)求仍然有效。使用由冗余硬件提供的替代路徑來重新驅(qū)動(dòng)原始請(qǐng)求的任何嘗試將被阻止,直到已經(jīng)完成了原始請(qǐng)求,因?yàn)榇嬖谌匀皇褂玫呐c所述原始請(qǐng)求相關(guān)聯(lián)的資源。
作為具體的例子,在使用光纖信道適配器來實(shí)現(xiàn)傳輸接口并且多線程的用戶進(jìn)程正在嘗試重發(fā)緩沖的情況下,虛擬的存儲(chǔ)系統(tǒng)將阻止第二發(fā)送嘗試,因?yàn)樵及l(fā)送仍然在使用存儲(chǔ)器。
另一種可能的解決方案可以是通過將發(fā)送數(shù)據(jù)的拷貝保留在專用緩沖器中來嘗試避免這個(gè)存儲(chǔ)器阻塞問題。如果第一發(fā)送被認(rèn)為太長(zhǎng),則這這個(gè)拷貝可以隨后用于建立第二發(fā)送。所述專用拷貝可以被訪問而不被虛擬存儲(chǔ)器管理器阻止,但是這個(gè)方案將提高每次發(fā)送的成本,這些發(fā)送包括未遭遇問題的大部分,因?yàn)樾枰谶M(jìn)行第一發(fā)送嘗試之前對(duì)于每個(gè)發(fā)送拷貝數(shù)據(jù)。這樣的附加處理成本在多數(shù)現(xiàn)代網(wǎng)絡(luò)中可能證明是不可接受的。
發(fā)明內(nèi)容
因此,本發(fā)明在第一方面提供了一種用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示(signaling)所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
優(yōu)選的是,所述裝置還包括引用(reference)計(jì)數(shù)器,用于保持由所述第一訪問器和所述第二訪問器對(duì)于所述緩沖器引用的計(jì)數(shù),所述引用計(jì)數(shù)器在所述第一訪問器和所述第二訪問器的每次所述引用時(shí)遞增,并且在所述第一訪問器和所述第二訪問器的每次數(shù)據(jù)發(fā)送完成時(shí)遞減,所述引用計(jì)數(shù)器當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示;存儲(chǔ)器管理器,被適配來允許由所述第一訪問器和所述第二訪問器讀取訪問所述緩沖器,并且響應(yīng)于當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)的所述引用計(jì)數(shù)器的信號(hào)表示而將所述緩沖器返回到空閑(free)緩沖器池(pool)。
優(yōu)選的是,所述裝置還包括分析機(jī)構(gòu),用于確定重發(fā)所述數(shù)據(jù)的所述最佳間隔;調(diào)諧機(jī)構(gòu),用于將所述定時(shí)機(jī)構(gòu)調(diào)諧到用于重發(fā)所述數(shù)據(jù)的所述最佳間隔。
優(yōu)選的是,所述分析機(jī)構(gòu)可操作來使用網(wǎng)絡(luò)監(jiān)視數(shù)據(jù)以確定重發(fā)所述數(shù)據(jù)的所述最佳間隔。
優(yōu)選的是,所述網(wǎng)絡(luò)包括存儲(chǔ)網(wǎng)絡(luò)。
優(yōu)選的是,所述網(wǎng)絡(luò)包括因特網(wǎng)。
在第二方面,本發(fā)明提供了存儲(chǔ)控制器,包括用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
在第三方面,本發(fā)明提供了一種網(wǎng)絡(luò)設(shè)備,包括用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
第二方面的存儲(chǔ)控制器和第三方面的網(wǎng)絡(luò)設(shè)備的優(yōu)選的特征分別對(duì)應(yīng)于第一方面的裝置的相應(yīng)的優(yōu)選特征。
在第四方面,本發(fā)明提供了一種用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的方法,包括步驟提供緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);提供定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;第一訪問器訪問在緩沖器中的數(shù)據(jù)以進(jìn)行第一發(fā)送;啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;第二訪問器響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問緩沖器中的數(shù)據(jù);由所述第二訪問器重發(fā)所述數(shù)據(jù);啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘;所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
優(yōu)選的是,所述方法還包括步驟通過引用計(jì)數(shù)器來保持由所述第一訪問器和所述第二訪問器對(duì)于所述緩沖器引用的計(jì)數(shù),所述引用計(jì)數(shù)器在所述第一訪問器和所述第二訪問器的每次所述引用時(shí)遞增,并且在所述第一訪問器和所述第二訪問器的每次數(shù)據(jù)發(fā)送完成時(shí)遞減,所述引用計(jì)數(shù)器當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示;通過存儲(chǔ)器管理器允許由所述第一訪問器和所述第二訪問器讀取訪問所述緩沖器,并且響應(yīng)于當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)的所述引用計(jì)數(shù)器的信號(hào)表示而將所述緩沖器返回到空閑緩沖器池。
優(yōu)選的是,所述方法還包括步驟確定重發(fā)所述數(shù)據(jù)的所述最佳間隔;將所述定時(shí)機(jī)構(gòu)調(diào)諧到用于重發(fā)所述數(shù)據(jù)的所述最佳間隔。
優(yōu)選的是,所述確定步驟使用網(wǎng)絡(luò)監(jiān)視數(shù)據(jù)以確定重發(fā)所述數(shù)據(jù)的所述最佳間隔。
優(yōu)選的是,所述網(wǎng)絡(luò)包括存儲(chǔ)網(wǎng)絡(luò)。
優(yōu)選的是,所述網(wǎng)絡(luò)包括因特網(wǎng)。
在第五方面,本發(fā)明提供了一種計(jì)算機(jī)程序,包括計(jì)算機(jī)程序代碼,用于當(dāng)被安裝到計(jì)算機(jī)系統(tǒng)中并且被執(zhí)行時(shí)執(zhí)行第四方面的方法的步驟。
所述系統(tǒng)因此優(yōu)選地被構(gòu)造以使得從相同的應(yīng)用緩沖器的多個(gè)數(shù)據(jù)發(fā)送可以同時(shí)進(jìn)行。
諸如硬件控制塊之類的一些資源總是在掛起(hung)發(fā)送的持續(xù)時(shí)間被消耗。所述系統(tǒng)因此優(yōu)選地被構(gòu)造使得這樣的資源被分離為獨(dú)立的發(fā)送路徑。因此,在一個(gè)路徑上的掛起發(fā)送將不妨礙沿第二路徑發(fā)送數(shù)據(jù)的能力。
當(dāng)發(fā)送有效(并且不被確認(rèn))時(shí),定時(shí)器優(yōu)選地提供在接收響應(yīng)時(shí)的任何異常延遲的早期檢測(cè)。當(dāng)達(dá)到定時(shí)器閾值時(shí),這指示在嘗試替代路徑方面可能存在優(yōu)點(diǎn)。所述發(fā)送因此被適當(dāng)?shù)亓⒓囱刂鎏娲窂街匕l(fā),而不必等待或阻止所述第一發(fā)送完成。
本領(lǐng)域的技術(shù)人員可以明白,應(yīng)當(dāng)通過下述方式來選擇對(duì)于定時(shí)器設(shè)置的間隔以優(yōu)化性能當(dāng)系統(tǒng)太頻繁地響應(yīng)并且重發(fā)開銷提高得太多時(shí),在未能足夠迅速地響應(yīng)可能的發(fā)送失敗、和另一方面以基于“假肯定(falsepositives)”的附加重發(fā)來加重系統(tǒng)的負(fù)擔(dān)之間達(dá)到適合于特定的網(wǎng)絡(luò)及其附加器件的平衡。在本發(fā)明的優(yōu)選實(shí)施例中,可以調(diào)諧所使用的間隔以將其設(shè)置為最佳值。在最優(yōu)選的實(shí)施例中,根據(jù)網(wǎng)絡(luò)的監(jiān)視來設(shè)置定時(shí)器間隔,以便保證根據(jù)網(wǎng)絡(luò)性能來將所述間隔調(diào)諧到最佳值。在另一個(gè)或替代的實(shí)施例中,可以在確定最佳間隔中考慮服務(wù)質(zhì)量要求。
本發(fā)明的優(yōu)選實(shí)施例還緩解了由下述事實(shí)引起的問題現(xiàn)有技術(shù)的傳統(tǒng)的虛擬存儲(chǔ)器系統(tǒng)不支持來自應(yīng)用緩沖器的多個(gè)同時(shí)發(fā)送,因?yàn)樗鼈儾荒芨櫠鄠€(gè)發(fā)送的進(jìn)展或控制對(duì)于發(fā)送緩沖器的應(yīng)用訪問。在現(xiàn)有技術(shù)的傳統(tǒng)系統(tǒng)中,一旦緩沖器已經(jīng)被指派包含特定的數(shù)據(jù)項(xiàng)并且已經(jīng)將其實(shí)際地址提供到硬件輸入/輸出器件,則它實(shí)際上被“凍結(jié)”并且不能被除了硬件輸入/輸出器件之外的任何實(shí)體訪問,甚至包括操作系統(tǒng),例如,所述操作系統(tǒng)不能被允許將包含所述緩沖器的頁面換出到盤,因?yàn)橛布斎?輸出器件必須能夠依賴于它在發(fā)送持續(xù)時(shí)間已經(jīng)被提供的存儲(chǔ)器引用。本發(fā)明的優(yōu)選實(shí)施例通過下述方式而緩解了這個(gè)限制提供一種機(jī)制,用于控制在硬件輸入/輸出器件和操作系統(tǒng)的范圍之外的多個(gè)訪問,以允許及時(shí)的重發(fā)來改善系統(tǒng)性能而不論網(wǎng)絡(luò)路徑的損壞如何。
本發(fā)明的優(yōu)選實(shí)施例具有另外的優(yōu)點(diǎn)它不需要數(shù)據(jù)的額外復(fù)制。在其中替代路徑工作的情況下,可以保持在系統(tǒng)中的數(shù)據(jù)的及時(shí)可用性,而不論在發(fā)送路徑之一上的損壞或其他延遲如何。
現(xiàn)在參照附圖僅僅作為例子來說明本發(fā)明的優(yōu)選實(shí)施例,其中圖1是表示按照本發(fā)明的優(yōu)選實(shí)施例的裝置的方框圖;圖2a表示按照本發(fā)明的優(yōu)選實(shí)施例的示例性通信流程;圖2b示出了按照本發(fā)明的優(yōu)選實(shí)施例的邏輯流程;圖3表示本發(fā)明的一個(gè)實(shí)施例的另一個(gè)優(yōu)選改進(jìn)的邏輯流程。
具體實(shí)施例方式
本發(fā)明的當(dāng)前最優(yōu)選的實(shí)施例被實(shí)現(xiàn)在分布式存儲(chǔ)控制器中,但是,本領(lǐng)域的技術(shù)人員明白本發(fā)明可以等同有益地被實(shí)現(xiàn)在其它聯(lián)網(wǎng)系統(tǒng)中,包括但不限于客戶機(jī)服務(wù)器計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)。這樣的系統(tǒng)可以是有線或無線的,并且可以包括具有本地處理能力的器件以及缺少這樣的能力的器件,諸如簡(jiǎn)單的輸入/輸出器件。
在分布式存儲(chǔ)控制器的所述優(yōu)選環(huán)境中,存儲(chǔ)器管理部件保持關(guān)于大小達(dá)到32kB的數(shù)據(jù)段的輸入/輸出緩沖器說明。所述輸入/輸出緩沖器包含從某些外部源接收的數(shù)據(jù),諸如被接收作為SCSI(小型計(jì)算機(jī)系統(tǒng)接口)寫入操作的一部分來自主機(jī)系統(tǒng)的數(shù)據(jù)。所述輸入/輸出緩沖器可以被轉(zhuǎn)換為PCI(周邊元件擴(kuò)展接口)地址的分散-集中列表,并且這些可以被用作向光纖信道適配器的數(shù)據(jù)傳送指令的一部分。
所述存儲(chǔ)器管理器不阻止客戶機(jī)構(gòu)建所述分散-集中列表,或者當(dāng)發(fā)送有效時(shí)。所述緩沖器必須保持“被固定(pinned)”(即,用于緩沖器的虛擬存儲(chǔ)器強(qiáng)制保持真實(shí)),只要它已經(jīng)被任何輸入/輸出硬件器件使用,并且還沒有以或明確成功或明確失敗來完成輸入/輸出硬件器件的發(fā)送。
圖1示出了按照本發(fā)明的優(yōu)選實(shí)施例的裝置(102),它具有可以由存儲(chǔ)器管理器(114)響應(yīng)于訪問器(106,110)的訪問請(qǐng)求而訪問的緩沖存儲(chǔ)器(104)。存儲(chǔ)器管理器(114)與計(jì)數(shù)器(108)通信。計(jì)數(shù)器(108)保持由訪問器(106,110)對(duì)于緩沖存儲(chǔ)器(104)的引用的次數(shù)的計(jì)數(shù),所述計(jì)數(shù)在每次引用時(shí)遞增,并且在完成每個(gè)訪問器的數(shù)據(jù)發(fā)送時(shí)遞減。計(jì)數(shù)器(108)還被適配來當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示。訪問器(106,110)與相應(yīng)的定時(shí)器時(shí)鐘實(shí)例(116,120)相關(guān)聯(lián)。所述定時(shí)器時(shí)鐘實(shí)例(116,120)被提供在定時(shí)器機(jī)構(gòu)(122)內(nèi),所述定時(shí)器機(jī)構(gòu)(122)被適配來對(duì)預(yù)定的最佳間隔定時(shí),該間隔小于從網(wǎng)絡(luò)返回實(shí)際錯(cuò)誤狀態(tài)所需要的“往返行程”時(shí)間。所述定時(shí)器機(jī)構(gòu)(122)還被適配來以信號(hào)表示由每個(gè)定時(shí)器時(shí)鐘實(shí)例(116,120)設(shè)置的預(yù)定最佳間隔的結(jié)束。
存儲(chǔ)器管理器(114)被適配來在寫入行為期間鎖定緩沖存儲(chǔ)器,以允許訪問器(106,110)讀取訪問緩沖存儲(chǔ)器(104),并且當(dāng)計(jì)數(shù)器(104)以信號(hào)表示所述計(jì)數(shù)已經(jīng)達(dá)到了零時(shí)向空閑緩沖器池返回所述緩沖存儲(chǔ)器。
為了跟蹤多個(gè)同時(shí)的處理,存儲(chǔ)器管理器因此保持同時(shí)訪問器的引用計(jì)數(shù)。存儲(chǔ)緩沖器的同時(shí)訪問器被允許讀取數(shù)據(jù),但是不允許寫入(改變)數(shù)據(jù)。因此,只要沒有處理嘗試改變數(shù)據(jù),多個(gè)處理可以同時(shí)有效來讀取數(shù)據(jù)源。當(dāng)每個(gè)處理完成時(shí),它“釋放”其向緩沖器的引用;所述引用計(jì)數(shù)遞減。當(dāng)最后的處理完成時(shí),所述引用計(jì)數(shù)達(dá)到零,并且緩沖器被置于空閑緩沖器池中。
因此,這個(gè)存儲(chǔ)器管理器允許多個(gè)處理來從緩沖器發(fā)送數(shù)據(jù),因?yàn)榘l(fā)送不涉及改變數(shù)據(jù)的內(nèi)容。
存儲(chǔ)器管理器允許第二或另外的處理來啟動(dòng)發(fā)送數(shù)據(jù)的同一緩沖器,構(gòu)造用于訪問緩沖器的其自己的PCI分散-集中列表,即使原始請(qǐng)求或甚至許多先前的請(qǐng)求仍然有效。
在本發(fā)明的優(yōu)選實(shí)施例中,選擇每個(gè)替代路徑以便提供合理的置信度,它可能比第一或其他較早的路徑更成功。其通過從完全分離的例如分離的接口適配器或不同的物理網(wǎng)絡(luò)的硬件元件集合中選擇替代路徑來保證??梢允褂酶郊拥臉?biāo)準(zhǔn)來進(jìn)一步選擇路徑,附加的標(biāo)準(zhǔn)諸如可用帶寬、在控制器或設(shè)備空閑期間根據(jù)查驗(yàn)(ping)響應(yīng)評(píng)估的響應(yīng)次數(shù)等。
在另一個(gè)優(yōu)選實(shí)施例中,使用間隔調(diào)諧器(126)根據(jù)由網(wǎng)絡(luò)監(jiān)視數(shù)據(jù)分析器(128)進(jìn)行的數(shù)據(jù)分析來調(diào)諧由時(shí)鐘(116,120)使用的間隔。
所述優(yōu)選實(shí)施例的存儲(chǔ)器管理器與定時(shí)器機(jī)構(gòu)組合,所述定時(shí)器機(jī)構(gòu)被適配來通過下述方式來優(yōu)化性能,從而允許從緩沖器及時(shí)地重發(fā)數(shù)據(jù)在當(dāng)可能失敗的發(fā)送的情況下對(duì)于迅速重發(fā)的需要、與對(duì)于避免過量的重發(fā)開銷的需要之間平衡。同時(shí),所述優(yōu)選實(shí)施例的計(jì)數(shù)器允許分配、“被固定”和釋放所述緩沖存儲(chǔ)器,而不防止另外的訪問器的讀取訪問。
所述優(yōu)選實(shí)施例的機(jī)制需要在發(fā)送的接收器實(shí)現(xiàn)協(xié)議,以使得它能夠處理在超時(shí)發(fā)送被延遲并且不永久丟失的情況下的數(shù)據(jù)的重復(fù)接收。這樣的方案是本領(lǐng)域公知的,并且已經(jīng)被實(shí)現(xiàn)在諸如TCP/IP的協(xié)議中,因此在此不進(jìn)一步討論它們。
轉(zhuǎn)向圖2a,其中示出了簡(jiǎn)單通信流程的例子,用于圖解按照本發(fā)明的優(yōu)選實(shí)施例的方法。
所述通信流程包括定時(shí)器、存儲(chǔ)器管理器、訪問器1和2(也示出了另外的訪問器3、4、...、n以指示可以存在多個(gè)這樣的訪問器)、以及網(wǎng)絡(luò)。根據(jù)一組時(shí)間T1、T2等來定義所述流程。所述通信流程說明了示例性情況,其中,第一訪問器超時(shí),第二訪問器被允許訪問同一緩沖器以便重發(fā)所述數(shù)據(jù)。所述兩個(gè)流程完成(或者成功地接收數(shù)據(jù)或者返回明確的錯(cuò)誤)。
在T1,第一訪問器訪問緩沖器,并且所述計(jì)數(shù)器遞增以記錄其訪問。在T2,啟動(dòng)時(shí)鐘來針對(duì)預(yù)定的最佳超時(shí)間隔遞減計(jì)數(shù)。所述緩沖器在T3被固定,并且在T4訪問器1通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。在T5,發(fā)送器1的超時(shí)間隔期滿,并且訪問器2被觸發(fā)來訪問所述緩沖器。這發(fā)生在T6,并且計(jì)數(shù)遞增以記錄所述訪問。在T7,啟動(dòng)時(shí)鐘以遞減計(jì)數(shù)到服務(wù)器2的超時(shí)。在T8,緩沖器被固定,在T9,訪問器2發(fā)送所述數(shù)據(jù)。在T10,訪問器1的發(fā)送被網(wǎng)絡(luò)確認(rèn),并且訪問器1釋放其向緩沖器的訪問。計(jì)數(shù)遞減以記錄服務(wù)器1的訪問的結(jié)束。在T12,訪問器2的發(fā)送被網(wǎng)絡(luò)確認(rèn)。在T13,訪問器1釋放其對(duì)于緩沖器的訪問,并且遞減計(jì)數(shù)。在T14,所述計(jì)數(shù)是0,并且緩沖器被返回到空閑緩沖器池。本領(lǐng)域的技術(shù)人員明白,這是單獨(dú)被建立的更簡(jiǎn)化的例子,以描述可以在所述優(yōu)選實(shí)施例內(nèi)發(fā)生的基本的一套流程。
圖2b的邏輯流程示出了按照優(yōu)選實(shí)施例的數(shù)據(jù)發(fā)送的方法,其中提供了緩沖存儲(chǔ)器(104);存儲(chǔ)器管理器(114),被適配來在寫入行為期間鎖定緩沖存儲(chǔ)器(104),以允許對(duì)于緩沖存儲(chǔ)器(104)的讀取訪問,并且向空閑緩沖存儲(chǔ)器池中返回所述緩沖存儲(chǔ)器(104);定時(shí)器機(jī)構(gòu),用于對(duì)用于重發(fā)所述數(shù)據(jù)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,并且所述定時(shí)器機(jī)構(gòu)用于以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束。
在步驟(202),進(jìn)入了按照當(dāng)前的優(yōu)選實(shí)施例的運(yùn)行時(shí)間邏輯處理。在步驟(204),第一訪問器訪問在緩沖存儲(chǔ)器中的數(shù)據(jù)以發(fā)送。在步驟(206),遞增計(jì)數(shù)以記錄由第一訪問器對(duì)于緩沖存儲(chǔ)器(104)的訪問,并且在步驟(208),將超時(shí)時(shí)鐘設(shè)置為用于重發(fā)數(shù)據(jù)的預(yù)定最佳間隔,所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的往返行程時(shí)間。
在步驟(212),系統(tǒng)等待來自網(wǎng)絡(luò)的已經(jīng)完成發(fā)送(來自網(wǎng)絡(luò)的不論是成功地接收了發(fā)送還是明確的失敗的信號(hào))的通知,或者超時(shí)間隔的期滿。在步驟214,執(zhí)行對(duì)于超時(shí)的測(cè)試,并且如果在超時(shí)間隔期滿之前未接收到任何完成,則所述邏輯啟動(dòng)步驟(216),其中,時(shí)鐘停止。在步驟(218),第二或另外的訪問器訪問在同一緩沖存儲(chǔ)器中的相同數(shù)據(jù)以通過網(wǎng)絡(luò)重發(fā)。在步驟(220),第二或另一個(gè)訪問器選擇用于發(fā)送數(shù)據(jù)的替代路徑,如果可能,所述選擇步驟被適配來選擇完整的一組不同路徑元素,如果不可能,則選擇盡可能多的替代路徑元素。每個(gè)非第一訪問器嘗試避免使用由任何先前的訪問器使用的路徑元素。
還可以通過優(yōu)化邏輯元件來選擇所述替代路徑,以選擇例如最小發(fā)送成本的路徑或最高性能的路徑,或可能提供最佳服務(wù)質(zhì)量保證的路徑。這樣的服務(wù)質(zhì)量保證是在網(wǎng)絡(luò)通信領(lǐng)域中公知的,不必在此說明。在當(dāng)前的優(yōu)選實(shí)施例中,根據(jù)網(wǎng)絡(luò)性能監(jiān)視統(tǒng)計(jì)的分析來選擇所述替代路徑。
邏輯流程進(jìn)行到步驟(206),其中,計(jì)數(shù)遞增以記錄由第二或另一個(gè)訪問器訪問緩沖存儲(chǔ)器的步驟,并且繼續(xù)如上所述設(shè)置時(shí)鐘等。
在步驟(214)的任何迭代,如果存在對(duì)于這樣的測(cè)試的肯定響應(yīng),所述測(cè)試指示在其相應(yīng)的發(fā)送的超時(shí)期滿之前已經(jīng)有完成(不論是成功地接收了發(fā)送還是來自網(wǎng)絡(luò)的明確的失敗的信號(hào)),則時(shí)鐘在步驟(222)停止,并且計(jì)數(shù)在步驟(224)遞減。在步驟(226),執(zhí)行另一個(gè)測(cè)試以確定是否所述計(jì)數(shù)已經(jīng)達(dá)到了零。如果它還沒有達(dá)到零,則邏輯處理的這個(gè)部分返回要由下一個(gè)完成觸發(fā)的步驟(228)。如果在任何迭代,確定所述計(jì)數(shù)已經(jīng)達(dá)到零,則存儲(chǔ)器管理器(114)釋放緩沖存儲(chǔ)器(104)。
現(xiàn)在轉(zhuǎn)向圖3,示出了所述示例性實(shí)施例的另外的優(yōu)選的改進(jìn)。圖3的邏輯處理在步驟(302)開始,并且在步驟(304)接收網(wǎng)絡(luò)監(jiān)視數(shù)據(jù)。由本領(lǐng)域內(nèi)公知的多種網(wǎng)絡(luò)監(jiān)視器件、系統(tǒng)或計(jì)算機(jī)程序的任何一個(gè)來提供這樣的數(shù)據(jù)。由此,在步驟(306)評(píng)估可以預(yù)期的往返行程響應(yīng)時(shí)間,并且在步驟(308),檢查已經(jīng)被設(shè)置的任何服務(wù)質(zhì)量參數(shù)。根據(jù)這些輸入,在步驟(310),設(shè)置最佳重發(fā)超時(shí)間隔。在步驟(312),處理的這個(gè)部分結(jié)束。本領(lǐng)域的技術(shù)人員可以明白,這個(gè)處理可以是迭代的,并且可以按照從網(wǎng)絡(luò)以及從服務(wù)質(zhì)量參數(shù)的任何設(shè)置器接收的最新數(shù)據(jù),以間隔被執(zhí)行,來重新設(shè)置最佳間隔。
權(quán)利要求
1.一種用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;以及所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
2.按照權(quán)利要求1的裝置,還包括引用計(jì)數(shù)器,用于保持由所述第一訪問器和所述第二訪問器對(duì)于所述緩沖器引用的計(jì)數(shù),所述引用計(jì)數(shù)器在所述第一訪問器和所述第二訪問器的每次所述引用時(shí)遞增,并且在所述第一訪問器和所述第二訪問器的每次數(shù)據(jù)發(fā)送完成時(shí)遞減,所述引用計(jì)數(shù)器當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示;以及存儲(chǔ)器管理器,被適配來允許由所述第一訪問器和所述第二訪問器讀取訪問所述緩沖器,并且響應(yīng)于當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)的所述引用計(jì)數(shù)器的信號(hào)表示而將所述緩沖器返回到空閑緩沖器池。
3.按照權(quán)利要求1的裝置,還包括分析機(jī)構(gòu),用于確定重發(fā)所述數(shù)據(jù)的所述最佳間隔;以及調(diào)諧機(jī)構(gòu),用于將所述定時(shí)機(jī)構(gòu)調(diào)諧到用于重發(fā)所述數(shù)據(jù)的所述最佳間隔。
4.按照權(quán)利要求3的裝置,其中,所述分析機(jī)構(gòu)可操作來使用網(wǎng)絡(luò)監(jiān)視數(shù)據(jù),以確定重發(fā)所述數(shù)據(jù)的所述最佳間隔。
5.一種存儲(chǔ)控制器,包括用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;以及所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
6.按照權(quán)利要求5的存儲(chǔ)控制器,還包括引用計(jì)數(shù)器,用于保持由所述第一訪問器和所述第二訪問器對(duì)于所述緩沖器引用的計(jì)數(shù),所述引用計(jì)數(shù)器在所述第一訪問器和所述第二訪問器的每次所述引用時(shí)遞增,并且在所述第一訪問器和所述第二訪問器的每次數(shù)據(jù)發(fā)送完成時(shí)遞減,所述引用計(jì)數(shù)器當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示;以及存儲(chǔ)器管理器,被適配來允許由所述第一訪問器和所述第二訪問器讀取訪問所述緩沖器,并且響應(yīng)于當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)的所述引用計(jì)數(shù)器的信號(hào)表示而將所述緩沖器返回到空閑緩沖器池。
7.按照權(quán)利要求5的存儲(chǔ)控制器,還包括分析機(jī)構(gòu),用于確定重發(fā)所述數(shù)據(jù)的所述最佳間隔;以及調(diào)諧機(jī)構(gòu),用于將所述定時(shí)機(jī)構(gòu)調(diào)諧到用于重發(fā)所述數(shù)據(jù)的所述最佳間隔。
8.一種網(wǎng)絡(luò)設(shè)備,包括用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;緩沖器的第一訪問器,用于訪問第一發(fā)送的數(shù)據(jù),并且啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;以及所述緩沖器的第二訪問器,用于響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問用于重發(fā)的所述數(shù)據(jù),并且至少啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘,所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
9.一種用于在具有多個(gè)路徑的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的方法,包括提供緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);提供定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;由第一訪問器訪問緩沖器中的數(shù)據(jù)以進(jìn)行第一發(fā)送;啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;由第二訪問器響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問緩沖器中的數(shù)據(jù);由所述第二訪問器重發(fā)所述數(shù)據(jù);啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘;由所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
10.一種計(jì)算機(jī)程序產(chǎn)品,被可觸地包含在計(jì)算機(jī)可讀介質(zhì)中,包括計(jì)算機(jī)程序代碼裝置,用于當(dāng)被安裝到計(jì)算機(jī)系統(tǒng)中并被執(zhí)行時(shí),執(zhí)行步驟提供緩沖器,用于包含將要發(fā)送到接收器的數(shù)據(jù)項(xiàng);提供定時(shí)器機(jī)構(gòu),用于對(duì)向所述接收器重發(fā)所述數(shù)據(jù)項(xiàng)的預(yù)定最佳間隔定時(shí),所述間隔小于從所述網(wǎng)絡(luò)接收任何錯(cuò)誤信號(hào)所需要的間隔,所述定時(shí)器機(jī)構(gòu)還以信號(hào)表示所述預(yù)定最佳間隔的結(jié)束;由第一訪問器訪問緩沖器中的數(shù)據(jù)以進(jìn)行第一發(fā)送;啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第一超時(shí)時(shí)鐘;由第二訪問器響應(yīng)于所述定時(shí)器機(jī)構(gòu)的所述信號(hào)表示而訪問緩沖器中的數(shù)據(jù);由所述第二訪問器重發(fā)所述數(shù)據(jù);啟動(dòng)被設(shè)置到在所述定時(shí)器機(jī)構(gòu)內(nèi)的所述間隔的第二超時(shí)時(shí)鐘;由所述第二訪問器嘗試選擇路徑以發(fā)送所述數(shù)據(jù),避免使用由所述第一訪問器使用的路徑元素。
全文摘要
一種用于在網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)發(fā)送的裝置,包括緩沖器;定時(shí)器機(jī)構(gòu),用于對(duì)重發(fā)數(shù)據(jù)的最佳間隔(小于往返行程錯(cuò)誤響應(yīng)延遲)定時(shí)。第一訪問器訪問用于發(fā)送的緩沖器中的數(shù)據(jù),并且啟動(dòng)第一超時(shí)時(shí)鐘。緩沖器的第二或另外的訪問器響應(yīng)于超時(shí)而訪問所述數(shù)據(jù),啟動(dòng)超時(shí)時(shí)鐘,并且嘗試在路徑上發(fā)送所述數(shù)據(jù),而避免由先前的訪問器使用的路徑元素。計(jì)數(shù)器遞增和遞減訪問器對(duì)于緩沖器引用的計(jì)數(shù),并且當(dāng)所述計(jì)數(shù)達(dá)到零時(shí)以信號(hào)表示。存儲(chǔ)器管理器響應(yīng)于引用計(jì)數(shù)器以信號(hào)表示計(jì)數(shù)已經(jīng)達(dá)到零而將所述緩沖器返回空閑緩沖器池??梢允褂梅治鰴C(jī)構(gòu)來確定最佳的間隔,并且調(diào)諧定時(shí)器機(jī)構(gòu)。
文檔編號(hào)H04L12/56GK1742468SQ200380109225
公開日2006年3月1日 申請(qǐng)日期2003年10月28日 優(yōu)先權(quán)日2003年1月30日
發(fā)明者卡洛斯·F·弗恩特, 羅伯特·M·瓊斯, 威廉·J·帕辛厄姆, 威廉·J·斯凱爾斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司