1.一種基于令牌的并發(fā)主從同步方法,其包括:
接收來自主數(shù)據(jù)庫的數(shù)據(jù)同步任務(wù);
按照接收數(shù)據(jù)同步任務(wù)的順序,為所述數(shù)據(jù)同步任務(wù)設(shè)置令牌;
將設(shè)置有令牌的數(shù)據(jù)同步任務(wù)分發(fā)給多個線程中一個線程,由該線程根據(jù)令牌執(zhí)行所述數(shù)據(jù)同步任務(wù)。
2.根據(jù)權(quán)利要求1所述的基于令牌的并發(fā)主從同步方法,其中,所述將設(shè)置有令牌的數(shù)據(jù)同步任務(wù)分發(fā)給多個線程中一個線程進(jìn)一步包括:
依據(jù)負(fù)載均衡策略,從多個線程選擇一個線程;
將設(shè)置有令牌的數(shù)據(jù)同步任務(wù)分發(fā)給所選擇的線程。
3.根據(jù)權(quán)利要求1所述的基于令牌的并發(fā)主從同步方法,其中,所述數(shù)據(jù)同步任務(wù)包括:
將數(shù)據(jù)寫入從數(shù)據(jù)庫的寫數(shù)據(jù)操作,以及將所述寫數(shù)據(jù)操作記錄到日志文件中的寫日志操作。
4.根據(jù)權(quán)利要求3所述的基于令牌的并發(fā)主從同步方法,其中,各個線程之間執(zhí)行的所述寫數(shù)據(jù)操作為并行操作;各個線程之間執(zhí)行的所述寫日志操作為串行操作。
5.根據(jù)權(quán)利要求1所述的基于令牌的并發(fā)主從同步方法,其中,所述由該線程根據(jù)令牌執(zhí)行所述數(shù)據(jù)同步任務(wù)進(jìn)一步包括:
判斷順序排在所述令牌前一位的令牌對應(yīng)的數(shù)據(jù)同步任務(wù)的寫日志操作是否執(zhí)行完成;其中,所述令牌的排列順序與接收數(shù)據(jù)同步任務(wù)的順序一致;
若是,則執(zhí)行用于將所述寫數(shù)據(jù)操作記錄到日志文件中的寫日志操作;
若否,則繼續(xù)等待。
6.根據(jù)權(quán)利要求1所述的基于令牌的并發(fā)主從同步方法,其中,針對同一數(shù)據(jù)的數(shù)據(jù)同步任務(wù)分發(fā)給同一線程。
7.一種基于令牌的并發(fā)主從同步裝置,其包括:
接收模塊,適于接收來自主數(shù)據(jù)庫的數(shù)據(jù)同步任務(wù);
設(shè)置模塊,適于按照接收數(shù)據(jù)同步任務(wù)的順序,為所述數(shù)據(jù)同步任務(wù)設(shè)置令牌;
分發(fā)模塊,適于將設(shè)置有令牌的數(shù)據(jù)同步任務(wù)分發(fā)給多個并行處理模塊中一個并行處理模塊;
多個并行處理模塊,適于根據(jù)令牌執(zhí)行所述數(shù)據(jù)同步任務(wù)。
8.根據(jù)權(quán)利要求7所述的基于令牌的并發(fā)主從同步裝置,其中,所述分發(fā)模塊進(jìn)一步適于:依據(jù)負(fù)載均衡策略,從多個并行處理模塊選擇一個并行處理模塊;將設(shè)置有令牌的數(shù)據(jù)同步任務(wù)分發(fā)給所選擇的并行處理模塊。
9.根據(jù)權(quán)利要求7所述的基于令牌的并發(fā)主從同步裝置,其中,所述數(shù)據(jù)同步任務(wù)包括:
將數(shù)據(jù)寫入從數(shù)據(jù)庫的寫數(shù)據(jù)操作,以及將所述寫數(shù)據(jù)操作記錄到日志文件中的寫日志操作。
10.根據(jù)權(quán)利要求9所述的基于令牌的并發(fā)主從同步裝置,其中,各個并行處理模塊之間執(zhí)行的所述寫數(shù)據(jù)操作為并行操作;各個并行處理模塊之間執(zhí)行的所述寫日志操作為串行操作。