Storage system with guaranteed read latency
AssigneeDSSD, Inc.
InventorsWilliam H. Moore, Jeffrey S. Bonwick
Life of this patent
Estimating the term…
Abstract
A method for writing data to persistent storage. The method includes receiving a first request to write a first datum to persistent storage including NAND dies, identifying a first NAND die in which to write a first copy of the first datum and a second NAND die in which to write a second copy, generating a second request to write the first copy of the first datum to the first NAND die and a third request to write the second copy to the second NAND die, and waiting until the first NAND die and second NAND die not are busy. Based on a determination that the first NAND die and the second NAND die are not busy: issuing the second request to the first NAND die, and issuing the third request to the second NAND die after the second request is complete.
Claims20
A method for writing data to persistent storage, comprising:
- receiving a first request to write a first datum to persistent storage, wherein the persistent storage comprises a plurality of NAND dies;
- in response to the first request:
- identifying a first NAND die in which to write a first copy of the first datum;
- identifying a second NAND die in which to write a second copy of the first datum;
- generating a second request to write the first copy of the first datum to the first NAND die;
- generating a third request to write the second copy of the first datum to the second NAND die;
- waiting until the first NAND die and second NAND die not are busy;
- based on a determination that the first NAND die and the second NAND die are not busy:
- issuing the second request to the first NAND die;
- and
- issuing the third request to the second NAND die after the second request is complete.
A system, comprising:
- a control module comprising:
- an Input/Output module (IOM);
- a processor;
- a first memory connected to the processor;
- a switch fabric, wherein the IOM and the processor are connected to the switch fabric;
- a first storage module connected to the control module using the switch fabric and comprising:
- a second memory;
- a first persistent storage;
- a second storage module connected to the control module using the switch fabric and comprising:
- a third memory;
- a second persistent storage;
- wherein the control module is configured to:
- receive, from the control module, a first request to write a first datum to persistent storage, wherein the persistent storage comprises the first persistent storage and the second persistent storage;
- in response to the first request:
- identify a first NAND die in which to write a first copy of the first datum, wherein the first NAND die is located in the first persistent storage;
- identify a second NAND die in which to write a second copy of the first datum, wherein the first NAND die is located in the first persistent storage;
- generate a second request to write the first copy of the first datum to the first NAND die;
- generate a third request to write the second copy of the first datum to the second NAND die;
- waiting until the first NAND die and second NAND die are not busy;
- based on the determination that the first NAND die and the second NAND die are not busy:
- issue the second request to the first NAND die;
- and
- issue the third request to the second NAND die after the second request is complete.
A method for reading data comprising:
- receiving a request to read the data, wherein the request comprises a logical address;
- determining a plurality of physical addresses based on the logical address, wherein a first physical address of the plurality of physical addresses comprises a first datum, wherein a second physical address of the plurality of physical addresses comprises a second datum, wherein a third physical address of the plurality of physical addresses comprises parity datum;
- identifying the first physical address and the second physical address, wherein the first physical address corresponds to a location on a first NAND die, the second physical address corresponds to a location on a second NAND die, the third physical address corresponds to a location on a third NAND die, wherein the first NAND die and the third NAND die are not busy and the second NAND die is busy;
- obtaining the first datum from the first NAND die and the parity datum from the third NAND die;
- reconstructing the second datum from the first datum and the parity datum;
- combining the first datum and the second datum to obtain the data;
- and
- returning the data to the client.
Dependencies are inferred from the claim text.