Patents by Inventor Blake Lewis

Blake Lewis 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: 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
  • Publication number: 20130073519
    Abstract: A technique to name data is disclosed to allow preservation of storage efficiency over a link between a source and a destination in a replication relationship as well as in storage at the destination. The technique allows the source to send named data to the destination once and refer to it by name multiple times in the future, without having to resend the data. The technique also allows the transmission of data extents to be decoupled from the logical containers that refer to the data extents. Additionally, the technique allows a replication system to accommodate different extent sizes between replication source and destination while preserving storage efficiency.
    Type: Application
    Filed: September 20, 2011
    Publication date: March 21, 2013
    Applicant: NetApp, Inc.
    Inventors: Blake Lewis, John K. Edwards, Vijay Deshmukh, Kapil Kumar, Rajesh Desai
  • 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
  • Patent number: 7930326
    Abstract: A file system determines the relative vacancy of a collection of storage blocks, i.e., an “allocation area”. This is accomplished by recording an array of numbers, each of which describes the vacancy of a collection of storage blocks. The file system examines these numbers when attempting to record file blocks in relatively contiguous areas on a storage medium, such as a disk. When a request to write to disk occurs, the system determines the average vacancy of all of the allocation areas and queries the allocation areas for individual vacancy rates. The system preferably writes file blocks to the allocation areas that are above a threshold related to the average storage block vacancy of the file system.
    Type: Grant
    Filed: October 3, 2007
    Date of Patent: April 19, 2011
    Assignee: Network Appliance, Inc.
    Inventors: Douglas P. Doucette, Blake Lewis, John K. Edwards
  • Publication number: 20100138394
    Abstract: A method and apparatus for operating a data storage system is disclosed. An original active file system holds incoming write transactions. Data is written at a selected time to blocks in a data storage device of the original active file system, the data written to blocks which do not hold old data of the data storage system. Pointers to data of the original active file system are written at the selected time to the data storage device, the pointers written to blocks which do not hold old data of the data storage system, the pointers and a previously saved data of the active file system forming a consistency point of the original active file system at the selected time. A new active file system is started using the consistency point of the original active file system at the selected time.
    Type: Application
    Filed: February 2, 2010
    Publication date: June 3, 2010
    Inventors: David Hitz, John Edwards, Blake Lewis
  • Patent number: 7685169
    Abstract: Maintenance of plural active file systems, wherein each of the active file systems initially access data shared with another of the active file systems, and wherein changes made to each of the active file systems are not reflected in other active file systems. When a second active file system is created based on a first active file system, the first active file system and the second active file system initially share data. When changes are made to the first active file system, modified data is recorded in the first active file system in a location that is not shared with the second active file system. When changes are made to the second active file system, modified data is recorded in the second active file system in a location that is not shared with the first active file system. Also, creation of the plural active file systems.
    Type: Grant
    Filed: February 14, 2005
    Date of Patent: March 23, 2010
    Assignee: NetApp, Inc.
    Inventors: David Hitz, John Edwards, Blake Lewis
  • Patent number: 7454445
    Abstract: The invention provides an improved method and apparatus for creating a snapshot of a file system. A “copy-on-write” mechanism is used. The snapshot uses the same blocks as the active file system until the active file system is modified. Whenever a modification occurs, the modified data is copied to a new block and the old data is saved. In this way, the snapshot only uses space where it differs from the active file system, and the amount of work required to create the snapshot is small. A record of which blocks are being used by the snapshot is included in the snapshot itself, allowing effectively instantaneous snapshot creation and deletion. A snapshot can also be deleted instantaneously simply by discarding its root inode.
    Type: Grant
    Filed: August 17, 2001
    Date of Patent: November 18, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Blake Lewis, John Edwards, Srinivasan Viswanathan
  • Patent number: 7418465
    Abstract: A system that manages a file system for a file server. A file operation is received that signals a reservation operation for a file having a file size. Preferably, the file system uses a write anywhere file system layout, the file operation that signals the reservation operation is a zero length write request, and the file operation that signals the reservation operation includes a parameter that specifies the file size. A number of blocks needed to be reserved to accommodate the file is computed. Preferably, computing the number of blocks needed to be reserved to accommodate the file includes determining a total number of direct and indirect blocks needed to accommodate the file size, and subtracting a total number of blocks already allocated for the file and a total number of cached unallocated blocks for the file from the total number of direct and indirect blocks needed to accommodate the file size.
    Type: Grant
    Filed: October 24, 2003
    Date of Patent: August 26, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Blake Lewis, Kayuri Patel, Ray Chen
  • Publication number: 20080028011
    Abstract: A file system determines the relative vacancy of a collection of storage blocks, i.e., an “allocation area”. This is accomplished by recording an array of numbers, each of which describes the vacancy of a collection of storage blocks. The file system examines these numbers when attempting to record file blocks in relatively contiguous areas on a storage medium, such as a disk. When a request to write to disk occurs, the system determines the average vacancy of all of the allocation areas and queries the allocation areas for individual vacancy rates. The system preferably writes file blocks to the allocation areas that are above a threshold related to the average storage block vacancy of the file system.
    Type: Application
    Filed: October 3, 2007
    Publication date: January 31, 2008
    Applicant: Network Appliance, Inc.
    Inventors: Douglas Doucette, Blake Lewis, John Edwards
  • Publication number: 20070276878
    Abstract: A system and method provides continuous data protection using checkpoints in a write anywhere file system. During a consistency point of a write anywhere file system, freed blocks are identified and are appended to a delete log for retention. A consistency point log is updated with a new entry associated with the consistency point.
    Type: Application
    Filed: April 28, 2006
    Publication date: November 29, 2007
    Inventors: Ling Zheng, Robert English, Stephen Manley, Blake Lewis
  • Patent number: 7290013
    Abstract: The invention provides a method and system for improving data access of a reliable file system. In a first aspect of the invention, the file system determines the relative vacancy of a collection of storage blocks, herein called an “allocation area”. This is accomplished by recording an array of binary numbers. Each binary number in the array describes the vacancy of a collection of storage blocks. The file system examines these binary numbers when attempting to record file blocks in relatively contiguous areas on a storage medium, such as a hard disk. When a request to write to disk occurs, the system determines the average vacancy of all the allocation areas and queries the allocation areas for individual vacancy rates such as sequentially. The system preferably writes file blocks to the allocation areas that are above a threshold related to the average storage block vacancy of the file system.
    Type: Grant
    Filed: October 17, 2003
    Date of Patent: October 30, 2007
    Assignee: Network Appliance, Inc.
    Inventors: Douglas P. Doucette, Blake Lewis, John Edwards
  • Publication number: 20070245095
    Abstract: A system and method for enabling parallel replay of a backup memory log of client transaction request entries to a network storage appliance file system is provided. The backup memory is typically implemented as a non-volatile random access memory (NVRAM). An initiator establishes a swarm of messages with a plurality of transaction blocks pointing to logged request entries and related states associated therewith. The states represent the various phases of file system recovery and disk storage including a retrieval of disk information (data and meta-data), typically in the form of a LOAD, and a subsequent modify phase. The swarm is transferred to the file system for parallel disk information-retrieval in an interleaved process. Any transactions that cannot be performed due to a required prerequisite action (e.g. a prior file-create) are returned to the initiator for reloading once the prerequisite action has occurred.
    Type: Application
    Filed: April 27, 2007
    Publication date: October 18, 2007
    Inventors: Steven Watanabe, John Edwards, Blake Lewis
  • Publication number: 20070078819
    Abstract: The present invention provides a technique for efficiently generating and validating external file handles at a storage operating system of a filer. According to one aspect of the technique, the storage operating system associates a unique internal file handle with each file or directory stored in the filer. This unique internal file handle is used to generate a corresponding external file handle. Unlike previous approaches, the internal file handle' representations do not change depending on the location of their corresponding files or directories, e.g., on-disk or in-core, within the filer, thereby simplifying file management within the filer. According to another aspect of the inventive technique, the filer executes a file-handle validation procedure to determine whether an external file handle received with a file access request has become invalid (or “stale”) as a result of an NVRAM failure in the filer.
    Type: Application
    Filed: November 17, 2006
    Publication date: April 5, 2007
    Inventors: Edward Zayas, Raymond Chen, Blake Lewis
  • Patent number: 7072916
    Abstract: An improved method and apparatus for creating a snapshot of a file system. A record of which blocks are being used by a snapshot is included in the snapshot itself, allowing effectively instantaneous snapshot creation and deletion. The state of the active file system is described by a set of metafiles; in particular, a bitmap (henceforth the “active map”) describes which blocks are free and which are in use. The inode file describes which blocks are used by each file, including the metafiles. The inode file itself is described by a special root inode, also known as the “fsinfo block”. The system begins creating a new snapshot by making a copy of the root inode. This copy of the root inode becomes the root of the snapshot.
    Type: Grant
    Filed: August 18, 2000
    Date of Patent: July 4, 2006
    Assignee: Network Appliance, Inc.
    Inventors: Blake Lewis, John K. Edwards, Srinivasan Viswanathan
  • Publication number: 20050246401
    Abstract: A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage system. The aggregate has its own physical volume block number (pvbn) space and maintains metadata, such as block allocation structures, within that pvbn space. Each vvol has its own virtual volume block number (vvbn) space and maintains metadata, such as block allocation structures, within that vvbn space. Notably, the block allocation structures of a vvol are sized to the vvol, and not to the underlying aggregate, to thereby allow operations that manage data served by the storage system (e.g., snapshot operations) to efficiently work over the vvols. The file system layout extends the file system layout of a conventional write anywhere file layout system implementation, yet maintains performance properties of the conventional implementation.
    Type: Application
    Filed: April 30, 2004
    Publication date: November 3, 2005
    Inventors: John Edwards, Blake Lewis, Robert English, Eric Hamilton, Peter Corbett
  • Publication number: 20050182799
    Abstract: Maintenance of plural active file systems, wherein each of the active file systems initially access data shared with another of the active file systems, and wherein changes made to each of the active file systems are not reflected in other active file systems. When a second active file system is created based on a first active file system, the first active file system and the second active file system initially share data. When changes are made to the first active file system, modified data is recorded in the first active file system in a location that is not shared with the second active file system. When changes are made to the second active file system, modified data is recorded in the second active file system in a location that is not shared with the first active file system. Also, creation of the plural active file systems.
    Type: Application
    Filed: February 14, 2005
    Publication date: August 18, 2005
    Applicant: Network Appliance, Inc.
    Inventors: David Hitz, John Edwards, Blake Lewis
  • Patent number: 6857001
    Abstract: Maintenance of plural active file systems, wherein each of the active file systems initially access data shared with another of the active file systems, and wherein changes made to each of the active file systems are not reflected in other active file systems. When a second active file system is created based on a first active file system, the first active file system and the second active file system initially share data. When changes are made to the first active file system, modified data is recorded in the first active file system in a location that is not shared with the second active file system. When changes are made to the second active file system, modified data is recorded in the second active file system in a location that is not shared with the first active file system. Also, creation of the plural active file systems.
    Type: Grant
    Filed: June 7, 2002
    Date of Patent: February 15, 2005
    Assignee: Network Appliance, Inc.
    Inventors: David Hitz, John Edwards, Blake Lewis