Patents by Inventor Matthew A. Ahrens
Matthew A. Ahrens 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: 9742564Abstract: 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: GrantFiled: May 14, 2010Date of Patent: August 22, 2017Assignee: Oracle International CorporationInventors: Darren J. Moffat, Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens, Mark J. Maybee, George Wilson, Neil V. Perrin
-
Patent number: 8938594Abstract: A method for resilvering a storage pool includes determining whether any of a first plurality of blocks in the storage pool, comprising metadata, require resilvering, determining whether any of a second plurality of blocks in the storage pool, comprising data, require resilvering, resilvering all of the first plurality of blocks that require resilvering, and resilvering all of the second plurality of blocks that require resilvering, wherein all of the first plurality of blocks that require resilvering are resilvered prior to resilvering any of the second plurality of blocks.Type: GrantFiled: April 19, 2006Date of Patent: January 20, 2015Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 8635190Abstract: A computer readable medium includes executable instructions for resilvering a hierarchical block tree in a storage pool. Resilvering the hierarchical block tree involves 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). Resilvering the hierarchical block tree further involves resilvering a child block in the branch only if the DTL comprises a birth time of the child block.Type: GrantFiled: April 19, 2006Date of Patent: January 21, 2014Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 8549051Abstract: The invention relates to a system that includes a file system configured to create a snapshot of a hierarchical block tree (HBT) and a storage pool. After the snapshot has been created, the storage pool includes a snapshot, where the snapshot includes a copy of a first version of a root block and the HBT, where the HBT includes a second version of the root block. Further, the copy of the first version of the root block is created prior to overwriting the first version of the root block with the second version of the root block, the second version of the root block comprises references to a first block and a second block, and the copy of the first version of the root block comprises a reference to the first block and no reference to the second block.Type: GrantFiled: August 31, 2006Date of Patent: October 1, 2013Assignee: Oracle America, Inc.Inventors: Matthew A. Ahrens, Mark J. Maybee, Jeffrey S. Bonwick
-
Patent number: 8495010Abstract: A method for writing a data block to a storage pool. The method including receiving a write operation for a block, determining whether the block comprises metadata, and if the block comprises metadata: determining a first replication type for the block, and writing the block to the storage pool in accordance with the first replication type. If the block does not comprise metadata: determining a second replication type for the block and writing the block to the storage pool in accordance with the second replication type.Type: GrantFiled: April 19, 2006Date of Patent: July 23, 2013Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 8280858Abstract: A method for scrubbing a storage pool is disclosed. The method includes loading a scrub queue with a number of identifiers corresponding to a number of datasets, selecting a first identifier from the scrub queue, where the first identifier corresponds to a first dataset, initiating a scrubbing of the first dataset. The method further includes, upon receiving an indication of a requirement to pause the scrubbing, pausing the scrubbing of the first dataset, creating a bookmark recording a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset, detecting at least one change to a storage pool, and performing a modification in response to detecting the at least one change to the storage pool.Type: GrantFiled: June 29, 2009Date of Patent: October 2, 2012Assignee: Oracle America, Inc.Inventors: Matthew A. Ahrens, Mark J. Maybee
-
Publication number: 20120005163Abstract: A method for backing up a file system, including obtaining a first indirect block comprising a first block pointer, obtaining a first birth time from the first block pointer, determining whether the first birth time is subsequent to a time of a last backup, and backing up a first block referenced by the first block pointer, if the first birth time is subsequent to the time of the last backup.Type: ApplicationFiled: September 16, 2011Publication date: January 5, 2012Applicant: ORACLE AMERICA, INC.Inventors: Matthew A. Ahrens, Mark J. Maybee
-
Patent number: 8069156Abstract: 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: GrantFiled: February 17, 2010Date of Patent: November 29, 2011Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Publication number: 20110283113Abstract: 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: ApplicationFiled: May 14, 2010Publication date: November 17, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Darren J. Moffat, Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens, Mark J. Maybee, George Wilson, Neil V. Perrin
-
Patent number: 7882420Abstract: 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: August 20, 2009Date of Patent: February 1, 2011Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 7877554Abstract: 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: GrantFiled: April 19, 2006Date of Patent: January 25, 2011Assignee: Oracle America, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
Publication number: 20100332446Abstract: A method for scrubbing a storage pool. The method includes loading a scrub queue with a number of identifiers corresponding to a number of datasets, selecting a first identifier from the scrub queue, where the first identifier corresponds to a first dataset, initiating a scrubbing of the first dataset. The method further includes, upon receiving an indication of a requirement to pause the scrubbing, pausing the scrubbing of the first dataset, creating a bookmark recording a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset, detecting at least one change to a storage pool, and performing a modification in response to detecting the at least one change to the storage pool.Type: ApplicationFiled: June 29, 2009Publication date: December 30, 2010Applicant: SUN MICROSYSTEMS, INC.Inventors: Matthew A. Ahrens, Mark J. Maybee
-
Patent number: 7761432Abstract: A storage pool, that includes a hierarchical data structure, wherein the hierarchical data structure comprises a plurality of nodes, wherein one of the plurality of nodes corresponds to the file system, and the file system, wherein the file system is associated with a value corresponding to an attribute, wherein the value is determined using the hierarchical data structure.Type: GrantFiled: May 11, 2006Date of Patent: July 20, 2010Assignee: Oracle America, Inc.Inventors: Matthew A. Ahrens, Mark J. Maybee
-
Patent number: 7743225Abstract: 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: GrantFiled: April 19, 2006Date of Patent: June 22, 2010Assignee: Oracle America, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
Publication number: 20100145919Abstract: 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: ApplicationFiled: February 17, 2010Publication date: June 10, 2010Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: William H. Moore, Jeffrey S. Bonwick, Matthew A. Ahrens
-
Patent number: 7716445Abstract: 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: GrantFiled: April 19, 2006Date of Patent: May 11, 2010Assignee: Oracle America, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore, Matthew A. Ahrens
-
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: 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
-
Patent number: 7603568Abstract: A method for storing a data block, involving storing the data block in a storage pool, obtaining a data block location, calculating a data block checksum for the data block, and storing a first indirect block in the storage pool, wherein the first indirect block comprises the data block location and the data block checksum.Type: GrantFiled: April 21, 2004Date of Patent: October 13, 2009Assignee: Sun Microsystems, Inc.Inventors: Matthew A. Ahrens, Jeffrey S. Bonwick
-
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