Log-structured distributed storage using a single log sequence number space
First Claim
1. A system, comprising:
- a log-structured distributed storage system that maintains a log for a data volume, wherein updates to the log are assigned a log sequence number according to a log sequence number space for the data volume, wherein the log is segmented across a plurality of protection groups according to a partitioning of user data for the data volume such that a segment of the log and a partition of user data to which the segment of the log pertains are co-located together at a protection group, wherein each protection group comprises a plurality of storage nodes that provide redundant storage for a given segment of the log; and
a storage client that processes access requests for the data volume and is configured to;
in response to receiving an update to the log;
determine a protection group of the plurality of protection groups according to which partition of user data space the update pertains;
generate metadata to be included with a log record indicating the update, wherein the metadata comprises an indication of a previous log sequence number of a log record maintained at the protection group such that a position in a recovery sequence for the protection group and a position in the log sequence number space are identifiable;
send the log record to the protection group; and
based, at least in part, on acknowledgments received from one or more of the plurality of storage nodes implementing the protection group, identify the log record as eligible for durability in the log for the data volume.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed database system may implement log-structured distributed storage using a single log sequence number space. A log for a data volume may be maintained in a log-structured distributed storage system. The log may be segmented across multiple protection groups according to a partitioning of user data for the data volume. Updates to the log may be assigned a log sequence number from a log sequence number space for the data volume. A protection group may be determined for an update according to which partition of user data space the update pertains. Metadata to be included with the log record may indicate a previous log sequence number of a log record maintained at the protection group. The log record may be sent to the protection group and identified as committed based on acknowledgments received from storage nodes implementing the protection group.
136 Citations
21 Claims
-
1. A system, comprising:
-
a log-structured distributed storage system that maintains a log for a data volume, wherein updates to the log are assigned a log sequence number according to a log sequence number space for the data volume, wherein the log is segmented across a plurality of protection groups according to a partitioning of user data for the data volume such that a segment of the log and a partition of user data to which the segment of the log pertains are co-located together at a protection group, wherein each protection group comprises a plurality of storage nodes that provide redundant storage for a given segment of the log; and a storage client that processes access requests for the data volume and is configured to; in response to receiving an update to the log; determine a protection group of the plurality of protection groups according to which partition of user data space the update pertains; generate metadata to be included with a log record indicating the update, wherein the metadata comprises an indication of a previous log sequence number of a log record maintained at the protection group such that a position in a recovery sequence for the protection group and a position in the log sequence number space are identifiable; send the log record to the protection group; and based, at least in part, on acknowledgments received from one or more of the plurality of storage nodes implementing the protection group, identify the log record as eligible for durability in the log for the data volume. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by a plurality of computing devices; maintaining a log for a data volume at a log-structured distributed storage system for a storage client, wherein updates to the log are assigned a log sequence number according to a log sequence number space for the data volume, wherein the log is segmented across a plurality of protection groups according to a partitioning of user data for the data volume such that a segment of the log and a partition of user data to which the segment of the log pertains are co-located together at a protection group; and in response to receiving an update to the log; determining a protection group of the plurality of protection groups according to which partition of user data space the update pertains; generating metadata to be included with a log record indicating the update, wherein the metadata comprises an indication of a previous log sequence number of a log record maintained at the protection group such that a position in a recovery sequence for the protection group and a position in the log sequence number space for the data volume are identifiable; and sending the log record to the protection group. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A non-transitory, computer-readable storage medium, storing program instructions that when executed by a plurality of computing devices cause the plurality of computing devices to implement:
-
maintaining a log for a data volume at a log-structured distributed storage system for a storage client, wherein updates to the log are assigned a log sequence number according to a log sequence number space for the data volume, wherein the log is segmented across a plurality of protection groups according to a partitioning of user data for the data volume such that a segment of the log and a partition of user data to which the segment of the log pertains are co-located together at a protection group; and in response to receiving an update to the log; determining a protection group of the plurality of protection groups according to which partition of user data space the update pertains; generating metadata to be included with a log record indicating the update, wherein the metadata comprises an indication of a previous log sequence number of a log record maintained at the protection group such that a position in a recovery sequence for the protection group and a position in the log sequence number space for the data volume are identifiable; sending the log record to the protection group; and based, at least in part, on one or more acknowledgments of the log record received from one or more storage nodes of a plurality of storage nodes implementing the protection group, identifying the log record as eligible for durability in the log for the data volume. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification