[發明專利]共享數據更新裝置和共享數據更新方法有效
| 申請號: | 201210479818.7 | 申請日: | 2012-11-22 |
| 公開(公告)號: | CN103020149A | 公開(公告)日: | 2013-04-03 |
| 發明(設計)人: | 陳倪娜 | 申請(專利權)人: | 用友軟件股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京友聯知識產權代理事務所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
| 地址: | 100094 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 共享 數據 更新 裝置 方法 | ||
技術領域
本發明涉及計算機技術領域,具體而言,涉及一種共享數據更新裝置和一種共享數據更新方法。
背景技術
在業務系統中,很多共享數據面臨高并發的用戶訪問,而共享數據往往是系統核心業務模型,因此,共享數據正確性必須得到保障。如果要保證數據的正確性,那必然會涉及事務更新共享數據時的競爭及等待,如圖1所示,用戶1正在更新數據表記錄增加數量20,同時,用戶2通過操作需要將同一條記錄的數量減少40,而可能此時仍然存在其他用戶正在更新同一條記錄。如何支持用戶并發訪問并最大限度提升系統支持的并發度是必須解決的問題。
為了保證業務數據的準確性,絕大部分業務系統會采用兩種如下方法:方法一:首先對操作的數據進行鎖定,然后更新數據,最后校驗數據,事務結束后釋放鎖;方法二:首先更新數據,然后鎖定數據,最后校驗數據,事務結束釋放鎖。
以上兩種方法都會至少涉及到兩次業務數據加鎖,一次為了保證數據的正確性,在校驗數據時對數據加鎖。另外一次在數據持久化時,需要數據庫級別進行加鎖。而系統在高并發的情況下,對數據進行頻繁加鎖,會導致事務出現大量等待,從而出現系統性能瓶頸,導致系統支持并發能力下降。
一般的系統處理業務數據更新流程如圖2所示。可以明顯看出,一次用戶操作導致的更新事務,可能導致兩次鎖等待。在高并發的情況下,導致系統支持并發能力下降。
因此,需要一種共享數據更新技術,能夠在保證數據更新正確性的前提下,消除數據更新及校驗過程的加鎖處理,從而提高系統支持的并發度。
發明內容
本發明正是基于上述問題,提出了一種共享數據更新技術,能夠在保證數據更新正確性的前提下,消除數據更新及校驗過程的加鎖處理,從而提高系統支持的并發度。
有鑒于此,根據本發明的一個方面,提供了一種共享數據更新裝置,包括:存儲單元,用于保存基本數據庫表和緩存數據庫表,所述基本數據庫表用于保存所述共享數據的匯總數據,所述緩存數據庫表用于保存所述共享數據的差異數據;差異數據計算單元,計算本次更新操作引起所述共享數據的差異數據;數據持久化單元,采用獨立事務將所述差異數據插入至所述緩存數據庫表中;數據校驗單元,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據,根據校驗結果確定是否提交所述獨立事務。
上述技術方案采用新增差異記錄的方式持久化,避免了數據庫級別的加鎖過程。差異數據采用獨立事務直接提交至緩存表,并基于緩存表序列機制進行數據校驗,使得數據校驗過程無需對業務數據進行鎖定,可以在保證數據正確性的基礎上,消除數據校驗的加鎖過程。由于加鎖在基于緩存表序列的數據更新過程中完全消除,可以明顯提高系統的支持的并發度,優化系統并發性能。
在上述技術方案中,優選的,數據持久化單元包括:序列生成子單元,為所述本次更新操作引起的所述差異數據生成唯一緩存表遞增序列,根據所述獨立事務的發生時間確定所述唯一緩存表遞增序列的大小。
在上述技術方案中,優選的,所述數據校驗單元還用于在校驗所述差異數據時,首先校驗所述唯一緩存表遞增序列小于等于當前序列值的差異數據。
緩存表的序列按事務發生時間遞增,在數據校驗查詢時,只查詢序列小于等于當前事務序列的記錄。因此,對于用戶并發更新數據導致共享數據資源爭用的情形下,采用了先到先得的排隊策略進行共享數據資源的分配。
在上述技術方案中,優選的,所述數據校驗單元還用于在所述校驗結果為通過時,提交所述獨立事務,在所述校驗結果為未通過時,回滾所述獨立事務。
在上述任一技術方案中,優選的,還包括:數據查詢單元,用于對所述緩存數據庫表和所述基本數據庫表進行查詢并定期將所述緩存數據庫表的數據匯總至所述基本數據庫表。由于緩存表采用差異插入方式持久化數據,差異明細的數據量較大,因此需要定期對緩存表數據按業務維度匯總至基本表。
根據本發明的另一方面,還提供了一種共享數據更新方法,包括以下步驟:步驟402,將所述共享數據的匯總數據保存于基本數據庫表中,以及將所述共享數據的差異數據保存于緩存數據庫表中;步驟404,計算本次更新操作引起所述共享數據的差異數據并采用獨立事務將所述差異數據插入至所述緩存數據庫表中;步驟406,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據;步驟408,根據校驗結果確定是否提交所述獨立事務。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于用友軟件股份有限公司,未經用友軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210479818.7/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





