• 沒有找到結果。

實例說明

在文檔中 中 華 大 學 (頁 36-45)

詢,首先,查詢處理程式先至新版本集合及目前版本集合中的共同集合中做搜 尋,若此次查詢的資料項皆在此共同集合中,即代表此次查詢結果為目前一致性 的狀態,如果無法在此共同集合中結束查詢,再到目前版本集合中及失效版本集 合的共同集合中做搜尋,若此次查詢的資料項皆在此共同集合中,代表此次查詢 結果處於過去某一次一致性狀態下。若查詢到達時並無法在暫存記憶體中搜尋到 資料項,便將此次查詢存放於查詢佇列中,等待下個廣播週期驗證暫存資料項的 正確性並擷取查詢所需資料項後,再對查詢做處理,此時的查詢結果則符合互斥 一致性的狀態。

此時異動佇列的內容為(D2,6)。依此類推,資料庫在時間單位 8 更新資料項 D3 後,便將資料項 D3 的識別碼及更新時間加入異動佇列中,最後異動佇列的內容 便為(D2,6)→(D3,8)。等到廣播週期將要到達時會先刪除監聽佇列中超出更新視 窗所涵蓋時間的異動資料項,但目前監聽佇列中並無超出更新視窗可涵蓋的資料 項,因此異動佇列並不做任何變動,只根據異動佇列製作驗證報告,到達後廣播 伺 服 端 開 始 廣 播 [ 驗 證 報 告 ][ 時 間 索 引 ][ 資 料 區 段 ] , 內 容 為 [D2,D3][index][D1,D2,D3,D4,D5]。

圖 4-5 CASE1 資料庫伺服端狀態

行動客戶端中的暫存記憶體在一開時始並無任何資料項存在,如圖 4-6 所 示,當行動客戶端在時間單位 7 時提出查詢要求,此次查詢的編號為 Q1,查詢 的資料項分別有 D1,D4,D5,查詢處理程式首先會判斷記憶體中的各版本集合是 否有資料項的存在,當發現記憶體中並無資料項存在後,將此次查詢的資料項加 入監聽佇列中,因此監聽佇列的內容為 D1,D4,D5,最後將此次查詢加入查詢佇 列中,查詢佇列中的內容為 Q1(D1,D4,D5),查詢到達後的行動客戶端記憶體如 圖 4-7 所示。在完成上述動作後行動客戶端開始等待下次的廣播週期到達。

D3

[D1,D2,D3,D4,D5]

8 10

0 6 time

[D2,D3][index]

廣播週期 更新視窗 資料庫伺服端

時間單位 2:異動佇列→(D2,6) 時間單位 8:異動佇列→(D2,6)→(D3,8)

D2 更新 更新

圖 4-6 CASE1 行動客戶端狀態

圖 4-7 CASE1 查詢到達後行動客戶端狀態

當廣播伺服端廣播驗證報告時,由於行動客戶端的記憶體中並無資料項所以 不需驗證,行動客戶端並不做任何處理,直到資料庫開始廣播時間索引時才開始 運作,監聽處理程式首先會根據監聽佇列中的資料項識別碼,來判斷此次要擷取 哪些資料項,並根據時間索引得到所需資料項廣播的時間單位,因此,監聽佇列 會根據時間索引推算出資料項 D1 的廣播時間,等到資料項 D1 被廣播出時,將 資料項 D1 自廣播通道擷取至新版本集合中存放,在完成擷取資料項 D1 後,將 資料項 D1 的識別碼自監聽佇列中移除,此時新版本集合的內容為 D1、監聽佇 列的內容為 D4,D5。依此類推,監聽處理程式也會將監聽佇列中的資料項 D4,D5,自廣播通道中擷取下來並自監聽佇列中移除,在完成擷取監聽資料項後 新版本集合的內容為 D1,D4,D5,而監聽佇列中並無任何監聽資料項識別碼。在

7

查詢編號:Q1 查詢內容:D1,D4,D5 查詢到達

D3

[D1,D2,D3,D4,D5]

8 10

0 6 time

[D2,D3][index]

D2 更新 更新

行動客戶端於時間單位 0 時狀態:

新版本集合:

目前版本集合:

新版本集合:

監聽佇列:

查詢佇列:

查詢到達後行動客戶端狀態:

新版本集合:

目前版本集合:

新版本集合:

監聽佇列:D1,D4,D5 查詢佇列:Q1(D1,D4,D5)

結束監聽事件到達後,查詢處理程式開始檢查查詢佇列中 Q1 所需的資料項 D1,D4,D5 是否皆存在新版本集合與目前版本集合共同組成的集合中,最後發現 此共同集合擁有資料項 D1,D4,D5 可滿足 Q1 的查詢,因此回答並結束本次查詢,

