发明名称 PARTY STRIPE LOCK ENGINE
摘要 Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.
申请公布号 US2017031759(A1) 申请公布日期 2017.02.02
申请号 US201514833694 申请日期 2015.08.24
申请人 International Business Machines Corporation 发明人 GALBRAITH Robert;GERHARD Adrian C.;MOERTL Daniel F.
分类号 G06F11/10;G06F3/06 主分类号 G06F11/10
代理机构 代理人
主权项 1. A method comprising: searching a content addressable memory (CAM) based on an ID associated with first and second received operations; identifying, based on searching the CAM, a first entry in a first memory corresponding to the first received operation and a second entry in the first memory corresponding to the second received operation, wherein the first memory comprises a first plurality of entries each storing a waiter link indicating whether one or more previously received operations are waiting for a lock for one of a plurality of stripes in a redundant array of independent disks (RAID) memory system; upon determining based on the waiter link of the first entry that there is at least one previously received operation waiting, adding a new entry to a second memory based on information associated with the first received operation, wherein the second memory comprises a second plurality of entries each storing information for a corresponding waiter operation that is waiting to obtain a lock for at least one block of data in one of the stripes; and upon determining based on the waiter link in the second entry that no previously received operation is waiting, granting a lock to the second received operation.
地址 Armonk NY US