发明名称 Lock acceleration
摘要 A method for locking resources, including: receiving, by an accelerator, a first request from a first client to lock a first resource; evaluating, by a computer processor of a server, a hash function using an identifier of the first resource as an input to the hash function; identifying, by the computer processor and based on evaluating the hash function, a first hash bucket in a shared memory residing in a physical memory of the server; detecting that the first hash bucket is occupied; and sending the first request to a master lock monitor residing in a user space of the server based at least on detecting that the first hash bucket is occupied.
申请公布号 US9460144(B2) 申请公布日期 2016.10.04
申请号 US201213350535 申请日期 2012.01.13
申请人 Oracle International Corporation 发明人 Brower David;Pruscino Angelo;Chan Wilson;Wang Tak Fung
分类号 G06F7/00;G06F17/00;G06F17/30;G06F13/14 主分类号 G06F7/00
代理机构 Osha Liang LLP 代理人 Osha Liang LLP
主权项 1. A method for locking resources, comprising: receiving, by an accelerator, a first request from a first client to place a first lock on a first resource, wherein the first lock is a right for the first client to use the first resource; identifying, by the accelerator executing on the computer processor and based on a first identifier of the first resource, a first entry of a data structure stored in a shared memory residing in a physical memory of the server; detecting that the first entry is occupied by determining that the first entry is storing a first lock state element comprising a non-Null lock identifier; sending the first request to a master lock monitor residing in a user space of the server based at least on detecting that the first entry is occupied; granting, by the master lock monitor, the first lock on the first resource to the first client; receiving, by the accelerator, a second request from a second client to place a second lock on a second resource, wherein the second lock is a right for the second client to use the second resource; identifying, based on a second identifier of the second resource, a second entry of the data structure in the shared memory; detecting that the second entry is empty, indicating that the second resource is not currently locked; entering, in response to detecting that the second entry is empty, a second lock state element referencing the second resource into the second entry; and granting, after entering the second lock state element, without sending the second request to the master lock monitor and based at least in part on detecting that the second entry is empty, the second lock on the second resource to the second client.
地址 Redwood Shores CA US