亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

同步數(shù)據(jù)傳送系統(tǒng)的制作方法

文檔序號:6501675閱讀:172來源:國知局
專利名稱:同步數(shù)據(jù)傳送系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及交互式寬帶服務(wù)器系統(tǒng),并且更具體地說,涉及一種采用同步數(shù)據(jù)傳送系統(tǒng)以促進(jìn)以高速輸送多路同時等時(isochronous)數(shù)據(jù)流的交互式內(nèi)容引擎。
背景技術(shù)
希望提供一種流式媒體內(nèi)容的存儲和傳送的解決方案??闪繙y性的初始目標(biāo)是在4兆比特每秒(Mbps)每流下的從100至1,000,000同時的各個等時內(nèi)容流,盡管考慮到不同的數(shù)據(jù)速率。可用的總帶寬由最大可用底板(backplane)開關(guān)所限制。當(dāng)今的最大開關(guān)在每秒兆兆比特的范圍中,或者約200,000同時輸出流。輸出流的數(shù)量一般與每流比特速率成反比。
內(nèi)容存儲的最簡單模型是連接到單個處理器上的單個盤驅(qū)動器,該單個處理器具有單個網(wǎng)絡(luò)連接器。數(shù)據(jù)從盤讀取,置于存儲器中,以及經(jīng)網(wǎng)絡(luò)以分組形式分配給每個用戶。傳統(tǒng)數(shù)據(jù),如Web頁等可異步地傳送。換句話說,有具有隨機時間延遲的隨機量數(shù)據(jù)。低容量、低分辨率視頻可從Web服務(wù)器傳送。實時媒體內(nèi)容,如視頻和聲頻,要求等時傳輸、或具有保證傳送時間的傳輸。在這種情形下,帶寬約束在盤驅(qū)動器處存在。盤具有其主張的臂運動和轉(zhuǎn)動等待。如果系統(tǒng)在任何給定時間只能維持從驅(qū)動器到處理器的6個同時連續(xù)內(nèi)容流,那么第7個用戶的請求必須等待以前6個用戶之一中止內(nèi)容流。這種設(shè)計的優(yōu)點是簡單。缺點是作為在設(shè)計中的唯一機械裝置只能這么快地訪問和傳輸數(shù)據(jù)。
通過添加另一個驅(qū)動器、或諸驅(qū)動器并且交錯驅(qū)動器訪問可進(jìn)行改進(jìn)。而且,重復(fù)內(nèi)容可存儲在每個驅(qū)動器上以提高冗余度和性能。這樣會更好,但仍有幾個問題。只有如此多的內(nèi)容可放置在本地驅(qū)動器或諸驅(qū)動器上。盤驅(qū)動器、CPU、及存儲器是可能災(zāi)難性的每個單一失效點。這種系統(tǒng)的規(guī)模只能與盤控制器能處置的驅(qū)動器數(shù)量成比例。即使對于多個單元,也有關(guān)于標(biāo)題分配的問題。在現(xiàn)實世界中,每個人都想看最新影片。根據(jù)經(jīng)驗,80%的內(nèi)容請求是僅對于20%的標(biāo)題。所有機器的帶寬不能由一個標(biāo)題耗盡,因為它會堵塞對于僅在該機器上存儲的較不流行標(biāo)題的訪問。結(jié)果,“高度需要”標(biāo)題必須裝載在大多數(shù)或所有機器上。簡單地說,如果用戶想看老影片,則該用戶可能不幸運-盡管該影片裝載在系統(tǒng)中。對于較大的庫,所述比率可能遠(yuǎn)大于在這個例子中使用的80/20標(biāo)準(zhǔn)。
如果系統(tǒng)基于在數(shù)據(jù)處理中使用的標(biāo)準(zhǔn)局域網(wǎng)(LAN),則會有其它缺陷?,F(xiàn)代基于以太網(wǎng)的TCP/IP系統(tǒng)是保證傳送的奇跡,但包括由包沖突和部分丟失包的重新傳輸引起的時間代價和使它全部工作所需要的管理。不能保障及時內(nèi)容流集合可用。而且,每個用戶消耗一個開關(guān)端口,并且每個內(nèi)容服務(wù)器消耗一個開關(guān)端口。因而,開關(guān)端口計數(shù)必須是服務(wù)器計數(shù)的兩倍,限制了總在線帶寬。


