TWI410079B - 通過通信系統傳輸資訊的方法和系統 - Google Patents
通過通信系統傳輸資訊的方法和系統 Download PDFInfo
- Publication number
- TWI410079B TWI410079B TW096116834A TW96116834A TWI410079B TW I410079 B TWI410079 B TW I410079B TW 096116834 A TW096116834 A TW 096116834A TW 96116834 A TW96116834 A TW 96116834A TW I410079 B TWI410079 B TW I410079B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- multicast
- central node
- spoke
- node
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明涉及資料通信,更具體地說,涉及進行可靠的多播資料報和屏障。
傳統計算中,通常使用單個電腦系統進行資料操作,由電腦內的單個或幾個中央處理器(CPU)進行操作。對資料的操作包括數值計算或者資料庫訪問等。CPU在所存儲的包含執行代碼的程式的控制下執行操作。所述代碼可以包括一系列指令,這些指令由CPU執行並導致電腦對資料進行特定的操作。電腦執行操作的能力通常用每秒百萬條指令(MIPS)或者每秒百萬條操作來衡量。
過去,電腦性能的提高依賴於積體電路技術的進步,通常稱為“摩爾定律”。摩爾定律認為積體電路設備的速度隨著時間以可預見的、恒定的速率增加。但是,技術上的局限開始限制在積體電路設備上維持預定的改進速度。
增加電腦性能的另一種方法是電腦架構的改變,例如,使用並行處理。在並行處理方法中,電腦系統使用多個CPU,這多個CPU一起執行資料操作。並行處理電腦提供的計算性能隨著並行處理的CPU的增加而增加。並行處理電腦系統的體積以及高花費使其成為特殊的電腦系統,限制了經濟的、可行的應用這種系統的範圍。
作為大規模平行計算系統的一個替換方案是集群計算(cluster computing)。在集群計算中,通過網路連接的多個小型電腦可一起工作以執行資料操作。能夠以相對低的成本在通用電腦、個人電腦或者伺服器上實施集群計算系統。在集群計算環境中,集群中的電腦像並行處理CPU在內部匯流排上交換資訊一樣,通過網路交換資訊。可以擴大集群計算系統以包括網路超級電腦。這種協作地設置、協同工作以進行資料操作的電腦可稱為高性能電腦(HPC)。
集群計算讓跨越網路分佈的多個處理器協同工作以解決計算強度大的計算問題,使系統相對于單處理器計算機具有較高的計算性能。
在很多分散式計算系統中,電腦與計算集群中的其他電腦傳輸資訊。傳輸資訊使用的一種方法是多播。一些傳統的分散式集群計算系統在應用閘道伺服器上使用多播。作為多播發起方的電腦,或者源端電腦,向應用閘道伺服器發送資訊。接收資料的電腦組,稱為多播組。應用閘道伺服器接著存儲所接收的資訊的副本,並將資訊傳輸給多播組中的每個電腦。應用閘道伺服器可通過可靠的通信協定將資訊傳輸給多播組,例如通過傳輸控制協定(TCP)。在接收到表示多播組內的每台電腦都已經接收到該資訊的指示符時,應用閘道伺服器將不再需要存儲該資訊。因此,將從應用層閘道伺服器的記憶體釋放該資訊。在大規模的集群計算系統中,應用閘道伺服器所需要的記憶體的數量成為一種負擔,它降低了集群計算系統的性能和/或成本效率。即使將消息存儲限制到非永久性介質如系統記憶體,這種負擔依然很重。
除了在電腦群內的電腦之間分發資訊之外,還需要協調每台電腦所執行的處理任務。協調每台電腦所執行任務的工作稱為同步。同步包括將計算任務分割成階段(stage),階段也稱為時隙(epoch)。計算集群內的每台電腦都在它們相應的部分時隙內執行不同的任務。計算集群內的電腦在指定的時隙內對全部資料的不同部分進行操作。但是,在一些情況之下,電腦是否開始後續時隙依賴于集群中的另一台電腦是否已經完成必需的時隙。電腦在執行後續時隙的處理時,可能依賴于必需的時隙中處理的資料結果。
在一些傳統的分散式集群計算系統中,使用旗語(semaphore)、權杖或者其他鎖定技術來處理同步的問題,這些技術讓電腦在滿足先決條件的時候執行操作。例如,必需時隙的完成就是所需要的先決條件已經滿足的例子。
比較本發明後續將要結合附圖介紹的系統,現有技術的其他局限性和弊端對於本領域的普通技術人員來說是顯而易見的。
本發明提供一種進行可靠多播資料報和屏障的系統和/或方法,如下文結合至少一副附圖所示和/或在權利要求中所述。
根據本發明的一方面,提供一種通過通信系統傳輸資訊的方法,所述方法包括:在多播交換設備中存儲從位於多播組中的資料源接收的資料;將所接收的資料多播到所述多播組中的多個資料目的地;釋放至少一部分用於存儲所述接收的資料的資源;以及在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
優選地,所述接收的資料包括進站本地序列號。
優選地,所述方法還包括將所述進站本地序列號轉換成全局序列號。
優選地,所述方法還包括確定與每個所述資料目的地對應的偏移差分。
優選地,所述方法還包括基於所述對應的偏移差分,計算每個所述資料目的地的出站本地序列號。
優選地,所述多播的接收的資料包括所述計算得出的對應於每個所述資料源的出站本地序列號。
優選地,所述方法還包括從所述多播組中的站點成員接收進度消息,所述進度消息包括階段號指示符。
優選地,所述方法還包括比較所述階段號指示符的值和與所存儲資訊相關聯的值。
優選地,所述方法還包括回應所接收的進度消息,基於所述比較向所述站點成員發送確認消息。
優選地,所述方法還包括回應所接收的進度消息,基於所述比較向所述多播組中的每個站點成員發送狀態更新消息。
根據本發明的另一方面,提供一種機器可讀的記憶體,其中存儲有電腦程式,所述電腦程式具有至少一個用於通過通信系統傳輸資訊的代碼段,所述代碼段機器執行並控制所述機器執行以下步驟:在多播交換設備中存儲從位於多播組中的資料源接收的資料;將所接收的資料多播到所述多播組中的多個資料目的地;釋放至少一部分用於存儲所述接收的資料的資源;以及在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
優選地,所述接收資料包括進站本地序列號。
優選地,所述機器可讀的記憶體還包括用於將所述進站本地序列號轉換成全局序列號的代碼。
優選地,所述機器可讀的記憶體還包括用於確定與每個所述資料目的地對應的偏移差分的代碼。
優選地,所述機器可讀的記憶體還包括用於基於所述對應的偏移差分,計算每個所述資料目的地的出站本地序列號的代碼。
優選地,所述多播的接收的資料包括所述計算得出的對應於每個所述資料源的出站本地序列號。
優選地,所述機器可讀的記憶體還包括用於從所述多播組中的站點成員接收進度消息的代碼,所述進度消息包括階段號指示符。
優選地,所述機器可讀的記憶體還包括用於比較所述級號識別字的值和與所存儲資訊相關聯的值的代碼。
優選地,所述機器可讀的記憶體還包括用於回應所接收的進度消息,基於所述比較向所述站點成員發送確認消息的代碼。
優選地,所述機器可讀的記憶體還包括用於回應所接收的進度消息,基於所述比較向所述多播組中的每個站點成員發送狀態更新消息的代碼。
根據本發明的另一方面,提供一種通過通信系統傳輸資訊的系統,所述系統包括:中心節點,其存儲從位於多播組中的資料源接收的資料;所述中心節點將所接收的資料多播到所述多播組中的多個資料目的地;所述中心節點釋放至少一部分用於存儲所述接收的資料的資源;以及所述中心節點在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
優選地,所述接收的資料包括進站本地序列號。
優選地,所述中心節點將所述進站本地序列號轉換成全局序列號。
優選地,所述中心節點確定與每個所述資料目的地對應的偏移差分。
優選地,所述中心節點基於所述對應的偏移差分,計算每個所述資料目的地的出站本地序列號。
優選地,所述多播的接收的資料包括所述計算得出的對應於每個所述資料源的出站本地序列號。
優選地,所述中心節點從所述多播組中的站點成員接收進度消息,所述進度消息包括階段號指示符。
優選地,所述中心節點比較所述階段號指示符的值和與所存儲資訊相關聯的值。
優選地,所述中心節點回應所接收的進度消息,基於所述比較向所述站點成員發送確認消息。
優選地,所述中心節點回應所接收的進度消息,基於所述比較向所述多播組中的每個站點成員發送狀態更新消息。
比較本發明後續將要結合附圖介紹的系統,現有技術的其他局限性和弊端對於本領域的普通技術人員來說是顯而易見的。
本發明的一些實施例涉及可靠地進行多播資料報和屏障的方法和系統,所述系統包括中心節點,該中心節點能夠存儲接收自多播組中資料源的資料。資料源與分散式集群計算系統中的電腦關聯。中心節點能夠將所接收的資料多播到多播組的多個資料目的地。資料目的地與分散式集群計算系統中的對應多個電腦關聯。中心節點能夠接收每個資料目的地的確認。中心節點能夠向資料源發送確認。
在本發明的各種實施例中,中心節點用於將來自資料源的資料多播到多播組的多個資料目的地。可以實施本發明的一個示範性配置包括星形配置,在星形配置中,中心節點通信地連接到多播組內的每個資料目的地。資料源向中心節點發送多播資料,中心節點隨後將資料多播到多播組內的每個資料目的地。
中心節點會存儲所接收的資料,直到資料已經多播到多播組內的每個資料目的地。中心節點隨後釋放分配給所接收的資料的資源。但是,資料源會繼續給發往中心節點的資料分配存儲資源。中心節點繼續為狀態資訊分配存儲資源,這些狀態資訊與與資料到每個資料目的地的多播情況有關。中心節點上用於存儲狀態資訊的資源的數量可少於用於存儲接收資料的資源的數量。
由中心節點來存儲所接收的資料將限制中心節點的可擴展性(scalability)。在本發明的一些實施例中,中心節點可改為存儲所需的用於確定何時向資料源發送確認的資料。資料源會保留資料的副本,直到中心節點發送確認。在中心節點上存儲資料包括可選的增強。
中心節點會收到來自多播組中一個或多個資料目的地的確認,確認它們收到了以多播方式分發的資料。中心節點可存儲用於識別每個已發送確認的資料目的地的資訊。中心節點回應所接收的來自多播組內每個資料目的地的確認,向資料源發送確認。該確認與資料源之前發送的多播資料相對應。所述確認告知資料源:已經成功完成向多播組多播資料。資料源隨後釋放之前分配的用於存儲發往中心節點資料的資源。
根據本發明的一方面,中心節點可用作通信網路中的交換設備。中心節點可用於在分散式計算集群內的節點之間傳送資料,而不需要在傳送完成之前一直存儲資料。
在一些傳統系統中,中心節點的功能由應用閘道伺服器實現。當資料源向應用閘道發送將要多播到多播組的資料時,應用閘道存儲所接收的資料,將所接收的資料多播到多播組內的多個資料目的地,並繼續分配資源以存儲所接收的資料。隨後,應用閘道接收多播組內的資料目的地的確認。在收到到每個資料目的地的確認後,應用閘道釋放之前為存儲資料而分配的資源。在用作應用閘道時,中心節點可減輕資料源上的跟蹤任務,該任務用於對到多播組內目的地的資料傳輸情況進行跟蹤。這將要求中心節點存儲資料,直到多播組內的每個目的地確認接收到資料為止。
在本發明中心節點用作交換設備的一些實施例中,要求資料源存儲資料,而中心節點執行收集和關聯來自每個資料目的地的確認的任務。
本發明的一些實施例可用于在分散式集群計算系統中和/或在多播組內實現同步。這種方法包括柵欄(fencing)或者柵欄柱(fenceposting)。柵欄柱代表狀態標記,其代表計算節點、或者集群計算環境中的節點已經完成的處理階段。本方法包括節點在完成時隙相關聯的任務時,向中心節點發送進度消息。節點可以是多播組內或者分散式集群計算系統內的站點成員(station member)。進度消息包括階段號指示符。階段號指示符表示該時隙已完成,以及該時隙在節點所完成的多個時隙中的次序資訊。每個完成的時隙與一個階段號相關聯。與階段號指示符有關的值將與存儲在中心節點的柵欄柱標記表中的值進行比較。柵欄柱標記表包括與其他節點發送到中心節點的階段號指示符有關的一個或多個值。基於這種比較,中心節點回應所接收的進度(progress)消息,向多播組中的每個節點或者每個站點成員發送進度更新消息。進度更新消息可指出多播組中每個節點已經處理完成的最小號時隙對應的最小階段號。
收到進度更新消息的每個節點都使用進度更新消息中包含的資訊來判斷使其開始處理下一時隙的任務的先決條件是否已經滿足。在這裏,進度更新消息中包含的資訊可用于定義屏障。屏障包括先決條件,即節點開始處理與後續時隙有關的任務之前需要滿足的先決條件。屏障可通過在分散式集群計算系統中一個或多個節點上完成必要時隙來滿足。可獨立於其他節點為一個或多個節點定義與屏障有關的先決條件。
圖1是根據本發明的一個實施例的用於可靠多播資料報和屏障的示範性分散式集群計算系統環境的示意圖。參考圖1,圖1示出了網路102、中心節點104、多個輻條節點(spoke node)106a、108a、110a和112a,以及對應的多個資料庫應用程式106b、108b、110b和112b。網路102包括使得多個使輻條節點106a能夠與其他輻條節點108a和/或中心節點104進行通信的通信媒介和/或通信設備。在本發明的一些實施例中,中心節點104和/或輻條節點106a的功能可以但不限於在電腦系統中實現。例如,中心節點104的功能可位於與輻條節點106a不同的電腦系統中,或者與一個或多個輻條節點位於一個電腦系統中。
中心節點104以及輻條節點106a、108a、110a和112a連接到網路102。例如,輻條節點106a、108a、110a和112a中的一個或多個可分別執行相應的資料庫應用程式106b、108b、110b和112b。通常,可在輻條節點和/或中心節點上並發執行多個軟體進程,例如資料庫應用程式。
在本發明的一些實施例中,多播組包括輻條節點106a、108a、110a和112a。例如,在星形配置中,中心節點104使多播組中的一個輻條節點如106a能夠通過中心節點104將資料多播到包括輻條節點106a、108a、110a和112a的多播組。資料庫應用程式例如應用程式106b通過網路102向中心節點104發送資料,實現將資料多播到多個資料庫應用程式106b、108b、110b和112b。輻條節點106a可將資料發往中心節點104。中心節點104隨後通過網路102將資料多播到多個輻條節點106a、108a、110a和112a。
中心節點104以及輻條節點106a、108a、110a和112a能夠使用多種協定來通過網路102發送、接收和/或多播資料。其中很多協定由互聯網工程任務組(IETF)的標準文檔定義。這些標準文檔包括請求注解(RFC)文檔。可用于建立網路連接的一個示範性通信協定是傳輸控制協定(TCP)。RFC 793公開了基於TCP的通信,本文引用了其中的全部內容。用於在網路上路由在網路連接中傳輸的資訊的一個示範性協定是互聯網網協定(IP)。RFC 791公開了根據IP的通信,本文引用了其中的全部內容。用於在網路上傳輸或者路由資訊的一個示範性媒介是乙太網,其應用於有線和無線介質的部分分別由電器和電子工程師協會(IEEE)802.3和802.11定義,本文引用了其中的全部內容。
TCP可稱為可靠通信協定。通過TCP向資料目的地如中心節點104發送資料的資料源如輻條節點106a,能夠預期的接收到資料目的地對所發送的資料進行回應而發出的確認。如果資料源在發送資料那一刻後的指定時間段內沒有接收到確認,資料源將在隨後的時刻重新發送資料。進行可靠通信的必要條件還要求資料源存儲已發送的資料,直到接收到資料目的地的確認。
本發明的一些實施例可使用任意可靠通信協定在輻條節點和中心節點之間進行點到點通信。一個示範性的可靠通信協定是TCP,但是可靠通信協定不局限於TCP,例如它還可以是MST-MPA和SCTP等。
中心節點104隨後向多播組內的每個輻條節點106a、108a、110a和112a發送資料。中心節點104在發送資料時使用可靠協定如TCP。接著,中心節點至少釋放一部分用於存儲所接收資料的資源。中心節點繼續存儲與發送到每個輻條節點的資料有關的識別字和/或狀態資訊。隨後,中心節點104接收到來自輻條節點的確認,表明對應的輻條節點已經接收到多播資料。中心節點104更新每個確認中包含的識別字資訊,以更新對應的狀態資訊。在中心節點104收到每個輻條節點的確認之後,向最初發送多播資料的輻條節點106a發送確認。輻條節點106a回應所接收的確認消息,釋放用於存儲發往中心節點104的多播資料的資源。
圖2是根據本發明的一個用於可靠多播的示範性系統的結構示意圖。參考圖2,圖中示出了網路102、中心節點202、輻條節點206。中心節點202包括網路介面卡(NIC)212、處理器214、系統記憶體220和匯流排222。NIC 212包括TCP卸載引擎(TOE)241、記憶體234、網路介面232和匯流排236。TOE 241包括處理器243、連接點245和可靠多播點247。輻條節點206包括NIC 242、多個處理器244a、246a和248a、多個遠端應用程式244b、246b和248b、系統記憶體250和匯流排252。NIC 242包括TOE 272、記憶體264、網路介面262和匯流排266。TOE 272包括處理器274、連接點276以及可靠多播點277。
處理器214包括合適的邏輯、電路和/或編碼,可用於發送、接收和/或處理資料。處理器214可用於控制中心節點202的操作和/或執行應用程式碼,例如資料庫應用程式。處理器214可連接到匯流排222。處理器214通過匯流排222來發送和/或接收資料,以此執行協定處理。例如,協定處理與上層協定有關。例如,上層協定可用于連接應用程式。處理器214還執行與接收以及在隨後在多播組中分發多播資料有關的協定處理。
系統記憶體220包括合適的邏輯、電路和/或編碼,可用於存儲、寫入和/或獲取、或者讀取資訊、資料和/或可執行代碼。系統記憶體220包括多種隨機訪問記憶體(RAM)技術,例如DRAM。
NIC 212包括合適的電路、邏輯和/或編碼,使中心節點202能夠與網路如乙太網中發送和/或接收資料。NIC 212連接到網路102。NIC 212連接到匯流排222。NIC 212使中心節點202可靠地將資訊從輻條節點106a多播到多播組內的多個輻條節點106a、108a、110a和112a。
TOE 241包括合適的邏輯、電路和/或代碼,以執行協定處理和/或在中心節點202中提供可靠的多播服務。在本發明的一些實施例中,TOE 241使用包括多種協定的協定棧。在本發明的一個實施例中,協定棧包括多個可靠多播協定。可靠多播協定使TOE 241能夠接收來自資料源的多播資料。資料源關聯到多播組。可靠多播協定使TOE 241能夠將所接收的多播資料發送到與多播組關聯的多個資料目的地。
在本發明的一個示範實施例中,TOE 241在將所接收的多播資料發送到多個資料目的地時,使用基於多流標記符的協定資料單元對齊(MST-MPA)(multi-streamed marker based protocol data unit aligned)協定。在本發明的另一個示範實施例中,TOE 241在將所接收的多播資料發送到多個資料目的地時,使用流控制傳輸協定(SCTP)。TOE 241使用TCP來將所接收的多播資料可靠地傳輸到多個資料目的地。例如,多流式的可靠多播協定使TOE 241通過使用對應的多個TCP隧道,來實現將所接收的多播資料傳輸到每個資料目的地。TCP隧道定義一組TCP連接組合。例如,在TOE 241和其中一個資料目的地之間建立的TCP隧道將包括多個TCP連接。2005年11月8日申請的美國專利申請11/269,005提供了額外的關於TCP隧道的資訊,本文引用了其中的全部內容。可靠多播協定的可靠通信特徵使得TOE 241可將收到的多播資料發往多個資料目的地,並處理來自每個資料目的地的與所發送的多播資料有關的確認。2005年11月8日申請的美國專利申請11/269,422提供了額外的關於MST-MPA和SCTP的資訊,本文引用了其中的全部內容。
記憶體234包括合適的邏輯、電路和/或編碼,能夠存儲和/或獲取資訊、資料和/或代碼。記憶體可存儲多播資料,多播資料將在記憶體234中分配到物理資源,以便進行存儲。所存儲的多播資料可用於隨後的檢索。記憶體234能夠輸出所檢索的多播資料,並將其發送到直接/間接通信連接到記憶體234的其他設備、元件和/或子系統。記憶體234能夠保存所存儲的多播資料,和/或隨後檢索該多播資料,直到用於存儲的資源被釋放。可基於所接收的讓記憶體234刪除所存儲的多播資料的指令來釋放物理資源,或者基於所接收的指示將物理資源分配用於存儲後續的二進位資訊的指令來釋放該物理資源。記憶體234可使用多種存儲媒介技術,例如易失性記憶體(voatile memory)如隨機訪問記憶體(RAM),和/或非易失性(nonvolatile memory)記憶體如電可擦除可編程唯讀記憶體(EEPROM)。
網路介面232包括合適的邏輯、電路和/或編碼,用於發送和/或接收資料。網路介面連接到網路102。網路介面232連接到匯流排236。網路介面232通過匯流排236接收比特。例如,比特與多播資料關聯。網路介面232隨後將比特轉換為資料形式,其中包括電和/或光信號,以及為網路媒介如乙太網制定的對應規範中指定的相關時間參數、信號振幅、能量和/或功率級別。資料形式也包括一個或多個幀資訊比特,用於標識資料形式的開始與結束。資料形式可通過網路102傳輸。
網路介面232通過網路102接收信號,該信號可包括一個或多個標識所接收資料的開始處和結束處的幀資訊比特。在資料開始處和資料結束處之間的接收信號可包括比特形式的多播資料。所接收的信號可轉換成的二進位形式,這種二進位形式包括基於所檢測的電和/或光信號的比特,以及為網路媒介如乙太網制定的對應規範中指定的相關時間參數、信號振幅、能量和/或功率級別。網路介面232隨後通過匯流排286發送與二進位資訊有關的比特,例如多播資料比特。
處理器234包括合適的邏輯、電路和/或編碼,可用於執行TOE 241內的至少一部分協定處理任務,這些任務與在多播組內可靠分發多播資料有關。
可靠多播點247包括可由處理器243執行的電腦程式和/或代碼,用於接收來自輻條節點或者資料源的資料,並將所接收的資料多播到多播組中的多個輻條節點或者資料目的地。可靠多播點247使用連接點245提供的點到點連接,將從其中一個輻條節點接收的消息傳遞到多播組內的多個輻條節點,以及匯總所接收的來自輻條節點的確認,產生單個確認,該單個確認將發往資料源。
可靠多播點247通過可靠的點到點連接如TCP隧道和/或TCP連接接收資料報,該資料報包括來自資料源的資料。可靠多播點247分配用於存儲所接收的資料報的資源。
所接收的資料報包括進站序列號。例如,進站序列號與TCP隧道和/或TCP連接關聯。可靠多播點247用於將進站序列號轉換為全局序列號。可靠多播點247使用全局序列號來組織所接收的多個資料報,例如,組織通過TCP隧道和/或TCP連接接收的資料報,以便隨後在多播組內分發。
可靠多播點247用於建立和/或維護偏移差分表(table of offset differential)。偏移差分表包括多個對應於與多播組關聯的多個資料目的地的偏移值。可靠多播點247選擇與多播組內選定的資料目的地對應的偏移值。所選擇的偏移值與關聯到資料報的全局序列號的值相加,以計算與資料報關聯的出站序列號。隨後,與出站序列號關聯的資料報傳輸到選定的資料目的地。與出站序列號關聯的資料報使用TCP隧道和/或TCP連接將資料報傳輸到資料目的地。
可靠多播點247用於分配資源,該資源用於存儲狀態資訊,該狀態資訊與資料報到資料目的地的傳輸情況有關。例如,狀態資訊表明,與出站序列號有關的資料報已經通過例如TCP隧道和/或TCP連接傳輸到資料目的地。狀態資訊也表示在等待來自資料目的地的、表明已收到資料報的確認等。
可靠多播點247可重復上述過程,將資料報發送到多播組內的其他資料目的地。將資料報傳輸到多播組內的每個資料目的地之後,可靠多播點247可用於釋放之前分配的、用於存儲之前接收的資料報的資源。
可靠多播點247可在每個消息中添加識別字,以便接收器能夠識別訊息源。當可靠點到點協定具有“多流式”能力時,例如具有SCTP或者MST-MPA能力時,可靠多播點247將源端識別字轉換成流識別字。當所用的點到點協定不具有這種能力時,可靠多播點247將原始消息封裝在資料包中,除原始消息外,該資料包中還包括原始源的識別字。
可靠多播點247可用於通過可靠的點到點協定,接收來自資料目的地的表明已經成功接收所傳輸的資料報的確認。對應的出站序列號在接收確認中傳輸。可靠多播點247用於根據所接收的確認修改對應的狀態資訊。例如,所修改的狀態資訊表明,已經從對應的資料目的地接收到確認,該確認表明對應的資料目的地已經成功地接收到之前傳輸的資料報。
可靠多播點247可重復上述過程,來接收到多播組內後續資料目的地的確認。在收到多播組內的每個資料目的地的確認之後,可靠多播點247可通過例如TCP隧道和/或TCP連接向資料源發送確認。
連接點245包括電腦程式和/或代碼,例如,這些程式和/或代碼可由處理器243執行以進行TCP協定處理。一個示範性的協定處理包括建立TCP隧道。
網路介面262與網路介面232基本相同。網路介面262連接到匯流排266。網路介面262也可連接到網路102。記憶體264與記憶體234基本相同。記憶體264連接到匯流排266。處理器274與處理器234基本相同。連接點276與連接點245基本相同。系統記憶體250與系統記憶體220基本相同。系統記憶體250連接到匯流排252。
處理器244a包括合適的邏輯、電路和/或編碼,用於發送、接收和/或處理資料。例如,處理器244a能夠執行應用程式碼、資料庫應用程式等。處理器244a可連接到匯流排252。處理器244a也執行協定處理,這些協定處理與在傳送多播資料以在多播組內分發多播資料有關。
本地應用程式244b包括代碼,該代碼可由處理器244a執行,使處理器244a能夠執行與一個或多個應用程式如資料庫應用程式有關的功能。本地應用程式244b也可控制處理器244a執行有關步驟來傳送多播資料,以在多播組內分發多播資料。
處理器246a與處理器244a基本相同。處理器246a可連接到匯流排252。本地應用程式246b與本地應用程式244b基本相同。處理器248a與處理器244a基本相同。處理器248a連接到匯流排252。本地應用程式248b與本地應用程式244b基本相同。
NIC 242包括合適的電路、邏輯和/或編碼,使輻條節點206能夠發送和/或接收來自網路如乙太網的資料。NIC 242連接到網路102。NIC 242也連接到匯流排252。NIC 212使輻條節點206向中心節點104提供可靠的資訊傳送,這些資訊隨後將多播到多播組內的多個輻條節點106a、108a、110a和112a。
TOE 272包括合適的電路、邏輯和/或編碼,以在輻條節點206內執行協定處理和/或提供可靠多播服務。TOE 272可連接到匯流排252。TOE 272可連接到匯流排266。在本發明的一些實施例中,TOE 272使用包括多種協定的協定棧。在本發明的一個實施例中,協定棧包括可靠多播協定。可靠多播協定使TOE 272能夠向中心節點傳輸源資料。可靠多播協定也使TOE 272能夠傳輸對應的資訊,該資訊指示中心節點104將所傳輸的源資料多播到多播組內的每個輻條節點106a、108a、110a和112a。輻條節點206和中心節點104與多播組關聯。
可靠多播協定也使TOE 272能夠在隨後接收確認,該確認是對中心節點104所發出的源資料做出的回應。點到點傳輸協定例如TCP,使TOE 272啟動計時器,該計時器與向中心節點104發送源資料有關。當計時器發生超時事件時,點到點傳輸協定使TOE 272重新發送之前向中心節點傳輸的源資料。
可靠多播協定也使TOE 272接收來自中心節點104的多播資料。可靠多播協定使TOE 272回應對多播資料的接收,使TOE 272向中心節點104傳輸確認,如可靠點到點傳輸協定提供的一樣。
在本發明的一個示範實施例中,TOE 272向中心節點104傳輸源資料和/或從中心節點104接收多播資料時,使用MST-MPA協定。在本發明的另一個示範實施例中,TOE 272使用SCTP向中心節點104傳輸源資料和/或從中心節點104接收多播資料。TOE 272使用TCP以可靠地將源資料傳輸到中心節點104,和/或從中心節點104接收多播資料。多流式的可靠多播協定使TOE 272可實現源資料的發送,和/或接收多播資料,例如通過使用一個或多個TCP隧道實現。本發明的一方面,可靠多播協定使TOE 272向中心節點104傳輸源資料。在本發明的另一方面,可靠多播協定使TOE 272接收中心節點104的多播資料。
可靠多播點277包括可由處理器274執行的電腦程式和/或代碼,用於向中心節點104發送源資料,和/或從中心節點104接收多播資料。可靠多播點277用於通過TCP隧道和/或TCP連接向中心節點104傳輸資料報,該資料報包括源資料。可靠多播點277傳輸與資料報有關的資訊,該資訊指示中心節點104向多播組內的每個輻條節點傳輸資料報。可靠多播點277可用于分配資源,該資源用於存儲所發送的資料報。分配資源以存儲所發送的資料報,至少直到接收到來自中心節點104的對應的確認為止。所傳輸的資料報包括源序列號。例如,源序列號與可靠點到點連接有關。
可靠多播點277可用于分配資源,該資源用於存儲與資料報到資料目的地的傳輸情況有關的狀態資訊。例如,狀態資訊表明,與源序列號有關的資料報已經通過可靠點到點協定傳送到中心節點104。一個示範性的狀態資訊還可表明正在等待確認。在接收到確認之後,可靠多播點277可用於釋放之前分配的、用於存儲之前所傳輸的資料報的資源。
按照所選協定的慣例,可靠多播點277用於通過可靠點到點協定,向中心節點104傳輸表明已經成功接收到多播資料的確認。
在操作時,中心節點202和輻條節點206關聯到包括多個輻條節點的多播組。遠端應用程式244b控制處理器244a向與多播組的關聯的多個輻條節點傳輸源資訊。該源資訊可存儲在系統記憶體250中。處理器244a可向系統記憶體250發送指令,該指令控制系統處理器250獲得該源資訊的副本,該副本隨後通過匯流排252傳輸到TOE 272。
可靠多播協定277控制處理器274使用源資料來產生資料報。該資料包與在資料報內傳輸的源序列號關聯。可靠多播點277控制處理器274指示記憶體264分配資源用於存儲該資料報。可靠多播點277也控制處理器274指示記憶體264分配資源以存儲狀態資訊,該狀態資訊與隨後到中心節點202的資料報的傳送情況有關。
連接點276控制處理器274執行建立可靠點到點連接的步驟,該點到點連接將輻條節點206中的連接點276通信連接到中心節點202中的連接點245。可靠多播點277可控制連接點276建立和/或選擇點到點可靠連接,該點到點可靠連接與向多播組內的每個輻條節點206分發多播資料有關。
可靠多播點277控制處理器274指示處理器264獲取資料報的副本,該副本隨後傳輸到網路介面262。連接點276可控制處理器274指示網路介面262使用選定的點到點連接,以通過網路102將資料報傳輸到中心節點202。可以修改狀態資訊,以表明與源序列號關聯的資料報已經通過選定的TCP隧道和/或TCP連接傳輸到中心節點202,正等待中心節點202的確認。
可靠多播點277控制處理器274在傳輸資料報那一刻啟動計時器。如果沒有接收到確認,計時器將在超時時間段後過期。如果計時器過期,可靠多播點277可控制處理器274執行一些步驟,用於向中心節點102重新傳送先前傳送的資料報。資料報的重傳過程與上文描述的資料報傳送過程相同。狀態資訊也包括與計時器有關的資訊。
中心節點202中的網路介面232通過網路102接收資料報。連接點245使處理器243確定資料報是通過TCP隧道和/或TCP連接收到的,這說明所接收的資料報包含作為多播資料分發到多播組中每個輻條節點206的資訊。可靠多播點247控制處理器243指示記憶體234分配資源以存儲收到的多播資料。可靠多播點247控制處理器243指示記憶體234分配資源以存儲狀態資訊,該狀態資訊與確保多播組中多播資料的分發有關。狀態資訊包括進站序列號資訊,進站序列號資訊的值可基於所接收的資料報確定。例如,狀態資訊也包括傳送資料報的TCP隧道和/或TCP連接的識別字。在將所接收的多播資料存儲到記憶體234之前,可靠多播點247控制處理器243產生全局序列號。可以修改多播資料以包括全局序列號。
可靠多播點247可控制將所接收的多播資料傳送到多播組內關聯的每個輻條節點206。將多播資料傳輸到多播組內的一個輻條節點206時,可靠多播點247執行一個流程,該流程基本上與將多播資料傳輸到多播組內的其餘輻條節點時執行的流程相同。
可靠多播點247可控制處理器243將多播資料傳輸到輻條節點206。可靠多播點247可控制處理器243指示記憶體234獲取多播資料的副本。可靠多播點247可控制處理器產生偏移差分表。處理器243選擇與輻條節點206對應的偏移值。處理器243基於全局序列號以及偏移值計算出站序列號。所獲取的多播資料的副本可以修改,以包括出站序列號。可靠多播點247可控制處理器243使用經修改的多播資料的副本來產生多播資料報。
可靠多播點247也可控制處理器分配資源以存儲狀態資訊,該狀態資訊與多播資料報到輻條節點206的傳輸情況有關。
連接點245可控制處理器243執行步驟,該步驟可建立或者選擇TCP隧道和/或TCP連接等,該TCP隧道和/或TCP連接通信地連接到連接點245和連接點276。所建立的和/或所選擇的TCP隧道和/或TCP連接可用於將多播資料報從中心節點202傳輸到輻條節點206。
連接點245可控制處理器243指示網路介面232來使用所選擇的點到點連接,以通過網路102將多播資料報傳輸到輻條節點206。可以修改與多播資料報有關的狀態資訊,以表明與出站序列號關聯的多播資料報已經通過例如選定的TCP隧道和/或TCP連接傳輸到輻條節點206,,正在等待來自輻條節點206的確認。
輻條節點206中的網路介面262可通過網路102接收多播資料報。連接點276使可靠多播點277能夠控制處理器274執行與接收多播資料報有關的步驟。可靠的點到點協定控制處理器274回應所接收的資料報,產生確認。該確認隨後被傳輸到中心節點202中的點到點協定。可靠多播點277控制處理器274在確認中傳輸出站序列號資訊,該資訊包含在所接收的多播資料報中。該確認通過例如對應的TCP隧道和/或TCP連接傳輸到可靠多播點247。
連接點276控制處理器274執行步驟,該步驟將控制選擇TCP隧道和/或TCP連接,該TCP隧道和/或TCP連接通信地連接連接點275和連接點276。可靠多播點277控制連接點276選擇TCP隧道和/或TCP連接,以傳輸基於TCP隧道和/或TCP連接的確認,該確認用作對應的所接收多播資料報的收條。
可靠多播點277可控制處理器274指示網路介面262使用選定的TCP隧道和/或TCP連接,以通過網路102將確認傳輸到中心節點202。
中心節點202中的網路介面232可通過網路102接收確認。該確認中包含的資訊可通過連接點245傳輸到可靠多播點247。可靠多播點247使用該確認中包含的資訊來控制處理器243修改與對應的多播資料報有關的狀態資訊。可靠多播點247使用該確認中包含的序列號資訊來表示多播資料報,該多播資料報對應於所接收的確認。所修改的狀態資訊可以表示該確認的接收。
將取得的多播資料報的副本傳輸到多播組內的輻條節點206之後,可靠多播點247控制處理器243指示記憶體234釋放資源,該資源之前被分配用於存儲從輻條節點206接收的資料報。
在接收到多播組中的每個輻條節點206的確認之後,可靠多播點247控制處理器243產生確認,該多點確認將被傳輸到可靠多播點277。
可靠的點到點協定控制處理器243產生本地確認,該本地確認隨後被傳輸到輻條節點206。可靠的點到點協定控制處理器243通過對應的TCP隧道和/或TCP連接傳輸該確認中包含的進站序列號。連接點245控制處理器243執行步驟,該步驟控制對TCP隧道和/或TCP連接的選擇,該TCP隧道和/或TCP連接通信地連接到中心節點202的連接點245以及輻條節點206中的連接點276。可靠多播點247控制連接點245選擇TCP隧道和/或TCP連接以傳輸確認,例如,基於用於接收對應的資料報的TCP隧道和/或TCP連接進行選擇。
可靠多播點247控制處理器243指示網路介面232使用選定的TCP隧道和/或TCP連接,通過網路102將確認傳輸到輻條節點206。
中心節點202中的網路介面262能夠通過網路102接收確認。包含在該確認中的資訊可通過連接點276傳輸到可靠多播點277。可靠多播點277使用該確認中包含的資訊來控制處理器274修改與對應的資料報有關的狀態資訊。可靠多播點247可使用該確認中包含的序列號資訊來標識與所接收的確認對應的資料報。所修改的狀態資訊可防止基於超時時間段設定的計時器超時。
在傳輸確認之後,可靠多播點247控制處理器243指示記憶體234釋放之前分配用於存儲對應的狀態資訊的資源。
在接收到確認之時,可靠多播點277控制處理器274指示記憶體停止對應的計時器,並防止基於超時時間段而設定的計時器過期。處理器274指示記憶體264釋放之前分配用於存儲之前傳輸對應的源資訊和/或狀態資訊的資源。
圖3是根據本發明的一個實施例的MST-MPA協定棧上的示範性可靠多播的示意圖。參考圖3,圖3示出了在MST-MPA上的可靠多播協定棧302。在MST-MPA上的可靠多播協定棧302包括上層協定304、可靠多播協定306、直接資料放置協定(direct data placement protocol,DDP)308、基於標記的PDU對齊協定(MPA)310、TCP 312、IP 314以及乙太網協定316。NIC 212或者242包括與可靠協定306、DDP 308、MPA協定310、TCP 312、IP 314以及乙太網協定316有關的功能。
上層協定304包括使輻條節點206選擇源資訊的方法,所述源資訊作為多播資料傳輸到多播組內的每個輻條節點。可靠多播協定306制定了使輻條節點206向中心節點202傳輸多播資料的各種方法。中心節點202隨後將多播資料傳輸到與輻條節點206關聯的多播組中的每個輻條節點。DDP 308能夠將資訊從例如輻條節點206的應用程式用戶空間複製到中心節點202的應用程式用戶空間,而不需要進行將資訊複製到內核空間的中間複製過程。這種方法稱為“零複製”(zero copy)法。
MST-MPA協定310包括通過TCP連接實現輻條節點206和中心節點202之間通信的方法。TCP 312以及IP 314包括根據工程任務組(IETF)定義的合適協定通過網路交換資訊的方法。乙太網層316包括根據IEEE定義的合適的標準通過網路交換資訊的方法。
圖4是根據本發明的一個實施例的SCTP協定棧上的示範性可靠多播的示意圖。參考圖4,圖4示出了在SCTP上的可靠多播協定棧402。在SCTP上的可靠多播協定棧402包括上層協定304、可靠多播協定306、直接資料放置協定(DDP)308、流式傳輸控制協定(SCTP)410、IP 314以及乙太網協定316。NIC 212或者242包括與可靠協定306、DDP 308、SCTP協定410、IP 314以及乙太網協定316有關的功能。上層協定304、可靠多播協定306、直接資料放置協定(DDP)308、IP 314以及乙太網協定316與圖3所述基本相同。SCTP 410可包括與MPA協定310和TCP 312等效的功能。
2005年11月8日申請的美國專利申請11/269,422公開了關於MST-MPA、SCTP以及DDP的其他資訊,本文也參考了其中的全部內容。
圖5是根據本發明的一個實施例的用於可靠多播資料報的系統的示範性資料結構示意圖。參考圖5,圖中示出了中心節點502。中心節點包括全局資料504以及多個輻條資料506、508、510、512、514、516、518和520。中心節點502表示圖2所示的中心節點202。多個輻條資料506、508、510、512、514、516、518和520對應於多播組中的多個輻條節點206。輻條資料包括狀態資訊,該狀態資訊與中心節點202和對應的輻條節點206之間的通信有關。全局資料504包括狀態資訊,該狀態資訊與中心節點202與多播組中的多個輻條節點之間的通信有關。中心節點502通過一個或多個TCP隧道和/或TCP連接與多個輻條節點206進行通信,該多個輻條節點206對應於多個輻條資料506、508、510、512、514、516、518和520。
在一個方案中,全局資料504包括中心節點202接收到的一組確認,該組確認回應分發到多播組中的每個輻條節點206的多播資料。中心節點202將多播資料傳輸到多播組內的每個輻條節點206。中心節點202維持全局資料,該全局資料包括狀態資訊,該狀態資訊表示多播組中的哪個輻條節點已經確認接收到多播資料報。例如,中心節點202基於該全局資料傳輸確認。
一些方案中,輻條資料包括資訊和序列號,該資訊包含在中心節點202回應包含多播資料的資料報的接收而傳輸的確認中,該序列號與中心節點與對應輻條節點206之間傳輸的資料報和/或確認有關。出站差分(outbound differential)與每個輻條資料塊相關聯。出站差分表示偏移值,該偏移值對應於多播組內的輻條節點206。輻條資料也包括進站序列號,用入站X1
、入站X2
和入站X3
表示,其與從指定的輻條節點206接收的資料報D1
、D2
和D3
有關。例如,對應於輻條資料塊506的入站X1
、入站X2
和入站X3
的值可能與對應於輻條資料塊508的入站X1
、入站X2
和入站X3
的值不同。對應的進站序列號入站X1
、入站X2
和入站X3
在每個輻條資料塊中被轉換成全局序列號全局Y1
、全局Y2
和全局Y3
。基於與對應的輻條資料塊有關的出站差分值,以及基於全局序列號的值,可以計算出中心節點202傳輸到對應各輻條節點206的每個資料報的出站序列號。
圖6A是根據本發明的一個實施例的用於可靠多播資料報的系統中多播資料報分發過程的示意圖。參考圖6A,圖中示出了示範的多個資料報602a、602b、602c、604a、604b、604c、606a、606b、606c、606d、606e、606f、610a、610b、610c、610d、610e、610f、612a、612b、612c、612d、612e、612f以及示範的偏移差分表。該多個資料報602a、602b、602c、604a、604b、604c包括由中心節點分發到多播組中的多個輻條節點的多播資料。示範的多播組包括中心節點104、輻條節點106a和108a。多個資料報602a、602b、602c由輻條節點106a傳輸到中心節點104,用標簽A表示。多個資料報604a、604b、604c由輻條節點108a傳輸到中心節點104,用標簽B表示。
資料報602a包括示範的進站序列號2000,資料報602b包括示範的進站序列號3000,資料報602c包括示範的進站序列號4000;資料報604a包括示範的進站序列號6000,資料報604b包括示範的進站序列號7000,資料報604c包括示範的進站序列號8000。
從輻條節點106a接收到資料報602a、602b、602c之時,中心節點104產生全局序列號。資料報602a可對應於資料報606a。示範進站序列號2000被轉換成全局序列號12000。資料報602b對應於資料報606b,示範進站序列號3000被轉換成13000。資料報602c對應於資料報606c,示範進站序列號4000被轉換成14000。
從輻條節點108a接收到資料報604a、604b、604c之時,中心節點104產生全局序列號。資料報604a可對應於資料報606d。示範進站序列號6000被轉換成全局序列號15000。資料報604b對應於資料報606e,示範進站序列號7000被轉換成16000。資料報604c對應於資料報606f,示範進站序列號8000被轉換成17000。
中心節點104可將多個資料報606a、606b、606c、606d、606e以及606f分發到多播組內的每個輻條節點106a和108a。
中心節點104通過參考由標簽C表示的偏移查分表中包含的值,分別確定與輻條節點106a、108a對應的偏移值。示範的與輻條節點106a對應的偏移值是10000,示範的與輻條節點108a對應的偏移值是16000。
基於與資料報606a、606b、606c、606d、606e、606f有關的全局序列號,以及基於與輻條節點106a有關的示範偏移值,中心節點104能夠計算多播資料報的出站序列號,該出站序列號被傳輸到輻條節點106a。如標簽D所示,該多個資料報610a、610b、610c、610d、610e和606f被傳輸到輻條節點106a。
資料報610a包括示範的出站序列號22000,資料報610b包括示範的出站序列號23000,資料報610c包括示範的出站序列號24000,資料報610d包括示範的出站序列號25000,資料報610e包括示範的出站序列號26000,資料報610f包括示範的出站序列號27000。
基於與資料報606a、606b、606c、606d、606e、606f有關的全局序列號,以及基於與輻條節點108a有關的示範偏移值,中心節點104能夠計算多播資料報的出站序列號,該出站序列號被傳輸到輻條節點108a。如標簽E所示,該多個資料報、612a、612b、612c、612d、612e和602f被傳輸到輻條節點108a。
資料報612a包括示範的出站序列號31000,資料報612b包括示範的出站序列號32000,資料報612c包括示範的出站序列號33000,資料報612d包括示範的出站序列號34000,資料報612e包括示範的出站序列號35000,資料報612f包括示範的出站序列號36000。
圖6B是根據本發明的一個實施例的用於可靠多播資料報的系統中的消息交換的示意圖。參考圖6B,圖中示出了在發送方輻條節點和中心節點之間的消息交換,以及在中心節點和多播組之間的消息交換,發送方輻條節點、中心節點和多播組如圖6B中所標示。發送方輻條節點表示將多播資料傳輸到中心節點的輻條節點,該多播資料隨後被通過多個多播資料報傳輸到與多播組關聯的對應的多個輻條節點。多播組包括多個輻條節點。
步驟621中,發送方輻條節點存儲將要傳輸給中心節點的源資料。在發送方輻條節點上分配資源以存儲源資料。步驟622中,發送方輻條節點將包括源資料的資料報傳輸給中心節點。在步驟626a,...,626n中,中心節點將對應的多播資料報傳輸到與多播組關聯的每個輻條節點。在步驟628a,...,628n中,每個接收方輻條節點回應接收到的對應的多播資料報,向中心節點發送確認。步驟630中,中心節點向發送方輻條節點發送確認。在步驟631中,發送方輻條節點釋放之前分配的用於存儲源資料的資源。
在本發明的另一個實施例中,中心節點104可用于在分散式集群計算系統中實現同步。圖7是根據本發明的一個實施例的用於屏障的系統的資料結構的示範性示意圖。參考圖7,圖中示出了中心節點702。該中心節點包括全局資料704以及多個輻條資料706、708、710、712、714、716、718和720。中心節點702表示中心節點202。多個輻條資料706、708、710、712、714、716、718和720對應於多播組中的多個輻條節點206。輻條資料包括狀態資訊,該狀態資訊與時隙或者柵欄柱有關,表示正由集群計算環境中的輻條節點執行的計算任務的狀態。全局資料包括狀態資訊,該狀態資訊與時隙或者柵欄柱有關,該狀態標記是表示集群計算環境中每個輻條節點已經完成的最小的處理階段號的狀態標記符。
輻條節點106a可完成一個時隙,該時隙對應於與狀態標記符有關的柵欄柱。輻條節點106a向中心節點104發送進度消息。中心節點104向輻條節點106a發送確認消息。進度消息包括基於狀態識別字的資訊。與輻條節點106a有關的輻條資料706基於狀態標記符保持狀態資訊local_sent。全局資料704包括與集群計算環境中每個輻條節點已經完成的最小的處理級號有關的資訊。
與每個輻條資料塊關聯的是出站差分。出站差分表示對應于集群計算環境中的輻條節點206的偏移值。在本發明的一些實施例中,對於每個輻條資料塊706、708、710、712、714、716、718和720,與出站差分有關的值可以是0。基於與全局資料704關聯的最小階段號資訊,以及基於與輻條資料706有關的local_sent狀態資訊,可以計算出每個輻條資料塊的相對最小狀態標記符local_acked。傳輸到集群計算環境中的每個輻條節點206的確認消息包括相對最小狀態標記符的值local_acked。
圖8是根據本發明的一個實施例的在屏障系統中分發狀態標記符資訊的示意圖。參考圖8,圖中示出了多個進度消息802、804和806、柵欄主標記表808以及多個進度更新消息810、812和814。進度更新消息810對應於進度消息802,進度更新消息812對應於進度消息804,進度更新消息814對應於進度消息806。
輻條節點106a向中心節點傳輸進度消息802,如標簽A所示。進度消息802包括狀態標記值,該狀態標記值表示輻條節點106a已經完成第5階段計算任務。輻條節點108a向中心節點傳輸進度消息804,如標簽B所示。進度消息804包括狀態標記值,該狀態標記值表示輻條節點108a已經完成第7階段計算任務。輻條節點110a向中心節點傳輸進度消息806,如標簽C所示。進度消息806包括狀態標記值,該狀態標記值表示輻條節點110a已經完成第8階段計算任務。
中心節點104接收每個進度消息802、804和806。對應的狀態標記值存儲在柵欄柱標記表808中。柵欄主標記表808中的專案對應于集群計算環境中的輻條節點。例如,狀態標記值stage_5與輻條節點106a關聯,狀態標記值stage_7與輻條節點108a關聯,狀態標記值stage_8與輻條節點110a關聯。
中心節點104檢查與柵欄主標記808中的每個專案有關的值,以確定最小處理階段號。例如,示範的最小處理階段號是stage_5。中心節點104回應接收到的輻條節點106a的進度消息802,傳輸進度更新消息810。進度更新消息810包括基於柵欄主標記表808的內容的最小階段號資訊stage_5。進度更新消息810可傳輸到輻條節點106a,如標簽D所示。中心節點104回應接收到輻條節點108a的進度消息804,傳輸進度更新消息812。進度更新消息812包括基於柵欄主標記表808的內容的最小階段號資訊stage_5。進度更新消息812可傳輸到輻條節點108a,如標簽E所示。中心節點104回應接收到輻條節點110a的進度消息806,傳輸進度更新消息814。進度更新消息814包括基於柵欄主標記表808的內容的最小階段號資訊stage_5。進度更新消息816可傳輸到輻條節點110a,如標簽F所示。
圖9是根據本發明的一個實施例進行可靠多播資料報的方法的示範性步驟的流程圖。參考圖9,步驟902中,中心節點104接收發送方輻條節點106a的多播資料。中心節點和輻條節點之間的通信連接稱為輻條(spoke)。所接收的多播資料包括本地序列號。
步驟906中,中心節點104將與所接收的多播資料有關的進站本地序列號轉換成全局序列號。步驟908中,中心節點104執行查找操作,以確定多播組中的每個輻條節點106a、108a、110a和112a的偏移差分。計算對應的出站序列號。在步驟912中,包括多播資料的多播資料報被傳輸到多播組中的每個輻條節點。對應的出站序列號與每個多播資料報關聯。步驟914中,中心節點104回應每個對應的多播資料報,接收確認。步驟916中,中心節點104將確認傳輸到發送方輻條節點。
圖10是根據本發明的一個實施例進行屏障的方法的示範性步驟的流程圖。。參考圖10,步驟1002中,中心節點104通過輻條接收輻條節點106a的進度消息。該進度消息包括階段號指示符。步驟1004中,中心節點104將所接收的階段號指示符存儲到柵欄主標記表808中與輻條節點106a關聯的位置上。在步驟1006中,比較所接收的階段號指示符的值與存儲在柵欄主標記表中的其他階段號指示符的值,所示其他階段號指示符是從來自其他輻條節點的資訊中收到的。
步驟1008中,確定所接收的階段號指示符的值是否表示柵欄主標記表808中最低階段號的值。如果是,則步驟1012中,中心節點104向輻條節點106a傳輸進度更新消息,該進度更新消息包括最小階段號值,該最小階段號值基於步驟1002中接收的階段號指示符的值。中心節點104隨後回應所接收的進度消息,在進度更新消息中將最小階段號值傳輸到每個輻條節點。
如果步驟1008中,確定所接收的階段號指示符值不表示柵欄主標記表808中最低階段號的值,那麽,在步驟1010中,中心節點104向輻條節點106a傳輸確認,該確認包括當前最小階段號值。
另一方面,通過通信系統傳輸資訊的系統包括中心節點202,中心節點202能夠存儲從多播組的資料源接收的資料。示範的多播交換設備包括中心節點202。示範的資料源包括輻條節點106a。示範的多播組包括多個輻條節點106a、108a、110a和112a。存儲所接收的資料,要求在中心節點202上分配資源,例如在記憶體234中分配資源。中心節點202能夠將所接收的資料多播到多播組中的多個資料目的地。示範的資料目的地包括多個輻條節點106a、108a、110a和112a。中心節點202可釋放至少一部分分配的用於存儲接收資料的資源。例如,所釋放的資源包括記憶體234的至少一部分。資源的釋放不會馬上導致馬上清除或者擦除存儲在所釋放資源中的接收資料,但是所釋放的資源隨後可用於其他的目的,例如存儲後來的資料。回應接收到的來自每個資料目的地的確認,中心節點202將確認發送到資料源。
資料包括進站本地序列號。中心節點202將進站本地序列號轉換成全局序列號。與每個資料目的地對應的偏移差分將被確定。中心節點202基於對應的偏移差分計算每個資料目的地的出站本地序列號。對所接收的資料進行多播包括計算與每個資料目的地對應的出站本地序列號。
在另一個實施例中,中心節點202能夠接收多播組中的站點成員的進度消息。進度消息包括階段號指示符。示範的站點成員包括輻條節點106a。階段號指示符表示完成了與對應時隙關聯的處理。中心節點202比較與階段號指示符有關的值以及與所存儲的資訊有關的值。所存儲的資訊包括與接收自多播組的其他站點成員的進度消息有關的值。基於這種比較,中心節點202回應該進度消息,或者向該站點成員發送確認消息,或者向多播組內的每個站點成員發送進度更新消息。發送到之前發送狀態消息的站點成員的狀態更新消息包括確認。
本發明的一些實施例使用任何的可靠傳輸協定,以在輻條節點和中心節點之間通信。通過可靠傳輸協定的消息多播保留消息邊界,能夠表示消息的發送源。例如,MST-MPA和SCTP就是典型的可靠傳輸協定,可用於保留消息邊界,以及將消息對齊到不同的流。例如,多播協定可對齊每個流,以供一個源終端使用。
當TCP用作可靠傳輸協定時,可根據多播消息定義資料包。該資料包包括消息長度、發送源以及將要多播的資料。
例如,當使用TCP時,從中心節點到輻條節點的多播柵欄消息的編碼將被簡化。例如,消息長度是固定的。示範的消息長度包括1個位元組。例如,消息具有消息序列計數器的相關優點。在一些使用MST-MPA或者SCTP的實施例中,消息可包括0個位元組的有效載荷。
相應地,本發明可以通過硬體、軟體,或者軟、硬體結合來實現。本發明可以在至少一個電腦系統中以集中方式實現,或者由分佈在幾個互連的電腦系統中的不同部分以分散方式實現。任何可以實現所述方法的電腦系統或其他設備都是可適用的。常用軟硬體的結合可以是安裝有電腦程式的通用電腦系統,通過安裝和執行所述程式控制電腦系統,使其按所述方法運行。在電腦系統中,利用處理器和存儲單元來實現所述方法。
本發明還可以通過電腦程式產品進行實施,所述套裝程式含能夠實現本發明方法的全部特徵,當其安裝到電腦系統中時,通過運行,可以實現本發明的方法。本文件中的電腦程式所指的是:可以採用任何程式語言、代碼或符號編寫的一組指令的任何運算式,該指令使系統具有資訊處理能力,以直接實現特定功能,或在進行下述一個或兩個步驟之後實現特定功能:a)轉換成其他語言、編碼或符號;b)以不同的格式再現。
本發明是通過幾個具體實施例進行說明的,本領域技術人員應當明白,在不脫離本發明範圍的情況下,還可以對本發明進行各種變換及等同替代。另外,針對特定情形或具體情況,可以對本發明做各種修改,而不脫離本發明的範圍。因此,本發明不局限於所公開的具體實施例,而應當包括落入本發明權利要求範圍內的全部實施方式。
網路...102
中心節點...104
輻條節點(spoke node)...106a、108a、110a、112a
資料庫應用程式...106b、108b、110b、112b
中心節點...202
輻條節點...206
網路介面卡(NIC)...212
處理器...214
系統記憶體...220
匯流排...222
網路介面...232
記憶體...234
匯流排...236
TCP卸載引擎(TOE)...241
網路介面卡(NIC)...242
處理器...243
處理器...244a、246a、248a
遠端應用程式...244b、246b、248b
連接點...245
可靠多播點...247
系統記憶體...250
匯流排...252
網路介面...262
記憶體...264
匯流排...266
TCP卸載引擎(TOE)...272
處理器...274
連接點...276
可靠多播點...277
可靠多播協定棧...302
上層協定...304
可靠多播協定...306
直接資料放置協定(direct data placement protocol,DDP)...308
基於標記的PDU對齊協定(MPA)...310
TCP...312
IP...314
乙太網協定...316
可靠多播協定棧...402
流式傳輸控制協議(SCTP)...410
中心節點...502
全局資料...504
輻條資料...506、508、510、512、514、516、518、520
數據報...602a、602b、602c、604a、604b、604c、606a、606b、606c、606d、606e、606f、610a、610b、610c、610d、610e、610f、612a、612b、612c、612d、612e、612f
中心節點...702
全局資料...704
輻條資料...706、708、710、712、714、716、718、720
進度消息...802、804、806
柵欄主標記表...808
進度更新消息...810、812、814
圖1是根據本發明的一個實施例的用於可靠多播資料報和屏障的示範性分散式集群計算系統環境的示意圖;圖2是根據本發明的一個用於可靠多播的示範性系統的結構示意圖;圖3是根據本發明的一個實施例的MST-MPA協定棧上的示範性可靠多播的示意圖;圖4是根據本發明的一個實施例的SCTP協定棧上的示範性可靠多播的示意圖;圖5是根據本發明的一個實施例的用於可靠多播資料報的系統的示範性資料結構示意圖;圖6A是根據本發明的一個實施例的用於可靠多播資料報的系統中多播資料報分發過程的示意圖;圖6B是根據本發明的一個實施例的用於可靠多播資料報的系統中的消息交換的示意圖;圖7是根據本發明的一個實施例的用於屏障的系統的資料結構的示範性示意圖;圖8是根據本發明的一個實施例的在屏障系統中分發狀態標記符資訊的示意圖;圖9是根據本發明的一個實施例進行可靠多播資料報的方法的示範性步驟的流程圖;圖10是根據本發明的一個實施例進行屏障的方法的示範性步驟的流程圖。
網路...102
中心節點...104
輻條節點(spoke node)...106a、108a、110a、112a
資料庫應用程式...106b、108b、110b、112b
Claims (10)
- 一種通過通信系統傳輸資訊的方法,其特徵在於,所述方法包括:在多播交換設備中存儲從位於多播組中的資料源接收的資料;將所接收的資料多播到所述多播組中的多個資料目的地;釋放至少一部分用於存儲所述接收的資料的資源;以及在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
- 如申請專利範圍第1項所述的方法,其中,所述接收的資料包括進站本地序列號。
- 如申請專利範圍第2項所述的方法,其中,所述方法還包括將所述進站本地序列號轉換成全局序列號。
- 如申請專利範圍第3項所述的方法,其中,所述方法還包括確定與每個所述資料目的地對應的偏移差分。
- 如申請專利範圍第4項所述的方法,其中,所述方法還包括基於所述對應的偏移差分,計算每個所述資料目的地的出站本地序列號。
- 一種機器可讀的記憶體,其特徵在於,其中存儲有電腦程式,所述電腦程式具有至少一個用於通過通信系統傳輸資訊的代碼段,所述代碼段機器執行並控制所述機器執行以下步驟:在多播交換設備中存儲從位於多播組中的資料源接收的資料;將所接收的資料多播到所述多播組中的多個資料目的地;釋放至少一部分用於存儲所述接收的資料的資源;以及在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
- 一種通過通信系統傳輸資訊的系統,其特徵在於,所述系統包括:中心節點,其存儲從位於多播組中的資料源接收的資料;所述中心節點將所接收的資料多播到所述多播組中的多個資料目的地;所述中心節點釋放至少一部分用於存儲所述接收的資料的資源;以及所述中心節點在收到來自所述多個資料目的地中的每一個的確認後,向所述資料源發送確認。
- 如申請專利範圍第7項所述的系統,其中,所述接收的資料包括進站本地序列號。
- 如申請專利範圍第8項所述的系統,其中,所述中心節點將所述進站本地序列號轉換成全局序列號。
- 如申請專利範圍第9項所述的系統,其中,所述中心節點確定與每個所述資料目的地對應的偏移差分。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/433,287 US7849211B2 (en) | 2006-05-12 | 2006-05-12 | Method and system for reliable multicast datagrams and barriers |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200816706A TW200816706A (en) | 2008-04-01 |
TWI410079B true TWI410079B (zh) | 2013-09-21 |
Family
ID=38001990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096116834A TWI410079B (zh) | 2006-05-12 | 2007-05-11 | 通過通信系統傳輸資訊的方法和系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7849211B2 (zh) |
EP (1) | EP1855415A1 (zh) |
CN (1) | CN101072167B (zh) |
TW (1) | TWI410079B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078651B2 (en) * | 2008-01-24 | 2011-12-13 | Oracle International Corporation | Match rules to identify duplicate records in inbound data |
US7899039B2 (en) * | 2008-02-15 | 2011-03-01 | Cisco Technology, Inc. | System and method for providing location and access network information support in a network environment |
JP4998316B2 (ja) * | 2008-02-20 | 2012-08-15 | 富士通株式会社 | 通信システム及び通信処理方法並びにノード |
US9215588B2 (en) | 2010-04-30 | 2015-12-15 | Cisco Technology, Inc. | System and method for providing selective bearer security in a network environment |
EP2685664A1 (en) | 2012-07-12 | 2014-01-15 | Thomson Licensing | Multicast transmission using a unicast protocol |
JP2014059606A (ja) * | 2012-09-14 | 2014-04-03 | Yamaha Corp | 信号処理システムおよびプログラム |
US20160191508A1 (en) * | 2014-12-31 | 2016-06-30 | Nexenta Systems, Inc. | Methods and Systems for Block Sharding of Objects Stored in Distributed Storage System |
CN106850804A (zh) * | 2017-02-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种海量存储系统减少网络连接数量的方法 |
CN107483306A (zh) * | 2017-07-28 | 2017-12-15 | 深圳怡化电脑股份有限公司 | 一种通信方法、通信系统及存储介质 |
US11012446B2 (en) * | 2018-12-13 | 2021-05-18 | Silicon Laboratories, Inc. | Multicast splitting |
US10833885B2 (en) | 2018-12-20 | 2020-11-10 | Silicon Laboratories, Inc. | Efficient multicast group creation |
CN111709623A (zh) * | 2020-06-04 | 2020-09-25 | 中国科学院计算机网络信息中心 | 高性能计算环境评价方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511168A (en) * | 1993-07-01 | 1996-04-23 | Digital Equipment Corporation | Virtual circuit manager for multicast messaging |
US5577035A (en) * | 1994-03-23 | 1996-11-19 | Roke Manor Research Limited | Apparatus and method of processing bandwidth requirements in an ATM switch |
WO2000031929A2 (en) * | 1998-11-25 | 2000-06-02 | Enron Warpspeed Services,Inc. | Method and apparatus for providing guaranteed quality/class of service within and across networks using existing reservation protocols and frame formats |
WO2000072158A1 (en) * | 1999-05-24 | 2000-11-30 | Hewlett-Packard Company | Reliable multicast |
US20030135464A1 (en) * | 1999-12-09 | 2003-07-17 | International Business Machines Corporation | Digital content distribution using web broadcasting services |
US6658463B1 (en) * | 1999-06-10 | 2003-12-02 | Hughes Electronics Corporation | Satellite multicast performance enhancing multicast HTTP proxy system and method |
US6782527B1 (en) * | 2000-01-28 | 2004-08-24 | Networks Associates, Inc. | System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets |
US20060085349A1 (en) * | 2003-11-21 | 2006-04-20 | Realnetworks | System and method for caching data |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370571B1 (en) * | 1997-03-05 | 2002-04-09 | At Home Corporation | System and method for delivering high-performance online multimedia services |
US6600496B1 (en) * | 1997-09-26 | 2003-07-29 | Sun Microsystems, Inc. | Interactive graphical user interface for television set-top box |
US6272127B1 (en) | 1997-11-10 | 2001-08-07 | Ehron Warpspeed Services, Inc. | Network for providing switched broadband multipoint/multimedia intercommunication |
US20020035681A1 (en) * | 2000-07-31 | 2002-03-21 | Guillermo Maturana | Strategy for handling long SSL messages |
US7366769B2 (en) * | 2000-10-02 | 2008-04-29 | Schlumberger Technology Corporation | System, method and computer program product for a universal communication connector |
US7240105B2 (en) * | 2001-01-26 | 2007-07-03 | International Business Machines Corporation | Distributed multicast caching technique |
US6918013B2 (en) * | 2001-07-16 | 2005-07-12 | Bea Systems, Inc. | System and method for flushing bean cache |
CN1266880C (zh) * | 2002-09-20 | 2006-07-26 | 华为技术有限公司 | 网络系统中内容分发的方法 |
US8366552B2 (en) * | 2002-12-10 | 2013-02-05 | Ol2, Inc. | System and method for multi-stream video compression |
US8711923B2 (en) * | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US9061207B2 (en) * | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
CN1571531A (zh) * | 2003-07-15 | 2005-01-26 | 北京三星通信技术研究有限公司 | 多媒体广播与组播业务中公用控制信息可靠传输的方法 |
US7574526B2 (en) * | 2003-07-31 | 2009-08-11 | International Business Machines Corporation | Multicast group management in infiniband |
CN1271823C (zh) * | 2004-01-07 | 2006-08-23 | 华为技术有限公司 | 无线局域网中业务隧道的拆除方法 |
WO2007027679A2 (en) * | 2005-08-29 | 2007-03-08 | Rhysome, Inc. | Method and system for reliable message delivery |
US20070218998A1 (en) * | 2005-09-12 | 2007-09-20 | Arbogast Christopher P | Download and configuration method for gaming machines |
-
2006
- 2006-05-12 US US11/433,287 patent/US7849211B2/en active Active
-
2007
- 2007-02-27 EP EP07004091A patent/EP1855415A1/en not_active Withdrawn
- 2007-05-11 TW TW096116834A patent/TWI410079B/zh not_active IP Right Cessation
- 2007-05-14 CN CN2007101040171A patent/CN101072167B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511168A (en) * | 1993-07-01 | 1996-04-23 | Digital Equipment Corporation | Virtual circuit manager for multicast messaging |
US5577035A (en) * | 1994-03-23 | 1996-11-19 | Roke Manor Research Limited | Apparatus and method of processing bandwidth requirements in an ATM switch |
WO2000031929A2 (en) * | 1998-11-25 | 2000-06-02 | Enron Warpspeed Services,Inc. | Method and apparatus for providing guaranteed quality/class of service within and across networks using existing reservation protocols and frame formats |
WO2000072158A1 (en) * | 1999-05-24 | 2000-11-30 | Hewlett-Packard Company | Reliable multicast |
US6658463B1 (en) * | 1999-06-10 | 2003-12-02 | Hughes Electronics Corporation | Satellite multicast performance enhancing multicast HTTP proxy system and method |
US20030135464A1 (en) * | 1999-12-09 | 2003-07-17 | International Business Machines Corporation | Digital content distribution using web broadcasting services |
US6782527B1 (en) * | 2000-01-28 | 2004-08-24 | Networks Associates, Inc. | System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets |
US20060085349A1 (en) * | 2003-11-21 | 2006-04-20 | Realnetworks | System and method for caching data |
Also Published As
Publication number | Publication date |
---|---|
US7849211B2 (en) | 2010-12-07 |
CN101072167B (zh) | 2010-08-11 |
EP1855415A1 (en) | 2007-11-14 |
TW200816706A (en) | 2008-04-01 |
US20070266174A1 (en) | 2007-11-15 |
CN101072167A (zh) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI410079B (zh) | 通過通信系統傳輸資訊的方法和系統 | |
JP4769585B2 (ja) | 相関メッセージを、ネットワークを介して通信するための待機セッション | |
CN1846375B (zh) | 道路车间通信系统 | |
US10419329B2 (en) | Switch-based reliable multicast service | |
CN101010880B (zh) | 可靠地传输数据的方法、装置和网络以及实时数据传递系统 | |
CN1812405B (zh) | 在请求-响应传输协议上的可靠单向消息传送的方法 | |
US8769021B2 (en) | Method and system for light-weight SOAP transport for web services based management | |
US20070171828A1 (en) | Method of determining a maximum transmission unit value of a network path using transport layer feedback | |
US10505677B2 (en) | Fast detection and retransmission of dropped last packet in a flow | |
CN102571545A (zh) | 在IPv4网络中传递信息的方法和装置 | |
CN114866477A (zh) | 一种网络设备拥塞控制机制的测试方法、系统及设备 | |
EP3672189B1 (en) | Data transmission method, device and system | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
CN112468513B (zh) | 一种企业网的终端管理通信方法 | |
US9762353B2 (en) | Data packet for bidirectional transmission of data packets during data transmission between a first and a second communication appliance, and method for transmitting such a data packet | |
CN104917732B (zh) | 一种多客户端绑定编码器及解码器的方法及系统 | |
CN114598651A (zh) | 数据传输方法以及装置 | |
EP3367599B1 (en) | Method and system for transferring data within a layered architecture of network components | |
EP3591535B1 (en) | Addressing mechanism | |
Gómez Montenegro et al. | Constrained Application Protocol (CoAP) over Bundle Protocol (BP) | |
Bessani et al. | Extending the UMIOP specification for reliable multicast in CORBA | |
Ko et al. | Internet Small Computer System Interface (iSCSI) Extensions for the Remote Direct Memory Access (RDMA) Specification | |
EP3386166A1 (en) | Technique for managing communications at a router | |
US7447202B1 (en) | Method and system for optimized reliable non-member group communication through write-only membership | |
CN103905453A (zh) | 一种基于地址映射多路复用的通信模型及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |