[發(fā)明專利]任務(wù)的處理方法和處理裝置在審
| 申請?zhí)枺?/td> | 201611094438.6 | 申請日: | 2016-12-01 |
| 公開(公告)號: | CN108132831A | 公開(公告)日: | 2018-06-08 |
| 發(fā)明(設(shè)計)人: | 章穎強 | 申請(專利權(quán))人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F17/30 |
| 代理公司: | 北京博浩百睿知識產(chǎn)權(quán)代理有限責(zé)任公司 11134 | 代理人: | 宋子良 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 更新請求 處理進程 更新結(jié)果 數(shù)據(jù)庫記錄 處理裝置 標(biāo)識信息 等待狀態(tài) 記錄行 觸發(fā) 互斥 更新 數(shù)據(jù)庫 全局 | ||
本發(fā)明公開了一種任務(wù)的處理方法和處理裝置。其中,該方法包括:獲取用于更新數(shù)據(jù)庫記錄的至少一個更新請求,其中,每個更新請求包括了不同任務(wù)的標(biāo)識信息;使用第一處理進程執(zhí)行當(dāng)前更新數(shù)據(jù)庫記錄的當(dāng)前更新請求,得到更新結(jié)果,其中,在第一處理進程執(zhí)行當(dāng)前更新請求的過程中,下一個更新請求處于等待狀態(tài);使用第二處理進程提交更新結(jié)果,其中,如果第二處理進程開始提交更新結(jié)果,觸發(fā)第一處理進程執(zhí)行下一個更新請求。本發(fā)明解決了數(shù)據(jù)庫中單一熱點記錄行鎖的互斥形成全局串行點的技術(shù)問題。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,具體而言,涉及一種任務(wù)的處理方法和處理裝置。
背景技術(shù)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,由于在線交易具有方便快捷的優(yōu)點,其已成為人們?nèi)粘I钪羞M行購物、娛樂所必不可少的途徑。
當(dāng)用戶進行在線交易時,后臺數(shù)據(jù)庫中的某些記錄由于在短時間內(nèi)被多次更新,從而形成熱點記錄,例如,在“雙十一購物節(jié)”中爆款商品的搶購,其爆款商品的數(shù)量在數(shù)據(jù)庫中所在的記錄就會形成熱點記錄。此外,熱點記錄的問題同樣會出現(xiàn)在限購、紅包等大量的業(yè)務(wù)數(shù)據(jù)庫中。
在現(xiàn)有的關(guān)系型數(shù)據(jù)庫中,通過以下方法對熱點記錄進行處理:
(1)找到對應(yīng)的熱點記錄(例如,通過B樹或哈希表等查找到熱點記錄),并對該熱點記錄進行加行鎖處理(例如對該熱點記錄進行加X鎖處理),然后再判斷是否存在行鎖沖突,如果存在行鎖沖突,則等待預(yù)定時間后,再重復(fù)上述操作,否則,執(zhí)行步驟(2)。
(2)更新已經(jīng)過加鎖處理的熱點記錄,生成重做日志。
(3)當(dāng)收到提交命令或者根據(jù)autocommit等配置自動提交時,釋放任務(wù)所持有的行鎖,其中,在持有行鎖的任務(wù)提交以前,其他更新同一記錄的任務(wù)只能在行鎖上等待。
上述對熱點記錄處理的方法存在以下問題:
(1)單一熱點行鎖的互斥形成全局串行點
由于從對熱點記錄進行加鎖開始,到任務(wù)提交釋放鎖為止,這段時間其他任務(wù)是無法進行的,從而形成了提高熱點記錄更新的性能瓶頸。
(2)大量連接對同一行鎖的爭搶和等待引發(fā)資源空耗和系統(tǒng)擁堵
當(dāng)大量連接對同一熱點記錄爭搶時,可能使得死鎖的檢測時間變長,引擎層中活躍的線程過多,從而導(dǎo)致熱點記錄的吞吐量進一步下降。
由上可知,在目前的關(guān)系型數(shù)據(jù)庫中,當(dāng)對數(shù)據(jù)庫中的一行進行更新操作時,需要先對改行進行行鎖,由于這些行鎖之間是相互排斥的,從而導(dǎo)致在對數(shù)據(jù)庫中的熱點記錄進行更新時,所有的更新步驟必須串行執(zhí)行。同時,在對數(shù)據(jù)庫進行更新操作時,需要進行數(shù)據(jù)庫連接以及其他操作,這些操作又增加了檢測頁面鎖/死鎖的耗時,從而進一步影響了數(shù)據(jù)庫更新的速度。
針對上述問題,現(xiàn)有技術(shù)大多都是通過如下方法來改進熱點記錄的吞吐量的:
(1)通過特定的語法和語法標(biāo)記,降低熱點記錄持有行鎖的時間
例如,通過對SQL語言加入特定的語法和語法標(biāo)記,使得本來要多個SQL才能完成的功能,現(xiàn)在只需要一個帶有語法標(biāo)記的特殊語法的SQL就能完成,這樣使得熱點記錄持有行鎖時間降低到一個SQL執(zhí)行時間以內(nèi)。
(2)通過限制活躍線程,降低熱點記錄的行鎖的爭搶
通過在存儲引擎中限制持有鎖的活躍線程的數(shù)量,使得不會有過多的連接/線程同時爭搶熱點記錄的行鎖,進而可以降低系統(tǒng)的內(nèi)耗以及死鎖檢測的代價。
(3)通過外部隊列,降低熱點行鎖爭搶
例如,通過在SQL中注入特定的語法標(biāo)記,使相同熱點記錄的SQL在引擎外的一個隊列中等待,從而降低系統(tǒng)的內(nèi)耗和死鎖檢測代價。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團控股有限公司,未經(jīng)阿里巴巴集團控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611094438.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 位置更新請求的處理方法、用戶設(shè)備、核心網(wǎng)管理實體及系統(tǒng)
- 一種并發(fā)的資源更新方法與設(shè)備
- 播放內(nèi)容更新方法、裝置、終端和服務(wù)器
- 一種處理數(shù)字證書更新請求的方法及服務(wù)器
- 一種管理更新文件的方法、系統(tǒng)及終端設(shè)備
- 基于狀態(tài)更新的一致性管理計算集群
- 資源更新方法、系統(tǒng)、裝置、服務(wù)器及存儲介質(zhì)
- 關(guān)系型數(shù)據(jù)庫更新方法、裝置、設(shè)備及存儲介質(zhì)
- 具有篡改檢測性的系統(tǒng)
- 一種數(shù)據(jù)更新方法、裝置、電子設(shè)備及存儲介質(zhì)
- 路徑預(yù)約規(guī)劃結(jié)果動態(tài)更新系統(tǒng)及方法
- 智能終端APP的更新方法和裝置
- 衰老期結(jié)果棗樹更新復(fù)壯與結(jié)果兩不誤的方法
- 應(yīng)用于動態(tài)開發(fā)的測試方法、裝置、電子設(shè)備及存儲介質(zhì)
- 有限域構(gòu)造的LDPC碼的譯碼方法、裝置、譯碼器及存儲介質(zhì)
- 分布式異構(gòu)數(shù)據(jù)庫數(shù)據(jù)處理方法及裝置
- 跨平臺數(shù)據(jù)庫數(shù)據(jù)同步比對方法及裝置
- 眾包更新結(jié)果的處理方法及裝置
- 一種應(yīng)用程序更新方法、裝置、系統(tǒng)、設(shè)備和存儲介質(zhì)
- 統(tǒng)一搜索詞庫更新方法及裝置
- 在關(guān)系數(shù)據(jù)庫中索引存儲分層相關(guān)信息的方法和數(shù)據(jù)結(jié)構(gòu)
- 用于管理包括結(jié)構(gòu)化數(shù)據(jù)記錄的數(shù)據(jù)庫系統(tǒng)的計算機實現(xiàn)的系統(tǒng)
- 用于執(zhí)行部分數(shù)據(jù)庫的增量更新的方法、系統(tǒng)和裝置
- 跨安全區(qū)數(shù)據(jù)庫備份方法
- 數(shù)據(jù)庫取證方法及裝置
- 主從數(shù)據(jù)庫一致性的動態(tài)校驗方法和裝置
- 基于光盤的異構(gòu)類型數(shù)據(jù)庫存儲系統(tǒng)及利用該系統(tǒng)的方法
- 一種數(shù)據(jù)庫安全審計記錄的存儲方法
- 安全性評價裝置,安全性評價方法,以及程序
- 一種基于主鍵比對的數(shù)據(jù)庫變更記錄同步方法及裝置





