发明名称 Distributed lock service with external lock information database
摘要 A system that implements a distributed lock service may include a failure detector for servers and sessions, and may track the state of sessions on a per-client-connection basis. It may include an external lock information database that stores lock state information and that supports a higher write throughput rate than a distributed state manager. Each database record may store an identifier of a session during which a lock on a respective item was obtained (if any) and a staleness indicator. A distributed state manager may maintain a session identifier and a respective staleness indicator for each established session, and may push updates to this session information to interested client processes, which may cache the information. A client process wishing to lock an item may determine whether it can do so dependent on the information in a corresponding database record and on its own cached session information.
申请公布号 US9171019(B1) 申请公布日期 2015.10.27
申请号 US201313770569 申请日期 2013.02.19
申请人 Amazon Technologies, Inc. 发明人 Donlan Bryan James
分类号 G06F17/30 主分类号 G06F17/30
代理机构 Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C. 代理人 Kowert Robert C.;Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C.
主权项 1. A system, comprising: one or more computing nodes on which a client application is executing, each of the computing nodes comprising at least one processor and a memory; a distributed state manager cluster comprising two or more server nodes that are separate and distinct from the one or more computing nodes, the distributed state manager cluster comprising at least one processor and a memory; and a database executing on a computing node that is separate and distinct from the computing nodes on which the client application is executing and the two or more server nodes of the distributed state manager cluster; wherein the distributed state manager cluster is configured to: store session information about sessions that have been established in the system between client applications and the distributed state manager cluster, and metadata indicating staleness of the session information;detect changes in the session information or metadata; anddistribute update notifications for the session information or metadata to the one or more computing nodes on which the client application is executing in response to detecting changes in the session information or metadata; wherein the one or more computing nodes on which the client application is executing are configured to: cache session information and metadata indicating staleness of the cached metadata; andupdate the cached session information or metadata in response to update notifications received from the distributed state manager cluster; wherein the database is configured to store lock information for a plurality of items that are lockable by the client application in respective entries; and wherein the client application is configured to initiate an operation to obtain a lock on one of the plurality of items, wherein to initiate the operation to obtain the lock, the client application is configured to: determine whether the database comprises a database entry for the one of the plurality of items indicating that the one of the plurality of items has been locked;in response to determining that the database does not comprise a database entry for the one of the plurality of items, perform an operation to attempt to obtain the lock for the one of the plurality of items;in response to determining that the database comprises a database entry for the one of the plurality of items indicating that the one of the plurality of items has been locked, determine, based at least in part on the cached session information, whether a particular session during which the one of the plurality of items was locked is likely to be live or is known to have been revoked; andin response to determining that the particular session during which the one of the plurality of items was locked is likely to be live, abandon the operation to obtain the lock.
地址 Reno NV US