两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

對訪問數(shù)據(jù)庫的多個客戶端進(jìn)行同步的方法和服務(wù)器的制作方法

文檔序號:6462595閱讀:337來源:國知局
專利名稱:對訪問數(shù)據(jù)庫的多個客戶端進(jìn)行同步的方法和服務(wù)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種對訪問數(shù)據(jù)庫的多個客戶端進(jìn)行同步的方法和服務(wù) 器,其中,每個客戶端在數(shù)據(jù)庫上執(zhí)行多個任務(wù)。
背景技術(shù)
數(shù)據(jù)庫是現(xiàn)代信息社會中非常重要的技術(shù)工具。通常,許多客戶端不 斷地訪問數(shù)據(jù)庫,刪除、添加或改變數(shù)據(jù)庫內(nèi)容。例如在金融機(jī)構(gòu)的數(shù)據(jù) 庫的情況下,有持續(xù)的事務(wù)流程在數(shù)據(jù)庫上執(zhí)行,這要求對相應(yīng)數(shù)據(jù)進(jìn)行 正確技術(shù)處理。
出于安全和性能的原因,需要定期地在數(shù)據(jù)庫上執(zhí)行某些管理任務(wù)。 一個例子是備份整個數(shù)據(jù)庫系統(tǒng)及其所有數(shù)據(jù)。然而,可能存在其它的管 理任務(wù),例如,將數(shù)據(jù)庫遷移到新的硬件和/或軟件系統(tǒng),或測試其相關(guān)的 性能。當(dāng)各個客戶端連續(xù)訪問數(shù)據(jù)庫時,如果要避免所存儲數(shù)據(jù)的不一致 性,則可能不執(zhí)行某些管理任務(wù)。例如,如果在從一個賬戶向另一個轉(zhuǎn)移 某些數(shù)額期間執(zhí)行金融機(jī)構(gòu)數(shù)據(jù)庫的備份,因?yàn)樵谄溟g所發(fā)生的備份,所 以要避免所保存的數(shù)據(jù)表現(xiàn)為從第一賬戶減少了數(shù)額但所減少的數(shù)額并沒 有添加到第二賬戶。這僅僅是一個例子,它顯示出針對某些管理任務(wù),需 要對所有在數(shù)據(jù)庫上進(jìn)行操作的客戶端進(jìn)行同步,或至少對會引起這種不 一致性的客戶端進(jìn)行同步。
在現(xiàn)有技術(shù)中,已知執(zhí)行如下面參見圖l和圖2所描述的這種同步。 圖1示意性給出了在數(shù)據(jù)庫1上操作的多個客戶端c0-c5的布置。如 果客戶端cl-c5在數(shù)據(jù)庫1上都沒有任何打開的任務(wù),則客戶端c0-c5是同 步的。在同步請求已被發(fā)出后,當(dāng)目前處于被請求狀態(tài)(在數(shù)據(jù)庫上沒有 打開的任務(wù))的客戶端想要在數(shù)據(jù)庫1上打開新任務(wù)時,客戶端的請求被 拒絕,并且指示客戶端等待,直到實(shí)現(xiàn)了同步并且完成了管理任務(wù)為止(參考圖2的流程圖)。如果客戶端在同步請求被發(fā)出時正在執(zhí)行某項(xiàng)任務(wù),并且沒有在給定 的超時時間段內(nèi)將狀態(tài)改變到所請求的狀態(tài)(例如從"打開的任務(wù)"到 "關(guān)閉的任務(wù)"),則客戶端被重置為所期望的狀態(tài),以使其不再妨礙同 步和管理任務(wù)的隨后執(zhí)行。然而,在某些情況下,當(dāng)同步請求被發(fā)出時,客戶端可以釋放與數(shù)據(jù) 庫的連接。結(jié)果,即使任何其它試圖在超時時間段期間打開任務(wù)的客戶端 中的一個或多個客戶端的任務(wù)可以在超時時間段完全過去之前被執(zhí)行或完 成,所述任何其它試圖在超時時間段期間打開任務(wù)的客戶端也將不得不等 待,直到超過該時限。因此,用于處理同步請求的現(xiàn)有技術(shù)方法容易對很 多的客戶端造成大量等待時間,而這僅僅是由于一個客戶端失去了與數(shù)據(jù) 庫的連接。減小超時時間段是減小其它客戶端等待時間的明顯方式。然 而,減小超時時間段將增加所取消任務(wù)的數(shù)量,這些所取消的任務(wù)必須在 實(shí)現(xiàn)同步且執(zhí)行相應(yīng)的管理任務(wù)后重新開始。考慮到上面,本發(fā)明第一技術(shù)方案的技術(shù)問題在于提供一種將多個客 戶端進(jìn)行同步的更高效方法,該方法可減小訪問數(shù)據(jù)庫的客戶端的等待時 間,而不增加所取消任務(wù)的數(shù)量。發(fā)明內(nèi)容現(xiàn)有技術(shù)中存在的該問題由根據(jù)本申請所述的對訪問數(shù)據(jù)庫的多個客 戶端進(jìn)行同步的方法來解決。在本發(fā)明的一個實(shí)施例中,針對每個客戶 端,所述方法包括以下步驟一在發(fā)出同步請求后,累積由客戶端執(zhí)行的一個或多個任務(wù)的時間;并且—如果累積的任務(wù)時間超過了最大累積任務(wù)時間,則拒絕客戶端的打 開新任務(wù)的請求。由此,不是拒絕任何打開新任務(wù)的請求,而是對于這樣的客戶端允許 打開新任務(wù),所述客戶端在同步請求被發(fā)出之后的所有任務(wù)持續(xù)時間的總 和未超過給定時限因此,如果存在沒有迅速關(guān)閉其任務(wù)的另一客戶端,例如失去了與數(shù)據(jù)庫的連接的客戶端,那么其它客戶端可繼續(xù)工作。結(jié) 果,將縮短客戶端的平均等待時間。
在一個實(shí)施例中,所述方法還包括為所有客戶端定義公共最大累積任 務(wù)時間的步驟。在該實(shí)施例中,平等地對待所有客戶端。另一個極端是這 樣一個實(shí)施例,其中,所述方法還包括為每個客戶端單獨(dú)定義最大累積任 務(wù)時間的步驟。對最大累積任務(wù)時間的單獨(dú)定義允許通過分配最大累積任 務(wù)時間的較大值來將某些客戶端列為優(yōu)先,這減小了在處理同步請求期間 拒絕這種客戶端的新任務(wù)的可能性。
很明顯還存在這樣的實(shí)施例,其中,定義客戶端的組,并且某個組的 所有客戶端具有相同的最大累積任務(wù)時間,而其中組與組之間的值不同。
在一個實(shí)施例中所描述的方法與上述現(xiàn)有技術(shù)的方法結(jié)合。由此,如 果同步后執(zhí)行的任務(wù)被打開超過超時時間段,則終止該任務(wù)。而且,超時 時間段可以是用于所有客戶端的通用參數(shù),或如果將給予某些客戶端更多 的時間來執(zhí)行它們的任務(wù),則單獨(dú)地或按組的方式選擇超時時間段。超時 時間段的值和最大累積任務(wù)時間的值將確定每個客戶端的平均等待時間和 完成同步請求之前的平均等待時間。在一個實(shí)施例中,超時時間段的(一 個或多個)值與最大累積任務(wù)時間的(一個或多個)值相關(guān)。
還可以對所描述方法限定進(jìn)一步的修改。
根據(jù)本發(fā)明的另一技術(shù)方案,本發(fā)明涉及數(shù)據(jù)庫服務(wù)器,其適于執(zhí)行 上述方法中的任何一個。根據(jù)本發(fā)明的又一技術(shù)方案,本發(fā)明涉及包括用 于執(zhí)行上述方法中任何一個的指令的計算機(jī)程序。


