Patents by Inventor Jeffrey S. Bonwick
Jeffrey S. Bonwick 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: 7930495Abstract: 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: GrantFiled: April 19, 2006Date of Patent: April 19, 2011Assignee: Oracle America, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore
-
Patent number: 7925827Abstract: 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: GrantFiled: April 19, 2006Date of Patent: April 12, 2011Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Patent number: 7899989Abstract: 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: GrantFiled: April 20, 2006Date of Patent: March 1, 2011Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
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
-
Patent number: 7873799Abstract: 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: GrantFiled: April 19, 2006Date of Patent: January 18, 2011Assignee: Oracle America, Inc.Inventors: Jeffrey S. Bonwick, William H. Moore
-
Patent number: 7865673Abstract: 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: GrantFiled: April 19, 2006Date of Patent: January 4, 2011Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
Patent number: 7783847Abstract: 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: GrantFiled: October 31, 2006Date of Patent: August 24, 2010Assignee: Oracle America Inc.Inventors: William H. Moore, Darrin P. Johnson, Jeffrey S. Bonwick, Tabriz I. Holtz
-
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: 7716519Abstract: 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: GrantFiled: April 19, 2006Date of Patent: May 11, 2010Assignee: Oracle America, Inc.Inventors: William H. Moore, Jeffrey S. Bonwick
-
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: 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: 7606812Abstract: A method for dynamic intent logging in a file system. The method including pre-allocating a first log block, receiving a request to write a first set of deltas into a dynamic intent log, determining whether a size of the first set of deltas is larger than a size of the first log block, if the size of the first set of deltas is not larger than the size of the first log block, storing the first set of deltas in the first log block and pre-allocating a second log block.Type: GrantFiled: August 31, 2006Date of Patent: October 20, 2009Assignee: Sun Microsystems, Inc.Inventors: Neil V. Perrin, Stuart J. Maybee, Jeffrey S. Bonwick
-
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
-
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