System and method for inline erasure coding for a distributed log structured storage system
First Claim
1. A method comprising:
- receiving a write request for first data from a file system;
selecting a physical sector on a selected storage device in an array of storage devices on which to store the first data;
assigning a key to the physical sector;
storing the key and an indication of the physical sector in a key-to-physical medium map;
erasure coding the first data, including generating parity data associated with the first data;
writing the first data and the parity data as a data stripe to each storage device in the array of storage devices;
in response to receiving the write request, sending the key to the file system;
designating one of the storage devices in the array of storage devices as a first write leader;
routing subsequent write requests from the file system only to the first write leader;
executing a write leader election algorithm to designate another of the storage devices in the array of storage devices as a second write leader, different from the first write leader; and
after designating the second write leader, routing further subsequent write requests from the file system only to the second write leader.
1 Assignment
0 Petitions
Accused Products
Abstract
Presented herein are methodologies for implementing erasure coding in a distributed log structured storage system. A method includes receiving a write request for first data from a file system, selecting a physical sector on a selected storage device in an array of storage devices on which to store the first data, assigning a key to the physical sector, storing the key and an indication of the physical sector in a key-to-physical medium map, erasure coding the data, including generating parity data associated with the first data, writing the first data and the parity data as a data stripe to each storage device in the array of storage devices and, in response to receiving the write request, sending the key to the file system. Read, update, and delete procedures in the context of a log structured framework are also described.
50 Citations
17 Claims
-
1. A method comprising:
-
receiving a write request for first data from a file system; selecting a physical sector on a selected storage device in an array of storage devices on which to store the first data; assigning a key to the physical sector; storing the key and an indication of the physical sector in a key-to-physical medium map; erasure coding the first data, including generating parity data associated with the first data; writing the first data and the parity data as a data stripe to each storage device in the array of storage devices; in response to receiving the write request, sending the key to the file system; designating one of the storage devices in the array of storage devices as a first write leader; routing subsequent write requests from the file system only to the first write leader; executing a write leader election algorithm to designate another of the storage devices in the array of storage devices as a second write leader, different from the first write leader; and after designating the second write leader, routing further subsequent write requests from the file system only to the second write leader. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A device comprising:
-
an interface unit configured to enable network communications; a memory; and one or more processors coupled to the interface unit and the memory, and configured to; receive a write request for first data from a file system; select a physical sector on a selected storage device in an array of storage devices on which to store the first data; assign a key to the physical sector; store the key and an indication of the physical sector in a key-to-physical medium map; erasure code the first data, including generating parity data associated with the first data; write the first data and the parity data as a data stripe to each storage device in the array of storage devices; in response to receipt of the write request, send the key to the file system; designate one of the storage devices in the array of storage devices as a first write leader; route subsequent write requests from the file system only to the first write leader; execute a write leader election algorithm to designate another of the storage devices in the array of storage devices as a second write leader, different from the first write leader; and after the second write leader is designated, route further subsequent write requests from the file system only to the second write leader. - View Dependent Claims (12, 13, 14)
-
-
15. A non-transitory computer readable storage media encoded with instructions that, when executed by a processor, cause the processor to:
-
receive a write request for first data from a file system; select a physical sector on a selected storage device in an array of storage devices on which to store the first data; assign a key to the physical sector; store the key and an indication of the physical sector in a key-to-physical medium map; erasure code the first data, including generating parity data associated with the first data; write the first data and the parity data as a data stripe to each storage device in the array of storage devices; in response to receiving the write request, send the key to the file system; designate one of the storage devices in the array of storage devices as a first write leader; route subsequent write requests from the file system only to the first write leader; execute a write leader election algorithm to designate another of the storage devices in the array of storage devices as a second write leader, different from the first write leader; and after the second write leader is designated, route further subsequent write requests from the file system only to the second write leader. - View Dependent Claims (16, 17)
-
Specification