System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 国产亚洲精久久久久久无码77777,亚洲一区二区三区无码影院,无码丰满熟妇浪潮一区二区AV
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于隊(duì)列的數(shù)據(jù)異步寫入方法以及數(shù)據(jù)庫技術(shù)

    技術(shù)編號(hào):43220365 閱讀:18 留言:0更新日期:2024-11-05 17:12
    本申請涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,具體涉及一種基于隊(duì)列的數(shù)據(jù)異步寫入方法以及數(shù)據(jù)庫。該方法通過為數(shù)據(jù)庫服務(wù)端配置隊(duì)列,在服務(wù)端完成寫入語句解析后,將解析出的數(shù)據(jù)存儲(chǔ)至所述隊(duì)列進(jìn)行異步寫入磁盤,并向客戶端返回臨時(shí)執(zhí)行成功的第一響應(yīng),使得客戶端可以繼續(xù)向服務(wù)端發(fā)送寫入語句,從而實(shí)現(xiàn)解析SQL和刷盤操作的異步化,提升了數(shù)據(jù)寫入效率,在整體上提升了數(shù)據(jù)寫入速度。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本申請涉及數(shù)據(jù)庫,具體涉及一種基于隊(duì)列的數(shù)據(jù)異步寫入方法以及數(shù)據(jù)庫


    技術(shù)介紹

    1、在數(shù)據(jù)庫操作中,數(shù)據(jù)寫入過程涉及多個(gè)關(guān)鍵步驟,包括sql解析、生成執(zhí)行計(jì)劃、數(shù)據(jù)日志寫入磁盤(也被稱為刷盤)以及確認(rèn)數(shù)據(jù)寫入成功。當(dāng)一條sql包含多條數(shù)據(jù)時(shí),數(shù)據(jù)庫存儲(chǔ)引擎通常會(huì)先解析sql并生成執(zhí)行計(jì)劃,然后以批量追加寫入的方式將數(shù)據(jù)寫入磁盤日志文件,確保所有內(nèi)存中的數(shù)據(jù)成功寫入后,才返回sql執(zhí)行成功。

    2、在數(shù)據(jù)寫入磁盤時(shí),無論是一次寫入4k大小的數(shù)據(jù)還是16m大小的數(shù)據(jù),由于涉及單次io操作,耗時(shí)差別不大。然而,若將16m的數(shù)據(jù)分割成4096個(gè)4k的數(shù)據(jù),由于數(shù)據(jù)條數(shù)的增加,需要進(jìn)行大量的io操作,寫入耗時(shí)將顯著增加。目前,為了保持?jǐn)?shù)據(jù)一致性,sql解析和數(shù)據(jù)刷盤被設(shè)置為串行操作,如此在sql保護(hù)多條數(shù)據(jù)的情形下,服務(wù)器需要耗時(shí)較長才能完成刷盤,效率比較低。

    3、例如,在利用etl(extract-transform-load,將數(shù)據(jù)從源端經(jīng)過抽取、轉(zhuǎn)換、加載至目的端)工具的大數(shù)據(jù)量寫入場景下,sql數(shù)量會(huì)比較多,每條sql包含幾千條數(shù)據(jù)量,當(dāng)前的這種串行化的數(shù)據(jù)寫入方式,會(huì)影響數(shù)據(jù)寫入效率,減慢數(shù)據(jù)寫入速度,在非常看重?cái)?shù)據(jù)傳輸速度的etl場景中,這種情況是不被允許的。


    技術(shù)實(shí)現(xiàn)思路

    1、有鑒于此,本申請公開一種基于隊(duì)列的數(shù)據(jù)異步寫入方法,應(yīng)用于數(shù)據(jù)庫的客戶端,所述客戶端對應(yīng)于所述數(shù)據(jù)庫的服務(wù)端,所述隊(duì)列與所述服務(wù)端通信連接。所述方法包括:接收針對待寫入數(shù)據(jù)的寫入請求;其中,通過至少一條寫入語句完成所述待寫入數(shù)據(jù)的寫入;響應(yīng)于所述寫入請求,將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,并且將所述至少一條寫入語句中的預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端,以使所述服務(wù)端解析所述預(yù)設(shè)數(shù)量的寫入語句,將對應(yīng)的目標(biāo)待寫入數(shù)據(jù)寫入所述隊(duì)列執(zhí)行異步寫入磁盤,并向所述客戶端返回臨時(shí)執(zhí)行成功的第一響應(yīng);響應(yīng)于接收到所述第一響應(yīng),從剩余的寫入語句中獲取所述預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端執(zhí)行所述解析與所述異步寫入磁盤的操作,直到完成全部寫入語句的發(fā)送和全部待寫入數(shù)據(jù)的異步寫入。

    2、在一些實(shí)施例中,響應(yīng)于完成全部寫入語句的發(fā)送并接收到所述第一響應(yīng),所述方法還包括:將寫入方式設(shè)置為同步,恢復(fù)自動(dòng)刷盤,以使所述服務(wù)端響應(yīng)于恢復(fù)自動(dòng)刷盤,周期性輪詢所述隊(duì)列并將所述隊(duì)列中的數(shù)據(jù)全部寫入磁盤,以完成所述待寫入數(shù)據(jù)被全部寫入。

    3、在一些實(shí)施例中,所述服務(wù)端響應(yīng)于完成所述待寫入數(shù)據(jù)的全部寫入,向所述客戶端返回全部寫入成功的第二響應(yīng);所述方法還包括:響應(yīng)于接受到所述第二響應(yīng),確定所述待寫入數(shù)據(jù)全部完成寫入,以提示完成所述寫入請求。

    4、在一些實(shí)施例中,所述服務(wù)端響應(yīng)于任意待寫入數(shù)據(jù)的寫入失敗,向所述客戶端返回寫入失敗的第三響應(yīng);所述方法還包括:響應(yīng)于接受到所述第三響應(yīng),確定所述寫入請求執(zhí)行失敗,重新執(zhí)行所述寫入請求直至成功或者達(dá)到預(yù)設(shè)執(zhí)行次數(shù)。

    5、在一些實(shí)施例中,所述客戶端記錄了與所述寫入請求對應(yīng)的全部寫入語句與待寫入數(shù)據(jù)的第一對應(yīng)關(guān)系,所述服務(wù)端記錄了接受到的寫入語句和解析出的待寫入數(shù)據(jù)的第二對應(yīng)關(guān)系,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于提示執(zhí)行失敗sql的失敗sql變量,所述服務(wù)端響應(yīng)于任意待寫入數(shù)據(jù)的寫入失敗,向所述客戶端返回寫入失敗的第三響應(yīng);所述方法還包括:響應(yīng)于接受到所述第三響應(yīng),向所述服務(wù)端發(fā)送獲取執(zhí)行失敗sql的請求,以使所述服務(wù)端根據(jù)寫入失敗的目標(biāo)數(shù)據(jù)查詢所述第二對應(yīng)關(guān)系確定第一失敗sql,并將所述第一失敗sql寫入所述失敗sql變量,返回所述客戶端;獲取所述環(huán)境變量機(jī)制中的所述失敗sql變量記錄的所述第一失敗sql,查詢所述第一對應(yīng)關(guān)系確定對應(yīng)的重寫數(shù)據(jù);基于所述重寫數(shù)據(jù)生成第一重寫sql,將所述第一重寫sql發(fā)送至所述服務(wù)端執(zhí)行所述重寫數(shù)據(jù)的重寫直至重寫成功或者達(dá)到預(yù)設(shè)執(zhí)行次數(shù)。

    6、在一些實(shí)施例中,所述客戶端中預(yù)先部署了sql解析單元,所述服務(wù)端中預(yù)先部署了sql生成單元,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于提示執(zhí)行失敗sql的失敗sql變量,所述服務(wù)端響應(yīng)于任意待寫入數(shù)據(jù)的寫入失敗,向所述客戶端返回寫入失敗的第三響應(yīng);所述方法還包括:響應(yīng)于接受到所述第三響應(yīng),向所述服務(wù)端發(fā)送獲取執(zhí)行失敗sql的請求,以使所述服務(wù)端調(diào)用所述sql生成單元根據(jù)寫入失敗的目標(biāo)數(shù)據(jù)生成第二失敗sql,并將所述第二失敗sql寫入所述失敗sql變量,返回所述客戶端;獲取所述環(huán)境變量機(jī)制中的所述失敗sql變量記錄的所述第二失敗sql,調(diào)用所述sql解析單元解析出失敗數(shù)據(jù);針對接收到的全部失敗數(shù)據(jù)生成第二重寫sql,將所述第二重寫sql發(fā)送至所述服務(wù)端執(zhí)行所述重寫數(shù)據(jù)的重寫直至重寫成功或者達(dá)到預(yù)設(shè)執(zhí)行次數(shù)。

    7、在一些實(shí)施例中,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于控制是否自動(dòng)刷盤的環(huán)境變量;所述將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,包括:調(diào)用所述服務(wù)端提供的環(huán)境變量機(jī)制,將所述環(huán)境變量機(jī)制中的與數(shù)據(jù)刷盤模式對應(yīng)的所述環(huán)境變量設(shè)置為第一標(biāo)識(shí),以將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤;所述將寫入方式設(shè)置為同步,恢復(fù)自動(dòng)刷盤,包括:將所述環(huán)境變量設(shè)置為第二標(biāo)識(shí),以將寫入方式設(shè)置為同步,開啟自動(dòng)刷盤。

    8、在一些實(shí)施例中,所述服務(wù)端執(zhí)行所述異步寫入磁盤,包括:監(jiān)聽所述隊(duì)列;響應(yīng)于監(jiān)聽到所述隊(duì)列中存在任意數(shù)據(jù)或者存在的數(shù)據(jù)量達(dá)到預(yù)設(shè)閾值,調(diào)用執(zhí)行器將所述隊(duì)列中的數(shù)據(jù)寫入磁盤。

    9、本申請還提出一種基于隊(duì)列的數(shù)據(jù)異步寫入方法,應(yīng)用于數(shù)據(jù)庫的服務(wù)端,所述服務(wù)端對應(yīng)于所述數(shù)據(jù)庫的客戶端,所述隊(duì)列與所述服務(wù)端通信連接;所述客戶端接收針對待寫入數(shù)據(jù)的寫入請求;其中,通過至少一條寫入語句完成所述待寫入數(shù)據(jù)的寫入;所述客戶端響應(yīng)于所述寫入請求,將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,并且將所述至少一條寫入語句中的預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端;所述方法包括:解析所述預(yù)設(shè)數(shù)量的寫入語句;將對應(yīng)的目標(biāo)待寫入數(shù)據(jù)寫入所述隊(duì)列執(zhí)行異步寫入磁盤;向所述客戶端返回臨時(shí)執(zhí)行成功的第一響應(yīng),以使所述客戶端響應(yīng)于接收到所述第一響應(yīng),從剩余的寫入語句中獲取所述預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端執(zhí)行所述解析與所述異步寫入磁盤的操作,直到完成全部寫入語句的發(fā)送和全部待寫入數(shù)據(jù)的異步寫入。

    10、本申請還提出一種數(shù)據(jù)庫,所述數(shù)據(jù)庫包括客戶端和服務(wù)端,所述服務(wù)端與隊(duì)列通信連接;所述客戶端,接收針對待寫入數(shù)據(jù)的寫入請求;其中,通過至少一條寫入語句完成所述待寫入數(shù)據(jù)的寫入;響應(yīng)于所述寫入請求,將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,并且將所述至少一條寫入語句中的預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端;所述服務(wù)端,解析所述預(yù)設(shè)數(shù)量的寫入語句,將對應(yīng)的目標(biāo)待寫入數(shù)據(jù)寫入所述隊(duì)列執(zhí)行異步寫入磁盤,并向所述客戶端返回臨時(shí)執(zhí)行成功的第一響應(yīng),以使所述客戶端響應(yīng)于接收到所述第一響應(yīng),從剩余的寫入語句中獲取所述預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端執(zhí)行所述解析與所述異步寫入磁盤的操作,直到完成全部寫入語句的發(fā)送本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種基于隊(duì)列的數(shù)據(jù)異步寫入方法,應(yīng)用于數(shù)據(jù)庫的客戶端,所述客戶端對應(yīng)于所述數(shù)據(jù)庫的服務(wù)端,其特征在于,所述隊(duì)列與所述服務(wù)端通信連接;所述方法包括:

    2.根據(jù)權(quán)利要求1所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,響應(yīng)于完成全部寫入語句的發(fā)送并接收到所述第一響應(yīng),所述方法還包括:

    3.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述服務(wù)端響應(yīng)于完成所述待寫入數(shù)據(jù)的全部寫入,向所述客戶端返回全部寫入成功的第二響應(yīng);

    4.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述服務(wù)端響應(yīng)于任意待寫入數(shù)據(jù)的寫入失敗,向所述客戶端返回寫入失敗的第三響應(yīng);

    5.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述客戶端記錄了與所述寫入請求對應(yīng)的全部寫入語句與待寫入數(shù)據(jù)的第一對應(yīng)關(guān)系,所述服務(wù)端記錄了接受到的寫入語句和解析出的待寫入數(shù)據(jù)的第二對應(yīng)關(guān)系,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于提示執(zhí)行失敗SQL的失敗SQL變量,

    6.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述客戶端中預(yù)先部署了SQL解析單元,所述服務(wù)端中預(yù)先部署了SQL生成單元,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于提示執(zhí)行失敗SQL的失敗SQL變量,

    7.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于控制是否自動(dòng)刷盤的環(huán)境變量;所述將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,包括:

    8.根據(jù)權(quán)利要求1所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述服務(wù)端執(zhí)行所述異步寫入磁盤,包括:

    9.一種基于隊(duì)列的數(shù)據(jù)異步寫入方法,應(yīng)用于數(shù)據(jù)庫的服務(wù)端,所述服務(wù)端對應(yīng)于所述數(shù)據(jù)庫的客戶端,其特征在于,所述隊(duì)列與所述服務(wù)端通信連接;所述客戶端接收針對待寫入數(shù)據(jù)的寫入請求;其中,通過至少一條寫入語句完成所述待寫入數(shù)據(jù)的寫入;所述客戶端響應(yīng)于所述寫入請求,將寫入方式設(shè)置為異步,關(guān)閉自動(dòng)刷盤,并且將所述至少一條寫入語句中的預(yù)設(shè)數(shù)量的寫入語句發(fā)送至所述服務(wù)端;

    10.一種數(shù)據(jù)庫,所述數(shù)據(jù)庫包括客戶端和服務(wù)端,其特征在于,所述服務(wù)端與隊(duì)列通信連接;

    ...

    【技術(shù)特征摘要】

    1.一種基于隊(duì)列的數(shù)據(jù)異步寫入方法,應(yīng)用于數(shù)據(jù)庫的客戶端,所述客戶端對應(yīng)于所述數(shù)據(jù)庫的服務(wù)端,其特征在于,所述隊(duì)列與所述服務(wù)端通信連接;所述方法包括:

    2.根據(jù)權(quán)利要求1所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,響應(yīng)于完成全部寫入語句的發(fā)送并接收到所述第一響應(yīng),所述方法還包括:

    3.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述服務(wù)端響應(yīng)于完成所述待寫入數(shù)據(jù)的全部寫入,向所述客戶端返回全部寫入成功的第二響應(yīng);

    4.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述服務(wù)端響應(yīng)于任意待寫入數(shù)據(jù)的寫入失敗,向所述客戶端返回寫入失敗的第三響應(yīng);

    5.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)據(jù)異步寫入方法,其特征在于,所述客戶端記錄了與所述寫入請求對應(yīng)的全部寫入語句與待寫入數(shù)據(jù)的第一對應(yīng)關(guān)系,所述服務(wù)端記錄了接受到的寫入語句和解析出的待寫入數(shù)據(jù)的第二對應(yīng)關(guān)系,在所述服務(wù)端提供的環(huán)境變量機(jī)制中添加用于提示執(zhí)行失敗sql的失敗sql變量,

    6.根據(jù)權(quán)利要求2所述的基于隊(duì)列的數(shù)...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:劉維霞
    申請(專利權(quán))人:靈岫科技深圳有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 亚洲国产精品无码av| 国产强被迫伦姧在线观看无码| 精品一区二区无码AV| 中文字幕无码一区二区免费| 人妻av无码一区二区三区| 蕾丝av无码专区在线观看| 日韩精品无码一区二区中文字幕 | 中文字幕人妻三级中文无码视频| 亚洲桃色AV无码| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲国产成人片在线观看无码| 午夜无码熟熟妇丰满人妻| 无码h黄动漫在线播放网站| 亚洲午夜AV无码专区在线播放| 亚洲日韩精品无码AV海量| 亚洲国产综合无码一区 | yy111111少妇影院无码| 亚洲6080yy久久无码产自国产| 亚洲VA成无码人在线观看天堂| 无码免费又爽又高潮喷水的视频| 亚洲av永久无码精品网址 | 日韩人妻无码精品一专区 | 亚洲精品无码久久久| 在线观看无码的免费网站| 久久无码av亚洲精品色午夜| 亚洲爆乳精品无码一区二区| 亚洲AV成人无码天堂| 亚洲av永久中文无码精品综合| 精品国精品无码自拍自在线| 精品久久无码中文字幕| 久久亚洲AV无码精品色午夜| 人妻精品久久无码专区精东影业| 亚洲AV无码一区二区二三区软件 | 国产精品无码一区二区在线| 久久久久亚洲Av无码专| 一本久道综合在线无码人妻| 亚洲中文字幕无码mv| HEYZO无码中文字幕人妻 | 亚洲爆乳精品无码一区二区三区| 在线播放无码高潮的视频| 国产精品ⅴ无码大片在线看|