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: 8069156
    Abstract: A computer readable medium including executable instructions for resilvering a hierarchical block tree in a storage pool. Resilvering the hierarchical block tree involves determining that a birth time of a parent block of a branch is greater than or equal to a lowest birth time on a dirty time log (DTL) and selectively traversing child indirect blocks in the branch to obtain a child data block, where each of the child indirect blocks includes a block pointer, a data checksum, and a birth time for a referenced block, where the birth time of each of the child indirect blocks is no greater than the birth time of the parent block. Resilvering the hierarchical block tree further involves resilvering the child data block when the DTL includes a birth time of the child data block, where one of the child indirect blocks includes the birth time of the child data block.
    Type: Grant
    Filed: February 17, 2010
    Date of Patent: November 29, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
  • Publication number: 20110283113
    Abstract: A processing device may generate a data encryption key configured to encrypt unique data within a clone of an encrypted data set and associated with a set of transaction identifiers of a transaction based file system. The processing device may further wrap the data encryption key with a wrapping key, create a cloned encrypted data set with the data encryption key, and store the wrapped data encryption key with the cloned encrypted data set indexed by at least one of the set of transaction identifiers.
    Type: Application
    Filed: May 14, 2010
    Publication date: November 17, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Darren J. Moffat, Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens, Mark J. Maybee, George Wilson, Neil V. Perrin
  • Publication number: 20110178997
    Abstract: A computer readable medium having software instructions that, when executed, perform a method for preserving data stored in a file system with a plurality of files. The method involves determining whether storage capacity of the file system has reached a threshold level, wherein the threshold level is stored in at least one of a plurality of size-reducing policies, obtaining a criterion from the at least one size-reducing policy, identifying a subset of the plurality of files that match the criterion, accessing metadata of each of the identified subset of files, wherein the metadata of each of the identified subset of files comprises at least one option for reducing a size of the file, and performing a size-reducing action to reduce a size of each of the identified subset of files based on the option for reducing the size of each of the identified subset of files and the criterion.
    Type: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, William H. Moore, Eric C. Saxe
  • Patent number: 7984193
    Abstract: 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: Grant
    Filed: September 27, 2007
    Date of Patent: July 19, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Randall S. Fishel
  • Patent number: 7930495
    Abstract: A method for resilvering a storage pool includes identifying a live block in the storage pool, determining whether a birth time associated with the live block is on a dirty time log (DTL), and resilvering the live block, if the birth time is on the DTL.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: April 19, 2011
    Assignee: Oracle America, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore
  • Patent number: 7925827
    Abstract: A method for storing a block in a file system includes attempting to store the block at a location on a disk, where the block is associated with a birth time and is selected from a group consisting of a data block and an indirect block, and updating a dirty time log (DTL) with the birth time if the block is not stored successfully on the disk.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: April 12, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick
  • Patent number: 7899989
    Abstract: A method for writing a logical block into a storage pool includes receiving a request to write the logical block, selecting a block allocation policy, by a file system associated with the storage pool, from a set of allocation policies, obtaining a list of free physical blocks in the storage pool, allocating a physical block from the list of free physical blocks, based on the block allocation policy, and writing the logical block to the physical block.
    Type: Grant
    Filed: April 20, 2006
    Date of Patent: March 1, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick
  • Patent number: 7882420
    Abstract: 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: Grant
    Filed: August 20, 2009
    Date of Patent: February 1, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
  • Patent number: 7877554
    Abstract: A system includes a storage pool including a first disk and a second disk, a data management unit (DMU), and a storage pool allocator (SPA). The SPA is configured to receive a request from the DMU to write a logical block, allocate a first physical block on the first disk, attempt to write the logical block to the first physical block, and allocate a second physical block on the second disk, if the attempt to write the logical block to the first physical block fails.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: January 25, 2011
    Assignee: Oracle America, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
  • Patent number: 7873799
    Abstract: A method for writing data to a storage pool, involving receiving a first write operation to write a first block to the storage pool, determining a first replication type for the first block using a first replication policy associated with the first block, determining a first number of physical blocks required to write the first block to the storage pool using a size of the first block and the first replication type, and writing the first block, in accordance with the first replication policy, to the storage pool by filling in the first number of physical blocks.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: January 18, 2011
    Assignee: Oracle America, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore
  • Patent number: 7865673
    Abstract: A method for writing data to a storage pool, including receiving a first write operation for a first block, determining a first replication type for the first block, determining a number of physical blocks (n1) required to write the first block to the storage pool using a size of the first block and the first replication type, if n1 is not a multiple of the maximum supported replication level of the storage pool: allocating a number of padded physical blocks (p1) to n1 until n1+p1 is a multiple of a maximum supported replication level of the storage pool, and writing the first block to the storage pool by filling in the n1 physical blocks.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: January 4, 2011
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick
  • Publication number: 20100299459
    Abstract: 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: Application
    Filed: August 2, 2010
    Publication date: November 25, 2010
    Applicant: ORACLE AMERICA, INC.
    Inventors: Sunay Tripathi, William H. Moore, Brian L. Wong
  • Patent number: 7840657
    Abstract: 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: Grant
    Filed: October 31, 2006
    Date of Patent: November 23, 2010
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Tabriz I. Holtz
  • Patent number: 7836212
    Abstract: 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: Grant
    Filed: July 20, 2006
    Date of Patent: November 16, 2010
    Assignee: Oracle America, Inc.
    Inventors: Sunay Tripathi, William H. Moore, Brian L. Wong
  • Patent number: 7792882
    Abstract: 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: Grant
    Filed: September 27, 2007
    Date of Patent: September 7, 2010
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
  • Patent number: 7783847
    Abstract: A method for reallocating blocks in a storage pool involves copying multiple source blocks to multiple replacement blocks, where the source blocks are stored on a source disk in the storage pool, and where the replacement blocks are stored on one or more replacement disks in the storage pool, and generating an indirection object, where the indirection object includes a mapping of locations of the source blocks to locations of the replacement blocks.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: August 24, 2010
    Assignee: Oracle America Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Jeffrey S. Bonwick, Tabriz I. Holtz
  • Patent number: 7743225
    Abstract: A method for storing a data block in a storage pool, including receiving a write operation for the data block, writing the data block into the storage pool, determining a first indirect block to store in the storage pool, wherein the first indirect block references the data block, writing the first indirect block to a first location in the storage pool, creating a copy of the first indirect block, and writing the copy of first indirect block to a second location in the storage pool.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: June 22, 2010
    Assignee: Oracle America, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
  • Publication number: 20100145919
    Abstract: A computer readable medium includes executable instructions for resilvering a hierarchical block tree in a storage pool by traversing a branch of the hierarchical block tree only if a birth time of a parent block of the branch is greater than or equal to a lowest birth time on a dirty time log (DTL), and resilvering a child block in the branch only if the DTL comprises a birth time of the child block.
    Type: Application
    Filed: February 17, 2010
    Publication date: June 10, 2010
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
  • Patent number: 7716445
    Abstract: A method for storing a first block and a second block, the includes storing the first block and the second block in a storage pool, and storing a third block in the storage pool, wherein the third block references the first block and second block and comprises a first fill count and a second fill count, wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: May 11, 2010
    Assignee: Oracle America, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
  • Patent number: 7716519
    Abstract: A method for reconstructing a logical block, wherein the logical block comprises a first set of sectors. The method including obtaining a copy of the logical block comprising a second set of sectors, determining which of the sectors in the first set of sectors are identical to sectors in the second set of sectors to obtain identical sectors, selecting a first combination of non-identical sectors from the first set of sectors and the second set of sectors, combining a copy of each of the identical sectors with the first combination of non-identical sectors to obtain a first reconstructed logical block, calculating a first checksum for the first reconstructed logical block, and determining whether the first calculated checksum is equal to the stored checksum associated with the first logical block.
    Type: Grant
    Filed: April 19, 2006
    Date of Patent: May 11, 2010
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick