Session management in distributed storage systems
First Claim
1. A system, comprising:
- one or more computing devices configured to;
receive, at an access subsystem of a distributed multi-tenant file storage service, a request to establish a client session for file store operations on behalf of a particular client, wherein subsequent file store requests in the client session are to be received via the access subsystem;
transmit, from the access subsystem to a metadata subsystem of the file storage service, a request to initialize the client session;
provide, to the access subsystem, a session identifier generated by the metadata subsystem based at least in part on a persistent session storage location at which one or more elements of metadata of the client session are stored, wherein the one or more elements include an indication of a lease associated with the client session;
cache, at the access subsystem, the session identifier generated by the metadata subsystem and an indication of the lease, prior to a transmission of the session identifier to the particular client;
receive, by the access subsystem, a different request from the client accessing a particular file store object, wherein the different request comprises the session identifier;
provide, to the access subsystem, a lock state indicator associated with the particular file store object and generated in response to the different request, wherein the lock state indicator is stored at a persistent lock storage location determined by the metadata subsystem, and the lock state indicator comprises the session identifier;
cache, at the access subsystem, the lock state indicator;
utilize, at the access subsystem, the cached session identifier, the cached indication of the lease, and the cached lock state indicator to respond to a service request from the client directed to the particular file store object; and
in response to a determination that a timeout associated with the lease has expired, delete (a) the lock state indicator from the persistent lock storage location, and (b) the session identifier from the persistent session storage location.
1 Assignment
0 Petitions
Accused Products
Abstract
A request for a session identifier for a particular client is transmitted from an access subsystem of a storage service to a metadata subsystem of the service. A session identifier based on a persistent session storage location at which metadata of the client session are stored is received at the access subsystem. The session identifier is cached at the access subsystem prior to its transmission to the client. A lock state indicator generated by the metadata subsystem in response to a particular request from the client during the client session may also be cached at the access subsystem. Subsequent storage requests from the client during the session may be handled by the access subsystem using the cached session identifier and lock state indicator.
-
Citations
22 Claims
-
1. A system, comprising:
one or more computing devices configured to; receive, at an access subsystem of a distributed multi-tenant file storage service, a request to establish a client session for file store operations on behalf of a particular client, wherein subsequent file store requests in the client session are to be received via the access subsystem; transmit, from the access subsystem to a metadata subsystem of the file storage service, a request to initialize the client session; provide, to the access subsystem, a session identifier generated by the metadata subsystem based at least in part on a persistent session storage location at which one or more elements of metadata of the client session are stored, wherein the one or more elements include an indication of a lease associated with the client session; cache, at the access subsystem, the session identifier generated by the metadata subsystem and an indication of the lease, prior to a transmission of the session identifier to the particular client; receive, by the access subsystem, a different request from the client accessing a particular file store object, wherein the different request comprises the session identifier; provide, to the access subsystem, a lock state indicator associated with the particular file store object and generated in response to the different request, wherein the lock state indicator is stored at a persistent lock storage location determined by the metadata subsystem, and the lock state indicator comprises the session identifier; cache, at the access subsystem, the lock state indicator; utilize, at the access subsystem, the cached session identifier, the cached indication of the lease, and the cached lock state indicator to respond to a service request from the client directed to the particular file store object; and in response to a determination that a timeout associated with the lease has expired, delete (a) the lock state indicator from the persistent lock storage location, and (b) the session identifier from the persistent session storage location. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by one or more computing devices; receiving, at an access subsystem of a distributed file storage service, a request to establish a client session for file store operations on behalf of a particular client, wherein subsequent file store requests in the client session are to be received via the access subsystem; transmitting, from the access subsystem to a metadata subsystem of the distributed file storage service, a request to initialize the client session; receiving, at the access subsystem, a session identifier for the client session generated by the metadata subsystem based at least in part on a persistent session storage location at which one or more elements of metadata of the client session are stored; caching the session identifier generated by the metadata subsystem at the access subsystem prior to a transmission of the session identifier to the particular client; receiving, at the access subsystem, a particular request from the client, for which a lock is to be obtained on a particular file store object, wherein the particular request includes the session identifier; determining, at the metadata subsystem, that a conflicting lock state indicator associated with the particular file store object has been created on behalf of a different client; and rejecting the particular request. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
18. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
receive, at an access subsystem of a distributed file storage service, a request to establish a client session for file store operations on behalf of a particular client, wherein subsequent file store requests in the client session are to be received via the access subsystem; transmit, from the access subsystem to a metadata subsystem of the distributed file storage service, a request to initialize the client session; receive, at the access subsystem, a session identifier for the client session generated by the metadata subsystem based at least in part on a persistent session storage location at which one or more elements of metadata of the client session are stored; cache the session identifier generated by the metadata subsystem at the access subsystem prior to a transmission of the session identifier to the particular client; receive, at the access subsystem, a lock state indicator of a file store object from the metadata subsystem, wherein the lock state indicator is generated at the metadata subsystem in response to a particular request from the client during the client session; cache, at the access subsystem, the lock state indicator; and determine a response, at the access subsystem, to another request from the client directed to the particular file store object based at least in part on the cached session identifier and the cached indication of the lock state indicator. - View Dependent Claims (19, 20, 21, 22)
-
Specification