CN101256509B - 一种锁机制的加锁方法、解锁方法和实现方法 - Google Patents

一种锁机制的加锁方法、解锁方法和实现方法 Download PDF

Info

Publication number
CN101256509B
CN101256509B CN2008100664740A CN200810066474A CN101256509B CN 101256509 B CN101256509 B CN 101256509B CN 2008100664740 A CN2008100664740 A CN 2008100664740A CN 200810066474 A CN200810066474 A CN 200810066474A CN 101256509 B CN101256509 B CN 101256509B
Authority
CN
China
Prior art keywords
resource
lock
approximate number
node
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008100664740A
Other languages
English (en)
Other versions
CN101256509A (zh
Inventor
万鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pang Jichao
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2008100664740A priority Critical patent/CN101256509B/zh
Publication of CN101256509A publication Critical patent/CN101256509A/zh
Application granted granted Critical
Publication of CN101256509B publication Critical patent/CN101256509B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种锁机制的加锁方法、解锁方法和实现方法,加锁方法包括:A1、初始化各资源的预约数分别为预设值,A2、对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,否则执行A3;A3、对于申请失败的各资源,逆向搜索锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;A4、判断申请失败的各资源是否全部搜索完成,否则继续执行A3。从而有效地在优先级抢占二次调度***中,实现了快速锁机制,为事务的并发提供高效的支持。

Description

一种锁机制的加锁方法、解锁方法和实现方法
技术领域
本发明涉及无信号量的锁实现技术,尤其涉及的是,在嵌入式内存数据库***中,一种锁机制的加锁方法、解锁方法和实现方法。
背景技术
嵌入式主内存数据库由于具有极强的实时性而受到越来越多的关注,嵌入式数据库强实时性来自于内存事务并发,并发的实现主要靠引入锁机制。
目前各种主内存数据库锁***的实现都采用了信号量的方式,信号量方式的缺点是获取和释放信号量的时间相对较长,特别是在嵌入式***中,信号量的等待意味着任务的切换,这是非常耗费时间的。
目前嵌入式***实现锁机制主要采用以下方法:
1、采用信号量机制,一个最小单位设置一个信号量,这样一个锁的加锁可能需要很多个信号量的获取,但是获取这些信号量需要大量的时间。
2、采用非信号量进程延迟机制,但是在优先级抢占***中,该方法无法正确运行。
3、采用任务等待信号量机制,该方法实现了一个锁只需要一个信号量。
嵌入式实时操作***vxworks,在任务调度的基础上增加了进程调度的***,习惯称为二次调度***,其中,一个进程等待信号量的时候会阻塞整个任务,导致同一任务下的其他进程无法完成事务,造成死锁,因此上述现有方法均无法在优先级抢占调度的二次调度***中实现。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是在优先级抢占调度的二次调度***中,如何实现锁机制。
本发明的技术方案如下:
一种锁机制的加锁方法,其包括以下步骤:A1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;A2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,如果没有全部申请成功则执行A3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;A3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;A4、判断申请失败的各资源是否全部搜索完成,否则继续执行A3。
所述的加锁方法,其中,步骤A1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;并且,步骤A2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作。
一种锁机制的解锁方法,其包括以下步骤:B1、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;B2、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。
所述的解锁方法,其中,步骤B1之前还执行以下步骤:B0、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤B1。
一种锁机制的实现方法,其包括以下加锁步骤和解锁步骤;
所述加锁步骤包括以下步骤:C1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;C2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,如果没有全部申请成功则执行C3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;C3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;C4、判断申请失败的各资源是否全部搜索完成,否则继续执行C3;
所述解锁步骤包括以下步骤:C5、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;C6、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。
所述的实现方法,其中,步骤C1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;并且,步骤C2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作;并且,步骤C6中,把对应资源的预约数减一时,是在所述资源列表中,将对应资源的预约数进行减一操作。
所述的实现方法,其中,步骤C5之前还执行以下步骤:C50、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤C5。
所述的实现方法,其中,步骤C50之前还执行以下步骤:采用定时监测机制,判断是否超时未响应,是则执行C50。
所述的实现方法,其中,步骤C6中,解阻塞当前锁节点对应的进程之前,还执行以下步骤:判断该进程是否有效,否则不作后续处理。
所述的实现方法,其中,步骤C2至步骤C4的操作,以及步骤C5至步骤C6的操作,分别采用独占任务形式实现。
采用上述方案,本发明提出了不基于信号量等待的锁机制,有效地在优先级抢占二次调度***中,实现了快速锁机制,为事务的并发提供高效的支持。
附图说明
图1为本发明方法的一种实施方式的封锁流程图;
图2为本发明方法的一种实施方式的解锁流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
本发明的主旨在于提出一种基于进程二次调度的非信号量锁实现机制,该机制不基于信号量等待;本发明通过为每一个可以加锁的资源维护一个预约数,并且维护一个锁等待队列,来实现上述机制。
如图1所示,本发明提供了一种锁机制的加锁方法,其包括以下步骤:
A1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;例如,某一资源的预设值为0时,代表该资源的状态为未预约;或者,也可以定义为,某一资源的预设值为1时,代表该资源的状态为未预约;本发明对预设值不作任何限制。
A2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,否则执行A3。例如,预设值为0时,代表该资源的状态为未预约;当某一进程申请某一资源时,则对该资源的预约数进行加一操作,将其预约数设为1;当另一进程也申请该资源时,则对该资源的预约数再进行加一操作,将其预约数设为2。
其中,所述锁等待队列,也称为解锁集,一个例子如下表所示,其为各锁节点分别设置以下项:进程标识(PID,process identity,即锁定的进程的标识)、待申请资源(WAIT_RES)、申请成功资源(HAVE_RES)和待调度队列标识(PEND_QUE)。
其中,进程标识项用于存储进程标识,以标记该锁节点对应的进程;申请成功资源项用于标记该进程所成功申请得到的资源;待申请资源项用于标记该进程所申请的资源未成功,需等待调度;待调度队列标识项用于标记其它进程的进程标识,表示:当其它进程所申请的资源,被该锁节点对应的进程占用,待该进程执行释放后,将其需要的资源配发给所述其它进程。
假设有9个资源分别为1、2、3、4、5、6、7、8、9,假设进程1首先进行封锁,需要资源为1、2、4、6、9。
  LOCK   WAIT_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9
A3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项。
A4、判断申请失败的各资源是否全部搜索完成,否则继续执行A3。
在具体应用中,可以采用资源列表,管理各资源的预约数,或者管理各资源及其预约数;一个实施例是,步骤A1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;这样,在步骤A2中,当申请各资源时,则在所述资源列表中,对所申请各资源的预约数进行加一操作。
上述的各个实施例,可以分别采用独占任务形式实现。
相应的,如图2所示,本发明提供了一种锁机制的解锁方法,其包括以下步骤:B1、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;B2、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。
一个实施例是,步骤B1之前还执行以下步骤:B0、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤B1。又如,在此实施例的基础上,还可以在B0之前在执行以下步骤:采用定时监测机制,判断是否超时未响应,是则执行B0。
又一个实施例是,步骤B2中,解阻塞当前锁节点对应的进程之前,还执行以下步骤:判断该进程是否有效,否则不作后续处理,即无需解阻塞当前锁节点对应的进程及其后续操作。一般来说,可以根据PID判断该进程是否还存在,否则认为其已经失效。
更好的是,同上所述,可以采用资源列表,管理各资源的预约数,或者管理各资源及其预约数;一个实施例是,首先,预设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;这样,在步骤B2中,当解阻塞对应的进程后,则在所述资源列表中,把对应资源的预约数进行减一操作。
同样的,上述的各个实施例,可以分别采用独占任务形式实现。
综合上述的加锁方法和解锁方法,本发明还提供了一种锁机制的实现方法,其包括以下加锁步骤和解锁步骤。
所述加锁步骤包括以下步骤:
C1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;同样的,例如,某一资源的预设值为0时,代表该资源的状态为未预约;或者,也可以定义为,某一资源的预设值为100时,代表该资源的状态为未预约;本发明对预设值不作任何限制。
C2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,否则执行C3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;各项含义与上述加锁方法的描述相同,在此不再赘述。
C3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项。
C4、判断申请失败的各资源是否全部搜索完成,否则继续执行C3。
其中,步骤C2至步骤C4的操作,可以采用独占任务形式实现。
所述解锁步骤包括以下步骤:
C5、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识。
例如,步骤C5之前还可以执行以下步骤:C50、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤C5。又如,在此基础上,步骤C50之前还执行以下步骤:采用定时监测机制,判断是否超时未响应,是则执行C50。
C6、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。例如,在解阻塞当前锁节点对应的进程之前,还执行以下步骤:判断该进程是否有效,否则不作后续处理。
采用资源列表时,一个实施例是,步骤C1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;并且,步骤C2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作;并且,步骤C6中,把对应资源的预约数减一时,是在所述资源列表中,将对应资源的预约数进行减一操作。
其中,步骤C5至步骤C6的操作,可以采用独占任务形式实现。
以下是本发明所述实现方法的一个完整的例子。
1、加锁流程,如图1所示,其参数包括PID、资源列表。
1)TaskLock;
2)申请所有未预约资源;
3)给资源列表中所有资源的预约数加一;
4)若资源已经完全申请到则TaskUnlock继续事务操作;
5)若资源不满足要求,逆向搜索等待队列中的资源,若某一项含有需要的资源则在该项的解锁集尾部添加自己,直到所有的资源都已经有了通知对象;
7)TaskUnlock;
8)挂起自己。
2.解锁流程,如图2所示,其参数为事务队列中的一项;解锁时机,一般为队头节点无效或者一个事务已经执行到最后。
1)TaskLock;
2)依次将资源列表中的资源分配给解锁集中的锁节点,如果某锁节点已经申请到所有资源,则解阻塞该进程,解阻塞之前可以先判断是否有效,无效则不作处理,把对应资源的预约数减一;
3)TaskUnlock。
实现方法或解锁方法的一个特例是进行死锁检测。
如果某一个进程实例访问了数据库,并且其事务排在事务队列头部,则当该实例被别的进程杀死后,其不能有效解锁释放资源,这样会造成数据库的死锁。
因此本发明引入了定时监测机制,如果队头节点无效,则解锁队头节点。
如果某一个进程实例在队列的中间,则如果其被异常杀死之后,事务并不被删除,需要等到其前面所有事务完成之后才进行解锁,可以由死锁检测机制检测到,这样的情况非常少见,只是采用的一种预防手段。
下面再给出一个具体的例子,对本发明各方法进行详细说明。
假设有9个资源分别为1、2、3、4、5、6、7、8、9;每个资源有一个初始预约数为0。
假设进程1首先进行封锁,其需要资源为1、2、4、6、9。
进程1封锁如下表所示:
  LOCK   WAIT_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9