本發(fā)明的好處、特征及優(yōu)點相對于如下描述和附圖將變得更好理解,其中圖1是根據(jù)本發(fā)明的典型實施例實現(xiàn)的交互式內(nèi)容引擎(ICE)的一部分的簡化方塊圖;和圖2是圖1的ICE的一部分的邏輯方塊圖,表明根據(jù)本發(fā)明的實施例實現(xiàn)的同步數(shù)據(jù)傳送系統(tǒng)。
具體實施例方式
呈現(xiàn)如下描述,以使本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)和使用在具體應(yīng)用和其要求的上下文內(nèi)所提供的本發(fā)明。然而,對于優(yōu)選實施的各種修改對于本領(lǐng)域的技術(shù)人員將是顯然的,并且這里限定的一般原理可以應(yīng)用于其它實施例。因此,本發(fā)明不打算限于這里表示和描述的具體實施例,而是符合與這里公開的原理和新穎特征相一致的最寬范圍。
這里描述的結(jié)構(gòu)包容變化能力的各個元件,以避免設(shè)施限于進(jìn)行初始系統(tǒng)購買時的時間點。商品元件的使用保證了最近證明良好的技術(shù)、單一源的避免、及最低成本每流。容許個別元件失效。在多種情況下,從用戶的角度出發(fā)沒有性能的顯著變化。在其它情況下,有簡短的“自修理”周期。在多種情況下,可以容許多重失效。而且,在不是所有也是大多數(shù)情況下,系統(tǒng)可恢復(fù)而不要求即時注意,使得它對于“關(guān)燈(lights out)”操作很理想。
內(nèi)容存儲分配和內(nèi)部帶寬由最少最近使用(LRU)算法自動地管理,該算法保證在RAM高速緩沖器和硬驅(qū)動器陣列高速緩沖器中的內(nèi)容對于當(dāng)前需要是適當(dāng)?shù)模⑶业装彘_關(guān)帶寬以最高效方式使用。在系統(tǒng)內(nèi)的帶寬很少(如果有的話)過度預(yù)定,所以不必丟棄或延遲包的傳輸。該結(jié)構(gòu)提供完全利用每個元件的合成帶寬的能力,所以可以滿足保證,并且網(wǎng)絡(luò)是專有的并且在完全控制下,所以即使在非預(yù)期的波峰需求的情形下,也沒有數(shù)據(jù)路徑被過載。任何比特速率的流可被包容,但典型的流期望保持在1至20Mbps范圍中。在可用帶寬基礎(chǔ)上容納非等時內(nèi)容。如果應(yīng)用要求,則可以故意保留帶寬。文件可以具有使存儲效率最大的任何尺寸。
圖1是根據(jù)本發(fā)明的典型實施例實現(xiàn)的交互式內(nèi)容引擎(ICE)100的一部分的簡化方塊圖。為了清楚起見,沒有表示不適用于本發(fā)明的充分和完全理解的部分。ICE 100包括適當(dāng)?shù)亩嘀囟丝?或多端口)吉比特以太網(wǎng)(GbE)開關(guān)101,作為具有聯(lián)接到多個存儲處理器節(jié)點(SPN)103上的多重以太網(wǎng)端口的底板結(jié)構(gòu)。每個SPN 103是一個簡化服務(wù)器,包括兩個吉比特以太網(wǎng)端口、一個或多個處理器107、存儲器109(例如,隨機存取存儲器(RAM))、及適當(dāng)數(shù)量的(例如,四至八個)盤驅(qū)動器111。在每個SPN 103上的第一Gb端口105連接到開關(guān)101的對應(yīng)端口上以便全雙工操作(在每個SPN/端口連接處的同時傳輸和接收),并且用來在ICE 100內(nèi)移動數(shù)據(jù)。另一個Gb端口(未表示)把內(nèi)容輸出傳送到用戶(未表示)。
每個SPN 103具有對于其本地盤驅(qū)動器和在每五個SPN組中的其它四個SPN的其它盤驅(qū)動器的高速訪問。開關(guān)101是用于ICE 100的底板,而不僅僅是在SPN 103之間的通信裝置。為了說明目的,僅表示五個SPN 103,其中要理解,ICE 100典型地包括大量服務(wù)器。每個SPN 103起內(nèi)容的存儲、處理及發(fā)送器的作用。在顯示的構(gòu)造中,每個SPN 103構(gòu)造成使用現(xiàn)成的元件,并且不是在通常意義上的計算機。盡管考慮到標(biāo)準(zhǔn)操作系統(tǒng),但這樣的中斷驅(qū)動操作系統(tǒng)可能帶來不必要的瓶頸。
每個標(biāo)題(例如,視頻、影片或其它媒體內(nèi)容)不是全部存儲在任何單一盤驅(qū)動器111上。而是,用于每個標(biāo)題的數(shù)據(jù)被劃分,并且存儲在ICE 100內(nèi)的幾個盤驅(qū)動器中,以實現(xiàn)交錯訪問的速度優(yōu)勢。單個標(biāo)題的內(nèi)容跨在多重SPN 103的多重盤驅(qū)動器上分布。標(biāo)題內(nèi)容的短“時間幀”以循環(huán)(round robin)方式從每個SPN 103中的每個驅(qū)動器收集。以這種方式,實際負(fù)載跳出SCSI和IDE的驅(qū)動器計數(shù)限制而散布,得到一種失效-安全操作形式,及組織和管理大量標(biāo)題。
在顯示的具體構(gòu)造中,每個內(nèi)容標(biāo)題劃分成固定大小的分立塊(典型地約2兆位(MB)每塊)。每塊以循環(huán)方式存儲在不同組的SPN 103上。每塊劃分成四個子塊,并且創(chuàng)建代表奇偶性的第五子塊。每個子塊存儲在不同SPN 103的盤驅(qū)動器上。在顯示和描述的配置中,約512千字節(jié)(KB)(其中“K”是1024)的子塊大小與盤驅(qū)動器111的每一個額定數(shù)據(jù)單元相匹配。SPN 103每次五個分一組,并且每組或SPN集合存儲標(biāo)題的數(shù)據(jù)塊。如表示的那樣,五個SPN 103標(biāo)有1-4和“Parity(奇偶性)”,它們集體地把塊113存儲為分別存儲在SPN 1、2、3、4及Parity上的五個分離子塊113a、113b、113c、113d及113e。子塊113a-113e表示成以分布方式存儲在用于每個不同SPN上的不同驅(qū)動器上(例如,SPN1/DRIVE1、SPN2/DRIVE2、SPN3/DRIVE3、等等),但可以以任何其它可能組合存儲(例如,SPN1/DRIVE1、SPN2/DRIVE1、SPN3/DRIVE3、等等)。子塊1-4包括數(shù)據(jù),并且子塊Parity包括用于數(shù)據(jù)子塊的奇偶性信息。每個SPN集合的大小,盡管典型地為五個,但是是任意的,并且可容易地是任何其它適當(dāng)數(shù)量,像例如2個SPN至10個SPN。為了冗余度兩個SPN使用它們的存儲量的50%,十個使用10%。五個是在存儲效率和失效概率之間的折衷。
通過以這種方式分布內(nèi)容,實現(xiàn)至少兩個目標(biāo)。首先,可觀看單個標(biāo)題的用戶的數(shù)量不限于可由單個集合SPN的所服務(wù)的數(shù)量,而是由放在一起的所有SPN集合的帶寬限制。因此,只要求每個內(nèi)容標(biāo)題的一個拷貝。折衷是對每秒可創(chuàng)建的給定標(biāo)題的新觀看者的數(shù)量的限制,這是遠(yuǎn)小于浪費空間和冗余存儲的管理開銷的約束條件。第二目標(biāo)是ICE 100的整體可靠性的增加。單個驅(qū)動器的失效由通過使用奇偶性驅(qū)動器實時再生其內(nèi)容而掩蔽,類似于獨立盤冗余陣列(RAID)。SPN 103的失效由它包含來自各自繼續(xù)操作的幾個RAID集合中的每一個的一個驅(qū)動器的事實所掩蔽。連接到失效SPN上的用戶非常迅速地由在其它SPN上運行的影子(shadow)過程接管。在盤驅(qū)動器和整個SPN失效的情況下,通知操作者修理或更換失效設(shè)備。當(dāng)丟失子塊由用戶過程重新建立時,它被傳輸回提供它的SPN,在該處它在RAM中被高速緩沖(就像它已經(jīng)從本地盤驅(qū)動器讀取那樣)。這避免浪費其它用戶過程進(jìn)行對于流行標(biāo)題的相同重建的時間,因為以后請求將從RAM填充,只要子塊流行得足以保持被高速緩沖。
在每個“用戶”SPN 103上運行的用戶過程(UP)的目標(biāo)是收集來自其自己的盤的子塊加上來自其它用戶SPN的對應(yīng)四個子塊,以組裝用于傳送的視頻內(nèi)容塊。用戶SPN與一個或多個管理MGMT SPN不同,后者以相同方式構(gòu)造但完成不同的功能,如下面進(jìn)一步描述的那樣。設(shè)想一對冗余MGMT SPN以提高可靠性和性能。由每個UP完成的收集和組裝功能為了多個用戶在每個用戶SPN 103上進(jìn)行多次。作為結(jié)果,有顯著量的數(shù)據(jù)傳輸在用戶SPN 103之間進(jìn)行。不然具有包沖突探測和重試的典型以太網(wǎng)協(xié)議會被擊潰。典型協(xié)議為隨機傳輸而設(shè)計,并且取決于在那些事件之間的空閑時間。所以不使用這種手段。在ICE 100中,通過使用全雙工、全切換結(jié)構(gòu)、并且通過小心地管理帶寬而避免沖突。大多數(shù)通信同步地進(jìn)行。開關(guān)101本身以同步方式管理,如下面進(jìn)一步描述的那樣,從而協(xié)調(diào)傳輸。因為確定了哪個SPN 103進(jìn)行傳送,以及在給定時間段之內(nèi)何時端口不被超過其能夠處理的數(shù)據(jù)而淹沒。的確,數(shù)據(jù)首先收集在用戶SPN 103的存儲器109中,并且然后其傳送被同步地管理。作為協(xié)調(diào)的一部分,有在用戶SPN 103之間的狀態(tài)信號。不像到終端用戶的實際內(nèi)容,用來在用戶SPN單元之間發(fā)送信令的數(shù)據(jù)大小很小。
如果允許隨機或異步地進(jìn)行子塊的傳輸,則每個子塊的長度(約512K字節(jié),其中“K”是1024)否則會淹沒在GbE開關(guān)101中可用的任何緩沖。用來傳輸這樣多信息的時段是約4毫秒(ms),并且希望確保幾個端口不同時試圖傳送到一個單個端口。因此,如下面進(jìn)一步描述的那樣,開關(guān)101以使它同步操作的方式被管理,使所有端口在全負(fù)載條件下被充分地利用。
管理文件系統(tǒng)(或虛擬文件系統(tǒng)或VFS)的冗余目錄過程負(fù)責(zé)當(dāng)給定內(nèi)容標(biāo)題被用戶請求時報告它存儲在何處。當(dāng)裝載新標(biāo)題時,它也負(fù)責(zé)分配要求的存儲空間。所有分配都在整體塊中,整體塊的每一個包括五個子塊。在每個盤驅(qū)動器上的空間在驅(qū)動器內(nèi)由邏輯塊地址(LBA)管理。子塊存儲在盤驅(qū)動器上的連續(xù)扇區(qū)或LBA地址中。在ICE 100中的每個盤驅(qū)動器的容量由其最大LBA地址代表,其由每子塊的扇區(qū)數(shù)量劃分。
每個標(biāo)題映射或“目錄條目”包含一個列表,該列表指示其標(biāo)題的塊存儲在何處,并且更明確地說,每個塊的子塊位于何處。在所詳述的實施例中,在列表中代表子塊的每一項包含識別特定用戶SPN 103的SPNID、識別被識別的用戶SPN 103的特定盤驅(qū)動器111的盤驅(qū)動號碼(DD#)、及打包成64位值的子塊指針(或邏輯塊地址或LBA)。每個目錄條目包含用于在額定4Mbsp下約半小時內(nèi)容的子塊列表。這等于450個塊,或2250個子塊。每個目錄條目約20KB,具有輔助數(shù)據(jù)。當(dāng)在SPN上執(zhí)行的UP請求一個目錄條目時,整個條目為相應(yīng)用戶被本地發(fā)送和存儲。即使SPN支持1,000個用戶,對于本地列表或目錄條目也僅消耗存儲器的20MB。
ICE 100保持對于用戶可用的所有標(biāo)題的數(shù)據(jù)庫。這個列表包括本地光盤庫、實時網(wǎng)絡(luò)編程、及已進(jìn)行許可和輸送設(shè)置的遠(yuǎn)程位置處的標(biāo)題。數(shù)據(jù)庫包含用于每個標(biāo)題的所有元數(shù)據(jù),包括管理信息(許可時段、比特速率、分辨率、等等)以及對于用戶感興趣的信息(制片、導(dǎo)演、演員陣容、劇組、作者等等)。當(dāng)用戶進(jìn)行選擇時,查詢虛擬文件系統(tǒng)(VFS)209的目錄(圖2),以確定標(biāo)題是否已經(jīng)裝載在盤陣列中。如果沒有,則對于該段內(nèi)容啟動裝載過程(未表示),并且如有必要通知UP何時可觀看。在大多數(shù)情況下,延遲不大于光盤檢索機器(未表示)的機械延遲,或者約30秒。
在光盤上存儲的信息(未表示)包括所有元數(shù)據(jù)(它們當(dāng)盤第一次裝載到庫中時讀入數(shù)據(jù)庫)、以及代表關(guān)于這些數(shù)據(jù)流可預(yù)先搜集的標(biāo)題和所有信息的壓縮數(shù)字視頻和聲頻。例如,它包含對于在數(shù)據(jù)流中的所有相關(guān)信息的指針,如時鐘值和時間戳。它已經(jīng)劃分成子塊,具有預(yù)計算的和在盤上存儲的奇偶性子塊。一般地,任何可預(yù)先進(jìn)行以節(jié)省裝載和處理開銷的內(nèi)容都包括在光盤上。
包括在資源管理系統(tǒng)中的是調(diào)度程序(未表示),UP咨詢該調(diào)度程序以接收用于其流的開始時間(通常在請求的數(shù)個毫秒內(nèi))。調(diào)度程序保證在系統(tǒng)上的負(fù)載保持均勻、等待最小、及在ICE 100內(nèi)需要的帶寬在所有時間都不超過可用的帶寬。當(dāng)用戶請求停止、暫停、快進(jìn)、后退或中斷其流的流動的其它操作時,其帶寬被重新分配,并且對于請求的任何新服務(wù)(例如,快進(jìn)流)進(jìn)行新分配。
圖2是ICE 100的一部分的邏輯方塊圖,表明根據(jù)本發(fā)明的實施例實現(xiàn)的同步數(shù)據(jù)傳送系統(tǒng)200。開關(guān)101表示成聯(lián)接到幾個典型SPN103上,包括第一用戶SPN 201、第二用戶SPN 203、及管理(MGMT)SPN 205。如以前提到的那樣,多個SPN 103聯(lián)接到開關(guān)101上,并且為了解釋本發(fā)明只有兩個用戶SPN 201、203被表示,并且如以前描述的那樣實際上僅作為任何SPN 103實施。MGMT SPN 205實際上僅像任何其它SPN 103那樣實現(xiàn),但通常完成管理功能而不是特定用戶功能。SPN 201表明某些功能,并且SPN 203表明每個用戶SPN 103的其它功能。然而,要理解,每個用戶SPN 103被設(shè)置為完成類似功能,從而對于SPN 201描述的功能(和過程)也提供在SPN 203,并且反之亦然。
如以前描述的那樣,開關(guān)101以每端口1Gbps操作,從而每個子塊(約512KB)占用約4ms以從一個SPN傳到另一個。每個用戶SPN 103執(zhí)行一個或多個用戶過程(UP),每個用戶過程用來支持一個下游用戶。當(dāng)需要標(biāo)題的新塊重新填充用戶輸出緩沖器(未表示)時,來自列表的下五個子塊從存儲那些子塊的其它用戶SPN請求。由于多個UP可能大體上在同一時間請求多個子塊,所以子塊傳輸持續(xù)時間另外地會淹沒用于單個端口的幾乎任何GbE開關(guān)的緩沖能力,勿論用于整個開關(guān)。這對于所示的開關(guān)101是真實的。如果不管理子塊傳輸,則導(dǎo)致用于每個UP的所有五個子塊可能同時返回,淹沒輸出端口帶寬。希望收緊ICE 100的SPN的傳輸?shù)挠嫊r,從而最關(guān)鍵數(shù)據(jù)被首先且完好地傳輸。
SPN 201顯示成執(zhí)行UP 207以便服務(wù)相應(yīng)的下游用戶。用戶請求標(biāo)題(例如,影片),該請求被轉(zhuǎn)發(fā)到UP 207。UP 207把標(biāo)題請求(TR)傳送到位于MGMT SPN 205上的VFS 209(下面進(jìn)一步描述)。VFS 209把目錄條目(DE)返回到UP 207,UP 207本地存儲在211處顯示的DE。DE 211包括定位標(biāo)題的每個子塊(SC1、SC2、等等)的列表,每個條目包括識別特定用戶SPN 103的SPNID、識別所述被識別的SPN 103的特定盤驅(qū)動器111的盤驅(qū)動器號碼(DD#)、及在所述識別盤驅(qū)動器上提供子塊的特定位置的地址或LBA。SPN 201對于在DE 211中的每個子塊一次一個地啟動時間戳讀取請求(TSRR)。在ICE 100中,立即和直接進(jìn)行所述請求。換句話說,SPN 201向存儲數(shù)據(jù)的特定用戶SPN 103立即和直接地提出對于子塊的請求。在顯示的結(jié)構(gòu)中,即使本地存儲,也以同樣方式進(jìn)行請求。換句話說,即使請求的子塊駐留在SPN 201的本地盤驅(qū)動器上,它也像遠(yuǎn)程布置那樣經(jīng)開關(guān)201送出請求。網(wǎng)絡(luò)是可以構(gòu)造成識別出請求正在從SPN發(fā)送到同一SPN的定位。同樣地處置所有情形會更加簡單,特別是在其中請求實際上是本地的可能性較小的較大設(shè)施。
盡管請求被立即和直接地送出,子塊每個都以完全管理方式返回。每個TSRR使用SPNID到特定用戶SPN,并且包括用于目標(biāo)用戶SPN的DD#和LBA,以檢索和返回數(shù)據(jù)。TSRR還可以包括任何其它識別信息,該信息足以保證請求的子塊適當(dāng)?shù)胤祷氐竭m當(dāng)?shù)恼埱笳卟⑶沂拐埱笳吣軌蜃R別子塊(例如,區(qū)分在目的地SPN上執(zhí)行的多重UP的UP識別符、區(qū)分用于每個數(shù)據(jù)塊的多個子塊的子塊識別符、等等)。每個TSRR也包括識別何時進(jìn)行原始請求的具體時間的時間戳(TS)。TS識別用于同步傳輸目的的請求的優(yōu)先級,其中優(yōu)先級基于時間,從而較早請求呈現(xiàn)較高優(yōu)先級。當(dāng)被接收到時,被請求標(biāo)題的返回子塊存儲在本地標(biāo)題存儲器213中,以便進(jìn)一步處理和傳送到請求該標(biāo)題的用戶。
用戶SPN 203表明在每個用戶SPN(例如,201、203)上執(zhí)行的傳送過程(TP)215的操作和支持功能,用來接收TSRR和用來返回請求子塊。TP 215包括存儲過程(未表示)或者否則與存儲過程相接口,該存儲過程與在SPN 203上的本地盤驅(qū)動器111相接口,其用來請求和訪問存儲子塊。存儲過程可以以任何希望方式實現(xiàn),如狀態(tài)機等,并且可以是在TP 215與本地盤驅(qū)動器111之間接口的分離過程,如對于本領(lǐng)域的技術(shù)人員已知的那樣。如表示的那樣,TP 215從在其它用戶SPN 103上執(zhí)行的一個或多個UP接收一個或多個TSRR,并且把每個請求存儲在其本地存儲器109中的讀取請求隊列(RRQ)217中。RRQ 217存儲對子塊SCA、SCB等等的請求列表。存儲被請求子塊的盤驅(qū)動器從RRQ 217除去對應(yīng)請求,把它們以實際順序分類,并且然后以分類順序執(zhí)行每個讀取。對于在每個盤上的子塊的訪問按組管理。每一組根據(jù)“電梯尋找(elevator seek)”操作(一次掃描從低到高,下次掃描從高到低,等等,從而跨過盤表面的盤頭來回掃描,暫停以讀取下個順序子塊)按實際順序分類。成功讀取的請求存儲在按TS順序分類的成功讀取隊列(SRQ)218中。對于失敗讀取的請求(如果有的話)存儲在失敗讀取隊列(FRQ)220中,并且失敗信息轉(zhuǎn)發(fā)到網(wǎng)絡(luò)管理系統(tǒng)(未表示),該網(wǎng)絡(luò)管理系統(tǒng)確定錯誤和適當(dāng)?shù)男U齽幼鳌W⒁?,在顯示的構(gòu)造中,隊列217、218及220存儲請求信息而不是實際子塊。
成功讀取的每個子塊放置在為最近請求子塊的LRU高速緩沖器而保留的存儲器中。對于每個被檢索子塊,TP 215創(chuàng)建對應(yīng)消息(MSG),該消息包括用于子塊的TS、子塊的源(SRC)(例如正在從其傳輸子塊的SPNID和其實際存儲器位置以及任何其它識別信息)、及子塊待傳輸?shù)降哪康牡?DST)SPN(例如,SPN 201)。如顯示的那樣,SRQ 218包括分別用于子塊SCA、SCB等等的消息MSGA、MSGB等等。在讀取和高速緩沖被請求的子塊之后,TP 215把對應(yīng)MSG發(fā)送到在MGMT SPN 205上執(zhí)行的同步開關(guān)管理器(SSM)219。
SSM 219從TP接收來自用戶SPN的多重MSG并把其按優(yōu)先級排序,并且最終把傳送請求(TXR)發(fā)送到識別在其SRQ 218中的MSG之一的TP 215,如使用消息識別符(MSGID)等。當(dāng)SSM 219把帶有識別在SRQ 218中的子塊的MSGID的TXR發(fā)送到TP 215時,請求列表從SRQ 218移動到網(wǎng)絡(luò)傳送過程(NTP)221(其中“移動”指示從SRQ 218除去請求),該過程221建立用來把子塊傳送到目的地用戶SPN的分組。其中從SRQ 218除去子塊請求列表的順序不必是順序的,盡管列表按時間戳順序,因為只有SSM 219確定適當(dāng)?shù)呐判?。SSM 219把一個TXR發(fā)送到具有至少一個子塊待發(fā)送的每個其他SPN 103,除非所述子塊要發(fā)送到已經(jīng)計劃接收相等或較高優(yōu)先級子塊的SPN 103上的UP,如下面進(jìn)一步描述的那樣。SSM 219然后向所有用戶SPN 103廣播單個傳送命令(TX CMD)。TP 215響應(yīng)由SSM 219廣播的TX CMD命令而指示NTP 221把所述子塊傳送到用戶SPN 103的請求UP。以這種方式,已經(jīng)從SSM 219接收到TXR的每個SPN 103同時傳送到另一個請求用戶SPN 103。
在MGMT SPN 205上的VFS 209管理標(biāo)題列表和它們的在ICE100中的位置。在典型計算機系統(tǒng)中,目錄(數(shù)據(jù)信息)通常駐留在數(shù)據(jù)所駐留的同一盤上。然而,在ICE 100中,VFS 209集中布置以管理分布數(shù)據(jù),因為用于每個標(biāo)題的數(shù)據(jù)跨在盤陣列中的多個盤上分布,該多個盤又跨在多個用戶SPN 103上分布。如以前描述的那樣,在用戶SPN 103上的盤驅(qū)動器111主要存儲標(biāo)題的子塊。VFS 209如以上描述的那樣,借助PSNID、DD#、及LBA,包括用于每個子塊的位置的識別符。VFS 209也包括外部的ICE 100的其它部分(如光學(xué)存儲)的識別符。當(dāng)用戶請求標(biāo)題時,使目錄信息的完全集合(ID/地址)對于接收了用戶的請求的用戶SPN 103上執(zhí)行的UP可用。從那里,任務(wù)是把子塊傳送離開盤驅(qū)動器到存儲器(緩沖器),經(jīng)開關(guān)101把它們移動到請求用戶SPN 103,該請求用戶SPN 103在緩沖器中組裝完整的塊,把它輸送到用戶,及重復(fù)直到完成。
SSM 219在準(zhǔn)備消息(RDY MSG)列表223中按時間戳順序創(chuàng)建“準(zhǔn)備”消息列表。其中在用戶SPN 103上從TP接收消息的順序不必按時間戳順序,而是按在RDY MSG列表223中的TS順序。剛好在下個傳送集合之前,SSM 219從最早時間戳開始掃描RDY MSG列表223。SSM 219首先識別在RDY MSG列表223中的最早TS,并且產(chǎn)生和發(fā)送對應(yīng)TXR消息到存儲對應(yīng)子塊的用戶SPN 103的TP 215,以啟動該子塊的當(dāng)前傳送。SSM 219對于每個隨后子塊按TS順序繼續(xù)掃描列表223,產(chǎn)生用于每個子塊的TXR消息,該子塊的源和目的地還沒有包括在當(dāng)前子塊傳送中。對于到所有用戶SPN 103的每個TXCMD廣播,每個用戶SPN 103只一次傳送一個子塊,并且只一次接收一個子塊,盡管它可同時地進(jìn)行兩者。例如,如果TXR消息發(fā)送到SPN #10的TP以計劃到SPN #2的當(dāng)前子塊傳送,那么SPN #10不能同時發(fā)送另一個子塊。然而,SPN #10可同時從另一個SPN接收子塊。此外,SPN #2在從SPN #10接收子塊的同時不能同時接收另一個子塊,盡管SPN #2可同時傳送到另一個SPN,這是因為開關(guān)101的端口的每一個的全雙工屬性。
SSM 219繼續(xù)掃描RDY MSG列表223,直到已經(jīng)考慮所有用戶SPN 103,或者當(dāng)?shù)竭_(dá)RDY MSG列表223的末端。與TXR消息相對應(yīng)的RDY MSG列表223中的每個條目最終從RDY MSG列表223除去(或者當(dāng)發(fā)送TXR消息時、或者在完成傳送之后)。當(dāng)前一段時間的最后傳送已經(jīng)結(jié)束時,SSM 219廣播TX CMD分組,該TX CMD分組向所有用戶SPN 103發(fā)信號以開始下一輪傳輸。對于所描述的特定配置,每次傳送在近似4至5秒的時段內(nèi)同時發(fā)生。在每個傳送輪次期間,額外的MSG發(fā)送到SSM 219,并且新TXR消息送出到用戶SPN 103以計劃下一輪傳輸,及重復(fù)該過程。在連續(xù)TX CMD之間的時段近似等于傳送子塊所有字節(jié)所必需的時段,包括分組總開銷和分組間延遲,加上清除在子塊的傳輸期間在開關(guān)中可能已經(jīng)發(fā)生的所有高速緩沖的時段,典型地為60微秒(μs),加上考慮到由單獨SPN識別TX CMD時的延遲引起的任何抖動的時段,典型地小于100μs。
在一個實施例中,復(fù)制或鏡像MGMT SPN(未表示)是主MGMTSPN 205的鏡像,從而SSM 219、VFS 209、及調(diào)度程序每個都復(fù)制在一對冗余專用MGMT SPN上。在一個實施例中,同步TX CMD廣播作為指示MGMT SPN 205的健康的脈動(heartbeat)。脈動發(fā)送到輔助MGMT SPN,指示一切都好。在沒有脈動的情況下,輔助MGMTSPN在預(yù)定時間段內(nèi),像例如在5ms內(nèi),接管所有管理功能。
盡管參照本發(fā)明的某些優(yōu)選形式已經(jīng)相當(dāng)詳細(xì)地描述了本發(fā)明,但其它樣式和變化是可能的和可設(shè)想的。本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識到,他們可容易地把公開的概念和特定實施例,用作用來設(shè)計或修改提供本發(fā)明的相同目的的其它結(jié)構(gòu),而不脫離由如下權(quán)利要求書限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種同步數(shù)據(jù)傳送系統(tǒng),包括多個處理器節(jié)點;主干網(wǎng)絡(luò)開關(guān),聯(lián)接到所述多個處理器節(jié)點上以能夠?qū)崿F(xiàn)在所述多個處理器節(jié)點之間的通信;多個存儲裝置,跨在所述多個處理器節(jié)點上分布并且存儲多個標(biāo)題,每一個標(biāo)題被劃分成跨在所述多個存儲裝置上分布的多個子塊;多個傳送過程,每一個在所述多個處理器節(jié)點的對應(yīng)一個上執(zhí)行,并且可操作以發(fā)送消息以為了將從本地存儲裝置傳送到目的地處理器節(jié)點的每個子塊,每條消息包括源節(jié)點識別符和目的地節(jié)點識別符;及同步開關(guān)管理器過程,在所述多個處理器節(jié)點的至少一個上執(zhí)行,該過程定期地廣播一個傳送命令以啟動多個順序傳送時段的每一個,該過程接收多條消息,并且在每個傳送時段之前,該過程從所述多條消息中選擇,以保證每個處理節(jié)點在每個傳送時段期間發(fā)送最多至一個子塊和接收最多至一個子塊,及發(fā)送與被選擇消息相對應(yīng)的多個傳送請求;以及其中,發(fā)送至少一條消息并且從識別對應(yīng)子塊的所述同步開關(guān)管理器過程接收了傳送請求的每個傳送過程,在由廣播傳送命令啟動的下一個傳送時段期間發(fā)送所述對應(yīng)子塊。
2.根據(jù)權(quán)利要求1所述的同步數(shù)據(jù)傳送系統(tǒng),其中,所述多條消息的每一條包括時間戳;并且所述同步開關(guān)管理器過程基于時間戳順序把所述多條消息的優(yōu)先級排序,并且按時間戳順序發(fā)送所述多個傳送請求。
3.根據(jù)權(quán)利要求2所述的同步數(shù)據(jù)傳送系統(tǒng),還包括多個用戶過程,每一個在所述多個處理器節(jié)點的對應(yīng)一個上執(zhí)行并且可操作以發(fā)送多個時間戳讀取請求;并且其中,每個傳送過程把來自一個對應(yīng)時間戳讀取請求的時間戳包含到對應(yīng)消息中。
4.根據(jù)權(quán)利要求3所述的同步數(shù)據(jù)傳送系統(tǒng),其中所述同步開關(guān)管理器過程把所述多條消息按時間戳順序組織成一個準(zhǔn)備消息列表,剛好在所述多個順序傳送時段的每一個之前按時間戳順序掃描所述準(zhǔn)備消息列表,及基于時間戳優(yōu)先級選擇消息。
5.根據(jù)權(quán)利要求4所述的同步數(shù)據(jù)傳送系統(tǒng),其中如果在隨后傳送時段期間一個被識別的源處理器節(jié)點尚未被選擇用于傳送一個子塊,并且如果在所述隨后傳送時段期間一個被識別的目的地處理器節(jié)點尚未被選擇用于接收一個子塊,則所述同步開關(guān)管理器過程選擇一個消息。
6.根據(jù)權(quán)利要求1所述的同步數(shù)據(jù)傳送系統(tǒng),還包括所述多個傳送過程的每一個把接收的子塊讀取請求存儲到一個讀取請求隊列中,每個子塊讀取請求指示一個本地存儲子塊;所述多個存儲裝置的每一個按實際順序讀取在本地讀取請求隊列中識別的子塊;所述多個處理器節(jié)點的每一個把由對應(yīng)存儲裝置成功讀取的子塊列成一個成功讀取隊列;及所述多個傳送過程的每一個為相應(yīng)成功讀取隊列中的每個條目發(fā)送一條消息到所述同步開關(guān)管理器過程。
7.根據(jù)權(quán)利要求6所述的同步數(shù)據(jù)傳送系統(tǒng),其中每個所述子塊讀取請求包括時間戳讀取請求,其中在每個所述成功讀取隊列中的條目按時間戳順序被列表,及其中每個傳送過程按時間戳順序為在相應(yīng)成功讀取隊列中的每個條目發(fā)送消息。
8.根據(jù)權(quán)利要求6所述的同步數(shù)據(jù)傳送系統(tǒng),還包括所述多個傳送過程的每一個從相應(yīng)成功請求隊列中除去一個條目,其中所述條目與由相應(yīng)傳送請求識別的子塊相關(guān)聯(lián);和多個網(wǎng)絡(luò)傳送過程,每一個在所述多個處理器節(jié)點的對應(yīng)一個上執(zhí)行,并且每一個可操作以建立用來響應(yīng)傳送命令把被識別子塊傳送到目的地處理器節(jié)點的網(wǎng)絡(luò)分組。
9.根據(jù)權(quán)利要求1所述的同步數(shù)據(jù)傳送系統(tǒng),其中所述網(wǎng)絡(luò)開關(guān)包括具有多個端口的吉比特以太網(wǎng)開關(guān),并且所述多個處理器節(jié)點的每一個聯(lián)接到所述網(wǎng)絡(luò)開關(guān)的一個對應(yīng)端口上。
10.根據(jù)權(quán)利要求1所述的同步數(shù)據(jù)傳送系統(tǒng),其中所述多個處理器節(jié)點包括執(zhí)行所述同步開關(guān)管理器過程的管理節(jié)點。
11.根據(jù)權(quán)利要求1所述的同步數(shù)據(jù)傳送系統(tǒng),其中所述多個處理器節(jié)點包括執(zhí)行所述同步開關(guān)管理器過程的第一管理節(jié)點、和執(zhí)行鏡像同步開關(guān)管理器過程的第二管理節(jié)點。
12.一種在聯(lián)接到網(wǎng)絡(luò)開關(guān)上的多個處理器節(jié)點之間同步傳送數(shù)據(jù)的分布子塊的方法,所述方法包括通過在多個處理器節(jié)點的至少一個上執(zhí)行的管理過程,定期地廣播傳送命令以啟動多個順序傳送時段的每一個;通過具有待發(fā)送的至少一個子塊的每個處理器節(jié)點,把一個消息發(fā)送到所述管理過程以用于待發(fā)送的每個子塊,每條消息識別源處理器節(jié)點和目的地處理器節(jié)點;通過所述管理過程,選擇從處理器節(jié)點接收的消息,以保證每個處理器節(jié)點在隨后傳送時段期間發(fā)送最多達(dá)一個子塊和每個處理器節(jié)點在所述隨后傳送時段期間接收最多達(dá)一個子塊;通過所述管理過程,發(fā)送多個傳送請求,每個傳送請求被發(fā)送到一個已經(jīng)發(fā)送被選擇的對應(yīng)消息的處理節(jié)點;及通過接收傳送請求的每個處理器節(jié)點,響應(yīng)隨后傳送命令,把由接收的傳送請求識別的子塊傳送到目的地處理器節(jié)點。
13.根據(jù)權(quán)利要求1所述的方法,還包括在所述發(fā)送用于待發(fā)送的每個子塊的消息之前,給每條消息加時間戳;所述選擇包括基于時間戳順序進(jìn)行優(yōu)先級排序,及所述發(fā)送多個傳送請求包括按時間戳順序發(fā)送傳送請求。
14.根據(jù)權(quán)利要求13所述的方法,還包括由至少一個處理器節(jié)點,發(fā)送多個時間戳讀取請求;以及其中,所述給每條消息加時間戳包括把來自接收的時間戳讀取請求的一個時間戳加入一個對應(yīng)消息中。
15.根據(jù)權(quán)利要求14所述的方法,還包括通過所述管理過程,把接收的消息按時間戳順序組織成一個準(zhǔn)備消息列表;和通過所述管理過程,剛好在每個傳送時段之前,按時間戳順序掃描所述準(zhǔn)備消息列表。
16.根據(jù)權(quán)利要求15所述的方法,所述掃描包括如果在隨后傳送時段期間所述被識別的源處理器節(jié)點尚未被選擇用于發(fā)送一個子塊,并且如果在隨后傳送時段期間所述被識別的目的地處理器節(jié)點尚未被選擇用于接收一個子塊,則選擇一個消息。
17.根據(jù)權(quán)利要求16所述的方法,其中,當(dāng)已經(jīng)掃描整個準(zhǔn)備消息列表時,或者如果所有處理器節(jié)點已經(jīng)被選擇用于傳送子塊或如果所有處理器節(jié)點已經(jīng)被選擇用于接收子塊,則所述掃描完成。
18.根據(jù)權(quán)利要求12所述的方法,還包括把接收的子塊讀取請求存儲到一個讀取請求隊列中,每個子塊讀取請求指示對本地存儲子塊的請求;通過本地盤驅(qū)動器,按實際順序讀取在讀取請求隊列中識別的子塊;把成功地讀取的子塊的條目列成一個成功讀取隊列;及所述發(fā)送一個消息用于待發(fā)送的每個子塊包括,為在所述成功讀取隊列中的每個條目發(fā)送一個消息。
19.根據(jù)權(quán)利要求18所述的方法,其中每個子塊讀取請求包括時間戳讀取請求;所述把成功地讀取的子塊的條目列表到一個成功讀取隊列中包括,按時間戳順序列表條目,及所述為在所述成功讀取隊列中的每個條目發(fā)送一個消息包括,按時間戳順序發(fā)送消息。
20.根據(jù)權(quán)利要求18所述的方法,還包括從所述成功請求隊列中除去一個與由對應(yīng)傳送請求識別的子塊相關(guān)聯(lián)的條目;和建立用來響應(yīng)傳送命令把被識別子塊傳送到目的地處理器節(jié)點的網(wǎng)絡(luò)分組。
21.根據(jù)權(quán)利要求12所述的方法,還包括在第一管理節(jié)點上執(zhí)行所述管理處理器、以及在是第一管理節(jié)點的鏡像的鏡像管理節(jié)點上執(zhí)行一個鏡像管理過程。
22.一種同步數(shù)據(jù)傳送系統(tǒng),包括多個存儲處理器節(jié)點,包括第一和第二用戶節(jié)點和一個管理節(jié)點;主干通信開關(guān),聯(lián)接到所述多個存儲處理器節(jié)點上;多個標(biāo)題,每一個被劃分成跨在所述多個存儲處理器節(jié)點上分布的多個子塊;用戶過程,在所述第一用戶節(jié)點上執(zhí)行,該用戶過程發(fā)送多個時間戳讀取請求,每個時間戳讀取請求用來請求一個對應(yīng)子塊;傳送過程,在所述第二用戶節(jié)點上執(zhí)行,該傳送過程為每個接收的時間戳讀取請求發(fā)送一個消息以請求一個本地存儲的子塊,每條消息包括源節(jié)點識別符和目的地節(jié)點識別符;及管理過程,在所述管理節(jié)點上執(zhí)行,該過程經(jīng)所述開關(guān)定期地廣播傳送命令以啟動多個順序傳送時段的每一個,該過程接收多條消息,并且在每個傳送時段之前,該過程從所述多條消息中選擇,以保證每個存儲處理節(jié)點在每個傳送時段期間發(fā)送最多達(dá)一個子塊和接收最多達(dá)一個子塊,及發(fā)送與被選擇消息相對應(yīng)的多個傳送請求;以及其中,所述傳送過程,響應(yīng)于從所述管理過程接收傳送請求,在由下一個廣播傳送命令啟動的下一個傳送時段期間發(fā)送對應(yīng)子塊。
23.根據(jù)權(quán)利要求22所述的同步數(shù)據(jù)傳送系統(tǒng),其中,所述管理過程基于時間戳優(yōu)先級從所述多條消息中選擇。
24.根據(jù)權(quán)利要求23所述的同步數(shù)據(jù)傳送系統(tǒng),其中,如果在所述隨后傳送時段期間一個被識別的源節(jié)點尚未被選擇用于發(fā)送一個子塊,并且如果在所述隨后傳送時段期間一個被識別的目的地節(jié)點尚未被選擇用于接收一個子塊,則所述管理過程首先選擇具有最高優(yōu)先級時間戳的消息,并且然后選擇每條隨后消息。
全文摘要
一種同步數(shù)據(jù)傳送系統(tǒng)(200)包括存儲處理器節(jié)點(103);主干通信開關(guān)101;多個標(biāo)題,劃分成子塊(113a)-(113e)并且跨在多個節(jié)點上分布;用戶過程(207),在第一節(jié)點(201)上執(zhí)行;傳送過程(215),在第二節(jié)點(203)上執(zhí)行;及管理過程(219),在管理節(jié)點(205)上執(zhí)行。用戶過程發(fā)送時間戳讀取請求,以請求相應(yīng)子塊。傳送過程把消息發(fā)送到管理過程用于每個接收的讀取請求,其中每條消息識別源和目的地節(jié)點。管理過程廣播傳送命令以啟動順序傳送時段,接收消息,及從接收的消息中選擇,以保證每個節(jié)點在每個傳送時段期間發(fā)送或接收僅一個子塊。管理過程為每條選擇消息發(fā)送一個傳送請求,并且傳送過程響應(yīng)于傳送命令而發(fā)送由傳送請求識別的子塊。
文檔編號G06F15/16GK1890658SQ200480035767
公開日2007年1月3日 申請日期2004年12月2日 優(yōu)先權(quán)日2003年12月2日
發(fā)明者史蒂文·W·羅斯 申請人:交互式內(nèi)容引擎有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1