Conditional writes at distributed storage services
First Claim
1. A system, comprising:
- one or more computing devices configured to;
determine, at a client of a storage subsystem of a distributed multi-tenant storage service, that a particular file store operation is to be implemented at least in part as a read-modify-write sequence directed to a particular physical page of a file store object, wherein the storage subsystem is configured to use a replicated state machine to coordinate changes to the file store object;
receive, at a selected node of the storage subsystem, a read request directed to the particular physical page by the client, wherein the selected node is selected by the storage service based at least in part on the particular physical page;
obtain, at the selected node, a read logical timestamp from the replicated state machine, wherein the read logical timestamp is indicative of an order in which the read request was processed at the selected node relative to other service requests directed to the file store object;
transmit, by the selected node to the client, the read logical timestamp;
receive, at the selected node, a write request directed to the particular physical page, wherein the write request indicates (a) a modification to be applied to the particular physical page and (b) the read logical timestamp of the read request;
determine, by the selected node, using the replicated state machine and the read logical timestamp indicated in the write request, whether the particular physical page has been modified since the read logical timestamp was obtained by the selected node from the replicated state machine; and
in response to a determination that the particular physical page has not been modified since the read logical timestamp was obtained, apply the modification to the particular physical page.
1 Assignment
0 Petitions
Accused Products
Abstract
A node of a distributed storage service receives a read request from a client, directed to a particular physical page storing at least a portion of a file store object. The node transmits, to the client, a particular operation sequence number (OSN), obtained from a replicated state machine, indicative of an order in which the read request was processed at the node relative to other requests directed to the file store object. The node receives a write request from the client directed to the page. The write request includes the particular OSN. The node determines whether the page has been modified after the particular OSN was obtained. If the page has not been modified since the OSN was obtained, a modification indicated in the write request is performed; otherwise, the write request is rejected.
41 Citations
21 Claims
-
1. A system, comprising:
one or more computing devices configured to; determine, at a client of a storage subsystem of a distributed multi-tenant storage service, that a particular file store operation is to be implemented at least in part as a read-modify-write sequence directed to a particular physical page of a file store object, wherein the storage subsystem is configured to use a replicated state machine to coordinate changes to the file store object; receive, at a selected node of the storage subsystem, a read request directed to the particular physical page by the client, wherein the selected node is selected by the storage service based at least in part on the particular physical page; obtain, at the selected node, a read logical timestamp from the replicated state machine, wherein the read logical timestamp is indicative of an order in which the read request was processed at the selected node relative to other service requests directed to the file store object; transmit, by the selected node to the client, the read logical timestamp; receive, at the selected node, a write request directed to the particular physical page, wherein the write request indicates (a) a modification to be applied to the particular physical page and (b) the read logical timestamp of the read request; determine, by the selected node, using the replicated state machine and the read logical timestamp indicated in the write request, whether the particular physical page has been modified since the read logical timestamp was obtained by the selected node from the replicated state machine; and in response to a determination that the particular physical page has not been modified since the read logical timestamp was obtained, apply the modification to the particular physical page. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by one or more computing devices comprising one or more respective hardware processors; receiving, at a selected node of a storage subsystem of a distributed storage service, a read request of a read-modify-write sequence directed to a particular physical page of a storage object by a client of the storage subsystem, wherein the selected node is selected by the storage service based at least in part on the particular physical page; transmitting, by the selected node to the client, a read logical timestamp indicative of an order in which the read request was processed at the selected node relative to other service requests directed to the file store object, wherein the read logical timestamp is obtained from a replicated state machine; and applying, by the selected node, a modification indicated in a write request of the read-modify-write sequence in response to determining that the particular physical page has not been modified since the read logical timestamp was obtained, wherein the write request indicates the read logical timestamp of the read request. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
receive, at a selected node of a storage subsystem of a distributed storage service, a read request of a read-modify-write sequence from a client, directed to a particular physical page storing at least a portion of a file store object, wherein the selected node is selected by the storage service based at least in part on the particular physical page; transmit, by the selected node to the client, a first operation sequence number (OSN) indicative of an order in which the read request was processed at the selected node relative to one or more other requests directed to the file store object, wherein the first OSN is received from a replicated state machine associated with the file store object; receive, at the selected node, a write request from the client directed to the particular physical page, wherein the write request includes the first OSN of the read request; apply, by the selected node, a modification indicated in the write request in response to determining that the particular physical page has not been modified since the first OSN was obtained. - View Dependent Claims (18, 19, 20, 21)
-
Specification