进程1需要资源1、2、4、6、9;这时候预约数都为0,所以全部资源均能够得到满足,进程1将资源1、2、4、6、9的预约数加1,封锁完成,事务执行。
假设在进程1未完成的时候,进程2抢占运行,需要资源1、2、5、8。
进程2封锁后如下表所示:
  LOCK   WAIT_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9   PID2
  PID2   1,2,   5,8
进程2在进程1的事务没有完成的时候来到,这个时候资源5、8的预约数为0,进程2可以申请到资源5、8,但是资源1、2的预约数为1,所以需要等待资源1、2,此时,逆向查找队列中的资源列表,在进程1的锁节点PID1处发现了资源1、2,因此在其该锁节点末尾的待调度队列标识项,添加PID2,将资源1、2、5、8的预约数加1。
假设进程3需要三个资源3、4、8。
进程3封锁后如下表所示:
  LOCK   WAIT_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9   PID2,PID3
  PID2   1,2,   5,8,   PID3
  PID3   4,8   3
进程3发现资源3的预约数为0,资源4和8的预约数不为0,因此需要等待资源4、8,逆向搜索资源队列,第一次在PID2处找到了资源8,因此把自己的PID的加入到PID2的阻塞队列中,第一次在PID1处找到了资源4,因此把自己的PID加入到PID1的阻塞队列尾。
进程1解锁如下表所示:TASKLOCK;
  LOCK   WAIT_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9   PID3
  PID2   1,2,5,8,   PID3
  PID3   4,8   3
进程1执行完成释放,首先找到解锁集中第一个元素PID2,将其需要的资源1、2给他,发现PID2已经可以调入运行,调入。
  LOCK   NEED_RES   HAVE_RES   PEND_QUE
  PID1   1,2,4,6,9
  PID2   1,2,5,8   PID3
  PID3   8   4,3
[0093]接下来取下一次解锁元素PID3,其需要的资源4,PID1可以给出,但是检测其资源并没有完全获取,不作任何动作。
  LOCK   NEED_RES   HAVE_RES   PEND_QUE
  PID2   1,2,5,8,   PID3
  PID3   8   4,3
将PID1从队列中删除,其所用资源1、2、4、6、9的预约数减一。
TASKUNLOCK。
采用上述方法,有效地在优先级抢占二次调度***中实现快速锁机制,为事务的并发提供高效的支持。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种锁机制的加锁方法,其包括以下步骤:
A1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;其中,步骤A1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;
A2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,如果没有全部申请成功则执行A3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;
A3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;
A4、判断申请失败的各资源是否全部搜索完成,否则继续执行A3。
2.根据权利要求1所述的加锁方法,其特征在于,步骤A2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作。
3.一种锁机制的解锁方法,其包括以下步骤:
B1、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;
B2、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。
4.根据权利要求3所述的解锁方法,其特征在于,步骤B1之前还执行以下步骤:
B0、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤B1。
5.一种锁机制的实现方法,其包括以下加锁步骤和解锁步骤;
所述加锁步骤包括以下步骤:
C1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;其中,步骤C1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;
C2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,如果没有全部申请成功则执行C3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;
C3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;
C4、判断申请失败的各资源是否全部搜索完成,否则继续执行C3;所述解锁步骤包括以下步骤:
C5、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;
C6、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。
6.根据权利要求5所述的实现方法,其特征在于,步骤C2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作;
并且,步骤C6中,把对应资源的预约数减一时,是在所述资源列表中,将对应资源的预约数进行减一操作。
7.根据权利要求5所述的实现方法,其特征在于,步骤C5之前还执行以下步骤:
C50、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤C5。
8.根据权利要求5所述的实现方法,其特征在于,步骤C50之前还执行以下步骤:采用定时监测机制,判断是否超时未响应,是则执行C50。
9.根据权利要求5所述的实现方法,其特征在于,步骤C6中,解阻塞当前锁节点对应的进程之前,还执行以下步骤:判断该进程是否有效,否则不作后续处理。
10.根据权利要求5所述的实现方法,其特征在于,步骤C2至步骤C4的操作,以及步骤C5至步骤C6的操作,分别采用独占任务形式实现。
CN2008100664740A 2008-04-07 2008-04-07 一种锁机制的加锁方法、解锁方法和实现方法 Expired - Fee Related CN101256509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100664740A CN101256509B (zh) 2008-04-07 2008-04-07 一种锁机制的加锁方法、解锁方法和实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100664740A CN101256509B (zh) 2008-04-07 2008-04-07 一种锁机制的加锁方法、解锁方法和实现方法

Publications (2)

Publication Number Publication Date
CN101256509A CN101256509A (zh) 2008-09-03
CN101256509B true CN101256509B (zh) 2010-09-01

Family

ID=39891353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100664740A Expired - Fee Related CN101256509B (zh) 2008-04-07 2008-04-07 一种锁机制的加锁方法、解锁方法和实现方法

Country Status (1)

Country Link
CN (1) CN101256509B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108990422A (zh) * 2017-03-31 2018-12-11 华为技术有限公司 一种锁分配的方法、装置和计算设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102355473B (zh) * 2011-06-28 2013-12-25 用友软件股份有限公司 分布式计算环境下的锁定控制***和方法
CN103064729A (zh) * 2012-12-19 2013-04-24 上海西本网络科技有限公司 对共享资源的加锁、控制方法和装置
CN106471486B (zh) * 2014-04-30 2019-05-17 甲骨文国际公司 用于在事务中间件机器环境中支持自适应自调整锁定机制的***和方法
CN104123193A (zh) * 2014-08-07 2014-10-29 肖龙旭 一种计算机资源监控方法
CN104461707B (zh) * 2014-11-28 2018-09-28 华为技术有限公司 一种锁请求处理方法及装置
CN105335237B (zh) * 2015-11-09 2018-09-21 浪潮电子信息产业股份有限公司 一种操作***的死锁预防方法
CN105700939B (zh) * 2016-04-21 2019-07-02 北京京东尚科信息技术有限公司 一种分布式***中多线程同步的方法和***
CN107357648B (zh) * 2017-05-25 2020-05-15 吕锦柏 一种多核cpu访问资源时自旋锁的实现方法
US11347712B2 (en) * 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
CN110188110B (zh) * 2019-05-30 2024-05-07 深圳前海微众银行股份有限公司 一种构建分布式锁的方法及装置
CN110334823B (zh) * 2019-06-17 2022-04-05 北京大米科技有限公司 预约方法、装置、电子设备及介质
CN112148695A (zh) * 2019-06-26 2020-12-29 华为技术有限公司 一种资源锁管理方法及装置
CN110990161A (zh) * 2019-11-15 2020-04-10 北京浪潮数据技术有限公司 共享资源访问方法、装置、设备及计算机可读存储介质
CN115392895B (zh) * 2022-10-28 2023-03-24 深圳市小赢信息技术有限责任公司 基于热点账户的账户数据处理方法、装置、终端及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108990422A (zh) * 2017-03-31 2018-12-11 华为技术有限公司 一种锁分配的方法、装置和计算设备
CN108990422B (zh) * 2017-03-31 2021-07-20 华为技术有限公司 一种锁分配的方法、装置和计算设备

Also Published As

Publication number Publication date
CN101256509A (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
CN101256509B (zh) 一种锁机制的加锁方法、解锁方法和实现方法
JP2004021985A (ja) マルチスレッドシステムにおけるスピン−放棄
US5269017A (en) Type 1, 2 and 3 retry and checkpointing
US9418135B2 (en) Primary database system, replication database system and method for replicating data of a primary database system
JP2018511886A (ja) 分散型コンピューティングシステムにおけるデータベーストランザクションの処理
JP2005502941A (ja) デッドロック検出のための犠牲選択
Aldarmi Real-time database systems: concepts and design
Alrifai et al. Distributed management of concurrent web service transactions
Hung et al. Locking protocols for concurrency control in real-time database systems
CN102193987A (zh) 基于oltp的增加节点数据关系的方法及***
US8327383B2 (en) Cancellation of concurrent worker objects
Holler Chapter 13. Multiple copy update
Grover et al. Analysis of deadlock detection and resolution techniques in distributed database environment
McEwan et al. Concurrency control and recovery management for open e-business transactions
Böttcher et al. Reducing sub-transaction aborts and blocking time within atomic commit protocols
Hwang et al. Transaction recovery in federated autonomous databases
Said et al. A protocol to control replication in distributed real-time database systems
CN117312001A (zh) 一种基于序号机制的分布式幂等性方案的实现方法
Abdul-Mehdi et al. A model for transaction management in mobile databases
Li et al. Algebraic semantics for compensable transactions
Yu et al. Recovery of data integrity under multi-tier architectures
Gottschlich et al. An efficient lock-aware transactional memory implementation
CN105117288A (zh) 一种高精度时钟辅助任务执行的方法
Puustjärvi CWS-Transactions: An Approach for Composing Web Services.
CN117707798A (zh) 多线程并发状态下的死锁消除方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170913

Address after: Shangqiu City, Henan province 476600 Ma Qiao Zhen Ma Zhuang Cun Pang Zhuang Yongcheng City No. 039 group

Patentee after: Pang Jichao

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corporation

TR01 Transfer of patent right
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Pang Jichao

Inventor before: Wan Peng

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 541006 the Guangxi Zhuang Autonomous Region Qifeng Yanshan District of Guilin City Park

Patentee after: Pang Jichao

Address before: Shangqiu City, Henan province 476600 Ma Qiao Zhen Ma Zhuang Cun Pang Zhuang Yongcheng City No. 039 group

Patentee before: Pang Jichao

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100901

Termination date: 20180407