数据操作方法、装置和计算机设备制造方法及图纸

技术编号:17265309 阅读:19 留言:0更新日期:2018-02-14 12:46
本申请提出一种数据操作方法、装置和计算机设备,其中,上述数据操作方法包括:接收数据操作请求;申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;根据所述数据操作请求对所述待操作对象进行数据操作。本申请可以实现通过关系锁和结构锁灵活地控制数据并发操作,并且可以以较细的控制粒度对并发操作进行控制,提升了数据操作的并发效率。

Data manipulation methods, devices, and computer equipment

The invention provides a data operation method, apparatus and computer equipment, which comprises the data operation method: data receiving operation request; after adding the parent object for treat the relation of lock objects. For the operation of object structure lock; according to the operation data requests to the data object to be operated operation. This application can control data concurrent operation flexibly through relational lock and structure lock, and control concurrent operation with finer control granularity. It improves the concurrency efficiency of data operation.

【技术实现步骤摘要】
数据操作方法、装置和计算机设备
本申请涉及计算机应用
,尤其涉及一种数据操作方法、装置和计算机设备。
技术介绍
在软件系统中,树形依存关系对象的应用极为广泛。诸如机构层级、组织层级和文件系统层级等,均可以描述为树形依存关系对象。例如:第一集团、第一事业本部和第一事业部,第一事业部依存于第一集团和第一事业本部,如果第一集团不存在了,那么也就不存在第一事业部了。在软件系统中,并发操作是非常常见的。如果不对并发操作加以控制,会使得获取的数据出现错乱的情况。例如:一个操作为统计第一集团的员工总数,一个操作为第一事业部增加新员工,在增加新员工的同时统计第一集团的员工总数,会使得统计获得的员工总数不正确。现有相关技术中,一种方案为将系统中所有用到的操作和所要操作的对象绑定后进行分类,并配置并发规则,这种解决方案缺乏灵活性,在系统需要增减业务时,需要变更系统实现,成本较高,不利于维护。另一种方案是将操作加上粗粒度的锁,例如分支锁,每次操作将一个分支锁住,这样只有当操作分别属于两个分支时,才可以并发,因此这种方案的并发的控制粒度较粗,虽然解决了并发问题,但是并发效率较低。
技术实现思路
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的第一个目的在于提出一种数据操作方法,以实现通过关系锁和结构锁灵活地控制数据并发操作,并且可以以较细的控制粒度对并发操作进行控制,提升了数据操作的并发效率。本申请的第二个目的在于提出一种数据操作装置。本申请的第三个目的在于提出一种计算机设备。本申请的第四个目的在于提出一种非临时性计算机可读存储介质。本申请的第五个目的在于提出一种计算机程序产品。为达上述目的,本申请第一方面实施例提出一种数据操作方法,包括:接收数据操作请求;申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;根据所述数据操作请求对所述待操作对象进行数据操作。本申请实施例的数据操作方法中,接收数据操作请求,在申请对待操作对象的父对象添加关系锁之后,申请对上述待操作对象添加结构锁,然后根据上述数据操作请求对上述待操作对象进行数据操作,从而可以实现通过关系锁和结构锁灵活地控制数据并发操作,并且可以以较细的控制粒度对并发操作进行控制,提升了数据操作的并发效率。为达上述目的,本申请第二方面实施例提出了一种数据操作装置,包括:接收模块,用于接收数据操作请求;申请模块,用于申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;数据操作模块,用于根据所述接收模块接收的数据操作请求对所述待操作对象进行数据操作。本申请实施例的数据操作装置中,接收模块接收数据操作请求,在申请模块申请对待操作对象的父对象添加关系锁之后,申请对上述待操作对象添加结构锁,然后数据操作模块根据上述数据操作请求对上述待操作对象进行数据操作,从而可以实现通过关系锁和结构锁灵活地控制数据并发操作,并且可以以较细的控制粒度对并发操作进行控制,提升了数据操作的并发效率。为达上述目的,本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的方法。为了实现上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。为了实现上述目的,本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的方法。本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本申请数据操作方法一个实施例的流程图;图2为本申请数据操作方法中关系锁一个实施例的示意图;图3为本申请数据操作方法中结构锁一个实施例的示意图;图4为本申请数据操作方法中关系锁和结构锁的关系一个实施例的示意图;图5为本申请数据操作方法中关系锁和结构锁的关系另一个实施例的示意图;图6为本申请数据操作方法中关系锁和结构锁的关系再一个实施例的示意图;图7为本申请数据操作方法中关系锁和结构锁的关系再一个实施例的示意图;图8(a)~图8(b)为本申请数据操作方法中的数据并发操作一个实施例的示意图;图9为本申请数据操作方法另一个实施例的流程图;图10为本申请数据操作方法中添加关系锁一个实施例的示意图;图11为本申请数据操作方法中读计数一个实施例的示意图;图12为本申请数据操作方法中等待申请结构读锁一个实施例的示意图;图13为本申请数据操作方法再一个实施例的流程图;图14为本申请数据操作方法中写计数一个实施例的示意图;图15为本申请数据操作方法中等待申请关系锁一个实施例的示意图;图16为本申请数据操作方法中计数同步锁公平模式一个实施例的示意图;图17为本申请数据操作方法中计数同步锁非公平模式一个实施例的示意图;图18为本申请数据操作装置一个实施例的结构示意图;图19为本申请数据操作装置另一个实施例的结构示意图;图20为本申请计算机设备一个实施例的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。图1为本申请数据操作方法一个实施例的流程图,如图1所示,上述数据操作方法可以包括:步骤101,接收数据操作请求。步骤102,申请对待操作对象的父对象添加关系锁之后,申请对上述待操作对象添加结构锁。其中,上述关系锁为保持依存对象关系的锁,在对一个对象加关系锁之后,从根对象到加锁对象的依存关系不能改变,图2为本申请数据操作方法中关系锁一个实施例的示意图,如图2所示,当对第一事业本部加上关系锁时,从第一集团到第一事业本部的依存关系不能改变,即第一集团和第一事业本部这两个对象不能修改,不能删除,但是可以新建分支。在图2中,以虚线方框表示对第一集团和第一事业本部添加的关系锁。上述结构锁为保持对象及其分支的依存关系和内容的锁。上述结构锁可以包括结构写锁和结构读锁,当对一个对象加结构写锁时,加结构写锁的对象的内容可以被修改,但加结构写锁的对象和其分支上所有对象的依存关系不能被修改和读取,加结构写锁的对象所在分支上所有对象的内容不能被修改和读取。当对一个对象加结构读锁时,加结构读锁的对象本身和其分支上所有的对象关系和内容不可以被修改,但是可以被读取。图3为本申请数据操作方法中结构锁一个实施例的示意图,如图3所示,当对第一事业本部加上结构锁时,意味着第一事业本部,第一事业部和第二事业部的依存关系和内容均被锁住。图3中,点划线方框表示结构写锁。步骤103,根据上述数据操作请求对上述待操作对象进行数据操作。本实施例的一种实现方式中,上述数据操作请求可以为读操作请求,上述结构锁包括结构读锁;这样步骤102可以为:申请对待操作对象的父对象添加关系锁之后,申请对上述待操作对象添加结构读锁;步骤103可以为:根据上述读操作请求对所述待操作对象进行数据读本文档来自技高网...
数据操作方法、装置和计算机设备

【技术保护点】
一种数据操作方法,其特征在于,包括:接收数据操作请求;申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;根据所述数据操作请求对所述待操作对象进行数据操作。

【技术特征摘要】
1.一种数据操作方法,其特征在于,包括:接收数据操作请求;申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;根据所述数据操作请求对所述待操作对象进行数据操作。2.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括读操作请求,所述结构锁包括结构读锁;所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁包括:申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构读锁;所述根据所述数据操作请求对所述待操作对象进行数据操作包括:根据所述读操作请求对所述待操作对象进行数据读取操作。3.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括写操作请求,所述结构锁包括结构写锁;所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁包括:申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构写锁;所述根据所述数据操作请求对所述待操作对象进行数据操作包括:根据所述写操作请求对所述待操作对象进行数据写入操作。4.根据权利要求2所述的方法,其特征在于,所述关系锁之间、所述关系锁和所述结构读锁之间以及所述结构读锁之间是可重入的;所述可重入包括对相同的对象进行重复加锁;和/或,可重入的锁的范围内包括相同的对象。5.根据权利要求3所...

【专利技术属性】
技术研发人员:沈牧溪郝健于洋王冰倩
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1