Abstract:
A system, method and computer program product for receiving on a non-volatile, solid-state, cache memory system, a data segment, including a plurality of data elements, from one or more of a volatile, solid-state, cache memory system and a non-volatile, electromechanical memory system. The data segment may be stored on the non-volatile, solid-state, cache memory system. Each data element includes one or more data extents.
Abstract:
There is disclosed apparatus and methodology for enhancing computer system data transfer when writing to network attached storage systems employing FC-2 fibrechannel protocol by dynamically reconfiguring a fibrechannel switch in response to map/unmap command controls issued by a disk drive aggregator. The reconfiguration involves fabrication of a dynamic map table having sets of fibrechannel FC-2 header fields and their corresponding new or proxy destination IDs (which correspond to the switch's output ports), and fabrication of both an input frame header buffer for temporary storage purposes and a frame header field selector (which can be a frame header mask) containing only relevant information. The input frame header is temporarily stored in the buffer and the field selector is used to obtain a “distilled” input header which is compared with the dynamic map table of stored header fields to obtain a match. If one of the sets of header fields matches the distilled input header, its corresponding proxy destination or source ID is substituted into the corresponding FC-2 input frame header's destination ID field, whereby write command data transfers are accomplished between host computer and a particular disk drive directly, avoiding the aggregator and latency otherwise introduced by the aggregator. Similar disclosure is provided for read command data.
Abstract:
A system and method for expanding a log structure in a disk array, the disk array being expanded from M-width to N-width, the disk array including a storage level, the log structure including one or more sequential used segments, the one or more sequential used segments including live data, locates one or more sequential used segments, writes live data from the one or more located segments to the storage level, enlarges the size of the one or more located segments from M-width to N-width, and places the one or more enlarged segments on a first free segment list.
Abstract:
A high performance data path for performing XOR on the fly. A first memory is connected to a first bus and a second memory is connected to a second bus selectively coupled to the first bus. Logic for performing an XOR can be switched into connection with the first and second bus for XORing data in a buffer with the data passed from one of the memories to the other memory. The result is replaced into the buffer to permit successive XORing. When reading from an interrelated group of disks such as a RAID 3 group, the data path permits an N-1 and go mode in which a read does not wait for data from the last disk to retrieve its data sector. If the last disk contains data (as opposed to parity) the data is obtained from the XORed data in the XOR buffer of the high performance data path. For writing data, the XOR on the fly generates the parity sector for writing at the completion of a write to an interrelated group of disks.