利索能及
我要发布
收藏
专利号: 2017106575010
申请人: 东软集团股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-03-03
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种数据操作方法,其特征在于,包括:接收数据操作请求;

申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;

根据所述数据操作请求对所述待操作对象进行数据操作;

所述数据操作请求包括读操作请求,所述结构锁包括结构读锁;

所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁包括:

申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构读锁;

所述根据所述数据操作请求对所述待操作对象进行数据操作包括根据所述读操作请求对所述待操作对象进行数据读取操作;

所述关系锁之间、所述关系锁和所述结构读锁之间以及所述结构读锁之间是可重入的;所述可重入包括对相同的对象进行重复加锁;和/或,可重入的锁的范围内包括相同的对象。

2.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括写操作请求,所述结构锁包括结构写锁;

所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁包括:

申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构写锁;

所述根据所述数据操作请求对所述待操作对象进行数据操作包括:根据所述写操作请求对所述待操作对象进行数据写入操作。

3.根据权利要求2所述的方法,其特征在于,所述结构写锁和所述关系锁之间、所述结构写锁和结构读锁以及所述结构写锁之间是互斥的;其中,互斥的锁不能锁同一个对象;

和/或,互斥的锁的范围内不能包括相同的对象。

4.根据权利要求2所述的方法,其特征在于,所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构读锁包括:申请对待操作对象的父对象添加关系锁;

判断所述待操作对象的写计数是否为第一数值;

如果是,则申请对所述待操作对象添加结构读锁,并将所述待操作对象的读计数加上第二数值。

5.根据权利要求4所述的方法,其特征在于,所述判断所述待操作对象的写计数是否为第一数值之后,还包括:

如果所述待操作对象的写计数不是第一数值,则在所述待操作对象上等待申请结构读锁。

6.根据权利要求5所述的方法,其特征在于,还包括:在对所述待操作对象的数据写入操作完成之后,释放所述待操作对象上添加的结构写锁;

将所述待操作对象所在分支上的每一级父对象的写计数减去第二数值;

判断减去第二数值之后,是否存在写计数为第一数值的父对象;

如果存在,则唤醒等待在写计数为第一数值的父对象上的申请结构读锁的操作。

7.根据权利要求1所述的方法,其特征在于,所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构写锁包括:判断所述待操作对象所在分支的每一级父对象中是否存在读计数为第一数值的父对象;

如果存在,则申请对读计数为第一数值的父对象添加关系锁,并将添加关系锁的父对象的写计数加上第二数值;

在所述待操作对象所在分支的每一级父对象均添加所述关系锁之后,申请对所述待操作对象添加结构写锁。

8.根据权利要求7所述的方法,其特征在于,所述判断所述待操作对象所在分支的每一级父对象中是否存在读计数为第一数值的父对象之后,还包括:如果所述待操作对象所在分支的每一级父对象中存在读计数不是第一数值的父对象,则在读计数不是第一数值的父对象上等待申请关系锁。

9.根据权利要求8所述的方法,其特征在于,还包括:在对所述待操作对象的数据读取操作完成之后,释放所述待操作对象上添加的结构读锁;

将所述待操作对象的读计数减去第二数值;

如果减去第二数值之后,所述待操作对象的读计数为第一数值,则唤醒等待在读计数为第一数值的对象上的申请关系锁的操作。

10.根据权利要求4‑9任意一项所述的方法,其特征在于,还包括:在进行判断计数操作之前,对进行判断计数操作的对象添加计数同步锁;

在对添加所述计数同步锁的对象进行计数修改操作之后,释放所述计数同步锁。

11.根据权利要求4‑9任意一项所述的方法,其特征在于,还包括:在进行判断计数操作之前,对进行判断计数操作的对象添加计数同步锁;

如果在添加所述计数同步锁的对象上的关系锁或结构锁的申请操作需要等待,则释放所述计数同步锁,在所述关系锁或结构锁的申请操作被唤醒之后,再重新申请所述计数同步锁;

如果在添加所述计数同步锁的对象上的关系锁或结构锁的申请操作不需要等待,则在对添加所述计数同步锁的对象进行计数修改操作之后,释放所述计数同步锁。

12.根据权利要求1‑9任意一项所述的方法,其特征在于,所述申请对待操作对象的父对象添加关系锁包括:

申请对所述待操作对象所在分支的每一级父对象添加结构读锁。

13.一种数据操作装置,其特征在于,包括:接收模块,用于接收数据操作请求;

申请模块,用于申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁;

数据操作模块,用于根据所述接收模块接收的数据操作请求对所述待操作对象进行数据操作;

所述数据操作请求包括读操作请求,所述结构锁包括结构读锁;

所述申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构锁包括:

申请对待操作对象的父对象添加关系锁之后,申请对所述待操作对象添加结构读锁;

所述根据所述数据操作请求对所述待操作对象进行数据操作包括根据所述读操作请求对所述待操作对象进行数据读取操作;

所述关系锁之间、所述关系锁和所述结构读锁之间以及所述结构读锁之间是可重入的;所述可重入包括对相同的对象进行重复加锁;和/或,可重入的锁的范围内包括相同的对象。

14.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1‑

12中任一所述的方法。

15.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑12中任一所述的方法。