1. 移動(dòng)事務(wù)
用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)一般都是通過(guò)事務(wù)來(lái)完成的。通常,將移動(dòng)客戶機(jī)發(fā)出的事務(wù)叫移" />
時(shí)間:2022-12-05 18:30:01 | 來(lái)源:信息時(shí)代
時(shí)間:2022-12-05 18:30:01 來(lái)源:信息時(shí)代
移動(dòng)事務(wù)處理 : 移動(dòng)事務(wù)處理要解決在移動(dòng)環(huán)境中頻繁的、可預(yù)見(jiàn)的斷接情況下的事務(wù)處理。
1. 移動(dòng)事務(wù)
用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)一般都是通過(guò)事務(wù)來(lái)完成的。通常,將移動(dòng)客戶機(jī)發(fā)出的事務(wù)叫移動(dòng)事務(wù),它屬于分布事務(wù)。移動(dòng)計(jì)算環(huán)境的特點(diǎn),使傳統(tǒng)數(shù)據(jù)庫(kù)事務(wù)處理技術(shù)不能適應(yīng)移動(dòng)事務(wù)處理的要求。移動(dòng)事務(wù)的部分計(jì)算工作放在移動(dòng)客戶機(jī)上進(jìn)行,其余部分交給固定服務(wù)器完成。移動(dòng)事務(wù)可以通過(guò)具有弱連接性的無(wú)線方式存取遠(yuǎn)程數(shù)據(jù),也可以在斷接的情況下存取本地的數(shù)據(jù)副本。
移動(dòng)和分布式事務(wù)管理之間的區(qū)別是顯著的,因?yàn)樗鼈兊哪繕?biāo)不一樣。分布式事務(wù)管理的主要目標(biāo)是在滿足ACID特性的條件下獲得最大的可用性。移動(dòng)事務(wù)處理的主要目標(biāo)是在達(dá)到一定程度一致性的同時(shí)獲得最大的可靠性。移動(dòng)事務(wù)在執(zhí)行期間,不僅發(fā)出事務(wù)的客戶機(jī)是移動(dòng)的,事務(wù)本身也在相應(yīng)地移動(dòng)。由于無(wú)線網(wǎng)絡(luò)的低帶寬、高延遲和移動(dòng)客戶機(jī)的斷接性,移動(dòng)事務(wù)一般都是長(zhǎng)事務(wù)。
2. 移動(dòng)事務(wù)模型
移動(dòng)事務(wù)模型與傳統(tǒng)事務(wù)模型之間的差別很大,傳統(tǒng)的ACID模型已不適用,需要新的事務(wù)模型來(lái)描述。如下為三種常用的移動(dòng)事務(wù)模型:
(1)移動(dòng)嵌套事務(wù)模型:把移動(dòng)事務(wù)定義為相對(duì)獨(dú)立的事務(wù)集合,這些事務(wù)交替執(zhí)行,并具有嵌套層次結(jié)構(gòu)。一個(gè)移動(dòng)事務(wù)可以進(jìn)一步分解為多個(gè)嵌套的事務(wù),整個(gè)事務(wù)可以具有多層嵌套結(jié)構(gòu),稱為復(fù)合事務(wù)。構(gòu)成一個(gè)復(fù)合事務(wù)的事務(wù)稱為該事務(wù)的子事務(wù)。不同于一般嵌套事務(wù),復(fù)合事務(wù)允許獨(dú)立地進(jìn)行提交或者終止操作。如果移動(dòng)復(fù)合事務(wù)的一個(gè)子事務(wù)終止,則這個(gè)復(fù)合事務(wù)(還沒(méi)有提交)也將終止。移動(dòng)事務(wù)分為原子事務(wù)、不可補(bǔ)償?shù)氖聞?wù)、報(bào)告事務(wù)和協(xié)同事務(wù)四種。
(2)Kangaroo事務(wù)模型:是基于全局事務(wù)和分裂事務(wù)建立的模型。在跨區(qū)切換時(shí),通過(guò)分裂事務(wù)來(lái)實(shí)現(xiàn)事務(wù)的移動(dòng)性與重定位。一個(gè)移動(dòng)事務(wù)在一個(gè)多數(shù)據(jù)庫(kù)環(huán)境中被看成是一個(gè)全局事務(wù)。Kangaroo事務(wù)是包含一組Joey事務(wù)的全局事務(wù)。一個(gè)Joey事務(wù)與一個(gè)基站或執(zhí)行它的單元(cell)相關(guān)。一個(gè)Joey事務(wù)應(yīng)該以終止、提交或者拆分狀態(tài)之一來(lái)結(jié)束。如果一個(gè)Kangaroo事務(wù)要成功的話,最后一個(gè)執(zhí)行的Joey事務(wù)應(yīng)當(dāng)以提交或者終止來(lái)結(jié)束。
(3)簇模型:是基于嵌套事務(wù)模型建立的移動(dòng)事務(wù)模型,是建立在完全分布式系統(tǒng)之上的。它將數(shù)據(jù)庫(kù)分成多個(gè)簇(cluster),一個(gè)簇定義了一組相互一致的數(shù)據(jù)。在不同簇之間允許存在一定范圍內(nèi)的不一致,這些不一致最終將通過(guò)簇的合并來(lái)解決。為支持移動(dòng)計(jì)算,它定義了兩級(jí)一致性來(lái)處理事務(wù)的頻繁、可預(yù)見(jiàn)、變化的斷接性; 將移動(dòng)事務(wù)分為強(qiáng)事務(wù)和弱事務(wù)。對(duì)于強(qiáng)事務(wù)必須嚴(yán)格遵守可串行化標(biāo)準(zhǔn),而弱事務(wù)(處于斷接狀態(tài)在移動(dòng)主機(jī)執(zhí)行的事務(wù))允許存取局部緩存不一致數(shù)據(jù),且局部提交。若出現(xiàn)不一致,則通過(guò)執(zhí)行補(bǔ)償事務(wù)進(jìn)行恢復(fù)。
3. 移動(dòng)事務(wù)管理策略
為了保證活動(dòng)事務(wù)的順利完成,必須設(shè)計(jì)和實(shí)現(xiàn)新的事務(wù)管理策略和算法。移動(dòng)事務(wù)處理必須考慮:
(1)根據(jù)網(wǎng)絡(luò)連接情況來(lái)確定事務(wù)處理的優(yōu)先級(jí),網(wǎng)絡(luò)連接速度高的事務(wù)請(qǐng)求優(yōu)先處理。
(2)根據(jù)操作時(shí)間來(lái)確定事務(wù)的遷移,長(zhǎng)時(shí)間的事務(wù)操作全部遷移到服務(wù)器上執(zhí)行,無(wú)需保證網(wǎng)絡(luò)的一直暢通。
(3)根據(jù)數(shù)據(jù)量的大小來(lái)確定事務(wù)是上載執(zhí)行還是下載數(shù)據(jù)副本執(zhí)行后上載。
(4)事務(wù)處理過(guò)程中,網(wǎng)絡(luò)斷接處理時(shí)采用服務(wù)器發(fā)現(xiàn)機(jī)制還是采用客戶端聲明機(jī)制。
(5)事務(wù)移動(dòng)(如,位置相關(guān)查詢)過(guò)程中的用戶位置屬性的實(shí)時(shí)更新。
(6)完善的日志記錄策略。
事務(wù)處理在前端可以簡(jiǎn)單化,但在整個(gè)應(yīng)用系統(tǒng)中可能需要結(jié)合移動(dòng)計(jì)算環(huán)境的特征進(jìn)行事務(wù)處理控制。事務(wù)的ACID特性需要維護(hù),原子性為全局原子性,移動(dòng)設(shè)備和遠(yuǎn)程服務(wù)器都要進(jìn)行數(shù)據(jù)更新。
4.事務(wù)提交處理
事務(wù)提交處理分為影子(shadow)提交和基于日志的提交。影子提交不適用于基于指針的存儲(chǔ)模型。既然數(shù)據(jù)存儲(chǔ)在內(nèi)存中,那么數(shù)據(jù)局部性就不再重要了。如果一個(gè)域值改變了,它的位置也會(huì)改變并且所有的元組指針需要更新。在這種方法中,影子的大小也是很關(guān)鍵的。
基于日志的提交方法更適合于基于指針的模型,它的代價(jià)在于維護(hù)日志。日志也是基于指針的,而不再是基于值的。
5.并發(fā)控制和故障恢復(fù)
移動(dòng)事務(wù)也需要并發(fā)控制和故障恢復(fù)。對(duì)于并發(fā)控制,大多數(shù)事務(wù)完成的速度都很快,鎖之間的競(jìng)爭(zhēng)減少了,因此可以使用大粒度的鎖。目前已經(jīng)出現(xiàn)了很多移動(dòng)數(shù)據(jù)庫(kù)故障恢復(fù)的方法,其中基于檢查點(diǎn)的故障恢復(fù)包括下列三種策略:
(1)每當(dāng)收到一條消息時(shí),就設(shè)立一個(gè)檢查點(diǎn),并記錄全局的一致性信息。
(2)在移動(dòng)客戶機(jī)目前正連接的基站上記錄事務(wù)的狀態(tài)信息。
(3)在移動(dòng)客戶機(jī)和固定存儲(chǔ)設(shè)備上同時(shí)存儲(chǔ)事務(wù)的檢查點(diǎn)狀態(tài)。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。