Patents by Inventor Rickard E. Faith

Rickard E. Faith 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: 9477420
    Abstract: Partially overwriting a compression group without decompressing compressed data can consumption of resources for the decompression. A storage server partially overwrites the compression group when a file block identifier of a client's write request resolves to the compression group. The compression group remains compressed while the partial overwriting is performed.
    Type: Grant
    Filed: May 23, 2014
    Date of Patent: October 25, 2016
    Assignee: NetApp, Inc.
    Inventors: Sandeep Yadav, Rickard E. Faith, Subramaniam V. Periyagaram, Blake H. Lewis, Ashish Prakash
  • Publication number: 20160070495
    Abstract: A system and method for logically organizing compressed data. In one aspect, a destination storage server receives a write request that includes multiple data blocks and specifies corresponding file block numbers. An extent-based file system executing on the storage server accesses intermediate block entries that each associates one of the file block numbers with a respective extent block number. The file system, in cooperation with a compression engine, compresses the data blocks into a set of one or more compressed data blocks. The file system stores the compressed data blocks at physical locations corresponding to physical block numbers and allocates, within an extent map, pointers from an extent ID to the extent block numbers, and pointers from the extent ID to the physical block numbers.
    Type: Application
    Filed: October 30, 2015
    Publication date: March 10, 2016
    Inventors: Subramaniam Periyagaram, Sandeep Yadav, Blake H. Lewis, Rickard E. Faith
  • Patent number: 9043287
    Abstract: It is determined that a first data block contains the same data as a second data block. The first data block is associated with a first extent and the second data block is associated with a second extent. In response to determining that the first data block contains the same data as the second data block, the second data block is associated with the first extent and the first data block is disassociated with the second extent.
    Type: Grant
    Filed: November 22, 2013
    Date of Patent: May 26, 2015
    Assignee: NetApp, Inc.
    Inventors: Subramaniam Periyagaram, Sandeep Yadav, Blake Lewis, Rickard E. Faith, Ashish Prakash, Ram Kesavan, Ananthan Subramanian
  • Patent number: 8924440
    Abstract: An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
    Type: Grant
    Filed: August 15, 2013
    Date of Patent: December 30, 2014
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Subramaniam Perivagaram, Sandeep Yadav, Ashish Prakash, Blake Lewis, Jeffrey S. Kimmel, Stephen Daniel
  • Patent number: 8918378
    Abstract: An extent-based storage architecture is implemented by a storage server. The storage server generates a new extent identifier for cloning a source extent identified by a source extent identifier and stored at a source data structure that includes a length value providing a length of the source extent, an offset value and a reference count value that provides a number of data containers that reference the source extent identifier. The storage server updates a data structure for a cloned version of the data container for storing the new extent identifier that points to the source extent identifier and includes an extent length value and offset value different from length value and the offset value of the source data structure.
    Type: Grant
    Filed: August 31, 2011
    Date of Patent: December 23, 2014
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Subramaniam Periyagaram, Sandeep Yadav, Ashish Prakash, Blake Lewis
  • Patent number: 8880842
    Abstract: Detection and reduction of unaligned input/output (“I/O”) requests is implemented by a storage server determining an alignment value for data stored by the server within a storage system on behalf of a first client, writing the alignment value to a portion of the volume that stores the data for the first client, but not to a portion of the volume that stores data for a second client, and changing a location of data within the portion of the volume that stores the data for the first client, but not a location of data in the portion of the volume that stores data for the second client, to an alignment corresponding to the alignment value. The alignment value is applied to I/O requests directed to the portion of the volume that stores the data blocks for the first client after the location of the data blocks has been changed.
    Type: Grant
    Filed: June 7, 2013
    Date of Patent: November 4, 2014
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Matthew D. Hambrick, Matti A. Vanninen
  • Publication number: 20140258648
    Abstract: Overwriting part of compressed data without decompressing on-disk compressed data is includes by receiving a write request for a block of data in a compression group from a client, wherein the compression group comprises a group of data blocks that is compressed, wherein the block of data is uncompressed. The storage server partially overwrites the compression group, wherein the compression group remains compressed while the partial overwriting is performed. The storage server determines whether the partially overwritten compression group including the uncompressed block of data should be compressed. The storage server defers compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed. The storage server compresses the partially overwritten compression group if the partially overwritten compression group should be compressed.
    Type: Application
    Filed: May 23, 2014
    Publication date: September 11, 2014
    Applicant: NetApp, Inc.
    Inventors: Sandeep Yadav, Rickard E. Faith, Subramaniam Periyagaram, Blake Lewis, Ashish Prakash
  • Publication number: 20140201168
    Abstract: A request is received to remove duplicate data. A log data container associated with a storage volume in a storage server is accessed. The log data container includes a plurality of entries. Each entry is identified by an extent identifier in a data structures stored in a volume associated with the storage server. For each entry in the log data container, a determination is made if the entry matches another entry in the log data container. If the entry matches another entry in the log data container, a determination is made of a donor extent and a recipient extent. If an external reference count associated with the recipient extent equals a first predetermined value, block sharing is performed for the donor extent and the recipient extent. A determination is made if the reference count of the donor extent equals a second predetermined value. If the reference count of the donor extent equals the second predetermined value, the donor extent is freed.
    Type: Application
    Filed: November 22, 2013
    Publication date: July 17, 2014
    Applicant: NetApp, Inc.
    Inventors: Subramaniam Periyagaram, Sandeep Yadav, Blake Lewis, Rickard E. Faith, Ashish Prakash, Ram Kesavan, Ananthan Subramanian
  • Publication number: 20140156779
    Abstract: Detection and reduction of unaligned input/output (“I/O”) requests is implemented by a storage server determining an alignment value for data stored by the server within a storage system on behalf of a first client, writing the alignment value to a portion of the volume that stores the data for the first client, but not to a portion of the volume that stores data for a second client, and changing a location of data within the portion of the volume that stores the data for the first client, but not a location of data in the portion of the volume that stores data for the second client, to an alignment corresponding to the alignment value. The alignment value is applied to I/O requests directed to the portion of the volume that stores the data blocks for the first client after the location of the data blocks has been changed.
    Type: Application
    Filed: June 7, 2013
    Publication date: June 5, 2014
    Inventors: Rickard E. Faith, Matthew D. Hambrick, Matti A. Vanninen
  • Patent number: 8745338
    Abstract: Overwriting part of compressed data without decompressing on-disk compressed data is implemented by receiving a write request for a block of data in a compression group from a client, wherein the compression group comprises a group of data blocks that is compressed, wherein the block of data is uncompressed. The storage server partially overwrites the compression group, wherein the compression group remains compressed while the partial overwriting is performed. The storage server determines whether the partially overwritten compression group including the uncompressed block of data should be compressed. The storage server defers compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed. The storage server compresses the partially overwritten compression group if the partially overwritten compression group should be compressed.
    Type: Grant
    Filed: May 2, 2011
    Date of Patent: June 3, 2014
    Assignee: NetApp, Inc.
    Inventors: Sandeep Yadav, Rickard E. Faith, Subramaniam Periyagaram, Blake Lewis, Ashish Prakash
  • Patent number: 8600949
    Abstract: A request is received to remove duplicate data. A log data container associated with a storage volume in a storage server is accessed. The log data container includes a plurality of entries. Each entry is identified by an extent identifier in a data structures stored in a volume associated with the storage server. For each entry in the log data container, a determination is made if the entry matches another entry in the log data container. If the entry matches another entry in the log data container, a determination is made of a donor extent and a recipient extent. If an external reference count associated with the recipient extent equals a first predetermined value, block sharing is performed for the donor extent and the recipient extent. A determination is made if the reference count of the donor extent equals a second predetermined value. If the reference count of the donor extent equals the second predetermined value, the donor extent is freed.
    Type: Grant
    Filed: June 21, 2011
    Date of Patent: December 3, 2013
    Assignee: NetApp, Inc.
    Inventors: Subramaniam Periyagaram, Sandeep Yadav, Blake Lewis, Rickard E. Faith, Ashish Prakash, Ram Kesavan, Ananthan Subramanian
  • Patent number: 8539008
    Abstract: An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: September 17, 2013
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Subramaniam Periyagaram, Sandeep Yadav, Ashish Prakash, Blake Lewis, Jeff Kimmel, Steve Daniel
  • Patent number: 8484433
    Abstract: Detection and reduction of unaligned input/output (“I/O”) requests is implemented by a storage server determining an alignment value for data stored by the server within a storage system on behalf of a first client, writing the alignment value to a portion of the volume that stores the data for the first client, but not to a portion of the volume that stores data for a second client, and changing a location of data within the portion of the volume that stores the data for the first client, but not a location of data in the portion of the volume that stores data for the second client, to an alignment corresponding to the alignment value. The alignment value is applied to I/O requests directed to the portion of the volume that stores the data blocks for the first client after the location of the data blocks has been changed.
    Type: Grant
    Filed: November 19, 2010
    Date of Patent: July 9, 2013
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Matthew D. Hambrick, Matti A. Vanninen
  • Publication number: 20120330903
    Abstract: A request is received to remove duplicate data. A log data container associated with a storage volume in a storage server is accessed. The log data container includes a plurality of entries. Each entry is identified by an extent identifier in a data structures stored in a volume associated with the storage server. For each entry in the log data container, a determination is made if the entry matches another entry in the log data container. If the entry matches another entry in the log data container, a determination is made of a donor extent and a recipient extent. If an external reference count associated with the recipient extent equals a first predetermined value, block sharing is performed for the donor extent and the recipient extent. A determination is made if the reference count of the donor extent equals a second predetermined value. If the reference count of the donor extent equals the second predetermined value, the donor extent is freed.
    Type: Application
    Filed: June 21, 2011
    Publication date: December 27, 2012
    Inventors: Subramaniam Periyagaram, Sandeep Yadav, Blake Lewis, Rickard E. Faith, Ashish Prakash, Ram Kesavan, Ananthan Subramanian
  • Publication number: 20120278382
    Abstract: An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
    Type: Application
    Filed: April 29, 2011
    Publication date: November 1, 2012
    Inventors: Rickard E. Faith, Subramaniam Periyagaram, Sandeep Yadav, Ashish Prakash, Blake Lewis, Jeff Kimmel, Steve Daniel
  • Publication number: 20120131286
    Abstract: Detection and reduction of unaligned input/output (“I/O”) requests is implemented by a storage server determining an alignment value for data stored by the server within a storage system on behalf of a first client, writing the alignment value to a portion of the volume that stores the data for the first client, but not to a portion of the volume that stores data for a second client, and changing a location of data within the portion of the volume that stores the data for the first client, but not a location of data in the portion of the volume that stores data for the second client, to an alignment corresponding to the alignment value. The alignment value is applied to I/O requests directed to the portion of the volume that stores the data blocks for the first client after the location of the data blocks has been changed.
    Type: Application
    Filed: November 19, 2010
    Publication date: May 24, 2012
    Inventors: Rickard E. Faith, Matthew D. Hambrick, Matti A. Vanninen
  • Patent number: 8156290
    Abstract: Just-in-time segment cleaning obtains the location of blocks of a storage system predicted to be targeted by a future write operation and cleans the blocks targeted for the future write operation prior to the occurrence of the future write operation. In one aspect, just-in-time segment cleaning is performed in proportion to previous user-initiated write operations. In another aspect, just-in-time segment cleaning applies a cost analysis determination to minimize the work of cleaning.
    Type: Grant
    Filed: April 23, 2009
    Date of Patent: April 10, 2012
    Assignee: Network Appliance, Inc.
    Inventors: Matti Vanninen, Rickard E. Faith