Massively scalable object storage
First Claim
1. A method for coordinating events in a distributed system, comprising:
- synchronizing a first local clock at a first gateway with the master clock within a system skew threshold, and synchronizing a second local clock at a second gateway with the master clock within the system skew threshold, wherein the master clock is synchronized to coordinated universal time with a master skew threshold;
receiving, at the first gateway, a first request to manipulate a non-volatile data storage, and marking the first request with the time of reception according to the first local clock, with a granularity at least equal to the system skew threshold;
receiving, at the second gateway, a second request to manipulate the non-volatile data storage, and marking the second request with the time of reception according to the second local clock, with a granularity at least equal to the system skew threshold;
evaluating the first request and the second request to determine if they are unambiguously ordered by determining if the first request and the second request are temporally ordered with a granularity greater than the system skew threshold;
determining that the first request and the second request are not unambiguously ordered; and
modifying, based on determining that the first and second requests are not unambiguously ordered, the non-volatile data storage as directed by a deterministic tiebreaker.
4 Assignments
0 Petitions
Accused Products
Abstract
Several different embodiments of a massively scalable object storage system are described. The object storage system is particularly useful for storage in a cloud computing installation whereby shared servers provide resources, software, and data to computers and other devices on demand. In several embodiments, the object storage system includes a ring implementation used to associate object storage commands with particular physical servers such that certain guarantees of consistency, availability, and performance can be met. In other embodiments, the object storage system includes a synchronization protocol used to order operations across a distributed system. In a third set of embodiments, the object storage system includes a metadata management system. In a fourth set of embodiments, the object storage system uses a structured information synchronization system. Features from each set of embodiments can be used to improve the performance and scalability of a cloud computing object storage system.
-
Citations
20 Claims
-
1. A method for coordinating events in a distributed system, comprising:
-
synchronizing a first local clock at a first gateway with the master clock within a system skew threshold, and synchronizing a second local clock at a second gateway with the master clock within the system skew threshold, wherein the master clock is synchronized to coordinated universal time with a master skew threshold; receiving, at the first gateway, a first request to manipulate a non-volatile data storage, and marking the first request with the time of reception according to the first local clock, with a granularity at least equal to the system skew threshold; receiving, at the second gateway, a second request to manipulate the non-volatile data storage, and marking the second request with the time of reception according to the second local clock, with a granularity at least equal to the system skew threshold; evaluating the first request and the second request to determine if they are unambiguously ordered by determining if the first request and the second request are temporally ordered with a granularity greater than the system skew threshold; determining that the first request and the second request are not unambiguously ordered; and modifying, based on determining that the first and second requests are not unambiguously ordered, the non-volatile data storage as directed by a deterministic tiebreaker. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transient computer readable medium containing executable instructions, which when executed on one or more processors:
-
synchronizes a first local clock with a second local clock within a system skew threshold; receives a first request to manipulate a system resource and marks the first request with the time of reception according to the first local clock, with a granularity at least equal to the system skew threshold; receives a second request to manipulate the system resource and marks the second request with the time of reception according to the second local clock, with a granularity at least equal to the system skew threshold; evaluates the first request and the second request to determine if they are unambiguously ordered by determining if the first request and the second request are temporally ordered with a granularity greater than the system skew threshold; determines that the first request and the second request are not unambiguously ordered; executes, based on the determination that the first and second requests are not unambiguously ordered, tiebreaker instructions controlling the system resource; and returns a success or error depending on the outcome of the tiebreaker instructions. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification