1.一種數(shù)據(jù)庫操作方法,其特征在于,包括:
在應(yīng)用服務(wù)器執(zhí)行目標事務(wù)的過程中,依次獲取所述應(yīng)用服務(wù)器執(zhí)行到的所述目標事務(wù)中的數(shù)據(jù)庫操作指令;
對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行,將預(yù)測執(zhí)行結(jié)果返回給所述應(yīng)用服務(wù)器以供所述應(yīng)用服務(wù)器確定下一個需要執(zhí)行的數(shù)據(jù)庫操作指令,并在本地記錄所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行產(chǎn)生的預(yù)測執(zhí)行數(shù)據(jù);
當獲取到所述目標事務(wù)中的事務(wù)提交指令時,根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),控制所述應(yīng)用服務(wù)器對應(yīng)的數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在應(yīng)用服務(wù)器執(zhí)行目標事務(wù)的過程中,依次獲取所述應(yīng)用服務(wù)器執(zhí)行到的所述目標事務(wù)中的數(shù)據(jù)庫操作指令,包括:
攔截所述應(yīng)用服務(wù)器發(fā)往所述數(shù)據(jù)庫的所述數(shù)據(jù)庫操作指令;或者
接收所述應(yīng)用服務(wù)器主動下發(fā)的所述數(shù)據(jù)庫操作指令。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行,包括:
在本地創(chuàng)建的內(nèi)存庫中模擬所述數(shù)據(jù)庫操作指令所需的數(shù)據(jù)環(huán)境,基于所述模擬的數(shù)據(jù)環(huán)境對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在本地創(chuàng)建的內(nèi)存庫中模擬所述數(shù)據(jù)庫操作指令所需的數(shù)據(jù)環(huán)境,基于所述模擬的數(shù)據(jù)環(huán)境對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行,包括:
將所述數(shù)據(jù)庫操作指令拆分為讀指令和寫指令;
在所述數(shù)據(jù)庫中執(zhí)行所述讀指令以獲取讀數(shù)據(jù)集,將所述讀數(shù)據(jù)集存入所述內(nèi)存庫中以模擬所述數(shù)據(jù)庫操作指令的數(shù)據(jù)環(huán)境;
在所述內(nèi)存庫中執(zhí)行所述寫指令以修改所述讀數(shù)據(jù)集。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),控制所述應(yīng)用服務(wù)器對應(yīng)的數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù),包括:
向所述數(shù)據(jù)庫下發(fā)本地記錄的所述數(shù)據(jù)庫操作指令,以指示所述數(shù)據(jù)庫執(zhí)行所述數(shù)據(jù)庫操作指令,并接收所述數(shù)據(jù)庫返回的所述數(shù)據(jù)庫操作指令的實際執(zhí)行結(jié)果;
若所述實際執(zhí)行結(jié)果與所述預(yù)測執(zhí)行結(jié)果相同,向所述數(shù)據(jù)庫下發(fā)所述事務(wù)提交指令,以供所述數(shù)據(jù)庫提交所述目標事務(wù);
若所述實際執(zhí)行結(jié)果與所述預(yù)測執(zhí)行結(jié)果不相同,向所述數(shù)據(jù)庫下發(fā)事務(wù)回滾指令,以供所述數(shù)據(jù)庫回滾所述目標事務(wù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述向所述數(shù)據(jù)庫下發(fā)本地記錄的所述數(shù)據(jù)庫操作指令,包括:
將本地記錄的所述數(shù)據(jù)庫操作指令同時下發(fā)給所述數(shù)據(jù)庫。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),控制所述應(yīng)用服務(wù)器對應(yīng)的數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù),包括:
根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令,判斷所述目標事務(wù)是否為單機事務(wù);
若判斷結(jié)果為是,則根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),以單機事務(wù)處理邏輯控制所述數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù);
若判斷結(jié)果為否,則根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),以分布式事務(wù)處理邏輯控制所述數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù)。
8.根據(jù)權(quán)利要求1-7任一項所述的方法,其特征在于,還包括:
當獲取到所述目標事務(wù)中的事務(wù)回滾指令時,刪除本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù)。
9.一種數(shù)據(jù)庫操作裝置,其特征在于,包括:
獲取模塊,用于在應(yīng)用服務(wù)器執(zhí)行目標事務(wù)的過程中,依次獲取所述應(yīng)用服務(wù)器執(zhí)行到的所述目標事務(wù)中的數(shù)據(jù)庫操作指令;
預(yù)測執(zhí)行模塊,用于對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行,將預(yù)測執(zhí)行結(jié)果返回給所述應(yīng)用服務(wù)器以供所述應(yīng)用服務(wù)器確定下一個需要執(zhí)行的數(shù)據(jù)庫操作指令,并在本地記錄所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行產(chǎn)生的預(yù)測執(zhí)行數(shù)據(jù);
控制執(zhí)行模塊,用于當獲取到所述目標事務(wù)中的事務(wù)提交指令時,根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),控制所述應(yīng)用服務(wù)器對應(yīng)的數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述獲取模塊具體用于:
攔截所述應(yīng)用服務(wù)器發(fā)往所述數(shù)據(jù)庫的所述數(shù)據(jù)庫操作指令;或者
接收所述應(yīng)用服務(wù)器主動下發(fā)的所述數(shù)據(jù)庫操作指令。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述預(yù)測執(zhí)行模塊具體用于:
在本地創(chuàng)建的內(nèi)存庫中模擬所述數(shù)據(jù)庫操作指令所需的數(shù)據(jù)環(huán)境,基于所述模擬的數(shù)據(jù)環(huán)境對所述數(shù)據(jù)庫操作指令進行預(yù)測執(zhí)行。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述預(yù)測執(zhí)行模塊具體用于:
將所述數(shù)據(jù)庫操作指令拆分為讀指令和寫指令;
在所述數(shù)據(jù)庫中執(zhí)行所述讀指令以獲取讀數(shù)據(jù)集,將所述讀數(shù)據(jù)集存入所述內(nèi)存庫中以模擬所述數(shù)據(jù)庫操作指令的數(shù)據(jù)環(huán)境;
在所述內(nèi)存庫中執(zhí)行所述寫指令以修改所述讀數(shù)據(jù)集。
13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述控制執(zhí)行模塊具體用于:
向所述數(shù)據(jù)庫下發(fā)本地記錄的所述數(shù)據(jù)庫操作指令,以指示所述數(shù)據(jù)庫執(zhí)行所述數(shù)據(jù)庫操作指令,并接收所述數(shù)據(jù)庫返回的所述數(shù)據(jù)庫操作指令的實際執(zhí)行結(jié)果;
若所述實際執(zhí)行結(jié)果與所述預(yù)測執(zhí)行結(jié)果相同,向所述數(shù)據(jù)庫下發(fā)所述事務(wù)提交指令,以供所述數(shù)據(jù)庫提交所述目標事務(wù);
若所述實際執(zhí)行結(jié)果與所述預(yù)測執(zhí)行結(jié)果不相同,向所述數(shù)據(jù)庫下發(fā)事務(wù)回滾指令,以供所述數(shù)據(jù)庫回滾所述目標事務(wù)。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述控制執(zhí)行模塊具體用于:
將本地記錄的所述數(shù)據(jù)庫操作指令同時下發(fā)給所述數(shù)據(jù)庫。
15.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述控制執(zhí)行模塊具體用于:
根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令,判斷所述目標事務(wù)是否為單機事務(wù);
若判斷結(jié)果為是,則根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),以單機事務(wù)處理邏輯控制所述數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù);
若判斷結(jié)果為否,則根據(jù)本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù),以分布式事務(wù)處理邏輯控制所述數(shù)據(jù)庫實際執(zhí)行所述目標事務(wù)。
16.根據(jù)權(quán)利要求9-15任一項所述的裝置,其特征在于,所述預(yù)測執(zhí)行模塊還用于:
在獲取到所述目標事務(wù)中的事務(wù)回滾指令時,刪除本地記錄的所述數(shù)據(jù)庫操作指令以及所述預(yù)測執(zhí)行數(shù)據(jù)。