Patent ID: 7945752

Claim:
A method comprising: storing data in a storage subsystem formed from a plurality of non-volatile solid-state memory devices arranged in an N×M array of non-volatile solid-state memory elements, where M is at least three (3); applying a parity based redundancy scheme to the non-volatile solid-state memory elements, including defining N redundancy groups from among the plurality of non-volatile solid-state memory elements, each said redundancy group including M nonvolatile solid-state memory elements; scheduling operations on the storage subsystem so that erasure is limited to a predetermined sized subset of the non-volatile solid-state memory elements at a time in each said redundancy group; in response to a request to read a first set of data, identifying a first non-volatile solid-state memory element in which at least a portion of the first set of data is stored, the first non-volatile solid-state memory element being a member of a first redundancy group of the N redundancy groups; determining whether the first non-volatile solid-state memory element is busy; in response to a determination that the first non-volatile solid-state memory element is not busy, reading the first set of data from the first non-volatile solid-state memory element; in response to a request to read a second set of data, identifying a second non-volatile solid-state memory element in which at least a portion of the second set of data is stored, the second non-volatile solid-state memory element being a member of a second redundancy group of the N redundancy groups; determining whether the second non-volatile solid-state memory element is busy; and in response to a determination that the second non-volatile solid-state memory element is busy, reading information from the other non-volatile solid-state memory elements in the second redundancy group and reconstructing the second set of data from the information read from the other non-volatile solid-state memories in the second redundancy group.