Patents by Inventor William H. Moore
William H. Moore has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7689877Abstract: A method for reconstructing corrupted data, which includes determining a number of non-parity disks (n), selecting a first combination of n-1 non-parity disks, obtaining a first set of physical blocks from the first combination of n-1 non-parity disks, obtaining a parity block associated with the first set of physical blocks, reconstructing a first physical block using the first set of physical blocks and the parity block, combining the first physical block and the first set of physical blocks to obtain a first reconstructed logical block, checksuming the first reconstructed logical block to obtain a first calculated checksum, and determining whether the first calculated checksum is equal to a stored checksum associated with the first reconstructed logical block.Type: GrantFiled: April 19, 2006Date of Patent: March 30, 2010Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Patent number: 7657671Abstract: In general, the invention relates to a method for storing data. The method includes receiving an Input/Output (I/O) request to store data in a storage pool, determining whether the I/O request is a resilvering I/O request, if the I/O request is a resilvering I/O request: associating the I/O request with a first deadline, wherein the first deadline is associated with a low priority, and determining the quantized deadline for the I/O request using the first deadline. If the I/O request is not the resilvering I/O request: associating the I/O request with a second deadline, determining the quantized deadline for the I/O request using the second deadline, placing the I/O request in the I/O queue using the quantized deadline, and issuing the I/O request to the storage pool using the I/O queue.Type: GrantFiled: April 19, 2006Date of Patent: February 2, 2010Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
Publication number: 20090327602Abstract: A method for wear level-based allocation in a storage pool. The method includes receiving a first request to write a first data item in a storage pool, where the storage pool includes a number of physical locations associated with the storage devices, and where each of the storage devices includes metadata regarding a level of wear of the storage device. The method further includes determining a first target physical location selected from the plurality of physical locations by using a wear-level selection policy and a wear cost for each of the storage devices, where the wear cost is determined based on a type of the storage device. The method further includes allocating a first data block to the first target physical location writing the first data block to the first target physical locations, wherein the first data block comprises a first portion of the first data item.Type: ApplicationFiled: June 30, 2008Publication date: December 31, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: William H. Moore, Darrin P. Johnson, Eric C. Saxe
-
Publication number: 20090313532Abstract: A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n?1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n?1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool.Type: ApplicationFiled: August 20, 2009Publication date: December 17, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Publication number: 20090265519Abstract: A method for retrieving a logical block, including receiving a request to read the logical block, and obtaining metadata associated with the logical block, wherein the metadata includes a replication type used to store the logical block and physical block locations in a storage pool for each physical block associated with the logical block. The method further includes obtaining power state information including a power state for the storage devices specified in the physical block locations, selecting a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy, and generating I/O requests, where each I/O request specifies one of the first set of physical block locations. The method further includes issuing the I/O requests, receiving physical blocks in response to the I/O requests, and constructing the logical block using the physical blocks.Type: ApplicationFiled: April 18, 2008Publication date: October 22, 2009Applicant: Sun Microsystems, Inc.Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
-
Patent number: 7596739Abstract: A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n?1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n?1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool.Type: GrantFiled: May 15, 2006Date of Patent: September 29, 2009Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 7584229Abstract: A method for priority-based allocation in a storage pool involves receiving a request to write a data item in the storage pool, where the storage pool includes multiple metaslabs, and where each of the metaslabs includes a contiguous region of data. The method further involves determining a target metaslab selected from the multiple metaslabs by comparing multiple allocation priorities, where each of the allocation priorities is associated with one of the metaslabs, allocating a block to the target metaslab, and writing the block to the target metaslab, where the block includes a portion of the data item.Type: GrantFiled: October 31, 2006Date of Patent: September 1, 2009Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Darrin P. Johnson, Jeffrey S. Bonwick, Tabriz I. Holtz
-
Patent number: 7533225Abstract: A method for reading a block, involving receiving a request to obtain the block, wherein the request comprises a block pointer, determining a block endianness by reading an endianness bit, obtaining the block using the block pointer, and byte-swapping data in the block to obtain a byte-swapped block, if a host endianness does not match the block endianness.Type: GrantFiled: August 17, 2004Date of Patent: May 12, 2009Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
Patent number: 7526615Abstract: A method for caching a block of data. The method including receiving a request to store the block and determining whether an active cache is able to expand. If the active cache is able to expand, then expanding the active cache to obtain an expanded active cache, and storing the block in the expanded active cache. If the active cache is not able to expand, then determining whether evictable blocks are present in the victim cache. If evictable blocks are present in the victim cache, then evicting a sufficient number of the evictable blocks from the victim cache to facilitate storing the block in the active cache, where the evictable blocks in the victim cache are compressed.Type: GrantFiled: August 31, 2006Date of Patent: April 28, 2009Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Mark J. Maybee, Matthew A. Ahrens
-
Publication number: 20090086650Abstract: In general, in one aspect, the invention relates to a method for conserving power. The method includes determining a first network connection speed for a network interface card (NIC), configuring the NIC to operate at the first network connection speed, processing, after the configuration, packets received by the NIC, obtaining a bandwidth utilization of the NIC, determining, using a power management policy, a second network connection speed for the NIC based on the bandwidth utilization when the bandwidth utilization is outside a threshold range, and configuring the NIC to operate at the second network connection speed.Type: ApplicationFiled: September 27, 2007Publication date: April 2, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: William H. Moore, Darrin P. Johnson, Randall S. Fishel
-
Publication number: 20090089343Abstract: A method for priority-based allocation in a storage pool, involving receiving a first request to write a first data item in the storage pool, wherein the storage pool includes a first hybrid drive including a first plurality of metaslabs associated with a first storage type and a second plurality of metaslabs associated with a second storage type, selecting a first target metaslab from the first and second plurality of metaslabs based on a first plurality of allocation priorities, wherein the first plurality of allocation priorities are determined using a storage and power management policy, a storage characteristic, and a power characteristic associated with the first storage type and the second storage type in the first hybrid drive, allocating a first block to the first target metaslab, and writing the first block to the first target metaslab, wherein the first block includes a first portion of the first data item.Type: ApplicationFiled: September 27, 2007Publication date: April 2, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
-
Patent number: 7480684Abstract: A method for locating a root block in file system metadata, includes traversing the file system metadata to locate a leaf block, wherein the leaf block comprises a plurality of root blocks and at least one of the plurality of root blocks is unallocated, allocating the at least of one the plurality of unallocated root blocks to obtain an allocated root block, wherein the leaf block is associated with a fill count and the fill count is less than a maximum fill count of the leaf block.Type: GrantFiled: April 20, 2006Date of Patent: January 20, 2009Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
Patent number: 7478179Abstract: A method for executing input/output (I/O) operations based on priority involves receiving a first I/O request for a unit of data, receiving a second I/O request for the same unit of data, determining a priority of the first I/O request and a priority of the second I/O request, and executing the first I/O request based on priority, where the first I/O request is executed based on the higher of the priority of the first I/O request and the priority of the second I/O request.Type: GrantFiled: May 12, 2006Date of Patent: January 13, 2009Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Patent number: 7469320Abstract: A method for caching a block, which includes receiving a request to store the block in a cache and determining whether the cache is able to expand. If the cache is not able to expand, then determining whether evictable blocks are present in the cache and, if evictable blocks are present in the cache determining whether a total size of the evictable blocks is greater than or equal to a size of the block, evicting a sufficient number of the evictable blocks from the cache and storing the block in the cache, if the total size of the evictable blocks is greater than or equal to the size of the block, and activating a cache throttle, if the total size of the evictable blocks is less than the size of the block.Type: GrantFiled: May 3, 2006Date of Patent: December 23, 2008Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Mark J. Maybee, Matthew A. Ahrens
-
Patent number: 7437528Abstract: A method for allocating space on a disk involving receiving a request to allocate space on the disk having a first size, determining whether contiguous space of the first size exists on the disk. If contiguous space of the first size exists on the disk, allocating the contiguous space on the disk to obtain a contiguous space address, and responding to the request to allocate space on disk with a contiguous space pointer. If no contiguous space of the first size exists on the disk, allocating a gang block header, populating the gang block header, and responding to the request to allocate space on the disk with a gang block header pointer.Type: GrantFiled: August 17, 2004Date of Patent: October 14, 2008Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 7398329Abstract: A method for pipelining execution input/output (I/O) includes obtaining a first I/O operation, determining a first plurality of stages of a pipeline needed to execute the first I/O operation, and executing each of the first plurality of stages to complete the I/O operation, wherein the first plurality of stages is a subset of a plurality of stages associated with pipeline, and wherein each of the first plurality of stages of the pipeline is executed in sequence.Type: GrantFiled: April 20, 2006Date of Patent: July 8, 2008Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Patent number: 7386692Abstract: A method for storing data, including receiving a request to store data in a storage pool, determining a quantized deadline for the request, placing the request in an Input/Output (I/O) queue using the quantized deadline, and issuing the request to the storage pool using the I/O queue.Type: GrantFiled: August 20, 2004Date of Patent: June 10, 2008Assignee: Sun Microsystems, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Publication number: 20080126580Abstract: A method for processing a first input/output (I/O) request on a network attached storage (NAS) device that includes receiving the first I/O request from a source by the NAS device, placing the first I/O request in an I/O queue associated with the NAS device, wherein the first I/O request is placed in the I/O queue based on a priority of the first I/O request using a remote storage access protocol, and when the first I/O request is associated with the highest priority in the I/O queue, determining whether a bandwidth associated with the source of the first I/O request is exceeded, processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded, and placing the first I/O request in sleep mode if the bandwidth associated with the source of the first I/O request is exceeded.Type: ApplicationFiled: July 20, 2006Publication date: May 29, 2008Applicant: Sun Microsystems, Inc.Inventors: Sunay Tripathi, William H. Moore, Brian L. Wong
-
Patent number: 7376758Abstract: A method for executing a selected input/output (I/O) command from a plurality of I/O commands based on a dependency graph of I/O commands includes building the dependency graph of I/O commands, wherein the dependency graph is built by requiring all children of the selected I/O command to be ready before the selected I/O command is ready, and executing the I/O command based on the dependency graph, wherein execution of the selected I/O command is completed when all of the children of the selected I/O command finish execution.Type: GrantFiled: April 20, 2006Date of Patent: May 20, 2008Assignee: Sun Microsystems, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore
-
Publication number: 20080104204Abstract: A method for power-managing storage devices in a storage pool involves monitoring the storage pool to determine whether a storage management policy is satisfied, where the storage pool comprises a first storage device that is powered up and a second storage device that is powered down, powering up the second storage device after the storage management policy is satisfied, and making the second storage device available for use in the storage pool after the second storage device is powered up.Type: ApplicationFiled: October 31, 2006Publication date: May 1, 2008Applicant: Sun Microsystems, Inc.Inventors: William H. Moore, Darrin P. Johnson, Tabriz I. Holtz