本发明专利技术提供了一种共享数据更新装置,包括:存储单元,用于保存基本数据库表和缓存数据库表,基本数据库表用于保存共享数据的汇总数据,缓存数据库表用于保存共享数据的差异数据;差异数据计算单元,计算本次更新操作引起共享数据的差异数据;数据持久化单元,采用独立事务将差异数据插入至缓存数据库表中;数据校验单元,查询基本数据库表和缓存数据库表校验差异数据,根据校验结果确定是否提交独立事务。本发明专利技术还提供了一种共享数据更新方法。根据本发明专利技术的技术方案,能够在保证数据更新正确性的前提下,消除数据更新及校验过程的加锁处理,从而提高系统支持的并发度。
【技术实现步骤摘要】
本专利技术涉及计算机
,具体而言,涉及ー种共享数据更新装置和一种共享数据更新方法。
技术介绍
在业务系统中,很多共享数据面临高并发的用户访问,而共享数据往往是系统核心业务模型,因此,共享数据正确性必须得到保障。如果要保证数据的正确性,那必然会涉及事务更新共享数据时的竞争及等待,如图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中任一项所述的共享数据更新装置,其特征在于,还包括数据查询单元,用于对所述缓存数据库表和所述基本数据库表...
【专利技术属性】
技术研发人员:陈倪娜,
申请(专利权)人:用友软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。