IP Library Granted Patent US 9,880,753
Granted Patent B2
US 9,880,753 · App. 13/492,615 · Granted Jan 30, 2018

Write requests in a distributed storage system

Inventors: Antoni Sawicki (Mountain View, CA); Tomasz Nowak (San Jose, CA); Kelly Murphy (Los Altos, CA)
Assignee: GRIDSTORE INC.
G06F3/0619G06F3/067G06F3/0659G06F11/1662H04L67/1097G06F11/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,880,753
App. No.
13/492,615
Granted
Jan 30, 2018
Kind
B2
Abstract

Example data storage systems and methods are described. In one implementation, a method identifies data to be written to a shared storage system that includes multiple storage nodes. The method communicates a write operation vote request to each of the multiple storage nodes. The write operation vote request is associated with a data write operation to write the identified data to the shared storage system. A positive response is received from at least a portion of the multiple storage nodes. The data write operation is initiated in response to receiving positive responses from a quorum of the storage nodes.

Claims (22)

1. A computer-implemented method comprising:

sharing, by a plurality of client machines, a shared storage system comprising a plurality of storage nodes;

running an instance of a storage-controller software on each client machine of the plurality of client machines;

identifying, by a first instance of the storage-controller software running on a first client machine of the plurality of client machines, data to be written to the shared storage system;

communicating, by the first instance of the storage-controller software, a write operation vote request to each of the plurality of storage nodes, the write operation vote request corresponding to a data write operation to write the data to the shared storage system;

receiving, by the first instance of the storage-controller software, positive responses to the write operation vote request from more than half the plurality of storage nodes, wherein each response of the positive responses indicates that the associated storage node is available to accept a new write operation; and

initiating, by the first instance of the storage-controller software, the data write operation responsive to receiving the positive responses from half of the plurality of storage nodes plus 1 if the number of the plurality of storage nodes is even or half of the plurality of storage nodes plus ½ if the number of the plurality of storage nodes is odd, wherein the data write operation stripes the data across all of the plurality of storage nodes such that all the data is stored by the plurality of storage nodes and no node of the plurality of storage nodes stores all the data.

2. A method as recited in claim 1 , further comprising preventing other data write operations to any of the plurality of storage nodes until the data write operation is complete.

3. A method as recited in claim 1 , wherein the write operation concurrently writes strips of the data to the plurality of storage nodes.

4. A method as recited in claim 1 , wherein the data write operation redundantly stores the data on the plurality of storage nodes.

5. A method as recited in claim 1 , wherein the communicating of the write operation vote request to each of the plurality of storage nodes is performed without requesting an acknowledgement receipt from the plurality of storage nodes.

6. A system comprising:

a plurality of client machines;

a shared storage system that is shared by the plurality of client machines and comprises a plurality of storage nodes; and

a plurality of instances of a storage-controller software, each instance thereof running on a different client machine of the plurality of client machines, wherein the storage-controller software is programmed to:

identify data to be written to the shared storage system;

communicate a write operation vote request to each of the plurality of storage nodes, the write operation vote request associated with a data write operation to write the data to the shared storage system;

receive positive responses to the write operation vote request from at least a portion of the plurality of storage nodes, wherein each response of the positive responses indicates that the associated storage node is available to accept a new write operation; and

initiate the data write operation responsive to receiving positive responses from a quorum of the storage nodes, wherein the quorum of the storage nodes is half of the plurality of storage nodes plus 1 if the number of the plurality of storage nodes is even or half of the plurality of storage nodes plus ½ if the number of the plurality of storage nodes is odd, wherein the data write operation stripes the data across all of the plurality of storage nodes such that all the data is stored by the plurality of storage nodes and no node of the plurality of storage nodes stores all the data.

7. The system as recited in claim 6 , wherein the storage-controller software is further programmed to prevent additional data write operations to any of the plurality of storage nodes until the data write operation is complete.

8. The system as recited in claim 6 , wherein the storage-controller software is further programmed to repeat communication of the write operation vote request responsive to failing to receive a positive response from a quorum of the storage nodes within a predetermined time period.

9. The system as recited in claim 6 , wherein the data write operation concurrently writes strips of the data to the plurality of storage nodes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2013
From: GRIDSTORE INC.
To: TENOWARE R&D LIMITED
Reel/Frame 031669/0585 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2012
From: SAWICKI, ANTONI; NOWAK, TOMASZ; MURPHY, KELLY
To: GRIDSTORE INC.
Reel/Frame 028821/0658 →
Priority Claims (1)
IE S2007/0453 · Jun 22, 2007 · national
Continuity (3)
Continuation In Part 12143134 · Jun 20, 2008
Provisional Application 61520560 · Jun 10, 2011
Related Publication 20130145105A1 · Jun 6, 2013