最後將 Q1 自查詢佇列中移除,當執行完上述動作後行動客戶端的記憶體狀態如 圖 4-8 所示。

圖 4-8 CASE1 監聽資料到達後行動客戶端端狀態

CASE 2

本案例是接續上個案例的時間單位 10 再繼續運作,因此資料庫伺服端狀態 及行動客戶端狀態是接續上個案例再繼續延伸。圖 4-9 為資料庫伺服端更新狀 況,假設資料庫在時間單位 13 時更新資料項 D2,在確認完成更新後便將資料項 D2 的識別碼及更新時間,加入異動佇列中,但資料項 D2 已在異動佇列出現過,

代表在更新視窗中稍早的時間也更新過資料項 D2,因此,先將異動佇列中原有 的資料項 D2 更新資訊刪除,再將資料項 D2 在資時間單位 13 的更新資訊加到異 動佇列中,此時異動佇列的內容為(D3,8)→(D2,13)。依此類推,資料庫在時間單 位 19 更新資料項 D5 後,便將更新資訊加入異動佇列中,最後異動佇列的內容 便為(D3,8)→(D2,13)→(D5,19)。等到廣播週期將要到達時會先刪除監聽佇列中超 出更新視窗所涵蓋時間的異動資料項,但目前監聽佇列中並無超出更新視窗可涵 蓋的資料項,因此異動佇列並不做任何變動,只根據異動佇列製作驗證報告,到 達 後 廣 播 伺 服 端 開 始 廣 播 [ 驗 證 報 告 ][ 時 間 索 引 ][ 資 料 區 段 ] , 內 容 為 [D2,D3,D5][index][D1,D2,D3,D4,D5]。

監聽資料到達後行動客戶端狀態:

新版本集合:D1,D4,D5 目前版本集合:

新版本集合:

監聽佇列:

查詢佇列:

圖 4-9 CASE2 資料庫伺服端狀態

在 行 動 客 戶 端 中 的 記 憶 體 如 圖 4-10 所 示 , 新 版 本 集 合 中 有 資 料 項 D1,D4,D5,其餘目前版本集合、失效版本集合、監聽佇列、查詢佇列中並無任 何資料項。當行動客戶端在時間單位 16 時提出查詢要求,此次查詢的編號為 Q2,

查詢的資料項分別有 D2,D3,查詢處理程式首先會判斷記憶體中的各版本集合是 否有資料項的存在,當發現記憶體中有資料項的存在,便開始檢查新版本集合與 目前版本集合所組成的共同集合是否擁有此次查詢所需資料項,發現此共同集合 並不能滿足此次查詢後,查詢處理程式開始檢查目前版本集合及失效版本集合所 組成的共同集合使否有此次查詢所需的資料項,發現此共同集合也無法滿足此次 查詢,便將此次查詢的所需但未在記憶體中的資料項加入監聽佇列中,因此監聽 佇列的內容為 D2,D3,最後將此次查詢加入查詢佇列中,查詢佇列中的內容為 Q2(D2,D35),查詢到達後的行動客戶端記憶體如圖 4-11 所示。在完成上述動作 後行動客戶端開始等待下次廣播週期的到達。

20 D5 19 D2

13 D3

8 10

0 6 time

廣播週期

更新視窗 資料庫伺服端

時間單位 13:異動佇列→(D3,8)→(D2,13)

時間單位 19:異動佇列→(D3,8)→(D2,13)→(D5,19)

D2

更新 更新 更新 更新

[D1,D2,D3,D4,D5]

[D2,D3,D5][index]

圖 4-10 CASE2 行動客戶端狀態

圖 4-11 CASE2 查詢到達後行動客戶端狀態

當驗證報告將要到達時,行動客戶端會先將新版本集合中的資料項刪除並加 到目前版本集合中,當完成此動作後,新版本集合中無任何資料項存在,目前版 本集合的內容為 D1,D4,D5。當驗證報告到達後行動客戶端依據驗證報告中的內 容來驗證目前版本集合中資料項的正確性,開始驗證後發現目前版本集合中的資 料項 D5 已失效,便將資料項 D5 自目前版本集合中刪除,並將資料項 D5 加到 失效版本集合中,因此在完成驗證報告到達事件後目前版本集合的內容為 D1,D4,失效版本集合的內容為 D5,在接收完驗證報告後行動客戶端的記憶體 狀態如圖 4-12 所示

查詢到達後行動客戶端狀態:

新版本集合:D1,D4,D5 目前版本集合:

新版本集合:

監聽佇列:D2,D3 查詢佇列:Q2(D2,D3)

16

行動客戶端於時間單位 10 時狀態:

新版本集合:D1,D4,D5 目前版本集合:

新版本集合:

監聽佇列:

查詢佇列:

20 D5 19 D2

13 D3

8 10

0 6 time

D2

更新 更新 更新 更新

查詢到達 查詢編號:Q2 查詢內容:D2,D3

[D1,D2,D3,D4,D5]

[D2,D3,D5][index]

圖 4-12 CASE2 驗證報告到達後行動客戶端狀態

當廣播伺服端開始廣播時間索引時,監聽處理程式會依據時間索引推算出監 聽佇列中資料項 D2 的廣播時間,當資料項 D2 開始廣播時,監聽處理程式便將 資料項 D2 自廣播通道中擷取至新版本集合中存放,並將監聽佇列中的資料項識 別碼 D2 給予刪除,此時新版本集合的內容為 D2、監聽佇列的內容為 D3。依此 類推,監聽處理程式也會將資料項 D3 資廣播通道中擷取下來存放於新版本集合 中,並將監聽佇列中資料項 D3 的識別碼刪除。在擷取完監聽佇列中的內容後,

查詢處理程式開始檢查查詢佇列中 Q2 所需資料項為 D2,D3 是否皆存在新版本集 合與目前版本集合所組成的共同集合中,最後發現此共同集合中擁有資料項 D2,D3 可滿足此次查詢,便回答並結束此次查詢,最後將此次查詢自查詢佇列中 刪除,在完成上述動做後行動客戶端的暫存記憶體狀態如圖 4-13 所示。

圖 4-13 CASE2 監聽資料到達後行動客戶端狀態

CASE 3

本案例是接續上個案例的時間單位 20 再繼續運作,因此資料庫伺服端狀態 及行動客戶端狀態是接續上個案例再繼續延伸。圖 4-14 為資料庫伺服端更新狀 況,假設資料庫在時間點 20 後到行動客戶端提出查詢要求前並無資料項更新。

監聽資料到達後行動客戶端狀態:

新版本集合:D2,D3 目前版本集合:D1,D4 新版本集合:D5 監聽佇列:

查詢佇列:

驗證報告到達後行動客戶端狀態:

新版本集合:D1,D4 目前版本集合:D5 新版本集合:

監聽佇列:D2,D3 查詢佇列:Q2(D2,D3)

圖 4-14 CASE3 資料庫伺服端狀態

在行動客戶端中的記憶體如圖 4-15 所示,新版本集合中有資料項 D2,D3,

目前版本集合有資料項 D1,D4,失效版本集合有資料項 D5,監聽佇列、查詢佇 列中並無任何資料。當行動客戶端在時間單位 21 時提出查詢要求,此次查詢的 編號為 Q3,查詢的資料項分別有 D1,D5,查詢處理程式首先會判斷記憶體中的 各版本集合是否有資料項的存在,當發現記憶體中有資料項的存在,便開始檢查 新版本集合與目前版本集合所組成的共同集合是否擁有此次查詢所需資料項,發 現此共同集合並不能滿足此次查詢後,查詢處理程式開始檢查目前版本集合及失 效版本集合所組成的共同集合使否有此次查詢所需的資料項,發現此共同集合擁 有資料項 D1 與資料項 D5 可滿足此次查詢,便回答並結束此次查詢,最後行動 客戶端的記憶體狀態如圖 4-16,暫存記憶體中的內容並無任何變動,新版本集合 中有資料項 D2,D3,目前版本集合有資料項 D1,D4,失效版本集合有資料項 D5,

監聽佇列、查詢佇列中並無任何資料。

20 D5 19 D2

13 D3

8 10

0 6 time

廣播週期

更新視窗 資料庫伺服端

時間單位 13:異動佇列→(D3,8)→(D2,13)

時間單位 19:異動佇列→(D3,8)→(D2,13)→(D5,19)

D2

更新 更新 更新 更新

圖 4-15 CASE3 行動客戶端狀態

圖 4-16 CASE3 查詢到達後行動客戶端狀態

查詢到達後行動客戶端狀態:

新版本集合:D2,D3 目前版本集合:D1,D4 新版本集合:D5 監聽佇列:

查詢佇列:

20 21

行動客戶端於時間單位 20 時狀態:

新版本集合:D2,D3 目前版本集合:D1,D4 新版本集合:D5

監聽佇列:

查詢佇列:

D5 19 D2

13 D3

8 10

0 6 time

D2

更新 更新 更新 更新

查詢內容:D1,D5 查詢編號:Q3 查詢到達

在文檔中 中 華 大 學 (頁 36-45)

相關文件