[發明專利]一種基于數據庫的數據更新方法和系統有效
| 申請號: | 201210237777.0 | 申請日: | 2012-07-10 |
| 公開(公告)號: | CN103544153A | 公開(公告)日: | 2014-01-29 |
| 發明(設計)人: | 鄭高超 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 數據庫 數據 更新 方法 系統 | ||
技術領域
本申請涉及數據庫技術領域,特別涉及一種基于數據庫的數據更新方法和系統。
背景技術
數據庫是一個共享資源,可以供多個用戶使用。為了充分利用數據庫資源、發揮數據庫共享資源的特點,允許多個用戶并行地存取數據庫。但是當多個用戶并發存取同一數據時,在數據庫中就會產生多個事務同時對同一數據進行存取操作的情況,如果對并發操作不加控制就可能會出現讀取和存儲不正確的數據,破壞數據庫的一致性。
以飛機票訂票系統中的訂票操作為例,假設某航班的機票余量為16張,甲售票點的甲售票員和乙售票點的乙售票員讀出該航班剩余機票均為16張,如果甲售票員和乙售票員在同一時刻各賣出一張機票,則甲售票點將修改機票余量為16-1=15張,并寫回數據庫;同時乙售票點也會修改機票余量為16-1=15張,并寫回數據庫。這樣,盡管訂票系統一共賣出兩張票時,數據庫中機票的余量卻僅減少一張,即數據庫中的機票余量更新為16-1=15張,從而由于并發操作導致了丟失修改等問題,使得數據庫出現的不一致性問題。
為了避免由于用戶的并發操作而導致數據庫的不一致性,一般通過對數據庫進行加設排它鎖以實現并發控制,即某一事務對數據庫中的某個表或該表的某一記錄做鎖定,以保證同一時間僅有該事務可以對該表或該條記錄進行修改,只有該事務釋放了它的鎖之后,其他的事務才可以對該表或該條記錄進行修改。這樣,當較多用戶同時訪問數據庫中某一數據對象(即產生多個事務的并發操作)時,如果某個事務對該數據對象進行封鎖,其他事務則必須等待,從而由于鎖資源不足而產生大量的鎖等待,甚至失敗操作。
因此,目前需要本領域的技術人員迫切解決的一個技術問題就是:如何實現對資源有限的數據庫系統的并發控制,以減少鎖等待的等待時間。
發明內容
本申請提供一種基于數據庫的數據更新方法,用以解決現有技術中并發訪問過程中所存在的鎖等待的等待時間過長的問題。
本申請還提供了一種基于數據庫的數據更新系統,用以保證上述方法在實際中的實現及應用。
為了解決上述問題,本申請公開了一種基于數據庫的數據更新方法,包括:
A、接收數據更新請求,所述數據更新請求中包括請求扣除的待扣數據量;
B、判斷本地內存中是否存儲有預扣數據量,且所述預扣數據量不小于所述待扣數據量,如果是,執行步驟E;如果否,則執行步驟C;
C、獲取數據庫中記錄的所述數據的預算剩余量,并根據所述待扣數據量和所述預算剩余量確定數據庫扣除量;
D、從所述數據庫記錄的預算剩余量中扣除所述數據庫扣除量,并將所述數據庫扣除量作為本地內存中的預扣數據量進行存儲;
E、從所述本地內存中存儲的預扣數據量中扣除所述待扣數據量,以更新本地內存中的預扣數據量。
本發明還公開了一種基于數據庫的數據更新系統,包括:
請求接收單元,用于接收數據更新請求,所述數據更新請求中包括請求扣除的待扣數據量;
判斷單元,用于判斷本地內存中是否存儲有預扣數據量,且所述預扣數據量不小于所述待扣數據量,并當判斷出本地內存中存儲有預扣數據量,且所述預扣數據量不小于所述待扣數據量時,觸發執行本地數據扣除單元的操作;當判斷出本地內存中未存儲有預扣數據量或者所述預扣數據量小于所述待扣數據量時,觸發執行第一數據讀取單元的操作;
第一數據讀取單元,用于獲取數據庫中記錄的所述數據的預算剩余量;
扣除量確定單元,用于根據所述待扣數據量和所述預算剩余量確定數據庫扣除量,并執行數據更新單元的操作;
數據庫更新單元,用于從所述數據庫記錄的預算剩余量中扣除所述數據庫扣除量,并將所述數據庫扣除量作為本地內存中的預扣數據量進行存儲,并執行所述本地數據更新單元的操作;
本地數據更新單元,用于從所述本地內存中存儲的預扣數據量中扣除所述待扣數據量,以更新本地內存中的預扣數據量。
與現有技術相比,本申請包括以下優點:
在本申請中,本申請中當系統接收到數據更新請求時,并不會直接從數據庫中獲取數據以對數據庫進行寫操作,只有在本地內存中存儲的預扣數據量小于該數據更新請求所請求的待扣數據量時,才會從執行從數據庫中獲取數據的操作,從而減少了對數據庫的訪問次數,即減少了對數據庫的寫操作次數,進而減少了鎖等待的等待時間,并提高了系統單位時間內處理數據更新請求的數量,即提高了系統的吞吐量。
當然,實施本申請的任一產品并不一定需要同時達到以上所述的所有優點。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201210237777.0/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





