專利名稱:一種數(shù)據(jù)同步的方法、發(fā)送端和接收端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)同步的方法、發(fā)送端 和接收端。
背景技術(shù):
在分布式系統(tǒng)中,為了安全性需求或者快速訪問需求等,常常會(huì)在每一 個(gè)子系統(tǒng)中維護(hù)一份拷貝數(shù)據(jù),這就需要數(shù)據(jù)源在生成數(shù)據(jù)后,將數(shù)據(jù)同步 到各子系統(tǒng)中。
數(shù)據(jù)源到各子系統(tǒng)的數(shù)據(jù)同步主要分為批量數(shù)據(jù)同步和實(shí)時(shí)數(shù)據(jù)同 步。其中,批量數(shù)據(jù)同步通常用于分布式系統(tǒng)中有子系統(tǒng)加入或者子系統(tǒng)重 啟等情況時(shí),數(shù)據(jù)源將已有數(shù)據(jù)批量同步到新加入的或重啟的子系統(tǒng)中;實(shí) 時(shí)數(shù)據(jù)同步通常用于已有數(shù)據(jù)發(fā)生變化時(shí),數(shù)據(jù)源將發(fā)生變化的數(shù)據(jù)實(shí)時(shí)同 步到各子系統(tǒng)中。批量數(shù)據(jù)通常通過批量數(shù)據(jù)通道傳輸,批量數(shù)據(jù)通道為一 個(gè)單播通道;實(shí)時(shí)數(shù)據(jù)通常通過實(shí)時(shí)數(shù)據(jù)通道傳輸,實(shí)時(shí)數(shù)據(jù)通道為一個(gè)組 播通道。
在實(shí)際應(yīng)用中,常常會(huì)有批量數(shù)據(jù)傳輸過程中也有實(shí)時(shí)數(shù)據(jù)傳輸?shù)那?況,此時(shí)為了保證各子系統(tǒng)同步到的數(shù)據(jù)的正確性,需要保證數(shù)據(jù)源和子系 統(tǒng)接收到的數(shù)據(jù)傳輸順序一致。例如數(shù)據(jù)源按順序發(fā)送了批量同步添加數(shù) 據(jù)和實(shí)時(shí)同步刪除數(shù)據(jù),作為接收端的子系統(tǒng)的接收順序也應(yīng)該一致,如果
順序相反,則會(huì)出現(xiàn)被刪除的數(shù)據(jù)沒有刪除。
現(xiàn)有技術(shù)中,穩(wěn)定的子系統(tǒng)與數(shù)據(jù)源之間僅存在組播的實(shí)時(shí)數(shù)據(jù)通道, 新加入的子系統(tǒng)或重啟的子系統(tǒng)首先與數(shù)據(jù)源建立單播的批量數(shù)據(jù)通道,通 過該批量數(shù)據(jù)通道進(jìn)行批量數(shù)據(jù)的傳輸。如果在此過程中有實(shí)時(shí)數(shù)據(jù)產(chǎn)生,
5則數(shù)據(jù)源在通過組播的實(shí)時(shí)數(shù)據(jù)通道傳輸數(shù)據(jù)給穩(wěn)定的子系統(tǒng)時(shí),也會(huì)通過 單播的批量數(shù)據(jù)通道將實(shí)時(shí)數(shù)據(jù)傳輸給新加入或重啟的子系統(tǒng)。如圖1所 示,如1中子系統(tǒng)N為新加入的子系統(tǒng),在批量數(shù)據(jù)傳輸過程中,實(shí)時(shí)數(shù) 據(jù)也通過單播的批量數(shù)據(jù)通道傳輸。在批量數(shù)據(jù)傳輸完畢后,新加入的或重 啟的子系統(tǒng)再切換到組播的實(shí)時(shí)數(shù)據(jù)通道。
但是,由于數(shù)據(jù)源和子系統(tǒng)很難在批量數(shù)據(jù)傳輸完畢這一時(shí)間點(diǎn)上達(dá)成 一致,則可能會(huì)造成子系統(tǒng)接收數(shù)據(jù)的順序與數(shù)據(jù)源發(fā)送數(shù)據(jù)的順序不一 致,或者遺留接收數(shù)據(jù),從而導(dǎo)致同步的數(shù)據(jù)不一致。而保證在批量數(shù)據(jù)傳 輸完畢這一時(shí)間點(diǎn)上達(dá)成一致的實(shí)現(xiàn)過程需要依靠系統(tǒng)層面提供支持,實(shí)現(xiàn) 十分復(fù)雜。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種數(shù)據(jù)同步的方法、發(fā)送端和接收端,以便 于更加簡(jiǎn)單地保證分布式系統(tǒng)中數(shù)據(jù)同步的 一致性。
一種數(shù)據(jù)同步的方法,應(yīng)用于包含發(fā)送端和至少 一個(gè)接收端的分布式系
統(tǒng),該方法包4舌
所述發(fā)送端采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù)據(jù)和實(shí) 時(shí)數(shù)據(jù)的傳輸;在傳輸一段連續(xù)的批量數(shù)據(jù)之前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指 示切換至批量數(shù)據(jù)通道的消息;在傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù) 據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息。
一種數(shù)據(jù)同步的發(fā)送端,該發(fā)送端包括數(shù)據(jù)傳輸單元和消息發(fā)送單元;
所述數(shù)據(jù)傳輸單元,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)it據(jù)通道分別進(jìn)^f亍批量 數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸;
所述消息發(fā)送單元,用于在所述數(shù)據(jù)傳輸單元傳輸一段連續(xù)的批量數(shù)據(jù)之 前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在所述數(shù)據(jù)傳輸 單元傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù) 據(jù)通道的消息。一種同步數(shù)據(jù)的接收端,該接收端包括數(shù)據(jù)接收單元、消息接收單元和 通道切換單元;
所述數(shù)據(jù)接收單元,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量 數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的接收;
所述消息接收單元,用于在實(shí)時(shí)數(shù)據(jù)通道內(nèi)接收到指示切換至批量數(shù)據(jù)通 道的消息時(shí),向通道切換單元發(fā)送第一切換通知;在批量數(shù)據(jù)通道內(nèi)接收到指 示切換至實(shí)時(shí)數(shù)據(jù)通道的消息時(shí),向通道切換單元發(fā)送笫二切換通知;
所述通道切換單元,用于接收到所述第一切換通知后,切換至批量數(shù)據(jù)通 道;接收到所述第二切換通知后,切換至實(shí)時(shí)數(shù)據(jù)通道。
由以上技術(shù)方案可以看出,本發(fā)明在進(jìn)行數(shù)據(jù)同步時(shí),由于分別采用批 量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸,且通過在傳輸 一段連續(xù)的批量數(shù)據(jù)前后發(fā)送指示進(jìn)行通道切換的消息,從而保證發(fā)送端在 不同數(shù)據(jù)通道發(fā)送數(shù)據(jù)時(shí),接收端能夠?qū)?yīng)的進(jìn)行正確的通道切換,以此來 保證發(fā)送端發(fā)送數(shù)據(jù)的順序和接收端接收數(shù)據(jù)的順序的一致性。本發(fā)明不需 要通過系統(tǒng)層面進(jìn)行復(fù)雜的支持來在批量數(shù)據(jù)傳輸完畢這一時(shí)間點(diǎn)上達(dá)成 一致,僅需要設(shè)置一些控制用消息就可以實(shí)現(xiàn)發(fā)送端和接收端在通道切換上 的一致,實(shí)現(xiàn)更加簡(jiǎn)單。
圖1為現(xiàn)有技術(shù)中分布式系統(tǒng)的數(shù)據(jù)同步示意圖; 圖2為本發(fā)明實(shí)施例 一 提供的數(shù)據(jù)同步的示意圖; 圖3為本發(fā)明實(shí)施例二提供的數(shù)據(jù)同步的示意圖; 圖4為本發(fā)明實(shí)施例提供的發(fā)送端的結(jié)構(gòu)示意圖; 圖5為本發(fā)明實(shí)施例提供的接收端的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供的方法主要包括采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn) 行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸;在傳輸一段連續(xù)的批量數(shù)據(jù)之前,在實(shí)時(shí)數(shù) 據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在傳輸一段連續(xù)的批量數(shù)據(jù) 之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息。
相應(yīng)地,在接收端,采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù) 據(jù)和實(shí)時(shí)數(shù)據(jù)的接收;如果在實(shí)時(shí)數(shù)據(jù)通道內(nèi)接收到指示切換至批量數(shù)據(jù)通 道的消息,則切換至批量數(shù)據(jù)通道;如果在批量數(shù)據(jù)通道內(nèi)接收到指示切換 至實(shí)時(shí)數(shù)據(jù)通道的消息,則切換至實(shí)時(shí)數(shù)據(jù)通道。
本發(fā)明并不同于現(xiàn)有技術(shù)中的方式,在現(xiàn)有技術(shù)中子系統(tǒng)在加入分布式 系統(tǒng)或重新啟動(dòng)后,先建立批量數(shù)據(jù)通道,批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)都通過批量 數(shù)據(jù)通道傳輸,待批量數(shù)據(jù)傳輸完畢后再切換至實(shí)時(shí)數(shù)據(jù)通道。而本發(fā)明中 子系統(tǒng)在加入分布式系統(tǒng)或重新啟動(dòng)后,實(shí)時(shí)數(shù)據(jù)通道和批量數(shù)據(jù)通道都會(huì) 建立,批量數(shù)據(jù)通過批量數(shù)據(jù)通道傳輸,實(shí)時(shí)數(shù)據(jù)通過實(shí)時(shí)數(shù)據(jù)通道傳輸。 為了通知接收端的子系統(tǒng)到對(duì)應(yīng)的通道上接收數(shù)據(jù)以保持發(fā)送的數(shù)據(jù)和接 收的數(shù)據(jù)順序一致,本發(fā)明引入了一種控制用消息。下面結(jié)合具體實(shí)施例對(duì) 上述方法進(jìn)行詳細(xì)描述。
實(shí)施例一、分布式系統(tǒng)中僅存在一個(gè)子系統(tǒng)。
數(shù)據(jù)源和子系統(tǒng)之間需要建立實(shí)時(shí)數(shù)據(jù)通道和批量數(shù)據(jù)通道,如圖2所 示,作為發(fā)送端的數(shù)據(jù)源會(huì)根據(jù)要發(fā)送的數(shù)據(jù),分別在實(shí)時(shí)數(shù)據(jù)通道中發(fā)送 實(shí)時(shí)數(shù)據(jù),在批量數(shù)據(jù)通道中發(fā)送批量數(shù)據(jù)。
由于批量數(shù)據(jù)的發(fā)送可能不是連續(xù)的,例如是周期性地發(fā)送,或者在批 量數(shù)據(jù)的發(fā)送過程中會(huì)有實(shí)時(shí)數(shù)據(jù)插入,因此,在批量數(shù)據(jù)的發(fā)送的前后, 需要進(jìn)行一些特殊處理以完成通道間的協(xié)同工作。具體為在發(fā)送一段連續(xù) 批量數(shù)據(jù)之前,在實(shí)時(shí)數(shù)據(jù)通道中發(fā)送消息Ml;在發(fā)送一段連續(xù)批量數(shù)據(jù) 之后,在批量數(shù)據(jù)通道中發(fā)送消息M2,其中消息Ml和消息M2是控制用 消息。接收端的子系統(tǒng)在啟動(dòng)后可以首先處于實(shí)時(shí)數(shù)據(jù)通道,也可以首先處于
批量數(shù)據(jù)通道。如果在實(shí)時(shí)數(shù)據(jù)通道中接收到消息Ml,則切換至批量數(shù)據(jù) 通道,進(jìn)行批量數(shù)據(jù)的接收。如果在批量數(shù)據(jù)通道中接收到消息M2,則切 換至實(shí)時(shí)數(shù)據(jù)通道。
需要注意的是,當(dāng)數(shù)據(jù)源發(fā)送一段連續(xù)批量數(shù)據(jù)之后,會(huì)在批量數(shù)據(jù)通 道中發(fā)送消息M2,但是在之后可能并沒有實(shí)時(shí)數(shù)據(jù)發(fā)送,因此,接收端的 子系統(tǒng)在接收到消息M2后切換至實(shí)時(shí)數(shù)據(jù)通道后,并不一定會(huì)接收到實(shí)時(shí) 數(shù)據(jù),待接收到消息Ml后重新切換至批量數(shù)據(jù)通道。
當(dāng)批量數(shù)據(jù)全部發(fā)送完畢后,在實(shí)時(shí)數(shù)據(jù)通道中不會(huì)再發(fā)送消息Ml, 接收端就駐留在實(shí)時(shí)數(shù)據(jù)通道中。
實(shí)施例二、分布式系統(tǒng)中存在多個(gè)子系統(tǒng),且存在多個(gè)子系統(tǒng)要進(jìn)行批 量數(shù)據(jù)傳輸。
該實(shí)施例中可以有以下兩種實(shí)現(xiàn)方式
第 一 種方式數(shù)據(jù)源和各子系統(tǒng)之間可以分別建立單播的批量數(shù)據(jù)通 道,且所有子系統(tǒng)都要加入組播的實(shí)時(shí)數(shù)據(jù)通道。如圖3所示,假設(shè)批量數(shù) 據(jù)通道1、批量數(shù)據(jù)通道2和批量數(shù)據(jù)通道3分別對(duì)應(yīng)子系統(tǒng)1、子系統(tǒng)2 和子系統(tǒng)3,各子系統(tǒng)都加入了實(shí)時(shí)數(shù)據(jù)通道。
同樣,當(dāng)數(shù)據(jù)源發(fā)送一段連續(xù)批量數(shù)據(jù)之后,會(huì)在批量數(shù)據(jù)通道發(fā)送消 息M2,所有批量數(shù)據(jù)通道的消息M2都相同。當(dāng)數(shù)據(jù)源發(fā)送一段連續(xù)批量 數(shù)據(jù)之前,會(huì)在實(shí)時(shí)數(shù)據(jù)通道發(fā)送消息M3,由于實(shí)時(shí)數(shù)據(jù)通道為組播通道, 所有的接收端子系統(tǒng)都會(huì)接收到,因此,需要在M3消息中攜帶接收端信息, 即要發(fā)送的批量數(shù)據(jù)的接收端子系統(tǒng)信息,指示切換到批量數(shù)據(jù)通道的接收 端是哪一個(gè)子系統(tǒng)。
接收端子系鄉(xiāng)充如果在實(shí)時(shí)數(shù)據(jù)通道接收到消息M3,判斷消息M3中攜 帶的接收端信息是否為自身,如果是,則切換至批量數(shù)據(jù)通道,否則丟棄該 消息M3,不進(jìn)行切換。如果在批量數(shù)據(jù)通道接收到消息M2,則切換至實(shí) 時(shí)數(shù)據(jù)通道。當(dāng)某一個(gè)子系統(tǒng)的批量數(shù)據(jù)全部發(fā)送完畢后,在實(shí)時(shí)數(shù)據(jù)通道中不會(huì)再
發(fā)送攜帶該子系統(tǒng)信息的消息M3 ,該子系統(tǒng)就駐留在實(shí)時(shí)數(shù)據(jù)通道中。 第二種方式在數(shù)據(jù)源和各子系統(tǒng)之間可以建立組播的批量數(shù)據(jù)通道,
所有子系統(tǒng)都加入組播的批量數(shù)據(jù)通道以及組播的實(shí)時(shí)數(shù)據(jù)通道,假設(shè)子系 統(tǒng)1、子系統(tǒng)2和子系統(tǒng)3都加入了組播的批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道, 其中子系統(tǒng)1和子系統(tǒng)2剛加入或重新啟動(dòng)需要進(jìn)行批量數(shù)據(jù)接收,子系統(tǒng) 3已經(jīng)完成了批量數(shù)據(jù)接收,并在完成批量數(shù)據(jù)接收后退出批量數(shù)據(jù)通道。
在數(shù)據(jù)源發(fā)送一段連續(xù)批量數(shù)據(jù)之后,會(huì)在批量數(shù)據(jù)通道發(fā)送消息M2, 在數(shù)據(jù)源發(fā)送一段連續(xù)批量數(shù)據(jù)之前,會(huì)在實(shí)時(shí)數(shù)據(jù)通道發(fā)送消息Ml,這 與實(shí)施例一的實(shí)現(xiàn)過程相同。不同的是,接收端在接收到Ml后會(huì)進(jìn)一步判 斷自身是否已經(jīng)完成批量數(shù)據(jù)的接收,如果是,不再切換至批量數(shù)據(jù)通道, 駐留在實(shí)時(shí)數(shù)據(jù)通道,例如子系統(tǒng)3;否則,切換至批量數(shù)據(jù)通道,例如子 系統(tǒng)1和子系統(tǒng)2。其中,判斷自身是否已經(jīng)完成批量數(shù)據(jù)的接收可以體現(xiàn) 在判斷自身是否已經(jīng)退出批量數(shù)據(jù)通道。
以上是對(duì)本發(fā)明所提供的方法進(jìn)行的詳細(xì)描述,下面對(duì)本發(fā)明所提供的 發(fā)送端和接收端進(jìn)行詳細(xì)描述。
圖4為本發(fā)明實(shí)施例提供的發(fā)送端結(jié)構(gòu)示意圖,如圖4所示,該發(fā)送端可 以包括數(shù)據(jù)傳輸單元401和消息發(fā)送單元402。
數(shù)據(jù)傳輸單元401,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量 數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸。
消息發(fā)送單元402,用于在數(shù)據(jù)傳輸單元401傳輸一段連續(xù)的批量數(shù)據(jù)之 前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在數(shù)據(jù)傳輸單元 401傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù) 據(jù)通道的消息。
其中,上述批量數(shù)據(jù)通道為單播通道,實(shí)時(shí)數(shù)據(jù)通道為組播通道。 當(dāng)批量數(shù)據(jù)通道為多個(gè)單播通道時(shí),該發(fā)送端還可以包括信息指示單元 403,用于確定數(shù)據(jù)傳輸單元401要傳輸?shù)呐繑?shù)據(jù)的接收端信息,并將該接收
10端信息攜帶在指示切換至批量數(shù)據(jù)通道的消息中。
圖5為本發(fā)明實(shí)施例提供的接收端的結(jié)構(gòu)示意圖,如圖5所示,該接收端
可以包括數(shù)據(jù)接收單元501、消息接收單元502和通道切換單元503。
數(shù)據(jù)接收單元501,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量 數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的接收。
消息接收單元502,用于在實(shí)時(shí)數(shù)據(jù)通道內(nèi)接收到指示切換至批量數(shù)據(jù)通 道的消息時(shí),向通道切換單元503發(fā)送第一切換通知;在批量數(shù)據(jù)通道內(nèi)接收 到指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息時(shí),向通道切換單元503發(fā)送第二切換通知。
通道切換單元503,用于接收到第一切換通知后,切換至批量數(shù)據(jù)通道; 接收到第二切換通知后,切換至實(shí)時(shí)數(shù)據(jù)通道。
其中,上述批量數(shù)據(jù)通道為單播通道,實(shí)時(shí)數(shù)據(jù)通道為組播通道。 更優(yōu)地,當(dāng)批量數(shù)據(jù)通道為多個(gè)單播通道時(shí),該接收端還可以包括信 息識(shí)別單元504,用于接收消息接收單元502發(fā)送的第一切換通知,判斷指 示切換至批量數(shù)據(jù)通道的消息所攜帶的接收端信息是否為該接收端的信息, 如果是,則將第一切換通知發(fā)送給通道切換單元503;否則丟棄第一切換通 知。
當(dāng)批量數(shù)據(jù)通道為組播通道時(shí),該接收端還可以包括判斷處理單元 505,用于接收消息接收單元502發(fā)送的第一切換通知,判斷該接收端是否 已經(jīng)完成批量數(shù)據(jù)的接收,如果是,丟棄該第一切換通知,否則將該第一切 換通知發(fā)送給通道切換單元503。
由以上描述可以看出,本發(fā)明在進(jìn)行數(shù)據(jù)同步時(shí),由于分別采用批量數(shù) 據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸,且通過在傳輸一段 連續(xù)的批量數(shù)據(jù)前后發(fā)送指示進(jìn)行通道切換的消息,從而保證發(fā)送端在不同 數(shù)據(jù)通道發(fā)送數(shù)據(jù)時(shí),接收端能夠?qū)?yīng)的進(jìn)行正確的通道切換,以此來保證 發(fā)送端發(fā)送數(shù)據(jù)的順序和接收端接收數(shù)據(jù)的順序的一致性。本發(fā)明不需要通 過系統(tǒng)層面進(jìn)行復(fù)雜的支持來在批量數(shù)據(jù)傳輸完畢這一時(shí)間點(diǎn)上達(dá)成一致,
僅需要設(shè)置一些控制用消息就可以實(shí)現(xiàn)發(fā)送端和接收端在通道切換上的一致,實(shí)現(xiàn)更加簡(jiǎn)單。
本發(fā)明實(shí)施例中提供了具體的實(shí)現(xiàn)方式,能夠滿足分布式系統(tǒng)中具有一 個(gè)子系統(tǒng)和多個(gè)子系統(tǒng)時(shí)的使用需求。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)同步的方法,應(yīng)用于包含發(fā)送端和至少一個(gè)接收端的分布式系統(tǒng),其特征在于,該方法包括所述發(fā)送端采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸;在傳輸一段連續(xù)的批量數(shù)據(jù)之前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述批量數(shù)據(jù)通道為單播通 道或組播通道,所述實(shí)時(shí)數(shù)據(jù)通道為組纟番通道。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,接收端采用所述批量數(shù) 據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的接收;如果在實(shí)時(shí)數(shù)據(jù) 通道內(nèi)接收到指示切換至批量數(shù)據(jù)通道的消息,則切換至批量數(shù)據(jù)通道;如果 在批量數(shù)據(jù)通道內(nèi)接收到指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息,則切換至實(shí)時(shí)凝:據(jù) 通道。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述批量數(shù)據(jù)通道為多個(gè) 單播通道時(shí),所述指示切換至批量數(shù)據(jù)通道的消息攜帶接收端信息;如果在實(shí)時(shí)數(shù)據(jù)通道內(nèi)接收到指示切換至批量數(shù)據(jù)通道的消息,則切換至 批量數(shù)據(jù)通道具體包括所述接收端判斷所述指示切換至批量數(shù)據(jù)通道的消息 中攜帶的接收端信息是否為自身,如果是,則切換至該接收端對(duì)應(yīng)的批量數(shù)據(jù) 通道,否則不切換。
5、 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述批量數(shù)據(jù)通道為組播 通道時(shí),在切換至批量數(shù)據(jù)通道之前還包括所述接收端判斷自身是否已經(jīng)完 成批量數(shù)據(jù)的接收,如果是,不切換至批量數(shù)據(jù)通道,否則切換至批量數(shù)據(jù)通 道。
6、 一種數(shù)據(jù)同步的發(fā)送端,其特征在于,該發(fā)送端包括數(shù)據(jù)傳輸單元和 消息發(fā)送單元;所述數(shù)據(jù)傳輸單元,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸;所述消息發(fā)送單元,用于在所述數(shù)據(jù)傳輸單元傳輸一段連續(xù)的批量數(shù)據(jù)之 前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在所述數(shù)據(jù)傳輸 單元傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù) 據(jù)通道的消息。
7、 根據(jù)權(quán)利要求6所述的發(fā)送端,其特征在于,所述批量數(shù)據(jù)通道為單播 通道,所述實(shí)時(shí)數(shù)據(jù)通道為組纟番通道。
8、 根據(jù)權(quán)利要求6或7所述的發(fā)送端,其特征在于,所述批量數(shù)據(jù)通道為 多個(gè)單播通道時(shí),該發(fā)送端還包括信息指示單元,用于確定所述數(shù)據(jù)傳輸單 元要傳輸?shù)呐繑?shù)據(jù)的接收端信息,并將該接收端信息攜帶在所述指示切換至 批量數(shù)據(jù)通道的消息中。
9、 一種同步數(shù)據(jù)的接收端,其特征在于,該接收端包括數(shù)據(jù)接收單元、 消息接收單元和通道切換單元;所述數(shù)據(jù)接收單元,用于采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量 數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的接收;所述消息接收單元,用于在實(shí)時(shí)數(shù)據(jù)通道內(nèi)接收到指示切換至批量數(shù)據(jù)通 道的消息時(shí),向通道切換單元發(fā)送第一切換通知;在批量數(shù)據(jù)通道內(nèi)接收到指 示切換至實(shí)時(shí)數(shù)據(jù)通道的消息時(shí),向通道切換單元發(fā)送第二切換通知;所述通道切換單元,用于接收到所述第一切換通知后,切換至批量數(shù)據(jù)通 道;接收到所述第二切換通知后,切換至實(shí)時(shí)數(shù)據(jù)通道。
10、 根據(jù)權(quán)利要求9所述的接收端,其特征在于,所述批量數(shù)據(jù)通道為單 播通道,所述實(shí)時(shí)數(shù)據(jù)通道為組播通道。
11、 根據(jù)權(quán)利要求9或IO所述的接收端,其特征在于,當(dāng)所述批量數(shù)據(jù)通 道為多個(gè)單播通道時(shí),該接收端還包括信息識(shí)別單元,用于接收所述消息接 收單元發(fā)送的第一切換通知,判斷所述指示切換至批量數(shù)據(jù)通道的消息所攜帶 的接收端信息是否為該接收端的信息,如果是,則將所述第一切換通知發(fā)送給所述通道切換單元;否則丟棄所述第一切換通知。
12、根據(jù)權(quán)利要求9或IO所述的接收端,其特征在于,當(dāng)所述批量數(shù)據(jù)通 道為組播通道時(shí),該接收端還包括判斷處理單元,用于接收消息接收單元發(fā) 送的第一切換通知,判斷該接收端是否已經(jīng)完成批量數(shù)據(jù)的接收,如果是,丟 棄所述第 一切換通知,否則將所述第 一切換通知發(fā)送給所述通道切換單元。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)同步的方法、發(fā)送端和接收端,應(yīng)用于包含發(fā)送端和至少一個(gè)接收端的分布式系統(tǒng),其中方法包括發(fā)送端采用批量數(shù)據(jù)通道和實(shí)時(shí)數(shù)據(jù)通道分別進(jìn)行批量數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的傳輸;在傳輸一段連續(xù)的批量數(shù)據(jù)之前,在實(shí)時(shí)數(shù)據(jù)通道內(nèi)發(fā)送指示切換至批量數(shù)據(jù)通道的消息;在傳輸一段連續(xù)的批量數(shù)據(jù)之后,在批量數(shù)據(jù)通道內(nèi)發(fā)送指示切換至實(shí)時(shí)數(shù)據(jù)通道的消息。本發(fā)明能夠更加簡(jiǎn)單地保證分布式系統(tǒng)中數(shù)據(jù)同步的一致性。
文檔編號(hào)H04L12/56GK101567905SQ20091008599
公開日2009年10月28日 申請(qǐng)日期2009年6月3日 優(yōu)先權(quán)日2009年6月3日
發(fā)明者巍 魏 申請(qǐng)人:杭州華三通信技術(shù)有限公司