專利名稱:用于客戶-服務(wù)器通信系統(tǒng)的事務(wù)加速器的制作方法
相關(guān)應(yīng)用參照美國專利申請系列10/285,330,名為“在存儲和傳輸中數(shù)據(jù)壓縮的基于內(nèi)容分段方案,包括分級分段表示”[代理記錄摘要號021647-000200US](在下文中“McCanne II”)和本申請同一日期申請,在此為所有目的結(jié)合和參考。
背景技術(shù):
本發(fā)明通常涉及用于通過有限的帶寬信道有效移動數(shù)據(jù)的系統(tǒng),尤其是涉及使可用數(shù)據(jù)在有限信道上響應(yīng)對數(shù)據(jù)請求比數(shù)據(jù)未處理就發(fā)送來響應(yīng)請求更快。
許多在高速連接上運(yùn)行良好的應(yīng)用和系統(tǒng)需要適合于在較低速連接上運(yùn)行。例如,在局域網(wǎng)(LAN)上操作一個(gè)文件系統(tǒng)工作良好,但常常需要在諸如LAN的高速鏈路上訪問文件,不適合于從需要訪問文件的客戶和服務(wù)文件的文件服務(wù)器沿著整個(gè)路徑訪問。對其它網(wǎng)絡(luò)服務(wù),諸如e-mail服務(wù)、計(jì)算服務(wù)、多媒體、食品會議、數(shù)據(jù)庫查詢、辦公協(xié)作等等,類似的設(shè)計(jì)問題同樣存在。
例如,在聯(lián)網(wǎng)文件系統(tǒng)中,在一個(gè)地方被應(yīng)用程序使用的文件可能被存儲在另外一個(gè)地方。在一個(gè)典型的情景中,大量用戶在聯(lián)網(wǎng)的計(jì)算機(jī)上操作,貫串一個(gè)組織和/或地理區(qū)域共享一個(gè)文件或存儲在一個(gè)文件系統(tǒng)中的文件組。文件系統(tǒng)可能接近用戶中的一個(gè),但典型的它遠(yuǎn)離大多數(shù)的用戶,但用戶常常期望文件出現(xiàn)在靠近他們的站點(diǎn)。
正如在此使用的,“客戶”通常指的是可以提出對數(shù)據(jù)或動作的請求的計(jì)算機(jī)、計(jì)算設(shè)備、外圍設(shè)備、電子設(shè)備或類似的,而“服務(wù)器”通常指的是響應(yīng)由一個(gè)或更多客戶提出的對數(shù)據(jù)或動作的請求而操作的計(jì)算機(jī)、計(jì)算設(shè)備、外圍設(shè)備、電子設(shè)備或類似的。
請求可以是針對計(jì)算機(jī)、計(jì)算設(shè)備、外圍設(shè)備、電子設(shè)備或類似設(shè)備的操作,和/或針對正在由客戶執(zhí)行或控制的應(yīng)用程序。一個(gè)例子是計(jì)算機(jī)運(yùn)行一個(gè)需要存儲在計(jì)算機(jī)外部的文檔的字處理程序,它使用網(wǎng)絡(luò)文件系統(tǒng)客戶在網(wǎng)絡(luò)上對文件服務(wù)器發(fā)出請求。另外一個(gè)例子是對直接在服務(wù)器的動作的請求它本身執(zhí)行一個(gè)動作,諸如打印服務(wù)器、處理服務(wù)器、控制服務(wù)器、設(shè)備接口服務(wù)器和I/O(輸入/輸出)服務(wù)器等等。
請求常常通過提供請求數(shù)據(jù)或執(zhí)行請求動作的響應(yīng)消息,或指示無法服務(wù)此請求的響應(yīng)消息,諸如錯(cuò)誤消息或失敗或不正確請求的監(jiān)控系統(tǒng)的警報(bào)來滿足。服務(wù)器還可能阻塞請求、傳送請求、變換請求或類似的,然后響應(yīng)請求或不響應(yīng)請求。
在有些情況,通常當(dāng)作服務(wù)器的設(shè)備可以擔(dān)當(dāng)客戶并提出請求,通常當(dāng)作客戶的設(shè)備可以擔(dān)當(dāng)服務(wù)器并響應(yīng)請求。此外,單個(gè)設(shè)備對于其它服務(wù)器/客戶或它自己來說,可以既是服務(wù)器也是客戶。例如,桌上型計(jì)算機(jī)可以運(yùn)行數(shù)據(jù)庫客戶和針對數(shù)據(jù)庫客戶的用戶界面。如果桌上型計(jì)算機(jī)用戶操作數(shù)據(jù)庫客戶,使它提出數(shù)據(jù)請求,則數(shù)據(jù)庫客戶將發(fā)布這個(gè)請求,大概到數(shù)據(jù)庫服務(wù)器。如果數(shù)據(jù)庫服務(wù)器正在相同桌上型計(jì)算機(jī)上運(yùn)行,桌上型計(jì)算機(jī)將有效地提出請求給它自己。應(yīng)該可以理解的是,如在此所用的,客戶和服務(wù)器常常是不同的且被網(wǎng)絡(luò)、物理距離、安全測量和其它障礙分離,但那些都不需要客戶和服務(wù)器的特征。
在有些情況下,客戶和服務(wù)器不是必須唯一的。例如,在點(diǎn)對點(diǎn)網(wǎng)絡(luò)中,一個(gè)點(diǎn)可能對另一個(gè)點(diǎn)請求,但也可能提供對那個(gè)點(diǎn)的響應(yīng)。因此,應(yīng)該可以理解的是,當(dāng)術(shù)語“客戶”和“服務(wù)器”典型地在此使用分別作為提出“請求”和提供“響應(yīng)”的角色的時(shí)候,那些元素可能扮演其它不清晰地通過客戶-服務(wù)器范例描繪的角色。
通常,請求-響應(yīng)環(huán)可以被稱為“事務(wù)”,對于一個(gè)給定的事務(wù),有些物體(物理的、邏輯的和/或虛擬的)可以被說成是那個(gè)事務(wù)的“客戶”,有些其它物體(物理的、邏輯的和/或虛擬的)可以被說成是那個(gè)事務(wù)的“服務(wù)器”。
通??蛻?服務(wù)器事務(wù)經(jīng)過分組網(wǎng)絡(luò)在客戶和服務(wù)器之間直接流動,但在有些環(huán)境中,這些事務(wù)可以通過稱為“代理”的傳輸層或應(yīng)用層設(shè)備被截取和轉(zhuǎn)發(fā)。在這種情況下,代理是客戶連接的終點(diǎn)和另一個(gè)連接到代表客戶的服務(wù)器的起點(diǎn)??商鎿Q地,代理連接到一個(gè)或更多依次連接到服務(wù)器的其它代理。每個(gè)代理可能當(dāng)事務(wù)從客戶流到服務(wù)器時(shí),轉(zhuǎn)發(fā)、修改或不同的變換事務(wù),反之亦然。代理的例子包括(1)Web代理,其通過高速緩存或通過控制訪問服務(wù)器加強(qiáng)安全來加強(qiáng)性能,(2)郵件中繼,其轉(zhuǎn)發(fā)來自客戶的郵件到其它郵件服務(wù)器,(3)DNS中繼,其隱藏DNS名字解析等。
如在此使用的,術(shù)語“近”、“遠(yuǎn)”、“本地”和“遠(yuǎn)程”可能指的是物理距離,但更典型的是他們指的是有效距離。二臺計(jì)算機(jī)、計(jì)算設(shè)備、服務(wù)器、客戶、外圍設(shè)備等之間的有效距離至少近似于二臺計(jì)算機(jī)之間獲得數(shù)據(jù)困難的測量。例如,文件數(shù)據(jù)存儲在直接連接到使用這個(gè)文件數(shù)據(jù)的計(jì)算機(jī)處理器的硬盤驅(qū)動器上,通過專用高速總線連接,硬盤驅(qū)動器和計(jì)算機(jī)處理器彼此有效的“近”,但硬盤驅(qū)動器和計(jì)算機(jī)處理器之間的業(yè)務(wù)在一個(gè)低的總線上,具有更多的可能截住數(shù)據(jù)的插入事件,硬盤驅(qū)動器和計(jì)算機(jī)處理器被說成是更遠(yuǎn)地分離。
較大和較小的物理距離不需要對應(yīng)較大和較小的有效距離。例如,被高質(zhì)量和高帶寬光纖英里分離的文件服務(wù)器和桌上型計(jì)算機(jī),與被幾英尺分離和通過嘈雜環(huán)境中無線連接耦合的文件服務(wù)器和桌上型計(jì)算機(jī)相比,可能具有更小的有效距離。
通常,在有效距離大的地方,需要更多的努力來造成較短有效距離的效果。發(fā)展了許多方法來造成這個(gè)效果。例如,當(dāng)由于有限的帶寬增加有效距離時(shí),使用壓縮或通過高速緩存來改善這個(gè)限制。壓縮是使用較少比特來表示大量數(shù)據(jù)比特的處理,以這樣的方式作,在大多數(shù)情況下,可以從壓縮處理的反相來恢復(fù)原始比特或原始比特的足夠近似值。高速緩存是存儲先前發(fā)送結(jié)果的處理,以期望用戶將再次請求結(jié)果,并比結(jié)果來自原始提供者更快速地從高速緩沖存儲器接收響應(yīng)。
壓縮使得有限帶寬更有效使用,且可能導(dǎo)致更少的等待時(shí)間,但在有些情況下,沒有等待時(shí)間改善發(fā)生。關(guān)于客戶-服務(wù)器事務(wù)的等待時(shí)間,是當(dāng)提出數(shù)據(jù)請求和請求數(shù)據(jù)被接收的時(shí)間之間的延遲的測量。在有些情況下,如果在提出請求之后壓縮數(shù)據(jù)需要時(shí)間,在接收之后解壓縮數(shù)據(jù)需要時(shí)間,則壓縮可能增加等待時(shí)間。如果在進(jìn)行請求之前的時(shí)間之前壓縮數(shù)據(jù),則可以改善,但如果數(shù)據(jù)沒必要適合壓縮時(shí)間之前,或如果提供請求的數(shù)據(jù)量相對于所使用的類似數(shù)據(jù)量來說太大,則沒有可行性。
高速緩存還提供有些幫助來減小有效距離,但在有些情況它幫助不了這么多。例如,在單個(gè)處理器正在從它控制的存儲器檢索數(shù)據(jù),并以重復(fù)的方式這樣作的地方,可能是這樣的情況,當(dāng)從存儲器讀取處理器指令時(shí),高速緩存可以大大加快處理器的任務(wù)。在典型地高速緩沖存儲器設(shè)置中,請求者請求來自有些存儲器的數(shù)據(jù),設(shè)備等的數(shù)據(jù),結(jié)果提供給請求者,并存儲在比原始設(shè)備提供數(shù)據(jù)具有更快響應(yīng)時(shí)間的高速緩存存儲器中。然后,當(dāng)請求者再次請求這個(gè)數(shù)據(jù)時(shí),如果它仍然在高速緩存存儲器中,則高速緩存存儲器可以在原始設(shè)備能夠返回?cái)?shù)據(jù)之前,響應(yīng)請求返回?cái)?shù)據(jù),并快速滿足請求。
高速緩存有它的難點(diǎn),其中之一是數(shù)據(jù)可能在源頭改變,高速緩存存儲器將提供“陳舊”數(shù)據(jù)給請求者。這是“高速緩存一致性”問題。高速緩存的另一個(gè)問題是數(shù)據(jù)的原始源頭可能想跟蹤數(shù)據(jù)的使用,將不知道來自高速緩存存儲器服務(wù)而非來自原始源頭。例如,Web服務(wù)器在遠(yuǎn)離運(yùn)行“指向”Web服務(wù)器的Web瀏覽器的大量計(jì)算機(jī)的地方,Web瀏覽器可能高速緩存來自它們?yōu)g覽的站點(diǎn)的Web頁面,來避免再次下載Web頁面發(fā)生的延遲。雖然這可以改善很多情況下的性能,并降低Web服務(wù)器的負(fù)荷,但是Web服務(wù)器操作員可能試圖跟蹤“頁面瀏覽”的總數(shù)量,但是將對由高速緩存存儲器服務(wù)的那些不知情。在有些情況下,因特網(wǎng)服務(wù)提供者可能操作遠(yuǎn)離瀏覽器的高速緩存存儲器,并為大量瀏覽器提供高速緩存的內(nèi)容,這樣Web服務(wù)器操作員可能甚至完全錯(cuò)過唯一的用戶。
另外,在下面Web高速緩存的機(jī)制為原始數(shù)據(jù)和高速緩存的數(shù)據(jù)之間的一致性僅僅提供自由的模式。通常,基于與原始數(shù)據(jù)的變化無關(guān)的事務(wù)中的直觀推斷或暗示,Web數(shù)據(jù)被高速緩存一段時(shí)間。這意味高速緩存Web數(shù)據(jù)有時(shí)變得和原始服務(wù)器不一致,且這樣的不一致被Web站點(diǎn)操作者、服務(wù)提供者和用戶簡單容忍作為合理的性能平衡。不幸地,這個(gè)自由一致性的模式完全不適合于通常的如同聯(lián)網(wǎng)文件系統(tǒng)的客戶-服務(wù)器通信。當(dāng)客戶與文件服務(wù)器相互作用時(shí),一致性模式必須全部正確,并精確地確保使用文件系統(tǒng)的應(yīng)用程序的正確操作。
網(wǎng)絡(luò)響應(yīng)的有些解決方案處理在文件系統(tǒng)或網(wǎng)絡(luò)層的問題。一個(gè)建議的解決方案是低帶寬網(wǎng)絡(luò)文件系統(tǒng)的使用,諸如在操作系統(tǒng)原理(SOSP′01)上的18th ACM研討會,pp.174-187(Chateau Lake Louise,Banff,Canada,2001年10月)(ACM出版社在ACM SIGOPS操作系統(tǒng)回顧的vol.35,5中)的會議記錄中,Muthitacharoen,A.,et al“的帶寬網(wǎng)絡(luò)文件系統(tǒng)”中所描述的。在那個(gè)稱為LBFS的系統(tǒng)中,客戶采用“整個(gè)文件”高速緩存,由此在文件打開操作上,客戶從服務(wù)器取來文件中所有的數(shù)據(jù),然后操作在本地高速緩存文件數(shù)據(jù)的拷貝。如果客戶對文件進(jìn)行了改變,則當(dāng)客戶關(guān)閉文件時(shí),那些改變被傳送回服務(wù)器。為了最優(yōu)化這些傳輸,LBFS使用無用信息替換文件片,收件人使用與存儲本地文件相關(guān)聯(lián)的無用信息來解析無用信息到文件的原始部分。這樣的系統(tǒng)由于他們受文件系統(tǒng)的束縛,所以有限制,且通常要求改善客戶和服務(wù)器之間響應(yīng)的修改。此外,無用信息機(jī)制在相對大(平均)大小的信息塊上運(yùn)行,當(dāng)文件受有細(xì)密紋理的變化超時(shí)支配時(shí),其工作得很差。最后,LBFS被設(shè)計(jì)得密切受網(wǎng)絡(luò)文件系統(tǒng)協(xié)議的束縛。不能優(yōu)化或加速其它類型的客戶-服務(wù)器事務(wù),例如e-mail、Web、流媒體等等。
另一個(gè)提議的解決方案在ACM SIGCOMM(2000八月)的會議記錄中,Spring,N.,et al,“用于消除冗余網(wǎng)絡(luò)業(yè)務(wù)的協(xié)議獨(dú)立技術(shù)”被提出。如在那個(gè)參考中所描述的,類似于最近發(fā)送的分組的網(wǎng)絡(luò)分組可以通過標(biāo)識重復(fù)字符串和使用標(biāo)記替換重復(fù)字符串來減小大小,標(biāo)記由在網(wǎng)絡(luò)任一端的共享分組高速緩存存儲器解析。這個(gè)方法,雖然有利,但具有大量的缺點(diǎn)。因?yàn)樗趥€(gè)別的分組上單獨(dú)運(yùn)行,所以增加的性能增益被分組凈負(fù)荷大小對分組報(bào)頭的比例限制(因?yàn)榉纸M報(bào)頭通常不能使用上述技術(shù)壓縮)。同樣,因?yàn)闄C(jī)制是在分組等級實(shí)現(xiàn),所以它僅僅應(yīng)用到通信路徑的二端已經(jīng)配置設(shè)備的網(wǎng)絡(luò)區(qū)域。這個(gè)結(jié)構(gòu)難于實(shí)現(xiàn),且在有些環(huán)境中可能不切實(shí)際。同樣,通過使用具有先進(jìn)先出替換策略的相對小的基于高速緩沖的存儲器,來高速緩存網(wǎng)絡(luò)分組(例如,沒有大磁盤備份存儲的幫助),此方法的功效被限制于檢測和使用被及時(shí)本地化的通信冗余。最后,因?yàn)檫@個(gè)方法沒有任何束縛于產(chǎn)生(冗余)的網(wǎng)絡(luò)業(yè)務(wù)的應(yīng)用或服務(wù),所以不能預(yù)期數(shù)據(jù)被使用的地方和遠(yuǎn)端高速緩沖存儲器中數(shù)據(jù)提供網(wǎng)絡(luò)業(yè)務(wù)潛在更加加速和優(yōu)化的前一階段。
在跨越到廣域網(wǎng)絡(luò)操作的企業(yè)中,應(yīng)對上述的問題做了許多欠理想的補(bǔ)丁。例如,有些企業(yè)采取購買越來越多的帶寬來保持響應(yīng)。組織中的個(gè)體將試圖通過求助于特別的e-mail協(xié)作來本地解決(其可能使一個(gè)文件更加容易被一個(gè)用戶取得,但增加了版本控制問題和增加了整個(gè)網(wǎng)絡(luò)的負(fù)荷)。其它解決問題的試圖可能包括手工創(chuàng)建數(shù)據(jù)拷貝來運(yùn)行或推進(jìn)只讀復(fù)制品給遠(yuǎn)程服務(wù)器。
考慮到上面的問題和目前解決方案的限制,可以對如何在網(wǎng)絡(luò)上為事務(wù)傳送數(shù)據(jù)進(jìn)行改善。
發(fā)明簡述在具有事務(wù)加速器的網(wǎng)絡(luò)實(shí)施例中,對于加速事務(wù)來說,客戶直接向客戶端事務(wù)處理器提出請求,其轉(zhuǎn)送這個(gè)請求給服務(wù)器端事務(wù)處理器,服務(wù)器端處理器依次提供請求或它的表示給用于響應(yīng)請求的服務(wù)器。服務(wù)器發(fā)送響應(yīng)給服務(wù)器端事務(wù)處理器,其轉(zhuǎn)發(fā)響應(yīng)給客戶端事務(wù)處理器,客戶端事務(wù)處理器依次提供響應(yīng)給客戶。通過在服務(wù)器端事務(wù)處理器可存取的永久性段存儲器中,和客戶端事務(wù)處理器可存取的永久性段處理器中存儲用于事務(wù)的數(shù)據(jù)段,事務(wù)可以被事務(wù)處理器加速。當(dāng)數(shù)據(jù)要在事務(wù)處理器之間發(fā)送時(shí),發(fā)送事務(wù)處理器比較要發(fā)送的數(shù)據(jù)段和存儲在它永久性段存儲器中的段,并參照永久性段存儲器中與所替代的數(shù)據(jù)段匹配或近似匹配的條目,來替代數(shù)據(jù)段。將被發(fā)送的數(shù)據(jù)可能從客戶發(fā)送到服務(wù)器、從服務(wù)器發(fā)送到客戶、從一個(gè)點(diǎn)發(fā)送到一個(gè)點(diǎn)等等。然后接收事務(wù)存儲器通過用其永久性段存儲器的對應(yīng)段數(shù)據(jù)來替換段參考,而重構(gòu)發(fā)送數(shù)據(jù)。如果段是指向,但不存在于接收器的永久性段存儲器中,則接收方可以經(jīng)由端信道或經(jīng)由用于發(fā)送參考到段的鏈路來發(fā)布對來自發(fā)送方的丟失段的請求。在每個(gè)端的永久性段存儲器可能填充著可能被重復(fù)的段,這樣將常常發(fā)生段替換,結(jié)果在網(wǎng)絡(luò)上使用更少的帶寬,從而加速了事務(wù)。
事務(wù)加速器可以是專用的,諸如客戶端事務(wù)加速器僅僅與一個(gè)客戶交互,服務(wù)器端事務(wù)加速器僅僅與一個(gè)服務(wù)器交互,但事務(wù)加速器還可能處理超過一個(gè)的客戶和/或超過一個(gè)的服務(wù)器。在處理多個(gè)事務(wù)的地方,不是針對同樣的客戶和服務(wù)器,就是遍及可能不同的客戶和可能不同的服務(wù)器,存儲在永久性段存儲器的段可以涉及不同的事務(wù)、不同的客戶和/或不同的服務(wù)器。例如,如果事務(wù)加速器遇到數(shù)據(jù)段,并存儲它到處理給定事務(wù)中它的永久性段存儲器,數(shù)據(jù)段的參考可能在不同的事務(wù)中再次被使用,涉及不同客戶或相同客戶和不同服務(wù)器或相同服務(wù)器,或涉及整個(gè)不同客戶-服務(wù)器應(yīng)用。
在有些實(shí)施例中,事務(wù)加速器的永久性段存儲器預(yù)先填充了來自其它事務(wù)加速器的段數(shù)據(jù),這樣當(dāng)事務(wù)發(fā)生時(shí),更多的段可在發(fā)送端被用于替換參考,且更多段可用于在接收端從參考重構(gòu)。
考慮到下面的詳細(xì)描述和較佳實(shí)施例,本發(fā)明的其它特點(diǎn)和優(yōu)點(diǎn)將變得明顯。
附圖簡述
圖1是根據(jù)本發(fā)明第一實(shí)施例的聯(lián)網(wǎng)客戶-服務(wù)器系統(tǒng)的方框圖。
圖2是圖1系統(tǒng)的方框圖,更詳細(xì)地顯示客戶端事務(wù)加速器(“CTA”)和服務(wù)器端事務(wù)加速器(“STA”),考慮到空間條件,整個(gè)系統(tǒng)稍微簡略顯示。
圖3是可用于圖1所示系統(tǒng)的永久性段存儲器(“PSS”)的實(shí)施例中數(shù)據(jù)組織的圖示說明。
圖4是可用于圖2的事務(wù)變換器(“TT”)的編碼器的方框圖。
圖5是可用于圖2的反相事務(wù)變換器(TT-1)的解碼器的方框圖。
圖6是通過參考數(shù)據(jù)段來分割和表示輸入數(shù)據(jù)的編碼處理的圖示說明。
圖7是圖示說明用于解碼從圖4的編碼器輸出的數(shù)據(jù)的處理過程的流程圖。
圖8是實(shí)現(xiàn)事務(wù)加速器并使用預(yù)發(fā)式段分配器(“PSD”)的聯(lián)網(wǎng)系統(tǒng)的方框圖。
圖9是根據(jù)本發(fā)明實(shí)施例的聯(lián)網(wǎng)點(diǎn)對點(diǎn)系統(tǒng)的方框圖。
圖10是實(shí)現(xiàn)事務(wù)加速器且客戶端事務(wù)加速器集成在客戶里的聯(lián)網(wǎng)系統(tǒng)的方框圖。
圖11是實(shí)現(xiàn)事務(wù)加速器且服務(wù)器端事務(wù)加速器集成在服務(wù)器里的聯(lián)網(wǎng)系統(tǒng)的方框圖。
圖12是實(shí)現(xiàn)事務(wù)加速器且PSS在大量事務(wù)加速器中共享的聯(lián)網(wǎng)系統(tǒng)的方框圖。
圖13是顯示多點(diǎn)傳送被用于更新和讀取共享PSS的圖12的系統(tǒng)的多點(diǎn)傳送實(shí)現(xiàn)的方框圖。
圖14是顯示大量本地耦合的客戶經(jīng)由LAN到WAN的多點(diǎn)傳送實(shí)現(xiàn)的方框圖。
圖15是實(shí)現(xiàn)事務(wù)加速器且網(wǎng)絡(luò)處理多種協(xié)議和服務(wù)的聯(lián)網(wǎng)系統(tǒng)的方框圖。
發(fā)明詳述本發(fā)明有許多應(yīng)用,閱讀這個(gè)說明后將變得明顯。在描述根據(jù)本發(fā)明的事務(wù)加速器系統(tǒng)實(shí)施例中,僅僅描述少數(shù)幾個(gè)可能的變化。本領(lǐng)域的普通技術(shù)人員的一個(gè)將明白其它應(yīng)用和變換,所以發(fā)明將不僅于例子所說明的,而是結(jié)合附加的權(quán)利要求書。
事務(wù)作為在這里使用的術(shù)語,是導(dǎo)致數(shù)據(jù)從一個(gè)地方移動到另一個(gè)地方的一組邏輯步驟。在有些情況下,被移動的數(shù)據(jù)存在于它與事務(wù)無關(guān)的發(fā)端,諸如文件存在服務(wù)器的磁盤中的文件讀取事務(wù)。在其它情況下,在發(fā)端產(chǎn)生用于事務(wù)的數(shù)據(jù),諸如響應(yīng)計(jì)算請求、查詢等等。典型地,啟動事務(wù)的計(jì)算機(jī)、計(jì)算設(shè)備等等稱為“客戶”,響應(yīng)或被期望響應(yīng)的計(jì)算機(jī)、計(jì)算設(shè)備等等稱為“服務(wù)器”。數(shù)據(jù)可以以任一方向流動。例如,文件系統(tǒng)客戶可以通過請求文件讀取來啟動事務(wù)。相應(yīng)數(shù)據(jù)將從響應(yīng)此請求的服務(wù)器返回,所以在這個(gè)情況下,大多數(shù)數(shù)據(jù)從服務(wù)器流動到客戶。然而,在客戶啟動文件寫入事務(wù)的地方,大量數(shù)據(jù)從客戶流動到服務(wù)器,或者作為啟動請求的一部分或作為后續(xù)消息。事務(wù)可以在多個(gè)部分中,但在簡單事務(wù)中,客戶發(fā)送請求(數(shù)據(jù)、詳細(xì)、信號等等明確地是請求或是請求的表示或指示)給服務(wù)器,服務(wù)器使用響應(yīng)(數(shù)據(jù)、詳細(xì)、信號等等明確地是響應(yīng)或請響應(yīng)表示或指示)來響應(yīng)給客戶。例如更復(fù)雜的事務(wù)可能包括一些服務(wù)器需要用來解釋請求、驗(yàn)證客戶接收請求的響應(yīng)的權(quán)限、獲得用于準(zhǔn)備響應(yīng)所需的附加信息等等的來來回回。
在此,客戶和服務(wù)器之間連接的典型例子是分組網(wǎng)絡(luò),但其它連接方法也可能被使用,諸如點(diǎn)對點(diǎn)有線或無線信道。將歸納這些組件,在此稱為具有假設(shè)節(jié)點(diǎn)之間通信的信道的“節(jié)點(diǎn)”。
事務(wù)可能首先由客戶在一個(gè)節(jié)點(diǎn)直接對在另一個(gè)節(jié)點(diǎn)的服務(wù)器發(fā)出一個(gè)用于文件數(shù)據(jù)的請求開始,隨后有包含所請求的文件數(shù)據(jù)響應(yīng)的傳輸。其它事務(wù)可能是對文件特指部分、所有文件、另外數(shù)據(jù)構(gòu)造的全部或有些的請求,或者事務(wù)可能涉及從請求者流動的數(shù)據(jù)或涉及一個(gè)命令。事務(wù)的例子包括“讀取數(shù)據(jù)塊”、“讀取文件”、“讀取流”、“寫入攜帶這個(gè)數(shù)據(jù)的數(shù)據(jù)塊”(從請求者流動數(shù)據(jù)的例子)、“打開文件”、“對這個(gè)數(shù)據(jù)執(zhí)行計(jì)算”、“獲得攜帶這些特征的電子郵件”、“發(fā)送電子郵件”、“檢驗(yàn)新電子郵件”、“列出目錄內(nèi)容”等等。
有些事務(wù)可能包括大量以一個(gè)方向或二個(gè)方向流動的數(shù)據(jù)。有些事務(wù)甚至可能包括具有超過一個(gè)的請求者和/或超過一個(gè)的接收者的事務(wù)。為了清楚地說明,按照典型簡單事務(wù)來描述這些許多的事務(wù)類型,一個(gè)客戶提出一個(gè)服務(wù)器請求且一個(gè)服務(wù)器以客戶期望的某種方式響應(yīng)請求。然而,基于閱讀這個(gè)說明,普通技術(shù)熟練人士中的一個(gè)能夠應(yīng)用這些概念到客戶和服務(wù)器之間或更通常的二個(gè)節(jié)點(diǎn)之間的一對多和多對多事務(wù)。在描述一個(gè)方向數(shù)據(jù)流動的地方,應(yīng)該可以理解的是數(shù)據(jù)可能以其它方向流動和/或信息可能僅僅以一個(gè)方向流動,但數(shù)據(jù)和/或信號以二個(gè)方向流動來完成信息的移動。
使用在此描述的一些系統(tǒng),客戶訪問服務(wù)器(在需要的地方反之亦然)可以通過事務(wù)加速器“穿過”,其匹配事務(wù)到具有內(nèi)容感應(yīng)段切點(diǎn)的可變長度段序列。段可以存儲在各種位置,典型地在客戶和服務(wù)器的高速訪問中,使用可縮放存儲段在持久性命名系統(tǒng)中。段可以從文件系統(tǒng)或其它系統(tǒng)數(shù)據(jù)塊和結(jié)構(gòu)中去耦,使得可以在多個(gè)上下文中找到匹配段。作為替代高速緩沖存儲文件、數(shù)據(jù)塊或其它系統(tǒng)依靠的結(jié)構(gòu),段可以被存儲和被用于表示段內(nèi)容的參考約束。
圖1使根據(jù)本發(fā)明實(shí)施例的聯(lián)網(wǎng)客戶-服務(wù)器系統(tǒng)10的方框圖,在此可能發(fā)生這樣的事務(wù)。如那里所示,客戶12在網(wǎng)絡(luò)16上經(jīng)由客戶端事務(wù)加速器(“CTA′s”)20和服務(wù)器端事務(wù)加速器(“STA′s”)22與服務(wù)器14耦合。在事務(wù)加速器的位置不是特指的地方,它在此稱為“TA”,指示它可被稱為客戶端事務(wù)加速器、服務(wù)器端事務(wù)加速器、點(diǎn)事務(wù)加速器或可能甚至是客戶和服務(wù)器(也可能是點(diǎn))使用的事務(wù)加速器。
雖然圖1中沒有顯示,客戶和服務(wù)器之間(也可能客戶和客戶之間以及服務(wù)器和服務(wù)器之間)的附加路徑存在并旁路TA′s。這樣附加路徑可以用于承載傳統(tǒng)業(yè)務(wù),諸如不可能受益于事務(wù)加速器的事務(wù)。通過發(fā)送在TA′s周圍這樣的事務(wù),TA′s的狀態(tài)可以保持集中在加速的事務(wù)上,例如,通過不使TA的永久性段存儲器(下面描述的)存儲來自不可能受益于事務(wù)加速器的事務(wù)的段。
如圖所示,CTA20可能服務(wù)一個(gè)或更多客戶,多個(gè)CTA′s20可能在一個(gè)網(wǎng)絡(luò)上實(shí)現(xiàn)。如在此使用的且除非另外指出,索引“n”指的是不定整數(shù),每個(gè)索引的不同使用指的是不同的不定整數(shù)。例如,圖1圖示說明可以有一些數(shù)量的CTA′s和一些數(shù)量的STA′s,不必一個(gè)對一個(gè)對應(yīng)。通常,CTA′s的數(shù)量可能基于客戶的數(shù)量、期望客戶的數(shù)量、網(wǎng)絡(luò)設(shè)計(jì)等等,而STA′s的數(shù)量可能基于服務(wù)器的數(shù)量、期望服務(wù)器的數(shù)量、網(wǎng)絡(luò)設(shè)計(jì)等等。在一些實(shí)現(xiàn)中,每個(gè)服務(wù)器連接到專用于那個(gè)服務(wù)器的STA。在一些實(shí)現(xiàn)中,大量服務(wù)器可能耦合到服務(wù)器陣列管理器24,并依次經(jīng)由STA耦合到因特網(wǎng)16。在一些情況下,客戶可能與多于一個(gè)的CTA相互作用,如圖1線27所圖示說明的,服務(wù)器可能和多于一個(gè)的STA相互作用,如圖1線29所圖示說明的。
在一個(gè)CTA和一個(gè)STA相互作用并從連接到那個(gè)CTA的多個(gè)客戶接收到請求的地方,對應(yīng)STA發(fā)送每個(gè)客戶的請求給請求所指向的服務(wù)器。然而,TA′s可能更加接近耦合它們的客戶/服務(wù)器,這樣所有或近似所有對一個(gè)服務(wù)器的加速事務(wù)通過一個(gè)服務(wù)器的STA。另外,在一些實(shí)現(xiàn)中,TA′s共享狀態(tài),使得在一個(gè)TA的事務(wù)可能受益于存儲在另一個(gè)TA的段。
客戶連接可能以許多的方法被發(fā)送到CTA,類似于關(guān)于客戶的多么優(yōu)先技術(shù)代理功能。例如,使用域名服務(wù)器(DNS)重新指向可以用于導(dǎo)致客戶來分析CTA而不是服務(wù)器的IP地址,從而發(fā)送請求給CTA??商鎿Q地,客戶或客戶的應(yīng)用程序可以固定配置來使用特殊的CTA或在每個(gè)應(yīng)用程序基礎(chǔ)上的一組CTA′s。一旦客戶連接到達(dá)CTA,然后CTA可以經(jīng)由能以許多方法工作的查詢處理聯(lián)系適當(dāng)?shù)腟TA。例如映像表(保持在集中且可查詢數(shù)據(jù)庫上或配置到CTA)可用于指向CTA到適當(dāng)?shù)腟TA;或在事務(wù)中傳送的信息可以允許CTA發(fā)現(xiàn)使用哪個(gè)STA;或可配置政策可以被編程到CTA指示哪個(gè)傳送端口應(yīng)該轉(zhuǎn)播到哪個(gè)STA′s。同樣,STA可以使用類似的查詢處理來決定對從CTA到達(dá)的新客戶連接聯(lián)系哪個(gè)服務(wù)器。STA也可以使用事務(wù)中的數(shù)據(jù)來推斷服務(wù)器連接什么服務(wù)器(例如在對CIFS文件服務(wù)器連接進(jìn)行一個(gè)連接建立請求時(shí),HTTP Web請求包含服務(wù)器的身份)。
應(yīng)該可以理解的是,當(dāng)圖1所示的網(wǎng)絡(luò)是因特網(wǎng),如今普遍使用網(wǎng)絡(luò)的全球因特網(wǎng)網(wǎng)絡(luò)的時(shí)候,為此可以替代其它網(wǎng)絡(luò)。例如,因特網(wǎng)上的網(wǎng)絡(luò)業(yè)務(wù)可以經(jīng)過公共網(wǎng)絡(luò)傳播,并主要基于TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)分組交換。然而,在此顯示的發(fā)明的實(shí)施例還可能在不是公共的網(wǎng)絡(luò)上使用,諸如內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)和虛擬私有網(wǎng)絡(luò)。實(shí)施例還可能用于WAN′S、LAN′S、WAN/LAN耦合、無線連接、移動鏈路、衛(wèi)星鏈路、蜂窩電話網(wǎng)絡(luò)和任何其它關(guān)注響應(yīng)的網(wǎng)絡(luò)。此外,當(dāng)如今TCP/IP是最通用的分組交換協(xié)議且因此作為一個(gè)好的例子時(shí),可能使用其它網(wǎng)絡(luò)協(xié)議(以太網(wǎng)等等)。為了覆蓋那些協(xié)議,在此描述的客戶和服務(wù)器(和點(diǎn),如下面描述的)可能使用HTTP,F(xiàn)TP,SNMP,POP3,IMAP,SMTP,NFS,CIFS,RPC或其它用于數(shù)據(jù)傳輸?shù)拈_放或私有的協(xié)議。
在一個(gè)公用事務(wù)中,客戶發(fā)送對文件、數(shù)據(jù)塊或其它數(shù)據(jù)單元的請求給服務(wù)器,如果可能的話,服務(wù)器使用數(shù)據(jù)響應(yīng)來響應(yīng)此請求。例如,在客戶是運(yùn)行計(jì)算機(jī)輔助設(shè)計(jì)(CAD)程序的計(jì)算機(jī),且需要存儲在文件服務(wù)器上的CAD文件的地方,客戶可能闡明對文件的請求,壓縮此請求為消息并在網(wǎng)絡(luò)上發(fā)送這個(gè)消息給適當(dāng)?shù)奈募?wù)器。然后文件服務(wù)器可能實(shí)現(xiàn)鑒別,檢驗(yàn)在文件服務(wù)器上文件的存在,如果客戶被批準(zhǔn)擁有文件且文件存在,則文件服務(wù)器可能創(chuàng)建一個(gè)消息或一組消息或包含所請求文件數(shù)據(jù)的分組,并發(fā)送這些消息/分組到提出請求的客戶。
使用TA′s可能改善事務(wù)的響應(yīng),即加速事務(wù)。在典型環(huán)境中,客戶和CTA′s之間的鏈路27是快速鏈路,諸如本地區(qū)域網(wǎng)絡(luò)(LAN)鏈路及等待時(shí)間和帶寬是較低的在網(wǎng)絡(luò)16上的鏈路?!暗却龝r(shí)間”指的是發(fā)送消息時(shí)間和接收到它時(shí)間之間的時(shí)間(通常以時(shí)間單位度量),“帶寬”指的是為特定任務(wù)在一個(gè)鏈路上可以承載多少容量(通常以每單位時(shí)間比特?cái)?shù)量來度量)。在許多情況下,低帶寬可能導(dǎo)致高等待時(shí)間,但那些因素可以是獨(dú)立的,這樣可能有高帶寬但仍然有高等待時(shí)間。其它因素可能影響響應(yīng)和/或帶寬開銷,諸如鏈路的可靠性和帶寬使用率。
在使用TA′s的典型文件請求事務(wù)中,客戶12通過發(fā)送請求消息啟動與服務(wù)器14的事務(wù)。如上面所說明的,如果事務(wù)包括小數(shù)量的比特或其它因素存在,則使用TA′s不能使得事務(wù)完成得有任何加快,因此事務(wù)可能在傳統(tǒng)分組路徑上進(jìn)行。然而,無論如何事務(wù)可能經(jīng)過TA′s,其可能是有用的,如下面所說明的,這樣TA′s對業(yè)務(wù)有更為完整的視圖。作為一個(gè)例子,如果客戶請求通過CTA,則CTA可以記住請求并協(xié)調(diào)對請求的響應(yīng),來提供附加服務(wù)給客戶。CTA還可能使用請求來猜測在將來什么時(shí)間事情可能發(fā)生,并使用這些猜測來進(jìn)一步優(yōu)化事務(wù)加速器的處理。
當(dāng)服務(wù)器14接收一個(gè)請求時(shí),它配置一個(gè)響應(yīng)給請求,并經(jīng)由與它耦合的STA22發(fā)送它給客戶。在基本實(shí)現(xiàn)中,每個(gè)客戶耦合到一個(gè)CTA,每個(gè)服務(wù)器耦合到一個(gè)STA,但在更復(fù)雜的實(shí)現(xiàn)中,服務(wù)器可能耦合到多于一個(gè)的STA,并使用一些優(yōu)化邏輯來確定在哪個(gè)時(shí)間用哪個(gè)STA??蛻艨赡荞詈系蕉嘤谝粋€(gè)的CTA,并使用一些優(yōu)化邏輯來確定在哪個(gè)時(shí)間用哪個(gè)CTA。
CTA20可以無變化地發(fā)送請求到適當(dāng)?shù)腟TA和/或接收STA22可以接收來自服務(wù)器的響應(yīng)并無變化地發(fā)送這個(gè)響應(yīng)到適當(dāng)?shù)腃TA20。然而,在請求或響應(yīng)包括大量數(shù)據(jù)的地方,可能期望有效的事務(wù)加速器在這樣的情況,數(shù)據(jù)是否如在此所述的通過在接收端存儲數(shù)據(jù)段,在發(fā)送端使用存儲段的參考替換數(shù)據(jù)來被“壓縮”。在一些情況下,這樣的替換不會加速事務(wù),但可能仍然有好處,諸如對數(shù)據(jù)“采取措施使其發(fā)展”,這樣接收端具有能夠被后面用于重構(gòu)參考那些段的發(fā)送數(shù)據(jù)的段數(shù)據(jù)。參考圖2將更加清楚的描述這樣的概念。
如在圖2和其它圖中詳細(xì)所示,事務(wù)請求和響應(yīng)經(jīng)由TA′s發(fā)送,而不是直接從客戶到服務(wù)器。當(dāng)然,在一些結(jié)構(gòu)中,CTA和客戶和/或STA和服務(wù)器緊密結(jié)合,這樣不要求明確重新選擇路由。但是,假設(shè)數(shù)據(jù)被發(fā)送是有用處的,至少因?yàn)樗U明來自客戶的業(yè)務(wù)可以經(jīng)由CTA發(fā)送,來自服務(wù)器的業(yè)務(wù)可以經(jīng)由STA發(fā)送,但業(yè)務(wù)還可以旁路TA′s。因?yàn)門A′s可以在傳輸網(wǎng)絡(luò)層操作,他們可以作為工作單元在事務(wù)上操作。
容易發(fā)送被加速業(yè)務(wù)的一個(gè)結(jié)構(gòu)是通過連接代理的使用。因此,CTA作為對客戶和其進(jìn)入一個(gè)事務(wù)的服務(wù)器的連接代理服務(wù),STA作為對服務(wù)器對其響應(yīng)的客戶的連接代理服務(wù)。可以理解的是,TA系統(tǒng)可以用均衡的TA′S實(shí)現(xiàn),例如在CTA和STA被非常相似地設(shè)置,可能除非CTA被建立為了期望遇到來自客戶但不是來自STA的新事務(wù),STA被建立為了不期望遇到來自服務(wù)器但期望它們來自CTA的新事務(wù)。
圖2是系統(tǒng)10部分的方框圖,更加詳細(xì)地顯示CTA20、STA22和它們互相連接。當(dāng)僅僅顯示一個(gè)客戶和一個(gè)服務(wù)器時(shí),可以理解的是,即使沒有顯示,圖1的各種組件也可能存在。例如,CTA20可以處理來自多于一個(gè)客戶的事務(wù),STA22可以處理和多于一個(gè)服務(wù)器的事務(wù)。如圖2所圖示說明的,客戶12耦合到CTA20的客戶代理30。在這個(gè)例子中,當(dāng)使用到達(dá)和來自客戶的復(fù)用和解復(fù)用業(yè)務(wù)的其它形式時(shí),客戶代理用于接收來自一個(gè)或更多客戶對CTA20的數(shù)據(jù),并發(fā)送對CTA20的數(shù)據(jù)到一個(gè)或更多客戶。圖2中所示CTA20的其它組件包括事務(wù)變換器(TT)32、反相事務(wù)變換器(TT-1)34、持久性段存儲器(PSS)36和參考解析器(RR)38。服務(wù)器14耦合到STA22的服務(wù)器代理40,其顯示包括類似與CTA20那些的組件,諸如事務(wù)變換器(TT)42、反相事務(wù)變換器(TT-1)44、持久性段存儲器(PSS)46和參考解析器(RR)48。
客戶12耦合到與TT32和TT-134耦合的客戶代理30。TT32耦合到PSS36和CTA20與STA22之間的網(wǎng)絡(luò)。TT-134耦合到PPS36、客戶代理30、RR38和CTA20與STA22之間的網(wǎng)絡(luò)。如所示,RR38還耦合到PSS36和CTA20與STA22之間的網(wǎng)絡(luò)。
在圖的另一側(cè),服務(wù)器14耦合到與TT42和TT-144耦合的服務(wù)器代理40。TT42耦合到PSS46和STA22與CTA20之間的網(wǎng)絡(luò)。TT-144耦合到PPS46、服務(wù)器代理40、RR48和STA22與CTA20之間的網(wǎng)絡(luò)。如所示,RR48還耦合到PSS46和STA22與CTA20之間的網(wǎng)絡(luò)。
可以理解的是,CTA20的一些或全部組件和/或STA22可以集成到CTA20或STA22中,這樣不需要組件間外在連接,但仍然存在邏輯耦合。例如,CTA20可能整個(gè)地實(shí)現(xiàn)為具有數(shù)據(jù)存儲器、程序存儲器的單個(gè)程序,和具有包含用于實(shí)現(xiàn)客戶代理、TT、TT-1和RR的指令的程序存儲器的處理器,當(dāng)這些指令由處理器實(shí)現(xiàn)時(shí)。在這樣的實(shí)現(xiàn)中,數(shù)據(jù)存儲器可以邏輯地區(qū)分來保持對處理器執(zhí)行指令、客戶代理狀態(tài)、TT、TT-1和RR以及PSS內(nèi)容的的可變需要。STA22同樣如此。
PSS可以是磁盤子系統(tǒng)、存儲器子系統(tǒng)或其部分。PSS也可以是具有磁盤支持存儲器、數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫等的存儲器子系統(tǒng)。
所顯示連接的,箭頭指示最共用的方向或信息流動的方向,但信息可以在附加的方向流動,在單個(gè)方向流動的信息可能包括同樣以相反方向流動的數(shù)據(jù)。例如,TT32通常在TT-144的方向發(fā)送信息,但諸如證實(shí)、握手等數(shù)據(jù)可以從TT-144到TT32流動。
一些連接用在CTA20和STA22之間跨越的虛線顯示(例如TT′s和TT-1′s和RR′s之間)。盡管它們用特殊的線表示,可以理解的是,這些線可以表示不同的網(wǎng)絡(luò)連接,或區(qū)分在公共網(wǎng)絡(luò)連接上的分組流動,或甚至顯示的邏輯連接中共享分組。因此,虛線連接可能是包括超過一個(gè)端口數(shù)量和/或超過一個(gè)IP地址的獨(dú)立連接,但它們也可能是一個(gè)分組交換連接上三個(gè)邏輯連接,諸如經(jīng)由使用公共端口數(shù)量和公共IP地址的公共路徑。
客戶和CTA以及服務(wù)器和STA之間的無點(diǎn)線標(biāo)記為“LAN/直接”,來指示那些連接是可能比標(biāo)記“因特網(wǎng)/WAN/等等”的TA′s之間的連接更高的性能(等待時(shí)間、帶寬、可靠性等)。前面的例子包括LANs、電纜、主板、CPU總線等。如果TA′s之間的連接是更高性能的連接,系統(tǒng)仍然可操作,但可能看不見事務(wù)加速器的一些好處。
操作中,CTA′s和STA′s檢查它們事務(wù)的凈負(fù)荷,其中能與事務(wù)無關(guān)的唯一命名機(jī)制從那些凈負(fù)荷中獲得授權(quán)的存儲/高速緩存字符串或數(shù)據(jù)(“段”)的其它序列。當(dāng)從一個(gè)TA發(fā)送凈負(fù)荷到另一個(gè)時(shí),TA可以使用段數(shù)據(jù)的參考替換段數(shù)據(jù)。一個(gè)指示是這個(gè)替換應(yīng)該在段數(shù)據(jù)是發(fā)送者期望接收者擁有唯一命名的段數(shù)據(jù)的時(shí)候發(fā)生,或者因?yàn)樗谠缦鹊氖聞?wù)中出現(xiàn),或通過其它處理被發(fā)送到接收者,然而其它指示或沒有指示可用于確定是否用參考替換段數(shù)據(jù)。在一些情況分段和替換在不期望加速的地方將不執(zhí)行,諸如在包含的數(shù)據(jù)數(shù)量小的地方。事務(wù)的分段部分可以是發(fā)送數(shù)據(jù)的任何部分,只要事務(wù)在接收端仍然可以被足夠辨認(rèn)以被重構(gòu)。
因?yàn)槎慰梢允俏ㄒ幻那颐峙c事務(wù)無關(guān),所以出現(xiàn)在一個(gè)事務(wù)中的段可以存儲在TA′s并用作加速其它事務(wù)。例如,在客戶啟動大量文件請求事務(wù)的地方,如果文件擁有共有數(shù)據(jù),則共有數(shù)據(jù)可能作為一個(gè)段形成,且在發(fā)送第一個(gè)這樣的段之后,所有對具有共有數(shù)據(jù)的文件的更多請求將擁有替換共有數(shù)據(jù)的段參考,來在發(fā)送重構(gòu)文件到提出請求的客戶之前由CTA替換。類似地,在一個(gè)CTA處理多于一個(gè)的客戶的地方,一個(gè)客戶的段可以用于其它客戶。
事務(wù)是不同于文件事務(wù)的地方,類似的加速是可能的。例如,在CTA耦合到郵件客戶以及STA耦合到郵件服務(wù)器的地方,CTA已獲得附加的內(nèi)容之后,許多客戶經(jīng)由CTA請求的郵件附件可以表現(xiàn)為一個(gè)段,然后在客戶請求附件的每個(gè)序列時(shí)間,響應(yīng)STA將使用段參考替換附件,接收CTA將用存儲的附件替換參考。因?yàn)楦郊鳛榕c事務(wù)無關(guān)的段存儲,所以可能在文件事務(wù)、附加郵件事務(wù)或其它事務(wù)中找到相同段數(shù)據(jù),在每個(gè)情況,發(fā)送者使用段參考替換數(shù)據(jù),接收者使用段數(shù)據(jù)替換段參考。
在此值得注釋的是,這樣的方法有幾個(gè)優(yōu)點(diǎn)。不象高速緩存,在當(dāng)事務(wù)被重復(fù)且高速緩沖存儲器不是無效的時(shí)候,事務(wù)結(jié)果被高速緩存并重復(fù)使用的地方,段可以用于幾個(gè)無關(guān)的事務(wù),且段不需要束縛在任意的切點(diǎn)。因?yàn)槎蚊趾蛢?nèi)容可以與任何特殊的比特流或事務(wù)無關(guān),它們可在任意數(shù)量的時(shí)間持久性存儲器中存在,即使系統(tǒng)成分失效和重新啟動,新的成分被加入混合,段存儲被擦除等。
接收者可以為包括在它持久性存儲器中和/或?yàn)樵趶陌l(fā)送者接收參考序列的傳輸之前、期間或之后獲得段數(shù)據(jù)。最好是在可能的時(shí)候以改善事務(wù)響應(yīng)的方法獲得段數(shù)據(jù)。例如,如果可以預(yù)期對段的需要,則可以在需要它之前發(fā)送段數(shù)據(jù),這樣當(dāng)它被需要時(shí),它可以更快的被獲得。然而,在一些情況下,諸如在接收TA沒有任何存儲的段且在事務(wù)期間必須獲得它們的全部的地方,事務(wù)加速可能不發(fā)生,因?yàn)樾枰l(fā)送的數(shù)據(jù)總數(shù)量沒有減少。
假設(shè)請求流過TA′s,客戶12將發(fā)送請求給客戶代理30,其然后發(fā)送它到TT32,修改請求或僅僅轉(zhuǎn)播它。TT32確定如何變換請求,如所需要的在PSS存儲段和參考(在下面更加詳細(xì)的解釋),并發(fā)送變換后或未修改的請求給TT-144,其實(shí)現(xiàn)任何需要的反相變換(下面更加詳細(xì)的解釋),并發(fā)送請求給服務(wù)器代理40,依次到服務(wù)器14。響應(yīng)經(jīng)過同樣的路徑。
在消息(諸如客戶請求消息或服務(wù)器響應(yīng)消息)已被變換的地方,反相事務(wù)變換器使用它PSS的內(nèi)容來重構(gòu)消息。在簡單情況下,發(fā)送者的TT通過識別消息的段來變換消息,用參考替換所識別的段,并在PSS中存儲參考-段對。在McCanneII中描述了針對基于內(nèi)容聰明地分割數(shù)據(jù)的一些技術(shù)。通過發(fā)送參考而不是段數(shù)據(jù),事務(wù)期間TA′s之間的總業(yè)務(wù)被減少,或許大多數(shù)業(yè)務(wù)被移到較小的臨界時(shí)間或較小的臨界路徑。
在接收TA在它PSS中有發(fā)送TT使用的參考-段對的地方,接收TT-1可以通過使用它們對應(yīng)的段數(shù)據(jù)替換參考來再生發(fā)送數(shù)據(jù)。接收TA可以從一側(cè)信道或來自發(fā)送TA的部分業(yè)務(wù)獲得存儲在它PSS的段數(shù)據(jù)。因此,從發(fā)送TA傳送到接收TA的數(shù)據(jù)可能包括段參考和表示從參考到段數(shù)據(jù)映像的“聯(lián)系”。當(dāng)然,如果每次用參考替換段,并發(fā)送參考和聯(lián)系,則沒有節(jié)省許多帶寬,事實(shí)上增加了帶寬。然而,在發(fā)送者猜想接收者已經(jīng)有聯(lián)系的地方,發(fā)送者可以省略聯(lián)系,導(dǎo)致充分地更少業(yè)務(wù)。在此值得注釋的是,從這個(gè)過程獲得好處不要求精確知道接收者有什么。
在一些情況下,實(shí)現(xiàn)請求所需的所有數(shù)據(jù)在客戶的PSS存在,使得如果代替地使用高速緩存機(jī)制,則用PSS作為高速緩沖存儲器,根本沒有任何消息需要發(fā)送給服務(wù)器。然而,這要求CTA是足夠聰明以至于理解客戶事務(wù)并構(gòu)建來自于存在于PSS的數(shù)據(jù)的適當(dāng)響應(yīng)。通常這是個(gè)困難的問題,尤其當(dāng)許多不同應(yīng)用類型和客戶-服務(wù)器方案通過CTA代理且某些客戶-服務(wù)器事務(wù)不簡單地服從高速緩存的時(shí)候(例如文件系統(tǒng)寫入操作、數(shù)據(jù)庫更新事務(wù)、文件刪除等)。因此,最后是使用在此描述的TA′s并任何形式發(fā)送消息到服務(wù)器,這樣使得避免高速緩存機(jī)制的矛盾。例如,如果文件服務(wù)器接收對文件的所有請求,即使在客戶存在整個(gè)文件內(nèi)容,服務(wù)器可以跟蹤請求,服務(wù)器可以實(shí)現(xiàn)諸如文件鎖定協(xié)議的復(fù)雜操作,即使沒有真實(shí)地文件數(shù)據(jù)需要在網(wǎng)絡(luò)傳送。
在TA系統(tǒng)的較佳實(shí)施例中,上面的好處自動產(chǎn)生。例如,STA分割每個(gè)事務(wù)凈負(fù)荷并用參考替換段。針對STA猜想CTA擁有的段數(shù)據(jù),STA對那些段使用它知道CTA擁有的參考。當(dāng)數(shù)據(jù)在服務(wù)器變化時(shí),STA創(chuàng)建表示變化后數(shù)據(jù)的段,并可以假設(shè)CTA沒有那些段,而非試圖修改PSS中存在的段。在這種情況下,STA對表示變化后數(shù)據(jù)的新段使用新參考。在接收TA(在這個(gè)例子中是CTA),對舊數(shù)據(jù)的參考可以從存儲在接收者PSS中的聯(lián)系分析出來,但對于新的數(shù)據(jù)、變化后的段,參考從包括在來自發(fā)送者的數(shù)據(jù)流中的聯(lián)系分析出來。然后那些聯(lián)系被接收者的TT-1存儲到接收者的PSS中,這樣它們可被那個(gè)接收者的后續(xù)事務(wù)利用。
此外,因?yàn)閰⒖伎傮w上是唯一的(如下面所描述的),它們可以被網(wǎng)絡(luò)中任何TA使用,不僅僅如在這個(gè)例子中描述的STA和CTA對。例如,CTA可能和不同的STA通信,并使用前面STA分配的參考。如果將來二個(gè)STA′s通信,則它們立即享受已經(jīng)散布到二個(gè)設(shè)備的段聯(lián)系的好處。
幾個(gè)機(jī)制可用于確保在整個(gè)系統(tǒng)中任何給定時(shí)間每個(gè)命名的段擁有唯一名字(即沒有二個(gè)具有不同數(shù)據(jù)的段被錯(cuò)誤的分配相同的名字)。在一個(gè)方法中,每個(gè)段參考被產(chǎn)生作為大的隨機(jī)數(shù)字,在唯一參考的數(shù)字比所有可能大小隨機(jī)數(shù)字的空間低得多。這個(gè)機(jī)制比理想的更小,因?yàn)榇嬖谛〉目赡苄远€(gè)段擁有相同的段參考,但不同的段數(shù)據(jù),其導(dǎo)致接收TA錯(cuò)誤地重構(gòu)具有錯(cuò)誤數(shù)據(jù)的消息。
另一個(gè)機(jī)制是從段數(shù)據(jù)產(chǎn)生,使得每個(gè)段參考是段數(shù)據(jù)的一個(gè)無用信息,不同的段數(shù)據(jù)將導(dǎo)致不同的無用信息,除了在非常罕見的情況下。但是罕見的情況總是有問題的,只要系統(tǒng)中存在二個(gè)具有相同參考但不同段數(shù)據(jù)的降級段。不象隨機(jī)數(shù)字的情況,每當(dāng)特殊數(shù)據(jù)模式存在于數(shù)據(jù)流中,這個(gè)問題將重現(xiàn)。
一個(gè)簡單避免上面問題的方法是針對每個(gè)發(fā)送TA從唯一ID(諸如當(dāng)普遍唯一IP地址在整個(gè)網(wǎng)絡(luò)使用時(shí)主機(jī)的IP地址、主機(jī)MAC地址、分配的唯一標(biāo)識符或其他方法)和連續(xù)數(shù)字的組合產(chǎn)生段參考。在大多數(shù)實(shí)現(xiàn)中,唯一連續(xù)數(shù)字的最大數(shù)字被綁定,因此將最終需要被重新使用。然而,通過使用可以持續(xù)數(shù)百萬年的供應(yīng)且不需要特殊處理的足夠標(biāo)簽數(shù)字,可以有效地不綁定名字空間。打標(biāo)簽可以壓縮來未標(biāo)簽提供小的腳標(biāo)。
因?yàn)闃?biāo)簽將被順序分配,且因?yàn)閷?yīng)的段將常常出現(xiàn)在相同的序列里,所以實(shí)際上可以實(shí)現(xiàn)好的標(biāo)簽壓縮(不僅僅穿過網(wǎng)絡(luò)而且在表示整個(gè)系統(tǒng)中總是采用的標(biāo)簽字符串的數(shù)據(jù)結(jié)構(gòu)中)。附加壓縮還可能在發(fā)送TA′s輸出數(shù)據(jù)流上。例如,在接收TA可以標(biāo)識發(fā)送TA且發(fā)送TA′s參考包括發(fā)送TA′s唯一ID的地方,當(dāng)接收TA知道在形成參考中使用什么ID時(shí),ID不需要出現(xiàn)在發(fā)送數(shù)據(jù)中(盡管通常當(dāng)發(fā)送TA參考不僅僅它自己綁定而且綁定和標(biāo)簽起源于其他TA′s時(shí),必須告知附加信息)。這個(gè)方法的一個(gè)其他的優(yōu)點(diǎn)是,TA可以標(biāo)識來自段參考的ID成分的它PSS中每個(gè)段的來源以用于統(tǒng)計(jì)分析、診斷和類似的。
在系統(tǒng)所期望的生命期期間打算重新使用標(biāo)簽的系統(tǒng)中,系統(tǒng)最好包括一個(gè)機(jī)制來“終止”參考綁定,這個(gè)終止普及到網(wǎng)絡(luò)中所有的TA′s。一個(gè)方法是時(shí)間戳每個(gè)段,使得它擁有在使用段的系統(tǒng)中每個(gè)成分可容易地推斷的固定生命期。如果以粗糙的方式分配時(shí)間戳給標(biāo)簽(例如時(shí)間戳一天變化一次),則標(biāo)簽壓縮消除與分配和告知時(shí)間戳相關(guān)的大多數(shù)協(xié)議報(bào)頭。從而TA可以猜想什么時(shí)候它安全地重新使用特殊組標(biāo)簽。
然而管理段名字空間的另一個(gè)替換是擁有唯一參考的中心分配。在這樣的情況下,發(fā)送TA從保證參考是唯一的源頭中請求一個(gè)參考或一批參考。此外,每個(gè)分配可以被分配最大的生存時(shí)間,使得參考或參考塊的分配可以絕對地被重新使用。
可能發(fā)生的是,發(fā)送TA在某一綁定在接收TA不存在時(shí)候,假設(shè)它存在。在接收TA擁有PSS溢出、信息損壞、功率損耗等或接收TA故意移出綁定的情況,這個(gè)可能發(fā)生。在這樣的情況下,接收TA可以無需終止或不得不報(bào)告事務(wù)故障而獲得段數(shù)據(jù)。這允許系統(tǒng)適度地處理由于磁盤滿了、磁盤故障、網(wǎng)絡(luò)故障、系統(tǒng)崩潰等遺漏的數(shù)據(jù)。如果發(fā)送TA假設(shè)接收TA擁有綁定,則發(fā)送TA將使用那個(gè)綁定的參考發(fā)送消息,但將不包括綁定的段數(shù)據(jù)。當(dāng)接收TT-1設(shè)法分析參考時(shí),它將失敗。在那些情況下,接收TT-1發(fā)送結(jié)構(gòu)請求給它的RR,其然后提出一個(gè)請求給發(fā)送者的RR。當(dāng)接收到所需數(shù)據(jù)時(shí),可能由于可用數(shù)據(jù)的事件觸發(fā)信號,TT-1可以正好阻塞并重啟動;這個(gè)處理對TT-1是透明的(除了在獲得響應(yīng)中的延遲)。一旦接收者接收到段數(shù)據(jù),接收者的RR可以提供數(shù)據(jù)給接收者的TT-1或僅僅放在接收者的PSS,在此它可以被接收者的TT-1訪問。當(dāng)發(fā)送者的TT適當(dāng)?shù)卦黾咏壎ǖ剿腜SS時(shí),它保留那些保證最小時(shí)間數(shù)量的綁定;同樣當(dāng)它用參考替換段數(shù)據(jù)時(shí),當(dāng)接收者的RR為那個(gè)段數(shù)據(jù)提出發(fā)送者的RR請求時(shí)可以保證它,它將存在于發(fā)送者的PSS,在發(fā)送者的段的所提供和保證的“生命期”比接收者可能要求提出段請求的最大時(shí)間數(shù)量更大。
圖3包括簡單PSS的綁定表數(shù)據(jù)構(gòu)造的圖示說明。如所示,綁定表存儲大量綁定,諸如(R1,S1)、(R2,S2)等,在此Ri是第i綁定的參考標(biāo)簽,Si是第i綁定的參考數(shù)據(jù)。每個(gè)綁定的時(shí)間戳可能用于老化綁定。綁定記錄可能包括圖3中沒有顯示的其他字段,諸如那些在表1列出的和/或類似或附加的字段,可能除了其他表、數(shù)據(jù)結(jié)構(gòu)、物體和/或代碼。
表1-訪問的時(shí)間數(shù)量-最后的訪問時(shí)間-最后的修改時(shí)間-生命期-編碼方法標(biāo)識符(例如未編碼的原始數(shù)據(jù)、運(yùn)行長度編碼、MD5編碼、加密)-指針-錯(cuò)誤校正數(shù)據(jù)(如果沒有段數(shù)據(jù)打斷)-創(chuàng)建綁定的發(fā)送者的標(biāo)識(綁定“所有者”)-創(chuàng)建時(shí)間(對超時(shí)段有用,諸如通過使用生命期字段)-其他字段一些附加數(shù)據(jù)結(jié)構(gòu)可能包括參考的索引、其他字段的索引、段的指示等,用于搜尋或另外處理PSS的內(nèi)容??梢杂迷S多能用于編碼處理的方法來索引段,但一個(gè)實(shí)施例建立段的索引,眾所周知的在包含段的整個(gè)數(shù)據(jù)計(jì)算的無用信息被用作鍵。如果使用編碼方法標(biāo)識符,段數(shù)據(jù)可以被編碼來錯(cuò)誤校正、加密等。
對于一些段數(shù)據(jù)來說,可能適合于壓縮段數(shù)據(jù)來減少PSS的存儲需求和所需的經(jīng)過周圍綁定的傳輸花費(fèi)。在一些情況下,編碼方法是固定的已知的,所以不需要編碼方法標(biāo)識符。例如,發(fā)送TA可以發(fā)送段的逐字功能,例如前向錯(cuò)誤校正已編碼的段數(shù)據(jù)塊、段加密、段簽名或類似的,而非傳送和高速緩存逐字段(即逐字的表示事務(wù)數(shù)據(jù)的子字符串或子序列的段)。這將允許接收TA解碼來自己適當(dāng)編碼的數(shù)據(jù)的共用存儲池的不同段,如果編碼數(shù)據(jù)的某些段被丟失或破壞,則仍然可以重構(gòu)原始段,從而增加錯(cuò)誤校正到鏈路,無需在客戶或服務(wù)器變化。
為了跟蹤哪個(gè)接收者知道哪個(gè)段,在PSS可能存在其他字段。在一些實(shí)現(xiàn)中,發(fā)送者僅僅分割數(shù)據(jù)并創(chuàng)建與接收者可能能按結(jié)果做無關(guān)的參考,但在其他實(shí)現(xiàn)中,發(fā)送者保留不能確定接收者是否可能擁有特殊綁定的信息,諸如通過跟蹤哪個(gè)接收者以前接收哪個(gè)段。通過記錄哪個(gè)接收者在Bloom濾波器中擁有哪個(gè)段可以優(yōu)化對這樣信息的存儲(即通過目的文件的無用信息索引的比特向量到給出罕見錯(cuò)誤正極但從來不給出錯(cuò)誤負(fù)極的向量中)。
一些實(shí)現(xiàn)可能使用探索法,這樣服務(wù)器代理包括段綁定,僅僅當(dāng)它創(chuàng)建新條目和其他需要段的客戶代理將不得不請求它的時(shí)候,因?yàn)閮H僅第一個(gè)客戶代理將自動獲得針對新段的綁定。
TA可能包括用于PSS清除的例行程序,諸如當(dāng)客戶關(guān)閉文件時(shí),刪除涉及特殊服務(wù)器上特殊文件的客戶端PSS中所有段的探索法。服務(wù)器端PSS也可能刪除對應(yīng)的段,或推遲對那些段的清除,直到所有的客戶關(guān)閉文件。其他清除可能包括刪除已經(jīng)超過它們生命期或已經(jīng)一段時(shí)間沒有使用的段條目。其他探索法可能指示特殊段綁定被使用和放棄的時(shí)間。
PSS的設(shè)置有許多好處,通過閱讀這個(gè)說明,其中一些將變得明顯。因?yàn)樵谧兓悬c(diǎn)可以發(fā)生分割,段與事務(wù)無關(guān),段可能在任意長度時(shí)間的PSS內(nèi)生存,并用于完全不涉及其中創(chuàng)建和存儲段事務(wù)的事務(wù)。因?yàn)槎螀⒖紝τ谖ㄒ坏亩螖?shù)據(jù)來說是唯一的,接收者可以總是正確識別對段參考的段數(shù)據(jù)(如果接收者有段的話)。這僅僅比高速緩存結(jié)果更好。它還比使用本地化信號統(tǒng)計(jì)壓縮更好,諸如建立適當(dāng)?shù)拇a本和類似的。段名字和內(nèi)容與任何特殊的比特流無關(guān),即使系統(tǒng)成分崩潰和重新啟動,新成分被增加到混合里,擦去持久性段存儲等等。應(yīng)該可以理解的是,“持久性”用于描述PSS不意味著段被永久不變地存儲,因此能夠從來不被清除;僅僅是段中至少一些堅(jiān)持至少超過一個(gè)事務(wù)。
圖4圖示說明編碼器140和PSS142。用于TA的TT可能正好是編碼器140,但TT還可能包括其他功能或元件。如所示,編碼器140有一個(gè)用于編碼數(shù)據(jù)的輸入,并控制用于編碼控制參數(shù)和帶寬外面關(guān)于輸入數(shù)據(jù)的信息的輸入。編碼器140被顯示有用于編碼數(shù)據(jù)和PSS142中存儲的段綁定的輸出。在操作中,編碼器140將處理輸入數(shù)據(jù),標(biāo)識數(shù)據(jù)的段,用參考替換段的數(shù)據(jù),已綁定的方式提供段數(shù)據(jù)和段參考給PSS142并輸出編碼后數(shù)據(jù)。如圖4所示,結(jié)果編碼后數(shù)據(jù)可能包括參考、綁定和剩余數(shù)據(jù)(諸如不能有效用參考表示的數(shù)據(jù))。在此,一塊剩余數(shù)據(jù)還稱作“未參考段”。在一些實(shí)施例中,被分段但沒有參考的數(shù)據(jù)和沒有分段的數(shù)據(jù)之間存在差異。在前者中,有一個(gè)定義的段開始和結(jié)束,但段內(nèi)容沒有用段參考替代,然而在后者中,同樣可能沒有段開始或結(jié)束。為了便于下面描述,忽略此差異。
編碼器140的另一個(gè)輸出是對PSS142用在解碼引入數(shù)據(jù)中的段綁定(或者為了提供給其他要求的TA′s)??刂频骄幋a器140的輸入可能包括目標(biāo)段大小,帶寬外信息可能包括指示這樣的事情作為段默認(rèn)生命期、關(guān)于數(shù)據(jù)源的信息等的參數(shù)。目標(biāo)段大小是控制通過分段處理產(chǎn)生的段的平均大小的參數(shù)。通常,段長度隨著大小的某個(gè)特定分布變化,目標(biāo)段大小控制通過分段處理產(chǎn)生的平均大小。當(dāng)段大小能被固定時(shí),最好允許段大小變化,使得段配合比如果系統(tǒng)處理的數(shù)據(jù)被分段成任意固定的段更經(jīng)常。
TT把它創(chuàng)建的綁定放到它自己的PSS中用于解碼,但同樣所以綁定的“所有者”(即創(chuàng)建綁定的TA)可以保持跟蹤它,提供它給其他并同樣當(dāng)編碼后續(xù)數(shù)據(jù)時(shí)查閱它(所以段參考可能在段數(shù)據(jù)重復(fù)的地方被重新使用)。
綁定的所有者的TT-1常常重新使用那些綁定,諸如當(dāng)段數(shù)據(jù)的序列走圓形行程時(shí),即從STA流動到CTA并返回,或反之亦然。例如,用戶編輯文件情況這可能發(fā)生。用戶的文件客戶將請求文件數(shù)據(jù),服務(wù)器將服務(wù)文件,且當(dāng)用戶編輯文件時(shí),文件數(shù)據(jù)的綁定將在CTA′s的PSS和STA′s的PSS中存在。如果用戶寫回文件數(shù)據(jù),則沒有變化的部分可以完全用在文件數(shù)據(jù)第一次發(fā)送到用戶的客戶時(shí)候創(chuàng)建的參考標(biāo)簽來表示。在這個(gè)情況下,CTA簡單參考相同STA創(chuàng)建的舊的綁定,而非在發(fā)送數(shù)據(jù)返回STA的時(shí)候創(chuàng)建新綁定。其他例子包括電子郵件,客戶可以請求電子郵件(經(jīng)由類似IMAP或POP的一個(gè)協(xié)議),然后在網(wǎng)絡(luò)上轉(zhuǎn)播它返回(經(jīng)由類似SMTP的另一個(gè)協(xié)議),在這個(gè)情況,STA′s TT-1可以使用在電子郵件第一次發(fā)送到客戶的時(shí)候由STA′s創(chuàng)建的綁定,假設(shè)SMTP事務(wù)和IMAP或POP事務(wù)流過STA/CTA對。另一個(gè)例子是用戶經(jīng)由CIFS從Web站點(diǎn)(通過HTTP)拷貝信息到文件系統(tǒng),假設(shè)HTTP事務(wù)和CIFS事務(wù)流過STA/CTA對。
由于PSS的這個(gè)特性,客戶和服務(wù)器可以使用非常小的帶寬且無需改變客戶或服務(wù)器,來回有效地發(fā)送大塊數(shù)據(jù)。這個(gè)在大文件被移動且僅僅稍微有點(diǎn)改變的情況特別有用,諸如二個(gè)或更多用戶在一個(gè)大CAD文件上合作的情況。使用在此顯示的系統(tǒng),網(wǎng)絡(luò)性能可以足夠?qū)е掠脩舴艞壠渌ぷ鲄^(qū)網(wǎng)絡(luò)瓶頸,諸如遠(yuǎn)程訪問、存儲本地文件拷貝、推出文件的只讀拷貝等。
如果根據(jù)內(nèi)容分割輸入數(shù)據(jù),則相同比特序列可能導(dǎo)致相同的段,而不管比特序列在什么地方發(fā)生。這有個(gè)優(yōu)點(diǎn)是重復(fù)的比特序列有效的被注意和參考。然而,在有強(qiáng)制需求或改善性能的情況,外部因素可能開始活動。例如,如果有抵消好處的話,則關(guān)于可以使用的事務(wù)的一些參數(shù)可能導(dǎo)致多余一個(gè)的為一個(gè)比特序列創(chuàng)建的段。在一種方法中,外部因素是什么段存在于PSS中,以及基于在PSS中已經(jīng)存在什么段來決定段分界。雖然這不象前面描述的更基礎(chǔ)的方法可以升級,但是它可能導(dǎo)致段更多的重新使用,從而擁有一些好處。
這可以通過一個(gè)例子來圖示說明。如果通常地單向切割凈負(fù)荷,但不同組的切點(diǎn)將更近似匹配已經(jīng)在PSS中的段,則將導(dǎo)致更大的壓縮。然而,為了能夠保持增益,發(fā)送TA將不得有一些想法接收TA可能具有哪個(gè)段,使得如果發(fā)送者知道大多數(shù)發(fā)送者的PSS段不存在與接收者的PSS,則發(fā)送TA不基于發(fā)送者的PSS進(jìn)行它的切割。
圖5圖示說明了解碼器150和PSS152。用于TA的TT-1可能僅僅是解碼器150,但TT-1也可能包括其他功能或元件。解碼器150接收編碼后的數(shù)據(jù),其可能已經(jīng)通過圖14所示解碼器140輸出。如上所述,編碼后數(shù)據(jù)可能包括參考、綁定和剩余數(shù)據(jù)。當(dāng)解碼器150遇到它接收數(shù)據(jù)中的綁定時(shí),它可以使用綁定中的段數(shù)據(jù)來重構(gòu)原始數(shù)據(jù),它還能夠存儲綁定到它的PSS中。當(dāng)解碼器150遇到?jīng)]有綁定的參考時(shí),它能夠使用參考從PSS152獲得段數(shù)據(jù)來重構(gòu)段。如果在PSS152中沒有找到段參考,則解碼器150可以發(fā)送對段數(shù)據(jù)的請求。
圖6是編碼處理的圖示說明,其中輸入數(shù)據(jù)被分割和用參考表示成為段數(shù)據(jù)。如所示,原始輸入數(shù)據(jù)被存入緩沖器160(盡管如果需要的話可以不要緩沖)。然后分割原始數(shù)據(jù)成段。幾個(gè)技術(shù)適用于確定什么地方定義為分離每個(gè)段和它鄰近鄰居的“切割線”。一些分割的方法如McCanne II中所描述的??赡苁褂玫钠渌椒ㄊ且砸?guī)則的時(shí)間間隔,或諸如標(biāo)記的結(jié)束線的在原始輸入數(shù)據(jù)中發(fā)現(xiàn)的數(shù)據(jù)固定序列的一些關(guān)系,來放置切割線的簡單方法,盡管這樣的方法可能不會產(chǎn)生最好的執(zhí)行分割機(jī)制。
然而在圖6的例子中確定切割線,緩沖器160中原始輸入數(shù)據(jù)被分割成段SA,SB,SC,SD,SE,和SF。在這個(gè)例子中,第一個(gè)五個(gè)段用參考替換,參考是R15,R16,R17,R3,和R8。在此值得注釋的是,參考不必是順序的,這個(gè)例子圖示說明了一些參考(例如R3和R8)可能是已經(jīng)遇到過的段數(shù)據(jù),在這種情況不使用新的段,但參考先于段存在。這兒還圖示說明了段(例如SF)不需要用參考替換。
原始輸入數(shù)據(jù)可以完全用從原始輸入數(shù)據(jù)產(chǎn)生的輸出數(shù)據(jù)和綁定來表示。提供綁定給用于產(chǎn)生綁定的TA的PSS,和其他以及一些或所有綁定可以作為輸出數(shù)據(jù)的一部分被發(fā)送。在這個(gè)例子中,新綁定是(R16,SA),(R16,SB)和(R17,SC)。在這個(gè)例子中,因?yàn)橛糜诙蜸D和SE的段數(shù)據(jù)已被知道并用參考R3和R8存儲,所以不需要綁定(R3,SD)和(R8,SE)。
圖7是圖示說明用于可能由圖4的編碼器輸出和由圖5的解碼器解碼的解碼數(shù)據(jù)的處理過程的流程圖。處理步驟標(biāo)志為“S1”,“S2”等,除非另外標(biāo)識,通常步驟按順序進(jìn)展。在第一個(gè)步驟(S1)中,參考后的數(shù)據(jù)(例如帶參考編碼后的數(shù)據(jù))被接收并分析標(biāo)記。如果檢查標(biāo)記(S2)且它不是參考,則它必須是未參考段,所以直接輸出標(biāo)記(S3)。然而,如果標(biāo)記是參考,則解碼器檢查(S4)在支持解碼器的PSS中是否存在參考。如果是YES,則解碼器從PSS參考段(S5)。如果是NO,則解碼器發(fā)送一個(gè)解決請求(S6)給支持解碼器的參考分析器,并接收從參考分析器返回的已解決已參考的段(S7)。在參考標(biāo)簽編碼段數(shù)據(jù)的源頭的情況,標(biāo)簽可以被參考分析器用于幫助找到參考后的段。
一旦解碼器訪問參考后段的段數(shù)據(jù)(進(jìn)展到步驟S3或步驟S7),它輸出段數(shù)據(jù)(S8)。然后解碼器檢查附加的標(biāo)記(S9)。如果有更多的標(biāo)記,則處理過程攜帶下一個(gè)標(biāo)記在步驟S2重復(fù),除非處理完成了。
上面的描述僅僅表示使用PSS編碼和解碼段綁定和參考的一個(gè)特殊實(shí)施例。其他方法可能包括標(biāo)簽和數(shù)據(jù)直接關(guān)系更完善的表示,諸如那些在McCanne II中所顯示的。
圖8是聯(lián)網(wǎng)系統(tǒng)的方框圖,其中事務(wù)加速被實(shí)現(xiàn)并使用預(yù)發(fā)式段分配器(“PSD”)。如所示,PSD210包括PSD控制器212、它自己的PSS214和其他用于PSD可變的存儲器216。在一些實(shí)現(xiàn)中,使用多個(gè)PSD′s,盡管僅僅在圖中顯示了一個(gè)。
通過PSD210的操作,段更加可能在需要它們的時(shí)候存在,從而需要更少的段解決請求。在需要將段從PSS移動到PSS的情況,PSD210可以在對這個(gè)段的實(shí)際需要之前觸發(fā)這個(gè)處理過程,使得事務(wù)返回更加快速,當(dāng)接收到凈負(fù)荷時(shí),接收TA不必為接收TA阻塞來發(fā)布對段的請求給發(fā)送TA。PSD210可以自己分配或僅僅指示段的所有者(或其他占有者)傳送它們。在一些狀況下,PSD210可能保留他們自己的PSS214,但在一些實(shí)現(xiàn)中,PSD僅僅指示PSS′s之間綁定的流動且不保留它自己的PSS。
PSD210可能監(jiān)控來自CTA′s20和STA′s22事務(wù)流動,并確定可能需要哪個(gè)段和什么地方需要。當(dāng)PSD210確定需要一個(gè)段時(shí),它可以發(fā)送消息給發(fā)送TA,諸如STA服務(wù)文件系統(tǒng)或電子郵件系統(tǒng)。消息將指示發(fā)送TA執(zhí)行分割,存儲綁定在它自己的PSS,且甚至傳送綁定給其他PSS′s,使得當(dāng)發(fā)送TA接收到將導(dǎo)致發(fā)送TA發(fā)送凈負(fù)荷的消息時(shí),進(jìn)行分割。當(dāng)很好的做完時(shí),接收TA將獲得在接收TA接收帶有參考的凈負(fù)荷時(shí)需要的綁定,在帶寬不是臨界的時(shí)候可以發(fā)送那些綁定。更加典型地,發(fā)送TA是STA,但PSD還可能指示CTA′s“預(yù)先存入”綁定到系統(tǒng)中。
在一些情況下,服務(wù)器代理增加到服務(wù)器中來識別用于預(yù)存的選擇物。例如,諸如Microsoft ExchangeTM服務(wù)器的郵件服務(wù)器可能耦合到網(wǎng)絡(luò)并用STA和關(guān)聯(lián)服務(wù)器代理。服務(wù)器代理檢測電子郵件和附件到達(dá)的時(shí)間,并基于過去觀察或操作員的政策,預(yù)先存入具有相應(yīng)段數(shù)據(jù)的特殊CTA。這可能通過跟蹤哪個(gè)客戶讀取來自哪個(gè)位置的它們的電子郵件來完成,或者通過靜態(tài)配置或者最好是測量。然后,當(dāng)遠(yuǎn)程用戶讀取電子郵件時(shí),大多數(shù)電子郵件的數(shù)據(jù)已經(jīng)在用戶的遠(yuǎn)程站點(diǎn)了,但事務(wù)仍然返回交換郵件服務(wù)器來確保協(xié)議的正確性。
除了預(yù)先觸發(fā)段產(chǎn)生,PSD210還可能幫助“預(yù)先填充”各種具有已經(jīng)存在使得那些TA′s擁有在接收參考時(shí)準(zhǔn)備好的段數(shù)據(jù)的綁定的TA PSS′s。在一個(gè)實(shí)現(xiàn)中,PSD210在傳播模式上操作,如利用USENET消息條目所做的那樣,通知新綁定給PSD210,PSD210然后傳播來自通知TA的新綁定給所有或一些其他的TA′s,其可能依次傳播綁定??商鎿Q地,或者除了PSD觸發(fā)的預(yù)先填充,發(fā)送TA可能預(yù)期哪個(gè)段需要被發(fā)送到接收TA,并發(fā)送它們在任何時(shí)間之前或“帶寬之外”,這樣接收TA不需要發(fā)布附加的請求來解決未知的段。
在不加選擇的傳播可能導(dǎo)致網(wǎng)絡(luò)超載或提高相對于僅僅發(fā)送完成的帶寬利用率的地方,可以使用每個(gè)事務(wù)的原始數(shù)據(jù)更加改進(jìn)的方法。在更加有效方法的例子中,PSD使用啟發(fā)式來確定哪個(gè)TA′s可能需要哪個(gè)段。在另一個(gè)方法中,服務(wù)器包括提供具有在允許PSD確定哪個(gè)CTA′s將需要哪個(gè)來自“代理”服務(wù)器的段的高層的信息的PSD的服務(wù)器代理。在一些實(shí)施例中,使用上面方法的組合。
具有服務(wù)器代理的PSD的另一個(gè)實(shí)施例包括一種類型的文件系統(tǒng)監(jiān)控。在此,服務(wù)器代理監(jiān)控文件系統(tǒng)活動,且每當(dāng)新的數(shù)據(jù)寫入文件系統(tǒng),代理命令PSD復(fù)制適當(dāng)?shù)亩谓壎ńo一個(gè)或更多CTA′s。用戶或定義的操作者政策可以指示整個(gè)文件系統(tǒng)的數(shù)據(jù)是否被復(fù)制或僅僅復(fù)制配置部分。此外,這些政策可以通過訪問模式的測量增加,使得來自文件系統(tǒng)的最頻繁訪問的部分的段數(shù)據(jù)被復(fù)制(且這些測量可以在預(yù)先CTA基礎(chǔ)上實(shí)現(xiàn))。結(jié)果,每個(gè)這樣的CTA有效地包括所有(或部分)文件系統(tǒng)數(shù)據(jù)的鏡像。然后,當(dāng)客戶通過網(wǎng)絡(luò)文件-系統(tǒng)協(xié)議(例如CIFS或NFS)和CTA聯(lián)系時(shí),事務(wù)一路上流動返回到原始文件服務(wù)器,然而這些事務(wù)被完全壓縮到參考的純字符串中。這個(gè)方法確保原始文件系統(tǒng)語義被保存,好像所有客戶共享單個(gè)文件服務(wù)器,但是客戶-服務(wù)器通信行為的性能表現(xiàn)為好像所有數(shù)據(jù)在本地預(yù)先客戶文件服務(wù)器。
雖然上面略述的段機(jī)制可以充分地減少客戶-服務(wù)器通信的帶寬要求,但是事務(wù)仍然受廣域間固有通信等待時(shí)間的支配。這些等待時(shí)間瓶頸可以不利地影響性能,且可以使用類似文件前面讀取和后面寫入的補(bǔ)充技術(shù)來處理。然而由于數(shù)據(jù)的壓縮和分級,前面讀取和后面寫入技術(shù)變得極端有效,因?yàn)樗袛?shù)據(jù)已經(jīng)在CTA存在,所以在網(wǎng)絡(luò)上他們導(dǎo)致非常小的開銷。
所有這些方法可以用機(jī)制補(bǔ)充來對各種種類的CTA/STA通信采用帶寬政策。例如,某些帶寬限制可強(qiáng)加到PSD來限制分級算法的積極性。在另一個(gè)例子中,帶寬政策可應(yīng)用于不同級別的分級數(shù)據(jù)(例如文件系統(tǒng)段復(fù)制可以具有高于電子郵件附件段復(fù)制的優(yōu)先權(quán))。
圖9是根據(jù)本發(fā)明實(shí)施例的聯(lián)網(wǎng)點(diǎn)對點(diǎn)系統(tǒng)的方框圖。如所示,各種點(diǎn)180經(jīng)由點(diǎn)事務(wù)加速器(PTA′s)182彼此互相作用。點(diǎn)180可能直接相互作用,盡管沒有顯示這樣的連接。運(yùn)行中,一個(gè)點(diǎn)180可能經(jīng)由每個(gè)點(diǎn)的PTA182和網(wǎng)絡(luò)184,請求來自另一個(gè)點(diǎn)的數(shù)據(jù)。如所示,每個(gè)PTA182可能包括點(diǎn)代理190、TT192、TT-1194、PSS196和RR198。在點(diǎn)對點(diǎn)系統(tǒng)中,點(diǎn)本質(zhì)上功能如同用于一些事務(wù)的客戶和用于另一些事務(wù)的服務(wù)器,這樣事務(wù)加速機(jī)制將以類似的方式運(yùn)行。
圖10是聯(lián)網(wǎng)系統(tǒng)的方框圖,其中事務(wù)加速被實(shí)現(xiàn)且客戶端事務(wù)加速器集成到客戶中,與成為獨(dú)立實(shí)體相反。如所示,客戶系統(tǒng)302經(jīng)由網(wǎng)絡(luò)304直接耦合到服務(wù)器306,經(jīng)由服務(wù)器加速器STA310耦合到服務(wù)器308。所顯示的客戶系統(tǒng)302包括通信處理320、直接網(wǎng)絡(luò)I/O處理322、CTA處理324和包括持久性段存儲器328的存儲器326。通信處理320與直接網(wǎng)絡(luò)I/O處理322、CTA處理324和存儲器326耦合。CTA處理324耦合到PSS328。
運(yùn)行中,通信處理320典型地在應(yīng)用層執(zhí)行功能,要求和客戶系統(tǒng)302外面的服務(wù)器相互作用。例如,通信處理可能包括web瀏覽器、電子郵件客戶、Java程序和交互式網(wǎng)絡(luò)程序、聊天程序、FTP程序等等。在通信處理直接和服務(wù)器相互作用的地方,通信處理將和直接網(wǎng)絡(luò)I/O處理322相互作用,來與服務(wù)器相互作用,但在事務(wù)要被加速的地方,通信處理將和CTA324相互作用。在一些實(shí)施例中,通信處理320和CTA324可能是單個(gè)應(yīng)用程序的組成成分,而在另一些實(shí)施例中它們可能是分離的應(yīng)用處理。CTA處理324可以使用存儲器326的一部分作為PSS來加速事務(wù),非常類似前面所描述的各種孤立CTA′s所作的。在一些變化中,PSS328是來自存儲器326的獨(dú)立存儲器,其用于客戶系統(tǒng)302的其他處理,諸如通信處理320的需要。
直接網(wǎng)絡(luò)I/O處理322通過和網(wǎng)絡(luò)304上服務(wù)器的相互作用,滿足通信處理320的網(wǎng)絡(luò)I/O需要。在一些情況下,直接網(wǎng)絡(luò)I/O處理322和與CTA324相同的服務(wù)器相互作用,通過到服務(wù)器308的虛線來描述??蛻粝到y(tǒng)302可能包括沒有顯示的其他處理,包括涉及事務(wù)加速的處理。例如,通信處理320可能依靠確定何時(shí)直接發(fā)送事務(wù)給服務(wù)器以及何時(shí)試圖加速它的分離處理。
圖11是聯(lián)網(wǎng)系統(tǒng)的方框圖,其中事務(wù)加速被實(shí)現(xiàn),服務(wù)器端事務(wù)加速器集成到服務(wù)器里。圖顯示了服務(wù)器系統(tǒng)352、網(wǎng)絡(luò)354、客戶356、客戶358和客戶事務(wù)加速器(CTA)360。所顯示的服務(wù)器系統(tǒng)352包括通信處理370、直接網(wǎng)絡(luò)I/O處理372、STA處理374和包括持久性段存儲器378的存儲器376。通信處理370與直接網(wǎng)絡(luò)I/O處理372、STA處理374和存儲器376耦合。STA處理374耦合到PSS378。如通過從客戶356到直接網(wǎng)絡(luò)I/O處理372的線所圖示說明的,客戶356直接耦合到服務(wù)器系統(tǒng)352,其處理不通過STA處理374的事務(wù)。客戶358經(jīng)由CTA360和STA處理374耦合到服務(wù)器系統(tǒng)352,但也可能用于其他事務(wù)直接連接到直接網(wǎng)絡(luò)I/O處理372。
運(yùn)行中,通信處理370執(zhí)行功能,諸如響應(yīng)來自客戶的請求的服務(wù)器處理。服務(wù)器系統(tǒng)352和客戶直接相互作用,事務(wù)將經(jīng)由直接網(wǎng)絡(luò)I/O處理372在通信處理和客戶之間流動。在服務(wù)器系統(tǒng)352和客戶經(jīng)由TA′s相互作用的地方,事務(wù)將經(jīng)由STA處理374在通信處理和客戶之間流動。STA處理374可以使用存儲器376的一部分作為PSS來加速事務(wù),非常類似前面所描述的各種孤立STA′s所作的。在一些變化中,PSS378是來自存儲器376的獨(dú)立存儲器,其用于服務(wù)器系統(tǒng)352的其他處理,諸如通信處理370的需要。
直接網(wǎng)絡(luò)I/O處理372通過和網(wǎng)絡(luò)354上服務(wù)器的相互作用,滿足通信處理352的網(wǎng)絡(luò)I/O需要。在一些情況下,直接網(wǎng)絡(luò)I/O處理372和與STA374相同的服務(wù)器相互作用,通過到客戶358的虛線來描述。服務(wù)器系統(tǒng)352可能包括沒有顯示的其他處理,包括涉及事務(wù)加速的處理。例如,通信處理370可能依靠確定何時(shí)直接發(fā)送事務(wù)給服務(wù)器以及何時(shí)試圖加速它的分離處理。
應(yīng)該可以理解的是,圖10和11的元件可能被組合,這樣具有內(nèi)部CTA′s的客戶系統(tǒng)可以和具有內(nèi)部STA′s的服務(wù)器系統(tǒng)通信。還應(yīng)該可以理解的是,使用箭頭線的信號的地方,還可能存在雙向信息或數(shù)據(jù)流動。
在客戶和/或服務(wù)器中嵌入TA的一個(gè)缺點(diǎn)是,每個(gè)設(shè)備以它們自己的PSS告終,減少了高速緩存代表在給定位置的大量客戶(或服務(wù)器)的相同段數(shù)據(jù)的好處。然而這個(gè)問題可以在另一個(gè)實(shí)施例中克服,其允許PSS邏輯地跨過多個(gè)TA′s,最好位于公共LAN段(內(nèi)部高速鏈路互連的公共網(wǎng)絡(luò)區(qū)域,例如一個(gè)樓或近似接近的多個(gè)樓里面多層互連的高速校園網(wǎng))。在這種情況下,邏輯共享的PSS可以是隸屬于網(wǎng)絡(luò)的另一個(gè)設(shè)備或它可以是嵌入到每個(gè)CTA中的幾個(gè)PSS′s,這樣通過協(xié)同操作協(xié)議(例如IP多點(diǎn)傳送)這些PSS′s作為單個(gè)的邏輯的實(shí)體運(yùn)轉(zhuǎn)。
圖12是聯(lián)網(wǎng)系統(tǒng)的方框圖,其中事務(wù)加速被實(shí)現(xiàn),且在大量事務(wù)加速器之間共享PSS。如所示,客戶耦合到用于事務(wù)加速的本地CTA402。替換保留的分離PSS,本地CTA′s402耦合到共享的PSS404。最好地是,本地CTA′s和共享的PSS之間的連接是相對于經(jīng)由在客戶和服務(wù)器之間存在的網(wǎng)絡(luò)405的連接,具有更高性能的連接。還可能存在共享參考分析器406,并耦合到共享的PSS404和共享PSS的本地CTA′s。
當(dāng)每個(gè)本地CTA402是用請求消息啟動一個(gè)事務(wù)或接收一個(gè)響應(yīng)消息時(shí),本地CTA402將使用用于存儲和段數(shù)據(jù)檢索的共享PSS404。由于作為一個(gè)本地CTA的事務(wù)的結(jié)果被存儲的段可以用于另一個(gè)本地CTA的事務(wù),所以在系統(tǒng)上使用對于每個(gè)本地CTA402分離的PSS′s有一個(gè)優(yōu)點(diǎn)。例如,如果本地CTA402(1)最近處理包括從服務(wù)器S獲得數(shù)據(jù)的客戶事務(wù),則服務(wù)器S為那個(gè)事務(wù)創(chuàng)建的段將可能在共享PSS404中存在。如果本地CTA402(2)然后處理在服務(wù)器S指示的不同客戶(或相同配置的相同客戶,諸如循環(huán)法本地CTA共享機(jī)制)的事務(wù),本地CTA402(2)將發(fā)送請求給用于服務(wù)器S的STA。如果用于第二個(gè)事務(wù)的段匹配本地CTA402(1)更早事務(wù)的一些,則不管它們實(shí)際上是表示相同的請求還是結(jié)果凈負(fù)荷擁有共有的相同數(shù)據(jù)的不相關(guān)請求,本地CTA402(2)將接收對那些段的參考,而不是段數(shù)據(jù)本身。
當(dāng)本地CTA接收不能從共享PSS404解決的段參考時(shí),本地CTA可以發(fā)送用于解決的請求給共享參考分析器406。在一些實(shí)施例中,每個(gè)本地CTA擁有它自己的共享參考分析器,其傳送它的參考解決給共享PSS404和本地CTA的其他成分。其他實(shí)施例可能采用所有客戶使用的單個(gè)共享參考分析器。
當(dāng)在圖12中所描述的共享PSS作為在客戶端的時(shí)候,可以在服務(wù)器端配置類似的設(shè)置,擁有客戶端的共享或單獨(dú)的PSS′s。同樣,具有共享PSS′s的TA′s可能在TA′s具有單獨(dú)PSS′s的相同網(wǎng)絡(luò)上存在。盡管圖12顯示共享PSS404是不同于本地CTA′s,可以是共享PSS包含在本地CTA′s的一個(gè)中,盡管它在共享那個(gè)PSS的其他CTA′s的外部。
可能使用本地的網(wǎng)絡(luò)多點(diǎn)傳送通信在它服務(wù)的本地CTA′s之間連接PSS。在這種方法中,每個(gè)事務(wù)加速器預(yù)定眾所周知的本地范圍的多點(diǎn)傳送群。通過使用本地的范圍,系統(tǒng)可以保證僅僅用本地高速網(wǎng)絡(luò)連接的事務(wù)加速器通過這個(gè)機(jī)制彼此協(xié)調(diào)。每個(gè)主機(jī)可以產(chǎn)生發(fā)送給這個(gè)群的定期會話消息分組(或未交換會話分組的另一個(gè)配置群),允許對預(yù)定那個(gè)群的其他事務(wù)加速器的環(huán)程時(shí)間估計(jì)的計(jì)算。眾所周知的技術(shù)可以用于這個(gè)處理過程,諸如在1997年12月卷5,6號pp.784-803的聯(lián)網(wǎng)上IEEE/ACM事務(wù)中Floyd,S.,et al.,“對輕-重會話和應(yīng)用層框架的可靠多點(diǎn)傳送架構(gòu)”中所顯示的那些。會話協(xié)議允許群中所有的成員獲悉每個(gè)其他的存在,還能夠推斷來自成員總和的群的大小。
使用這個(gè)多點(diǎn)傳送結(jié)構(gòu),用于高速緩存段數(shù)據(jù)的系統(tǒng)可以用許多方法加強(qiáng)。在一個(gè)方法中,每當(dāng)事務(wù)加速器接收到新的段綁定,它可以多點(diǎn)傳送段綁定給本地范圍群內(nèi)所有其他事務(wù)加速器。這個(gè)可以減輕上面用每個(gè)具有分離PSS的客戶來略述的問題,因?yàn)樵诒镜厥聞?wù)加速器組中的每個(gè)PSS將被彼此復(fù)制,從而任何給定的數(shù)據(jù)段將在WAN連接上僅僅發(fā)送一次。
為了確保在網(wǎng)絡(luò)多點(diǎn)傳送連接上傳輸?shù)目煽啃?,許多針對可靠多點(diǎn)傳送的眾所周知的機(jī)制被采用作Floyd et al.可靠多點(diǎn)傳送協(xié)議中引用的證件中。假設(shè)這個(gè)多點(diǎn)傳送通信在同類的高速本地區(qū)域或校園區(qū)域網(wǎng)絡(luò)中處理,則擁塞控制和WAN多點(diǎn)傳送的困難問題都完全避免了。
圖13是顯示圖12系統(tǒng)的多點(diǎn)傳送實(shí)現(xiàn)的方框圖,其中多點(diǎn)傳送通信用于更新或讀取共享的PSS。如圖12所示的設(shè)置,本地CTA′s412連到客戶和網(wǎng)絡(luò)405,并和其他本地CTA′s共享所共享的PSS414。共享RR416配置在相同多點(diǎn)傳送群417上,作為共享PSS414的每個(gè)實(shí)例(標(biāo)識為414(1),414(2),...)。邏輯地,如果本地CTA′s處理所需的I/O讀取和寫入共享PSS,則可能稱為多點(diǎn)傳送群包含共享RR416和本地CTA′s。用圖中線418來圖示說明多點(diǎn)傳送業(yè)務(wù)。
在另一個(gè)方法中,PSS不是如上面說描述的預(yù)先激活復(fù)制,但更合適的事務(wù)加速器可以發(fā)布本地請求給分析未知的段。換句話說,當(dāng)事務(wù)加速器接收一個(gè)不在它PSS里面的數(shù)據(jù)的參考,它在本地范圍多點(diǎn)傳送群上發(fā)送解決請求消息。因此所有的其他本地事務(wù)加速器將接收請求消息,除非錯(cuò)誤發(fā)生。在它PSS中有請求的數(shù)據(jù)的接收者然后可以用數(shù)據(jù)響應(yīng)。通過使用眾所周知的開槽和阻尼技術(shù)(如Floyd etal.中),當(dāng)發(fā)生小延遲的時(shí)候,僅僅一個(gè)響應(yīng)消息典型地將在網(wǎng)絡(luò)上發(fā)送。
如果請求者沒有接收到響應(yīng)(從會話消息環(huán)程時(shí)間計(jì)算的一些討論延遲之后),請求者假設(shè)數(shù)據(jù)不存在于本地環(huán)境,并在WAN上發(fā)送解決請求給原始的在詢問中產(chǎn)生數(shù)據(jù)參考的事務(wù)加速器。在此值得注釋的是,因?yàn)楸镜丨h(huán)程時(shí)間與WAN環(huán)程時(shí)間(典型地好幾毫秒或更多)相比,是相當(dāng)?shù)男?典型地小于1毫秒),所以由這個(gè)啟動檢查導(dǎo)致的外部延遲被忽略(即典型地在少許百分比下),而由于較高的本地網(wǎng)絡(luò)性能的好處是真實(shí)的。
但是在另一個(gè)方法中,上面所描述的二個(gè)方法之間的混合消除了關(guān)于本地解決請求的延遲。在這個(gè)混合方法中,每當(dāng)事務(wù)加速器接收到新的段綁定,作為多點(diǎn)傳送的整個(gè)段的替代,它簡單地多點(diǎn)傳送段的名字。這樣,所有的本地事務(wù)加速器獲悉段呈現(xiàn)的是什么,無需必須擁有所有段數(shù)據(jù)的拷貝。然后,當(dāng)接收到用于不在PSS中但它的名字被記錄作為本地已知的段的參考時(shí),事務(wù)加速器可以發(fā)送對數(shù)據(jù)的本地請求,且本地請求可以之間到發(fā)送出新段綁定的事務(wù)加速器,如果可以標(biāo)識發(fā)送者的話。另外,加速器可以假設(shè)數(shù)據(jù)不是本地存在且立即穿過WAN發(fā)送請求。即使當(dāng)段被推斷時(shí)本地存在的,它也可能已經(jīng)被從所有其他本地加速器的PSS′s驅(qū)逐出去。在這種情況下,請求加速器將仍然終止連接并回復(fù)穿過WAN發(fā)送它的解決請求。
但是在另一個(gè)方法中,穿過本地加速器群的PSS′s存儲的段不需要完全復(fù)制。在此,每個(gè)加速器對使用合作的高速緩沖技術(shù)的段高速緩沖存儲器的一部分負(fù)責(zé)。如上面所描述的,當(dāng)由另一個(gè)加速器管理的段數(shù)據(jù)的參考需要被分析時(shí),請求可以在多點(diǎn)傳送群上被直接或間接的發(fā)送到那個(gè)設(shè)備。一旦數(shù)據(jù)已經(jīng)重新集合并傳達(dá)給客戶(或服務(wù)器),它可以被放棄且不需要進(jìn)入本地PSS(因?yàn)槎螖?shù)據(jù)被其他事務(wù)加速器積極地管理)。
圖14顯示了大量具有集成CTA′s的客戶502??蛻?02耦合到LAN504,其依次經(jīng)由LAN-WAN鏈路508耦合客戶502到WAN506。不是在LAN504上所有的客戶需要包括CTA512,但至少顯示二個(gè)客戶包括集成的CTA′s512。顯示的每個(gè)CTA包括PSS514和RR516。通過這個(gè)實(shí)現(xiàn),CTA所有的功能可以作為運(yùn)行在客戶上的軟件來實(shí)現(xiàn)。
客戶的CTA512處理被運(yùn)行在那個(gè)客戶上的客戶應(yīng)用程序510所請求的事務(wù)加速。例如,運(yùn)行在客戶502(2)上的應(yīng)用程序啟動和服務(wù)器的被加速的事務(wù),將連接到CTA512(2)。然后在LAN504和WAN506上CTA512(2)將打開和相應(yīng)STA的連接,如上面所說明的。當(dāng)CTA512(2)接收包括已經(jīng)被加速的凈負(fù)荷的響應(yīng)消息時(shí),CTA512(2)將使用PSS514(2)的內(nèi)容來服從加速凈負(fù)荷中參考的標(biāo)簽。
為了實(shí)現(xiàn)可能已經(jīng)在LAN504上服務(wù)器和其他客戶之間的段的好處,PSS′s514可以協(xié)作PSS′s。通過協(xié)作,每個(gè)CTA可以使用來自它們自己PSS和在LAN504上其他CTA′s的PSS′s的段綁定。然后,如果段綁定不能在本地找到,則CTA′sRR可以在WAN上發(fā)送綁定的請求給STA。
在一些情況下,當(dāng)RR接收新的綁定時(shí)(或它的CTA創(chuàng)建的一個(gè)),它分配新的綁定給LAN上其他RR′s中的每個(gè),這樣每個(gè)客戶的PSS填充了在LAN上創(chuàng)建的可用綁定,且當(dāng)CTA服從凈負(fù)荷時(shí),CTA已經(jīng)擁有在LAN上可用的每個(gè)綁定的拷貝。在此這稱為“規(guī)范協(xié)作”。
在其他情況,沒有提早分配綁定,但在請求上發(fā)送綁定。因此,當(dāng)RR需要它所沒有的綁定時(shí),它為綁定提出LAN上其他RR′s的請求。在此這稱為“要求協(xié)作”。
在這些方法的混合中,當(dāng)RR接收新綁定或它CTA創(chuàng)建的一個(gè),它分配指示新段的參考的“綁定通知”和原始CTA給LAN上其他的CTA′s。當(dāng)另一個(gè)CTA確定它在它自己的PSS中沒有所需要的綁定時(shí),CTA′sRR檢查先前接收到的綁定通知的列表。如果所需的綁定在列表中,則請求RR通知始發(fā)站CTA獲得綁定。如果RR確定它沒有綁定且沒有來自LAN上另一個(gè)CTA的綁定通知,則RR在WAN上為綁定發(fā)送請求。在此這稱為“通知協(xié)作”。
應(yīng)該可以理解的是,給定LAN可以實(shí)現(xiàn)多于一個(gè)的上面所描述的協(xié)作機(jī)制。RR′s之間為協(xié)作的通知可以使用多點(diǎn)傳送來實(shí)現(xiàn)。例如,協(xié)作的客戶中的每個(gè)(或它們的CTA′s或RR′s)可以是多點(diǎn)傳送群中的一個(gè)成員。對于“規(guī)范協(xié)作”來說,每個(gè)原始CTA多點(diǎn)傳送它接收或創(chuàng)建的新綁定。對于要求協(xié)作來說,請求RR可以多點(diǎn)傳送請求且響應(yīng)CTA(s)可以單播或多點(diǎn)傳送它們的回答。多點(diǎn)傳送它們的回答允許不請求綁定的其他CTA來接收它且可能存儲它到其他CTA′s PSS。對于通知協(xié)作來說,可以多點(diǎn)傳送通知,但對于請求來說,可以單播那些,因?yàn)檎埱笳邔⒅滥膫€(gè)CTA擁有所請求的綁定。當(dāng)然,通知協(xié)作系統(tǒng)可以在綁定通知沒有指示原始CTA,或者沒有存儲那個(gè)信息的情況實(shí)現(xiàn),在這種情況下,可能多點(diǎn)傳送綁定請求,但當(dāng)使用通知協(xié)作時(shí)最好的方法是跟蹤哪個(gè)CTA發(fā)送哪個(gè)通知。
圖15是聯(lián)網(wǎng)系統(tǒng)的方框圖,其中實(shí)現(xiàn)事務(wù)加速且網(wǎng)絡(luò)處理各種協(xié)議和服務(wù)。所顯示的CTA和STA耦合到計(jì)算CIFS、NFS、SMTP、IMAP和HTTP事務(wù)。在其他設(shè)置中,服務(wù)器在不同位置且客戶在不同位置。在每個(gè)情況下,加速協(xié)議的事務(wù)通過CTA和STA,且能夠如上面所述加速,并對參加事務(wù)的客戶和服務(wù)器是透明的。除了圖中圖示說明的開放協(xié)議之外,CTA′s和STA′s可以為諸如MicrosoftExchangeTM、Lotus NotesTM等等的專利協(xié)議加速事務(wù)。因?yàn)榫哂性诖怂枋龅钠渌兓?,TA′s可能被集成到客戶和服務(wù)器中。例如,一些軟件賣主可能包括事務(wù)加速作為它們的客戶-服務(wù)器軟件套中的一部分。
上面的描述被圖示說明但沒有被限制。根據(jù)對上述說明的回顧,對本領(lǐng)域的普通技術(shù)人員來說發(fā)明的許多變化將變得明顯。因此將不參考上面的描述來確定本發(fā)明的范圍,而是以附加的權(quán)利要求書及其等同的整個(gè)范圍來確定。
權(quán)利要求
1.在一個(gè)網(wǎng)絡(luò)中,其中客戶啟動與服務(wù)器的事務(wù),網(wǎng)絡(luò)運(yùn)送來自客戶的請求消息給服務(wù)器,來自服務(wù)器的響應(yīng)消息給客戶,其中請求消息和響應(yīng)消息中至少一個(gè)包含在網(wǎng)絡(luò)上從發(fā)送端到接收端傳送的凈負(fù)荷,加速事務(wù)的方法包括分割凈負(fù)荷成零或更多段和零或更多未分割數(shù)據(jù)的符號;對每個(gè)段來說,確定是否發(fā)送在凈負(fù)荷中的段數(shù)據(jù)作為未參考段或作為參考段;對于每個(gè)參考段來說,用參考來替換段數(shù)據(jù)中至少一些成為替換后數(shù)據(jù),并根據(jù)它的參考存儲替換后的參考數(shù)據(jù);發(fā)送來自發(fā)送端的凈負(fù)荷到接收端作為加速后凈負(fù)荷,其包括零或更多段參考和零或更多未參考數(shù)據(jù)的符號;在網(wǎng)絡(luò)上接收加速凈負(fù)荷;標(biāo)識在加速凈負(fù)荷中的零或更多段參考;用接收端可用的段數(shù)據(jù)替換加速凈負(fù)荷中一個(gè)或更多段參考,來形成重構(gòu)的凈負(fù)荷;和提供重構(gòu)的凈負(fù)荷到接收端作為傳送凈負(fù)荷。
2.如權(quán)利要求1所述的方法,其特征在于,還包括調(diào)度網(wǎng)絡(luò)中二個(gè)或更多事務(wù)加速器;在第一個(gè)事務(wù)加速器接收來自發(fā)送端服務(wù)器或發(fā)送端客戶的凈負(fù)荷;發(fā)送來自第一個(gè)事務(wù)加速器的加速凈負(fù)荷到第二個(gè)事務(wù)加速器;和發(fā)送來自第二個(gè)事務(wù)加速器的重構(gòu)凈負(fù)荷到接收端客戶或接收端服務(wù)器,這樣加速被傳送到發(fā)送端的發(fā)送協(xié)議和接收端的接收協(xié)議。
3.如權(quán)利要求1所述的方法,其特征在于,還包括確定在根據(jù)接收端的事務(wù)加速器,參考段的段數(shù)據(jù)什么時(shí)候不適用于凈負(fù)荷重構(gòu);并請求來自根據(jù)發(fā)送端的事務(wù)加速器的段數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)段數(shù)據(jù)被存儲作為段參考的一部分時(shí),通過段數(shù)據(jù)的可逆功能變換段數(shù)據(jù),并存儲這個(gè)變換的結(jié)果;和當(dāng)段數(shù)據(jù)被用于解參考段時(shí),使用可逆功能的反相來未變換存儲的結(jié)果。
5.如權(quán)利要求4所述的方法,其特征在于,可逆功能是前向糾錯(cuò)功能、加密功能和簽名功能中的一個(gè)或更多。
6.在一個(gè)網(wǎng)絡(luò)中,其中客戶啟動與服務(wù)器的事務(wù),網(wǎng)絡(luò)運(yùn)送來自客戶的請求消息給服務(wù)器,來自服務(wù)器的響應(yīng)消息給客戶,其中請求消息和響應(yīng)消息中至少一個(gè)包含在網(wǎng)絡(luò)上從發(fā)送端到接收端傳送的凈負(fù)荷,加速事務(wù)的方法包括用于變換消息的凈負(fù)荷來發(fā)送的事務(wù)變換器,包括a)用于分割凈負(fù)荷成零或更多段和零或更多未分段數(shù)據(jù)的符號的分割器;和b)用于確定是否表示每個(gè)段的段數(shù)據(jù)作為非參考段或作為參考段的替換器;存儲參考段的段數(shù)據(jù)和段參考的永久性段存儲器;用于未變換來自遠(yuǎn)程事務(wù)加速器的事務(wù)變換器的加速凈負(fù)荷的非運(yùn)算事務(wù)變換器,包括a)確定段參考出現(xiàn)在加速器凈負(fù)荷中位置的記號賦予器;和b)用于為每個(gè)被記號賦予器檢測到的段參考替換來自永久性段存儲器的段數(shù)據(jù)的反參考器;當(dāng)段參考遇到不在永久性段存儲器中出現(xiàn)的段時(shí),按照反參考器所需要的解析參考的參考解析器。
7.在一個(gè)網(wǎng)絡(luò)中,其中客戶啟動與服務(wù)器的事務(wù),網(wǎng)絡(luò)運(yùn)送來自客戶的請求消息給服務(wù)器,來自服務(wù)器的響應(yīng)消息給客戶,其中請求消息和響應(yīng)消息中至少一個(gè)包含在網(wǎng)絡(luò)上從發(fā)送端到接收端傳送的凈負(fù)荷,改進(jìn)包括客戶端事務(wù)加速器包括a)與客戶耦合的代理,用于接收為傳輸?shù)椒?wù)器的請求消息和關(guān)聯(lián)從服務(wù)器到客戶的重構(gòu)響應(yīng)消息;b)事務(wù)變換器,用于變換從代理接收到的請求消息,包括i)分割器,用于分割請求消息凈負(fù)荷成零或更多段和零或更多未分割數(shù)據(jù)的符號;和ii)替換器,用于確定是否表示每個(gè)段的段數(shù)據(jù)作為未參考段或作為參考段;c)永久性段存儲器,用于存儲段數(shù)據(jù)和針對請求消息凈負(fù)荷的參考段的段參考,其中帶有不同段數(shù)據(jù)的段具有不同段參考,不同段參考可以與創(chuàng)建段參考的事務(wù)無關(guān);和d)反相事務(wù)變換器,用于當(dāng)響應(yīng)消息已經(jīng)被加速時(shí),未變換響應(yīng)消息凈負(fù)荷成重構(gòu)的響應(yīng)消息,包括i)確定段參考出現(xiàn)在響應(yīng)消息凈負(fù)荷中位置的記號賦予器;和ii)用于為每個(gè)被記號賦予器檢測到的段參考替換來自永久性段存儲器的段數(shù)據(jù)的反參考器;服務(wù)器端事務(wù)加速器包括a)與服務(wù)器耦合的代理,用于接收為傳輸?shù)娇蛻舻恼埱笙⒑娃D(zhuǎn)播從客戶到服務(wù)器的重構(gòu)響應(yīng)消息;b)事務(wù)變換器,用于變換從代理接收到的響應(yīng)消息,包括i)分割器,用于分割響應(yīng)消息凈負(fù)荷成零或更多段和零或更多未分割數(shù)據(jù)的符號;和ii)替換器,用于確定是否表示每個(gè)段的段數(shù)據(jù)作為未參考段或作為參考段;c)永久性段存儲器,用于存儲段數(shù)據(jù)和針對響應(yīng)消息凈負(fù)荷的參考段的段參考,其中帶有不同段數(shù)據(jù)的段具有不同段參考,不同段參考可以與創(chuàng)建段參考的事務(wù)無關(guān);和d)反相事務(wù)變換器,用于當(dāng)請求消息已經(jīng)被加速時(shí),未變換請求消息凈負(fù)荷成重構(gòu)的響應(yīng)消息,包括i)確定段參考出現(xiàn)在請求消息凈負(fù)荷中位置的記號賦予器;和ii)用于為每個(gè)被記號賦予器檢測到的段參考替換來自永久性段存儲器的段數(shù)據(jù)的反參考器;
8.如權(quán)利要求7所述的改進(jìn),其特征在于,還包括客戶端參考解析器,用于當(dāng)段參考遇到不在客戶端永久性段存儲器中出現(xiàn)的段時(shí),按照客戶端反參考器所需要的解析參考;和服務(wù)器端參考解析器,用于當(dāng)段參考遇到不在服務(wù)器端永久性段存儲器中出現(xiàn)的段時(shí),按照服務(wù)器端反參考器所需要的解析參考。
9.如權(quán)利要求7所述的改進(jìn),其特征在于,客戶端事務(wù)加速器和服務(wù)器端事務(wù)加速器中的一個(gè)是第一個(gè)事務(wù)加速器,客戶端事務(wù)加速器和服務(wù)器端事務(wù)加速器中的另外一個(gè)是第二個(gè)事務(wù)加速器,改進(jìn)還包括在第一個(gè)事務(wù)加速器用于預(yù)料第二個(gè)事務(wù)加速器的段請求的方法;和用于在先于第二個(gè)事務(wù)加速器的反參考器對那些所預(yù)料的段的需要,從第一個(gè)事務(wù)加速器輸送預(yù)料的段到第二個(gè)事務(wù)加速器的永久性段存儲器的方法。
10.如權(quán)利要求7所述的改進(jìn),其特征在于,還包括在網(wǎng)絡(luò)上協(xié)同操作的一組事務(wù)加速器中每個(gè)事務(wù)加速器,用于分配段參考標(biāo)識符,使得段參考標(biāo)識符在事務(wù)加速器中是唯一的方法,其中段參考標(biāo)識符是從有效非綁定標(biāo)識符空間選擇出來的;和用于壓縮段標(biāo)識符來形成用于數(shù)據(jù)存儲和數(shù)據(jù)傳輸中一個(gè)或更多的壓縮后段標(biāo)識符。
全文摘要
在具有事務(wù)加速的網(wǎng)絡(luò)中,對于已加速的事務(wù)來說,客戶直接給客戶端事務(wù)處理器一個(gè)請求,其轉(zhuǎn)發(fā)這個(gè)請求給服務(wù)器端事務(wù)處理器,這個(gè)處理器依次提供請求或它的表示到用于響應(yīng)此請求的服務(wù)器。服務(wù)器發(fā)送響應(yīng)到服務(wù)器端事務(wù)處理器,其轉(zhuǎn)發(fā)這個(gè)響應(yīng)到客戶端事務(wù)處理器,這個(gè)處理器依次提供響應(yīng)給客戶。通過在服務(wù)器端事務(wù)處理器可存取的永久性段存儲器中,和客戶端事務(wù)處理器可存取的永久性段處理器中存儲用于事務(wù)的數(shù)據(jù)段,事務(wù)可以被事務(wù)處理器加速。當(dāng)數(shù)據(jù)要在事務(wù)處理器之間發(fā)送時(shí),發(fā)送事務(wù)處理器比較要發(fā)送的數(shù)據(jù)段和存儲在它永久性段存儲器中的段,并關(guān)于存儲在它永久性段存儲器中,與所替代的數(shù)據(jù)段匹配或近似匹配的條目,來替代數(shù)據(jù)段。接收事務(wù)存儲器重構(gòu)由參考對應(yīng)來自它永久性段存儲器的段數(shù)據(jù)的替代段發(fā)送的數(shù)據(jù),按照需要請求遺漏來自發(fā)送者的段。事務(wù)加速器可以處理多個(gè)客戶和/或多個(gè)服務(wù)器,且存儲在永久性段存儲器中的段可以涉及不同的事務(wù)、不同的客戶和/或不同的服務(wù)器。永久性段存儲器可以預(yù)先提供來自其他事務(wù)加速器的段數(shù)據(jù)。
文檔編號G06F15/16GK1735874SQ200380107078
公開日2006年2月15日 申請日期2003年10月28日 優(yōu)先權(quán)日2002年10月30日
發(fā)明者S·麥克坎尼, M·J·德瑪 申請人:河床技術(shù)股份有限公司