Claims Analysis
Total Claims: 49
Claim 1
Independent Claim
156 words
An array controller that records data into segments of storage locations in a plurality of disk drive storage devices organized as a log structured array having segment-columns, each storage device having one or more disk platters, the array controller comprising: a write buffer in which data received from a host computer for recording into the storage locations of the disk drive storage devices is temporarily stored; a log structured array (LSA) directory containing disk locations that define segments of the disk drive storage devices comprising log structured array segments; a segment definition table that contains a storage device location definition for each segment of the LSA directory; and a control processor that dynamically modifies the segment definition table so as to define a new segment into which data is recorded by selecting sufficient segment-columns independently from each disk drive storage device of the array to define a new segment, and maintains the segment definition table accordingly.
Claim 2
Dependent Claim
156 words
An array controller that records data into segments of storage locations in a plurality of disk drive storage devices organized as a log structured array having segment-columns, each storage device having one or more disk platters, the array controller comprising: a write buffer in which data received from a host computer for recording into the storage locations of the disk drive storage devices is temporarily stored; a log structured array (LSA) directory containing disk locations that define segments of the disk drive storage devices comprising log structured array segments; a segment definition table that contains a storage device location definition for each segment of the LSA directory; and a control processor that dynamically modifies the segment definition table so as to define a new segment into which data is recorded by selecting sufficient segment-columns independently from each disk drive storage device of the array to define a new segment, and maintains the segment definition table accordingly.
Claim 3
Dependent Claim
35 words
An array controller as defined in claim 1, wherein the control processor selects a segment-column nearest a current arm position of a disk arm in each disk drive storage device to define a new segment.
Claim 4
Dependent Claim
43 words
An array controller as defined in claim 1, wherein the control processor selects a segment-column that is located within a predetermined relative distance from a current arm position of a disk arm in each disk drive storage device to define a new segment.
Claim 5
Dependent Claim
69 words
An array controller as defined in claim 3, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein a live data block corresponding to the current arm position is moved if the current arm position indicates that the disk arm has been idle for a time greater than a predetermined idle threshold time.
Claim 6
Dependent Claim
57 words
An array controller as defined in claim 4, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined percentage of live data blocks.
Claim 7
Dependent Claim
52 words
An array controller as defined in claim 4, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that has less than a predetermined percentage of live data blocks.
Claim 8
Dependent Claim
80 words
An array controller as defined in claim 4, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined first percentage of live data blocks; and if the disk arm is located on a segment-column that has less than a predetermined second percentage of live data blocks.
Claim 9
Dependent Claim
105 words
An array controller as defined in claim 4, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a first segment-column of a first segment having less than a predetermined first percentage of live data blocks, and if a second segment-column on that same disk is the closest segment-column less than a predetermined number of segment-columns away, and if the second segment-column has less than a predetermined second percentage of live data blocks, wherein the live data blocks are moved from the second segment-column.
Claim 10
Dependent Claim
47 words
An array controller as defined in claim 4, wherein the control processor further performs the garbage collection process by locating the segment number having the largest number of empty blocks, moving the idle disk arm to the corresponding segment-column, and proceeding with garbage collection in that segment-column.
Claim 11
Dependent Claim
91 words
An array controller as defined in claim 1, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the array controller moves the disk arm to a target segment-column from a present location and moves the corresponding live data blocks if the target segment-column has less than a predetermined percentage of live data blocks and if the present location of the disk arm is less than a predetermined number of segment-columns from the target segment-column.
Claim 12
Dependent Claim
35 words
An array controller as defined in claim 1, further including: an arm position table containing disk arm position data that indicates current relative disk position for a disk arm of each disk drive storage device.
Claim 13
Dependent Claim
60 words
An array controller as defined in claim 1, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein the live data blocks are moved from the target segment-column if the number of empty segments in the log structured array falls below a predetermined number.
Claim 14
Independent Claim
163 words
A method of storing data as segments in a log structured array having a plurality of data storage devices in response to requests received from a host computer for data read and write operations into the data storage devices, the method comprising the steps of: recording data received from the host computer into a write buffer; determining disk arm position data that indicates position of a disk arm in each data storage device; maintaining a log structured array (LSA) directory data structure that contains disk locations that define segments of the data storage devices comprising log structured array segments; recording data in the write buffer into segments of the data storage devices when the write buffer becomes full, such that the segments into which data is written are dynamically defined according to which segment-columns are nearest to a present disk arm position; and maintaining a segment definition table that indicates a data storage device location corresponding to the segment-columns that define each segment.
Claim 15
Independent Claim
163 words
A method of storing data as segments in a log structured array having a plurality of data storage devices in response to requests received from a host computer for data read and write operations into the data storage devices, the method comprising the steps of: recording data received from the host computer into a write buffer; determining disk arm position data that indicates position of a disk arm in each data storage device; maintaining a log structured array (LSA) directory data structure that contains disk locations that define segments of the data storage devices comprising log structured array segments; recording data in the write buffer into segments of the data storage devices when the write buffer becomes full, such that the segments into which data is written are dynamically defined according to which segment-columns are nearest to a present disk arm position; and maintaining a segment definition table that indicates a data storage device location corresponding to the segment-columns that define each segment.
Claim 16
Dependent Claim
49 words
A method of storing data as defined in claim 13, wherein the step of recording data into segments of the data storage devices comprises selecting a segment-column for recording according to the segment-column nearest a current disk arm position of each data storage device to form a new segment.
Claim 17
Dependent Claim
71 words
A method of storing data as defined in claim 13, further including the step of performing garbage collection by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein a live data block corresponding to a current arm position is moved if the disk arm position data indicates that the disk arm has been idle for a time greater than a predetermined idle threshold time.
Claim 18
Dependent Claim
57 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined percentage of live data blocks.
Claim 19
Dependent Claim
52 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that has less than a predetermined percentage of live data blocks.
Claim 20
Dependent Claim
86 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined first percentage of live data blocks; and if the disk arm position data indicates the disk arm is located on a segment-column that has less than a predetermined second percentage of live data blocks.
Claim 21
Dependent Claim
105 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed if a disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a first segment-column of a first segment having less than a predetermined first percentage of live data blocks, and if a second segment-column on that same disk is the closest segment-column less than a predetermined number of segment-columns away, and if the second segment-column has less than a predetermined second percentage of live data blocks, wherein the live data blocks are moved from the second segment-column.
Claim 22
Dependent Claim
46 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed by locating the segment having the largest number of empty blocks, moving the idle disk arm to the corresponding segment-column, and proceeding with garbage collection in that segment-column.
Claim 23
Dependent Claim
34 words
A method of storing data as defined in claim 15, wherein the step of garbage collection is performed if the number of empty segments in the array is below a threshold empty segment number.
Claim 24
Dependent Claim
114 words
A method of storing data as defined in claim 13, further including the step of performing a garbage collection process to free up an entire target segment by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the controller moves the disk arm to the target segment-column from a present location and moves the live data blocks from the target segment-column if the target segment-column has less than a predetermined number of live data blocks and if the present location of the disk arm is less than a predetermined number of segment-columns from the target segment-column and has less than a predetermined number of live data blocks.
Claim 25
Dependent Claim
71 words
A method of storing data as defined in claim 13, further including the step of performing a garbage collection process to free up an entire target segment by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the controller moves the live data blocks from the target segment-column if the number of empty segments in the log structured array falls below a predetermined number.
Claim 26
Dependent Claim
176 words
A data storage system that communicates with a host computer that generates requests for data read and write operations, the data storage system comprising: a plurality of disk drive storage devices having one or more platters, each of which includes storage locations in which data is stored by a disk arm; a write buffer in which data received from the host computer for writing into the data storage devices is temporarily stored; a log structured array (LSA) directory containing disk storage locations that define segments of the disk drive storage devices comprising log structured array segments; a segment definition table containing a location definition for each segment of the LSA directory; and a control processor that controls the storing of data in the disk drive storage devices such that the control processor dynamically defines a new segment into which data is recorded by selecting a segment-column independently from each disk drive storage device and maintains a segment definition table containing storage locations in the disk drive storage devices corresponding to the segment-columns that define each segment.
Claim 27
Dependent Claim
176 words
A data storage system that communicates with a host computer that generates requests for data read and write operations, the data storage system comprising: a plurality of disk drive storage devices having one or more platters, each of which includes storage locations in which data is stored by a disk arm; a write buffer in which data received from the host computer for writing into the data storage devices is temporarily stored; a log structured array (LSA) directory containing disk storage locations that define segments of the disk drive storage devices comprising log structured array segments; a segment definition table containing a location definition for each segment of the LSA directory; and a control processor that controls the storing of data in the disk drive storage devices such that the control processor dynamically defines a new segment into which data is recorded by selecting a segment-column independently from each disk drive storage device and maintains a segment definition table containing storage locations in the disk drive storage devices corresponding to the segment-columns that define each segment.
Claim 28
Dependent Claim
36 words
A data storage system as defined in claim 24, wherein the control processor selects a segment-column nearest a current arm position of a disk arm in each disk drive storage device to define a new segment.
Claim 29
Dependent Claim
44 words
A data storage system as defined in claim 24, wherein the control processor selects a segment-column that is located within a predetermined relative distance from a current arm position of a disk arm in each disk drive storage device to define a new segment.
Claim 30
Dependent Claim
69 words
A data storage system as defined in claim 26, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein a live data block corresponding to the current arm position is moved if the arm position indicates that the disk arm has been idle for a time greater than a predetermined idle threshold time.
Claim 31
Dependent Claim
58 words
A data storage system as defined in claim 27, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined percentage of live data blocks.
Claim 32
Dependent Claim
53 words
A data storage system as defined in claim 27, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that has less than a predetermined percentage of live data blocks.
Claim 33
Dependent Claim
81 words
A data storage system as defined in claim 27, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined first percentage of live data blocks; and if the disk arm is located on a segment-column that has less than a predetermined second percentage of live data blocks.
Claim 34
Dependent Claim
106 words
A data storage system as defined in claim 27, wherein the control processor further performs the garbage collection process if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a first segment-column of a first segment having less than a predetermined first percentage of live data blocks, and if a second segment-column on that same disk is the closest segment-column less than a predetermined number of segment-columns away, and if the second segment-column has less than a predetermined second percentage of live data blocks, wherein the live data blocks are moved from the second segment-column.
Claim 35
Dependent Claim
48 words
A data storage system as defined in claim 27, wherein the control processor further performs the garbage collection process by locating the segment number having the largest number of empty blocks, moving the idle disk arm to the corresponding segment-column, and proceeding with garbage collection in that segment-column.
Claim 36
Dependent Claim
93 words
A data storage system as defined in claim 24, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the data storage system moves the disk arm to the target segment-column from a present location and moves the corresponding live data blocks if the target segment-column has less than a predetermined percentage of live data blocks and if the present location of the disk arm is less than a predetermined number of segment-columns from the target segment-column.
Claim 37
Dependent Claim
35 words
A data storage system as defined in claim 24, further including: an arm position table containing disk arm position data that indicates relative disk position for a disk arm of each disk drive storage device.
Claim 38
Dependent Claim
61 words
A data storage system as defined in claim 24, wherein the control processor performs a garbage collection process by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein the live data blocks are moved from the target segment-column if the number of empty segments in the log structured array falls below a predetermined number.
Claim 39
Dependent Claim
185 words
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for storing data as segments in a log structured array having a plurality of data storage devices in response to requests received from a host computer for data read and write operations into the data storage devices, the method steps performed by the machine comprising: recording data received from the host computer into a write buffer; determining disk arm position data that indicates position of a disk arm of each data storage device; maintaining a log structured array (LSA) directory data structure that contains disk locations that define segments of the data storage devices comprising log structured array segments; recording data in the write buffer into segments of the data storage devices when the write buffer becomes full, such that the segments into which data is written are dynamically defined according to which segment-columns are nearest to a present disk arm position; and maintaining a segment definition table that indicates a data storage device location corresponding to the segment-columns that define each segment.
Claim 40
Dependent Claim
185 words
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for storing data as segments in a log structured array having a plurality of data storage devices in response to requests received from a host computer for data read and write operations into the data storage devices, the method steps performed by the machine comprising: recording data received from the host computer into a write buffer; determining disk arm position data that indicates position of a disk arm of each data storage device; maintaining a log structured array (LSA) directory data structure that contains disk locations that define segments of the data storage devices comprising log structured array segments; recording data in the write buffer into segments of the data storage devices when the write buffer becomes full, such that the segments into which data is written are dynamically defined according to which segment-columns are nearest to a present disk arm position; and maintaining a segment definition table that indicates a data storage device location corresponding to the segment-columns that define each segment.
Claim 41
Dependent Claim
50 words
A program storage device as defined in claim 36, wherein the machine performed method step of recording data into segments of the data storage devices comprises selecting a segment-column for recording according to the segment-column nearest a current position of each disk drive storage device to form a new segment.
Claim 42
Dependent Claim
79 words
A program storage device as defined in claim 36, wherein the machine performed method steps further include the step of: performing a garbage collection process by moving live data blocks of segment-columns in a target segment to a temporary storage buffer, wherein a live data block corresponding to the current arm position is moved if the current disk arm position data indicates that the disk arm has been idle for a time greater than a predetermined idle threshold time.
Claim 43
Dependent Claim
56 words
A program storage device as defined in claim 38, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined percentage of live data blocks.
Claim 44
Dependent Claim
51 words
A program storage device as defined in claim 38, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that has less than a predetermined percentage of live data blocks.
Claim 45
Dependent Claim
79 words
A program storage device as defined in claim 38, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a segment-column that is part of a segment having less than a predetermined first percentage of live data blocks; and if the disk arm is located on a segment-column that has less than a predetermined second percentage of live data blocks.
Claim 46
Dependent Claim
107 words
A program storage device as defined in claim 38, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located on a first segment-column of a first segment having less than a predetermined first percentage of live data blocks, and if a second segment-column on that same disk is the closest segment-column less than a predetermined number of segment-columns away, and if the second segment has less than a predetermined second percentage of live data blocks, wherein garbage collection is performed to move live data blocks from the second segment-column.
Claim 47
Dependent Claim
58 words
A program storage device as defined in claim 38, wherein the step of garbage collection is performed if the disk arm that has been idle for a time greater than the predetermined idle threshold time is located in a segment having the largest number of empty blocks in the array, and in a corresponding segment-column in that segment.
Claim 48
Dependent Claim
98 words
A program storage device as defined in claim 36, wherein the machine performed method steps further include the step of: performing a garbage collection process by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the controller moves the disk arm to the target segment-column from a present location and moves the corresponding live data blocks if the target segment-column has less than a predetermined percentage of live data blocks and if the present location of the disk arm is less than a predetermined number of segment-columns from the target segment-column.
Claim 49
Dependent Claim
63 words
A program storage device as defined in claim 36, further including the step of performing a garbage collection process by moving live data blocks of segment-columns in the target segment to a temporary storage buffer, wherein the controller moves the live data blocks from the target segment-column if the number of empty segments in the log structured array falls below a predetermined number.