在下面的詳細(xì)描述中,參考下列附圖來描述當(dāng)前優(yōu)選的實(shí)施例 圖l:顯示出數(shù)據(jù)存儲器、數(shù)據(jù)庫服務(wù)器和多個客戶端的示例布置; 圖2:顯示出根據(jù)現(xiàn)有技術(shù)的、在同步請求之后處理客戶端的新的打 開任務(wù)請求的流程圖3a:顯示出沒有同步請求時正常處理客戶端任務(wù)的定時圖3b:顯示出由根據(jù)現(xiàn)有技術(shù)的方法所發(fā)生的等待時間的定時圖;圖4:顯示出根據(jù)本發(fā)明的一個實(shí)施例的、在同步請求后處理客戶端 的新的打開任務(wù)請求的流程圖5:顯示出在本發(fā)明的一個實(shí)施例中處理同步請求的流程圖;和
圖6a-6c:顯示出累積任務(wù)時間和超時時間段的三組不同的值對客戶
端所發(fā)生的所有等待時間的總和和在發(fā)出同步請求之后直到實(shí)現(xiàn)同步為止 的時間的影響。。
具體實(shí)施例方式
圖1示意性地給出了包括數(shù)據(jù)存儲器2和數(shù)據(jù)庫服務(wù)器3的數(shù)據(jù)庫 1。數(shù)據(jù)庫服務(wù)器3利用諸如因特網(wǎng)之類的適當(dāng)網(wǎng)絡(luò)技術(shù)連接到多個客戶 端c0-c5。圖1的布置僅僅是一個例子,并且對于本發(fā)明來說不是必需 的。特別地,可以有更多客戶端cn (n>5)連接到數(shù)據(jù)庫服務(wù)器3,為了 簡單起見在圖中沒有示出這些客戶端。
客戶端c0-c5在數(shù)據(jù)庫1上執(zhí)行各種任務(wù),如在圖3a的定時圖中示例 性示出的??梢钥吹?,任務(wù)具有不同的時間長度。此外,當(dāng)c0-c5的某個 客戶端沒有在數(shù)據(jù)庫上執(zhí)行任何任務(wù)時也存在這樣的時間段。
圖3a還示出了在某些任務(wù)的處理所花的時間大于某個超時時間段tQ 時,取消這些任務(wù)。通過"X"終止某個任務(wù)而示出了該情況。在圖3a的 例子中,超時時間段是4分鐘。然而,這僅僅是示例值。取決于要執(zhí)行的 任務(wù)、整個系統(tǒng)的性能和期望的響應(yīng)時間,超時時間段可長幾個數(shù)量級或 短幾個數(shù)量級。
對于某些管理任務(wù),需要同步各個客戶端c0-c5。換言之,需要同步 的狀態(tài),其中,關(guān)閉所有任務(wù),而且其中沒有打開新任務(wù),以使得可執(zhí)行 管理任務(wù),例如數(shù)據(jù)存儲器2的備份,并且提供一致的數(shù)據(jù)組。
圖2示出了現(xiàn)有技術(shù)的方法,用于將所有示例客戶端c0-c5變?yōu)橥?狀態(tài)。從圖2的流程圖可以看到,只要客戶端試圖開始新任務(wù),就在第一 步驟20中檢驗(yàn)是否同時已經(jīng)請求了同步。如果檢驗(yàn)結(jié)果為否,則打開新 任務(wù)(參考圖2中的右分支)。然而,如果有同步請求,則在步驟21中 拒絕客戶端的"打開新任務(wù)"請求。在步驟22中,在可打開任務(wù)之前,客戶端必須等待,直到實(shí)現(xiàn)了同步,而且終止了任何隨后的管理任務(wù)為 止。
圖3b中示出了對客戶端c0-c5的任務(wù)的定時所產(chǎn)生的效果??梢钥?到,在t=0時發(fā)出同步請求。之后,客戶端c0-c5都不允許開始新任務(wù)。 客戶端cl-c4的所期望的新任務(wù)移位到同步完成時(例如,執(zhí)行了備份, 這在圖中未示出)的時間點(diǎn)。這由水平箭頭示出,水平箭頭的長度反映了 相應(yīng)任務(wù)的延遲。在圖3b的右側(cè),示出了客戶端的總等待時間是5.6分 鐘。由于客戶端c0,直到真正實(shí)現(xiàn)了同步狀態(tài)的時間稍微多于3分鐘。在 超時時間段to期滿之后,取消c0的第一任務(wù)。從與圖3a的比較可以看 到,客戶端c3和c4的所請求任務(wù)是如此的短,以致于它們可以在等待客 戶端c0的第一任務(wù)取消的過程中都完全被執(zhí)行。
圖4給出了根據(jù)本發(fā)明的方法的實(shí)施例的示意流程圖,其克服了這種 低效。在預(yù)備步驟(圖4中未示出)中,如上面所說明的,為客戶端cO-c5中的一個或多個客戶端單獨(dú)定義最大累積任務(wù)時間t,,或者為所有客戶 端c0-c5共同定義最大累積任務(wù)時間t,。當(dāng)請求新打開的任務(wù)時,這里在 第一步驟30中也檢驗(yàn)是否已經(jīng)發(fā)出了同步請求。如果檢驗(yàn)結(jié)果為是,則 不會自動拒絕請求。相反,在步驟31中進(jìn)行比較,以確定在發(fā)出同步請 求之后由相應(yīng)客戶端執(zhí)行的任務(wù)的累積任務(wù)時間是否超過了預(yù)定義的最大 累積任務(wù)時間^。僅在該條件也滿足的情況下,在步驟32中拒絕所請求的 新任務(wù),并且在步驟33中,客戶端必須等待直到完成同步為止。
圖5中示出的確定過程,用于確定何時達(dá)到同步狀態(tài),并確定何時可 執(zhí)行相應(yīng)的管理任務(wù),例如備份。當(dāng)關(guān)閉任一個客戶端的任務(wù)時,優(yōu)選地 總是執(zhí)行圖5所示的步驟。在步驟40中,再次檢驗(yàn)是否已請求了同步。 在步驟41中,如果在達(dá)到同步狀態(tài)之前,相應(yīng)客戶端發(fā)出打開新任務(wù)的 另外請求,則將所處理的任務(wù)的時間加到該相應(yīng)客戶端的累積任務(wù)時間, 以便能與上述的方法步驟31進(jìn)行有意義的比較。在步驟42中,檢驗(yàn)是否 存在具有打開的任務(wù)的任何其它客戶端。如果檢驗(yàn)結(jié)果為否,則在步驟43 中實(shí)現(xiàn)同步狀態(tài),并且可執(zhí)行任一管理任務(wù)(或多個管理任務(wù))。之后, 立即在步驟44中向一個或多個客戶端發(fā)出喚醒呼叫,所述一個或多個客戶端在同步請求被發(fā)出之后已請求了打開任務(wù)但在上述方法步驟32中被 拒絕。圖6a-6c中示出了所產(chǎn)生的定時圖的例子。在這些圖中,"X"仍表示 超過某超時時間段t。并因此被取消的任務(wù)。實(shí)心黑點(diǎn)表示這樣的情況,其 中,客戶端的累積任務(wù)時間超過了最大累積任務(wù)時間tp所以不允許該客 戶端的新任務(wù)??梢钥吹剑c上述的現(xiàn)有技術(shù)的方法相比,使用本發(fā)明的實(shí)施例,發(fā) 出同步請求和達(dá)到同步狀態(tài)的時間點(diǎn)之間的平均時間更長。査看圖6a的圖 形,其中最大累積任務(wù)時間^被設(shè)置為2分鐘,與圖3b的圖形相比,在更 晚的時間點(diǎn)達(dá)到同步,即在9分鐘后達(dá)到同步。然而,與圖3b的圖形中 的上述5.6分鐘相比,客戶端的總等待時間減小為1.9分鐘。通常,總等待時間和最大累積任務(wù)時間&的值是相關(guān)的。如果參數(shù)t, 的值更大,則總等待時間將進(jìn)一步減小,如比較tj人2增加到6的圖6a-6c 中的圖形所看到的。實(shí)際上,所描述的方法使圖6c中的例子在這樣的時間 點(diǎn)同步,該時間點(diǎn)不需要客戶端c0-c5的任何新任務(wù)進(jìn)行等待。如果需 要,還可以根據(jù)要執(zhí)行的管理任務(wù)的相關(guān)性(relevance)來動態(tài)地選擇參 數(shù)h。結(jié)果,最大累積任務(wù)時間^的所述參數(shù)允許區(qū)分客戶端任務(wù)相對于管 理任務(wù)的優(yōu)先級。例如,出于安全的原因,應(yīng)當(dāng)定期執(zhí)行整個系統(tǒng)的備 份。然而,相比于以盡可能少的延遲來繼續(xù)服務(wù)各個客戶端來說,在所有 客戶端達(dá)到同步以使得能夠存儲一致的數(shù)據(jù)組時的精確時間點(diǎn)不是那么相 關(guān)(relevant),并且可以具有較低的優(yōu)先級。如上面已經(jīng)論述的,還可以 通過為每個客戶端單獨(dú)選擇最大累積任務(wù)時間^和超時時間段tQ的值,來 改進(jìn)定時特性??捎蓴?shù)據(jù)庫服務(wù)器3來執(zhí)行所述方法,該數(shù)據(jù)庫服務(wù)器3控制數(shù)據(jù)存 儲器2且服務(wù)各個客戶端c0-c5。為此,可以以數(shù)據(jù)庫服務(wù)器3的硬件和/ 或軟件來實(shí)現(xiàn)相應(yīng)指令。在軟件實(shí)現(xiàn)的情況下,相應(yīng)的計算機(jī)程序包括執(zhí) 行上述方法步驟的指令。
權(quán)利要求
1. 一種對訪問數(shù)據(jù)庫(1)的多個客戶端(c0-c5)進(jìn)行同步的方法,每個客戶端(c0-c5)在所述數(shù)據(jù)庫(1)上執(zhí)行多個任務(wù),針對每個客戶端(c0-c5),所述方法包括以下步驟a.累積(41)在發(fā)出同步請求之后由所述客戶端(c0-c5)執(zhí)行的一個或多個任務(wù)的時間;b.如果所累積的任務(wù)時間超過了最大累積任務(wù)時間(t1),則拒絕(32)所述客戶端(c0-c5)的打開新任務(wù)的請求。
2. 根據(jù)權(quán)利要求1的方法,還包括為所有客戶端(c0-c5)定義公共 最大累積任務(wù)時間(ti)的步驟。
3. 根據(jù)權(quán)利要求1的方法,還包括為每個客戶端(cO-c5)單獨(dú)定義 最大累積任務(wù)時間(")的步驟。
4. 根據(jù)前述權(quán)利要求中任意一項(xiàng)的方法,其中,如果同步之后執(zhí)行 的任務(wù)被打開超過超時時間段(tQ),則終止該任務(wù)。
5. 根據(jù)前述權(quán)利要求中任意一項(xiàng)的方法,其中,所述超時時間段 (to)的值與所述最大累積任務(wù)時間(t。的值相關(guān)。
6. 根據(jù)前述權(quán)利要求中任意一項(xiàng)的方法,其中,當(dāng)不再有客戶端 (c0-c5)的打開的任務(wù)時,在所述數(shù)據(jù)庫(1)上執(zhí)行管理任務(wù),特別是所述數(shù)據(jù)庫(1)的備份。
7. 根據(jù)權(quán)利要求6的方法,還包括在已執(zhí)行了所述管理任務(wù)之后, 發(fā)起在步驟b中被拒絕的任務(wù)的步驟。
8. 根據(jù)前述權(quán)利要求中任意一項(xiàng)的方法,其中,在已執(zhí)行了所述管 理任務(wù)之后,對具有被拒絕的任務(wù)的所有客戶端(c0-c5)執(zhí)行喚醒。
9. 適于執(zhí)行前述權(quán)利要求1-8中任意一項(xiàng)權(quán)利要求所述方法的數(shù)據(jù)庫 服務(wù)器(3)。
10. 包括用于執(zhí)行前述權(quán)利要求1-8中任意一項(xiàng)權(quán)利要求所述方法的 指令的計算機(jī)程序。
全文摘要
本發(fā)明涉及一種對訪問數(shù)據(jù)庫(1)的多個客戶端(c0-c5)進(jìn)行同步方法和服務(wù)器,每個客戶端(c0-c5)在數(shù)據(jù)庫(1)上執(zhí)行多個任務(wù),其中,針對每個客戶端(c1-c5),所述方法包括以下步驟累積(41)在發(fā)出同步請求之后由客戶端(c1-c5)執(zhí)行的一個或多個任務(wù)的時間;并且如果累積的任務(wù)時間超過了最大累積任務(wù)時間(t<sub>1</sub>),則拒絕(32)客戶端的打開新任務(wù)的請求。
文檔編號G06F9/46GK101303699SQ20081009693
公開日2008年11月12日 申請日期2008年5月7日 優(yōu)先權(quán)日2007年5月7日
發(fā)明者海因茲·庫爾登 申請人:軟件股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
巩义市| 和政县| 贵阳市| 湖口县| 樟树市| 黄石市| 章丘市| 永顺县| 兰溪市| 博湖县| 历史| 河源市| 台安县| 札达县| 姚安县| 宁安市| 东明县| 房产| 沁水县| 安新县| 广昌县| 手游| 太谷县| 琼结县| 湖州市| 图片| 溧阳市| 灵寿县| 当阳市| 白沙| 环江| 贺州市| 类乌齐县| 靖西县| 乌什县| 广宗县| 洪洞县| 北辰区| 涞源县| 晋州市| 彰化市|