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