欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法與流程

文檔序號:11582922閱讀:933來源:國知局
一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法與流程

本發(fā)明涉及一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法,屬于數(shù)據(jù)庫數(shù)據(jù)復(fù)制技術(shù)領(lǐng)域。



背景技術(shù):

隨著信息技術(shù)的深入發(fā)展,應(yīng)用系統(tǒng)的不斷升級,系統(tǒng)之間的集成貫通越來越多的需要數(shù)據(jù)交互,數(shù)據(jù)抽取已經(jīng)逐步成為了信息系統(tǒng)融合的關(guān)鍵部分。然而,由于事務(wù)的一致性要求,數(shù)據(jù)復(fù)制過程中事務(wù)合并提交技術(shù)一直是關(guān)鍵核心技術(shù),源端一次事務(wù)操作,正常抽取出來會變成海量的小事務(wù)操作數(shù)據(jù),造成整個復(fù)制效率極其低下。



技術(shù)實現(xiàn)要素:

為了解決上述技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法。

為了達到上述目的,本發(fā)明所采用的技術(shù)方案是:

一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法,包括以下步驟,

從事務(wù)池中批量獲取待合并的事務(wù);

根據(jù)事務(wù)內(nèi)部操作的時間順序,對事務(wù)內(nèi)部操作進行合并;

根據(jù)事務(wù)提交順序,對內(nèi)部操作合并后的事務(wù)間的操作進行合并,并將合并后的事務(wù)依次提交事物庫。

事務(wù)內(nèi)部操作合并的過程為,

讀取相鄰兩條操作,獲取操作的類型,比較兩條操作的類型,按照類型進行事務(wù)內(nèi)部操作合并。

按照類型進行事務(wù)內(nèi)部操作合并,具體如下,

定義前一條操作為a,后一條操作為b,a和b合并后為c;

當a的類型為null,b的類型為insert時,合并后c的類型為insert,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為null,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為null,b的類型為update時,合并后c的類型為update,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為insert,b的類型為insert時,違反事務(wù)特性,合并異常;

當a的類型為insert,b的類型為update時,合并后c的類型為uapdate,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為insert,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為delete,b的類型為insert時,合并后c的類型為insert,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為delete,b的類型為update時,違反事務(wù)特性,合并異常;

當a的類型為delete,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為update,b的類型為insert時,違反事務(wù)特性,合并異常;

當a的類型為update,b的類型為update時,合并后c的類型為update,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為update,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù)。

事務(wù)間的操作合并的過程為,

讀取相鄰事務(wù)的操作,獲取操作的類型,比較相鄰事務(wù)操作的類型,按照類型進行事務(wù)間操作合并。

按照類型進行事務(wù)間操作合并,具體如下,

定義前一事務(wù)的操作為c1,后一事務(wù)的操作為c2,c1和c2合并后為c3;

當c1的類型為null,c2的類型為insert時,合并后c3的類型為insert,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為null,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為null,c2的類型為update時,合并后c3的類型為update,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為insert,c2的類型為insert時,違反事務(wù)特性,合并異常;

當c1的類型為insert,c2的類型為update時,合并insert,合并后c3的類型為uapdate,合并后c3的數(shù)據(jù)為c1的原始數(shù)據(jù)加上c2的原始數(shù)據(jù);

當c1的類型為insert,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為delete,c2的類型為insert時,合并后c3的類型為insert,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為delete,c2的類型為update時,違反事務(wù)特性,合并異常;

當c1的類型為delete,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的數(shù)據(jù);

當c1的類型為update,c2的類型為insert時,違反事務(wù)特性,合并異常;

當c1的類型為update,c2的類型為update時,合并后c3的類型為update,合并后c3的數(shù)據(jù)為c1的數(shù)據(jù)加上c2的數(shù)據(jù);

當c1的類型為update,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù)。

讀取事務(wù)操作時,將每條操作存入表中,數(shù)據(jù)的主鍵作為表的key,如果沒有主鍵,則增加附加日志作為key,類型和數(shù)據(jù)作為表的value。

本發(fā)明所達到的有益效果:本發(fā)明通過對比數(shù)據(jù)庫事務(wù)操作類型前后關(guān)系,將從數(shù)據(jù)庫抽取出來的海量事務(wù)按照操作時間、操作類型進行事務(wù)內(nèi)部合并,然后再將合并后的事務(wù)進行事務(wù)間合并;通過該方法不但可以提高數(shù)據(jù)庫入庫效率,降低數(shù)據(jù)庫性能影響,同時可以有效地提升數(shù)據(jù)復(fù)制延時,對確保數(shù)據(jù)庫的安全穩(wěn)定的運行,具有重要的實際意義。

附圖說明

圖1為本發(fā)明的流程圖;

圖2為基于邏輯級的數(shù)據(jù)庫抽取復(fù)制的架構(gòu)圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。

