本發明專利技術提供了一種共享數據更新裝置,包括:存儲單元,用于保存基本數據庫表和緩存數據庫表,基本數據庫表用于保存共享數據的匯總數據,緩存數據庫表用于保存共享數據的差異數據;差異數據計算單元,計算本次更新操作引起共享數據的差異數據;數據持久化單元,采用獨立事務將差異數據插入至緩存數據庫表中;數據校驗單元,查詢基本數據庫表和緩存數據庫表校驗差異數據,根據校驗結果確定是否提交獨立事務。本發明專利技術還提供了一種共享數據更新方法。根據本發明專利技術的技術方案,能夠在保證數據更新正確性的前提下,消除數據更新及校驗過程的加鎖處理,從而提高系統支持的并發度。
【技術實現步驟摘要】
本專利技術涉及計算機
,具體而言,涉及ー種共享數據更新裝置和一種共享數據更新方法。
技術介紹
在業務系統中,很多共享數據面臨高并發的用戶訪問,而共享數據往往是系統核心業務模型,因此,共享數據正確性必須得到保障。如果要保證數據的正確性,那必然會涉及事務更新共享數據時的競爭及等待,如圖1所示,用戶I正在更新數據表記錄增加數量20,同時,用戶2通過操作需要將同一條記錄的數量減少40,而可能此時仍然存在其他用戶正在更新同一條記錄。如何支持用戶并發訪問并最大限度提升系統支持的并發度是必須解決的問題。為了保證業務數據的準確性,絕大部分業務系統會采用兩種如下方法方法一首先對操作的數據進行鎖定,然后更新數據,最后校驗數據,事務結束后釋放鎖 ,方法ニ :首先更新數據,然后鎖定數據,最后校驗數據,事務結束釋放鎖。以上兩種方法都會至少涉及到兩次業務數據加鎖,一次為了保證數據的正確性,在校驗數據時對數據加鎖。另外一次在數據持久化時,需要數據庫級別進行加鎖。而系統在高并發的情況下,對數據進行頻繁加鎖,會導致事務出現大量等待,從而出現系統性能瓶頸,導致系統支持并發能力下降。一般的系統處理業務數據更新流程如圖2所示。可以明顯看出,一次用戶操作導致的更新事務,可能導致兩次鎖等待。在高并發的情況下,導致系統支持并發能力下降。因此,需要ー種共享數據更新技木,能夠在保證數據更新正確性的前提下,消除數據更新及校驗過程的加鎖處理,從而提高系統支持的并發度。
技術實現思路
本專利技術正是基于上述問題,提出了ー種共享數據更新技術,能夠在保證數據更新 正確性的前提下,消除數據更新及校驗過程的加鎖處理,從而提高系統支持的并發度。有鑒于此,根據本專利技術的ー個方面,提供了ー種共享數據更新裝置,包括存儲單元,用于保存基本數據庫表和緩存數據庫表,所述基本數據庫表用于保存所述共享數據的匯總數據,所述緩存數據庫表用于保存所述共享數據的差異數據;差異數據計算單元,計算本次更新操作引起所述共享數據的差異數據;數據持久化単元,采用獨立事務將所述差異數據插入至所述緩存數據庫表中;數據校驗単元,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據,根據校驗結果確定是否提交所述獨立事務。上述技術方案采用新增差異記錄的方式持久化,避免了數據庫級別的加鎖過程。差異數據采用獨立事務直接提交至緩存表,并基于緩存表序列機制進行數據校驗,使得數據校驗過程無需對業務數據進行鎖定,可以在保證數據正確性的基礎上,消除數據校驗的加鎖過程。由于加鎖在基于緩存表序列的數據更新過程中完全消除,可以明顯提高系統的支持的并發度,優化系統并發性能。在上述技術方案中,優選的,數據持久化単元包括序列生成子単元,為所述本次更新操作引起的所述差異數據生成唯一緩存表遞增序列,根據所述獨立事務的發生時間確定所述唯一緩存表遞增序列的大小。在上述技術方案中,優選的,所述數據校驗單元還用于在校驗所述差異數據時,首先校驗所述唯一緩存表遞增序列小于等于當前序列值的差異數據。緩存表的序列按事務發生時間遞增,在數據校驗查詢時,只查詢序列小于等于當前事務序列的記錄。因此,對于用戶并發更新數據導致共享數據資源爭用的情形下,采用了先到先得的排隊策略進行共享數據資源的分配。在上述技術方案中,優選的,所述數據校驗單元還用于在所述校驗結果為通過時,提交所述獨立事務,在所述校驗結果為未通過時,回滾所述獨立事務。在上述任一技術方案中,優選的,還包括數據查詢単元,用于對所述緩存數據庫表和所述基本數據庫表進行查詢并定期將所述緩存數據庫表的數據匯總至所述基本數據庫表。由于緩存表采用差異插入方式持久化數據,差異明細的數據量較大,因此需要定期對緩存表數據按業務維度匯總至基本表。根據本專利技術的另一方面,還提供了ー種共享數據更新方法,包括以下步驟步驟402,將所述共享數據的匯總數據保存于基本數據庫表中,以及將所述共享數據的差異數據保存于緩存數據庫表中;步驟404,計算本次更新操作引起所述共享數據的差異數據并采用獨立事務將所述差異數據插入至所述緩存數據庫表中;步驟406,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據;步驟408,根據校驗結果確定是否提交所述獨立事務。上述技術方案采用新增差異記錄的方式持久化,避免了數據庫級別的加鎖過程。差異數據采用獨立事務直接提交至緩存表,并基于緩存表序列機制進行數據校驗,使得數據校驗過程無需對業務數據進行鎖定,可以在保證數據正確性的基礎上,消除數據校驗的加鎖過程。由于加鎖在基于緩存表序列的數據更新過程中完全消除,可以明顯提高系統的支持的并發度,優化系統并發性能。在上述技術方案中,優選的,所述步驟404還包括為所述本次更新操作引起的所述差異數據生成唯一緩存表遞增序列,根據所述獨立事務的發生時間確定所述唯一緩存表遞增序列的大小。在上述技術方案中,優選的,所述步驟406還可以包括在校驗所述差異數據吋,首先校驗所述唯一緩存表遞增序列小于等于當前序列值的差異數據。緩存表的序列按事務發生時間遞增,在數據校驗查詢時,只查詢序列小于等于當前事務序列的記錄。因此,對于用戶并發更新數據導致共享數據資源爭用的情形下,采用了先到先得的排隊策略進行共享數據資源的分配。在上述技術方案中,優選的,在所述校驗結果為通過時,提交所述獨立事務,在所述校驗結果為未通過時,回滾所述獨立事務。如果數據校驗通過,則先提交差異數據新增事務(即所述獨立事務),然后提交用戶數據更新事務。如果數據校驗不通過,則先回滾差異數據新增事務(即所述獨立事務),保證緩存表數據記錄的合法性,然后回滾用戶數據更新事務。在上述任一技術方案中,優選的,所述步驟408還可以包括,定期將所述緩存數據庫表的數據匯總至所述基本數據庫表。由于緩存表采用差異插入方式持久化數據,差異明細的數據量較大,因此需要定期對緩存表數據按業務維度匯總至基本表。數據的持久化操作采用在緩存表中新增差異數據記錄的方式,減少了數據庫級別的鎖等待,解決了不同事務對同一行共享數據更新的資源競爭。采用獨立事務并引入序列機制進行數據正確性驗證,避免了數據加鎖校驗。而且對于數據的查詢操作分攤至兩張表,可提升數據的訪問性能。因此,共享數據訪問系統通過消除數據更新中的兩次加鎖,減少系統性能瓶頸,保證系統能夠支持高并發數據訪問。附圖說明圖1示出了在實際應用場景中并發訪問示意圖;圖2示出了相關技術中的共享數據更新流程圖;圖3示出了根據本專利技術的實施例的共享數據更新裝置的框圖;圖4示出了根據本專利技術的實施例的共享數據更新方法的流程圖;圖5示出了根據本專利技術的實施例的共享數據存儲表結構示意圖;圖6示出了根據本專利技術的實施例的共享數據更新方法的流程圖;圖7示出了根據本專利技術的實施例的共享數據更新裝置的示意圖。具體實施例方式為了能夠更清楚地理解本專利技術的上述目的、特征和優點,下面結合附圖和具體實施方式對本專利技術進行進一歩的詳細描述。在下面的描述中闡述了很多具體細節以便于充分理解本專利技術,但是,本專利技術還可以采用其他不同于在此描述的其他方式來實施,因此,本專利技術并不限于下面公開的具體實施例的限制。圖3示出了根據本專利技術的實施例的共享數據更新裝置的框圖。如圖3所示,根據本專利技術的實施例的共享數據更新裝置300包括存儲單元302,用于保存基本數據庫表和緩存數據庫表,所本文檔來自技高網...
【技術保護點】
一種共享數據更新裝置,其特征在于,包括:存儲單元,用于保存基本數據庫表和緩存數據庫表,所述基本數據庫表用于保存所述共享數據的匯總數據,所述緩存數據庫表用于保存所述共享數據的差異數據;差異數據計算單元,計算本次更新操作引起所述共享數據的差異數據;數據持久化單元,采用獨立事務將所述差異數據插入至所述緩存數據庫表中;數據校驗單元,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據,根據校驗結果確定是否提交所述獨立事務。
【技術特征摘要】
1.一種共享數據更新裝置,其特征在于,包括 存儲單元,用于保存基本數據庫表和緩存數據庫表,所述基本數據庫表用于保存所述共享數據的匯總數據,所述緩存數據庫表用于保存所述共享數據的差異數據; 差異數據計算單元,計算本次更新操作引起所述共享數據的差異數據; 數據持久化單元,采用獨立事務將所述差異數據插入至所述緩存數據庫表中; 數據校驗單元,查詢所述基本數據庫表和所述緩存數據庫表校驗所述差異數據,根據校驗結果確定是否提交所述獨立事務。2.根據權利要求1所述的共享數據更新裝置,其特征在于,數據持久化單元包括序列生成子單元,為所述本次更新操作引起的所述差異數據生成唯一緩存表遞增序列,根據所述獨立事務的發生時間確定所述唯一緩存表遞增序列的大小。3.根據權利要求2所述的共享數據更新裝置,其特征在于,所述數據校驗單元還用于在校驗所述差異數據時,首先校驗所述唯一緩存表遞增序列小于等于當前序列值的差異數據。4.根據權利要求1所述的共享數據更新裝置,其特征在于,所述數據校驗單元還用于在所述校驗結果為通過時,提交所述獨立事務,在所述校驗結果為未通過時,回滾所述獨立事務。5.根據權利要求1至4中任一項所述的共享數據更新裝置,其特征在于,還包括數據查詢單元,用于對所述緩存數據庫表和所述基本數據庫表...
【專利技術屬性】
技術研發人員:陳倪娜,
申請(專利權)人:用友軟件股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。