如圖1所示,一種數(shù)據(jù)庫高并發(fā)事務(wù)合并方法,包括以下步驟:

步驟1,從事務(wù)池中批量獲取待合并的事務(wù)。

步驟2,根據(jù)事務(wù)內(nèi)部操作的時間順序,對事務(wù)內(nèi)部操作進行合并。

具體過程為:讀取相鄰兩條操作,獲取操作的類型(插入insert、刪除delete、更新update、無null),比較兩條操作的類型,按照類型進行事務(wù)內(nèi)部操作合并。

按照類型進行事務(wù)內(nèi)部操作合并,具體如下:

定義前一條操作為a,后一條操作為b,a和b合并后為c;

當a的類型為null,b的類型為insert時,合并后c的類型為insert,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為null,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為null,b的類型為update時,合并后c的類型為update,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為insert,b的類型為insert時,違反事務(wù)特性,合并異常;

當a的類型為insert,b的類型為update時,合并后c的類型為uapdate,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為insert,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為delete,b的類型為insert時,合并后c的類型為insert,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù);

當a的類型為delete,b的類型為update時,違反事務(wù)特性,合并異常;

當a的類型為delete,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為update,b的類型為insert時,違反事務(wù)特性,合并異常;

當a的類型為update,b的類型為update時,合并后c的類型為update,合并后c的數(shù)據(jù)為a的原始數(shù)據(jù)加上b的原始數(shù)據(jù);

當a的類型為update,b的類型為delete時,合并后c的類型為delete,合并后c的數(shù)據(jù)為b的原始數(shù)據(jù)。

步驟3,根據(jù)事務(wù)提交順序,對內(nèi)部操作合并后的事務(wù)間的操作進行合并,并將合并后的事務(wù)依次提交事物庫。

具體過程為:讀取相鄰事務(wù)的操作,獲取操作的類型(插入insert、刪除delete、更新update、無null),比較相鄰事務(wù)操作的類型,按照類型進行事務(wù)間操作合并。

按照類型進行事務(wù)間操作合并,具體如下:

定義前一事務(wù)的操作為c1,后一事務(wù)的操作為c2,c1和c2合并后為c3;

當c1的類型為null,c2的類型為insert時,合并后c3的類型為insert,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為null,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為null,c2的類型為update時,合并后c3的類型為update,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為insert,c2的類型為insert時,違反事務(wù)特性,合并異常;

當c1的類型為insert,c2的類型為update時,合并insert,合并后c3的類型為uapdate,合并后c3的數(shù)據(jù)為c1的原始數(shù)據(jù)加上c2的原始數(shù)據(jù);

當c1的類型為insert,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為delete,c2的類型為insert時,合并后c3的類型為insert,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù);

當c1的類型為delete,c2的類型為update時,違反事務(wù)特性,合并異常;

當c1的類型為delete,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的數(shù)據(jù);

當c1的類型為update,c2的類型為insert時,違反事務(wù)特性,合并異常;

當c1的類型為update,c2的類型為update時,合并后c3的類型為update,合并后c3的數(shù)據(jù)為c1的數(shù)據(jù)加上c2的數(shù)據(jù);

當c1的類型為update,c2的類型為delete時,合并后c3的類型為delete,合并后c3的數(shù)據(jù)為c2的原始數(shù)據(jù)。

在步驟2和步驟3讀取事務(wù)操作時,將每條操作存入表(一般采用map表)中,數(shù)據(jù)的主鍵作為表的key,如果沒有主鍵,則增加附加日志作為key,類型和數(shù)據(jù)作為表的value。

本發(fā)明的原理如圖2所示,上述方法采用線程的方式批量進行事務(wù)內(nèi)部合并,并將合并后的結(jié)果再次進行事務(wù)之間事務(wù)合并,最后將合并后的結(jié)果提交入庫,通過該方法不但可以提高數(shù)據(jù)庫入庫效率,降低數(shù)據(jù)庫性能影響,同時可以有效地提升數(shù)據(jù)復(fù)制延時,對確保數(shù)據(jù)庫的安全穩(wěn)定的運行,具有重要的實際意義。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變形,這些改進和變形也應(yīng)視為本發(fā)明的保護范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
象山县| 通道| 延川县| 苏尼特右旗| 中山市| 凤冈县| 华池县| 潜江市| 水富县| 临邑县| 囊谦县| 尤溪县| 灵台县| 毕节市| 惠安县| 双峰县| 砚山县| 遂溪县| 司法| 桐柏县| 个旧市| 江达县| 江口县| 寿宁县| 比如县| 鹿邑县| 华池县| 枞阳县| 吐鲁番市| 宣化县| 蚌埠市| 丰镇市| 裕民县| 平湖市| 南丰县| 卢氏县| 游戏| 福泉市| 会同县| 丹东市| 南投县|