Patents by Inventor Steven R. Kleiman

Steven R. Kleiman 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: 6715034
    Abstract: The invention provides a method and system for routing or switching file system requests in a mass storage system. The mass storage system includes multiple storage devices coupled using fiber channel to a routing or switching device disposed internally within each shelf of mass storage devices in the mass storage system, and coupled directly to each individual mass storage device in that shelf. The switching device receives requests, identifies an individual target storage device for each such request, and sends each such request to its designated target storage device. The switching device also receives responses to such requests from each individual storage device within the shelf, and sends those responses from the storage device to an external medium with which the response can be delivered to the original requester.
    Type: Grant
    Filed: December 13, 1999
    Date of Patent: March 30, 2004
    Assignee: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, Radek Aster, Anthony Aiello
  • Publication number: 20030237019
    Abstract: On disk failure, the storage system migrates only those disk blocks that included allocated data, and treats unallocated disk blocks as being logically zero when possible. When there is no spare disk, the source data block is logically set to zero and parity is recalculated for the RAID stripe associated with the source data block. When there is a spare, unallocated blocks on the spare are logically or physically set to zero upon migration. Write operations for the failed disk are redirected to other non-failing disks, and a record of which in-use disk blocks have been thus “migrated” to those other non-failing disks in maintained. Unused disk blocks are proactively set to zero. A target mirror copy is created using information regarding allocated disk blocks, by copying those blocks including allocated data or parity, and by clearing at the mirror those blocks not including any allocated data or parity.
    Type: Application
    Filed: June 24, 2002
    Publication date: December 25, 2003
    Inventors: Steven R. Kleiman, Stephen H. Strange
  • Patent number: 6654912
    Abstract: The invention provides a method and system for recovery of file system data in file servers having mirrored file system volumes. The invention makes use of a “snapshot” feature of a robust file system (the “WAFL File System”) disclosed in the Incorporated Disclosures, to rapidly determined which of two or more mirrored volumes is most up-to-date, and which file blocks of the most recent mirrored volume have been changed from each one of the mirrored file systems. In a preferred embodiment, among a plurality of mirrored volumes, the invention rapidly determines which is the most up-to-date by examining a consistency point number maintained by the WAFL File System at each mirrored volume.
    Type: Grant
    Filed: October 4, 2000
    Date of Patent: November 25, 2003
    Assignee: Network Appliance, Inc.
    Inventors: Srinivasan Viswanathan, Steven R. Kleiman
  • Publication number: 20030217082
    Abstract: The invention provides techniques for duplicating all or part of a file system while maintaining consistent copies of the file system. A preferred embodiment reads data from the source file system (mapped according to a first storage block arrangement) creates an image stream and writes this data onto the destination file system (in accordance with a second storage block arrangement). Thus, the invention allows an image transfer between file systems that have dissimilar characteristics. An intermediate storage medium can be used to store or transmit the data read from the source file system before writing the data to the destination file system. (For example, the intermediate storage medium can include a magnetic tape or other archival device, or a network.) Another aspect of the invention writes the data to the intermediate storage medium using a normalized or implied block list.
    Type: Application
    Filed: June 2, 2003
    Publication date: November 20, 2003
    Inventors: Steven R. Kleiman, David Hitz, Norman C. Hutchinson, Sean W. O'Malley
  • Publication number: 20030182313
    Abstract: A system and method for remote asynchronous replication or mirroring of changes in a source file system snapshot in a destination replica file system using a scan (via a scanner) of the blocks that make up two versions of a snapshot of the source file system, which identifies changed blocks in the respective snapshot files based upon differences in volume block numbers identified in a scan of the logical file block index of each snapshot. Trees of blocks associated with the files are traversed, bypassing unchanged pointers between versions and walking down to identify the changes in the hierarchy of the tree. These changes are transmitted to the destination mirror or replicated snapshot. This technique allows regular files, directories, inodes and any other hierarchical structure to be efficiently scanned to determine differences between versions thereof.
    Type: Application
    Filed: March 19, 2002
    Publication date: September 25, 2003
    Inventors: Michael L. Federwisch, Shane S. Owara, Stephen L. Manley, Steven R. Kleiman
  • Publication number: 20030182502
    Abstract: The invention features a method for controlling storage of data in a plurality of storage devices each including storage blocks, for example, in a RAID array. The method includes receiving a plurality of write requests associated with data, and buffering the write requests. A file system defines a group of storage blocks, responsive to disk topology information. The group includes a plurality of storage blocks in each of the plurality of storage devices. Each data block of the data to be written is associated with a respective one of the storage blocks, for transmitting the association to the plurality of storage devices.
    Type: Application
    Filed: March 21, 2002
    Publication date: September 25, 2003
    Applicant: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan
  • Publication number: 20030149812
    Abstract: The invention provides a storage system, and a method for operating a storage system, that provides for relatively rapid and reliable takeover among a plurality of independent file servers. Each file server maintains a reliable communication path to the others. Each file server maintains its own state in reliable memory. Each file server regularly confirms the state of the other file servers. Each file server labels messages on the redundant communication paths, so as to allow other file servers to combine the redundant communication paths into a single ordered stream of messages. Each file server maintains its own state in its persistent memory and compares that state with the ordered stream of messages, so as to determine whether other file servers have progressed beyond the file server's own last known state.
    Type: Application
    Filed: December 16, 2002
    Publication date: August 7, 2003
    Applicant: Network Appliance, Inc.
    Inventors: Scott Schoenthal, Alan Rowe, Steven R. Kleiman
  • Publication number: 20030126522
    Abstract: A technique efficiently corrects multiple storage device failures in a storage array using a combination of a single diagonal parity group and multiple row parity groups. The storage array comprises a plurality of concatenated sub-arrays, wherein each sub-array includes a set of data storage devices and a parity storage device. Each row parity group is associated with a sub-array of the array. The array further includes a global parity storage device holding diagonal parity computed across the concatenation of the sub-arrays. Instead of requiring that each parity group contain both a row parity device and a diagonal parity device, the array is composed of a collection of row parity groups. Diagonal parity is calculated across the full array.
    Type: Application
    Filed: December 28, 2001
    Publication date: July 3, 2003
    Inventors: Robert M. English, Peter F. Corbett, Steven R. Kleiman
  • Publication number: 20030126523
    Abstract: A “row-diagonal” (R-D) parity technique reduces overhead of computing diagonal parity for a storage array adapted to enable efficient recovery from the concurrent failure of two storage devices in the array. The diagonal parity is computed along diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the diagonal parity sets except one is stored on the diagonal parity disk. The R-D parity technique provides a uniform stripe depth and an optimal amount of parity information.
    Type: Application
    Filed: December 28, 2001
    Publication date: July 3, 2003
    Inventors: Peter F. Corbett, Steven R. Kleiman, Robert M. English
  • Patent number: 6574591
    Abstract: The invention provides techniques for duplicating all or part of a file system while maintaining consistent copies of the file system. A preferred embodiment reads data from the source file system (mapped according to a first storage block arrangement) creates an image stream and writes this data onto the destination file system (in accordance with a second storage block arrangement). Thus, the invention allows an image transfer between file systems that have dissimilar characteristics. An intermediate storage medium can be used to store or transmit the data read from the source file system before writing the data to the destination file system. (For example, the intermediate storage medium can include a magnetic tape or other archival device, or a network.) Another aspect of the invention writes the data to the intermediate storage medium using a normalized or implied block list.
    Type: Grant
    Filed: October 25, 1999
    Date of Patent: June 3, 2003
    Assignee: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, David Hitz, Norman C. Hutchinson, Sean W. O'Malley
  • Publication number: 20030084242
    Abstract: In one embodiment, a first storage device and a second storage device form a mirror. When the first storage device loses synchronization with the second storage device, data present in the second storage device but not in the first storage device are identified. The identified data are then copied to the first storage device. In one embodiment, a method of rebuilding data in a storage device includes the act of replacing a failed storage device with a replacement storage device. Up-to-date data for the failed storage device, which may be stored in a corresponding mirror, may then be copied to the replacement storage device. Thereafter, the replacement storage device and any other storage devices that have lost synchronization with their mirror are resynchronized.
    Type: Application
    Filed: August 19, 2002
    Publication date: May 1, 2003
    Inventors: Stephen H. Strange, Srinivasan Viswanathan, Douglas P. Doucette, Steven R. Kleiman
  • Publication number: 20020194529
    Abstract: In one embodiment, a first storage device and a second storage device form a mirror. When the first storage device loses synchronization with the second storage device, data present in the second storage device but not in the first storage device are identified. The identified data are then copied to the first storage device.
    Type: Application
    Filed: May 23, 2002
    Publication date: December 19, 2002
    Inventors: Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan, Steven R. Kleiman
  • Patent number: 6496942
    Abstract: The invention provides a storage system, and a method for operating a storage system, that provides for relatively rapid and reliable takeover among a plurality of independent file servers. Each file server maintains a reliable communication path to the others. Each file server maintains its own state in reliable memory. Each file server regularly confirms the state of the other file servers. Each file server labels messages on the redundant communication paths, so as to allow other file servers to combine the redundant communication paths into a single ordered stream of messages. Each file server maintains its own state in its persistent memory and compares that state with the ordered stream of messages, so as to determine whether other file servers have progressed beyond the file server's own last known state.
    Type: Grant
    Filed: September 8, 2000
    Date of Patent: December 17, 2002
    Assignee: Network Appliance, Inc.
    Inventors: Scott Schoenthal, Alan Rowe, Steven R. Kleiman
  • Publication number: 20020049718
    Abstract: The invention provides a method and system for duplicating all or part of a file system while maintaining consistent copies of the file system. The file server maintains a set of snapshots, each indicating a set of storage blocks making up a consistent copy of the file system as it was at a known time. Each snapshot can be used for a purpose other than maintaining the coherency of the file system, such as duplicating or transferring a backup copy of the file system to a destination storage medium. In a preferred embodiment, the snapshots can be manipulated to identify sets of storage blocks in the file system for incremental backup or copying, or to provide a file system backup that is both complete and relatively inexpensive.
    Type: Application
    Filed: May 10, 2001
    Publication date: April 25, 2002
    Inventors: Steven R. Kleiman, David Hitz, Guy Harris, Sean W. O'Malley, Michael Malcolm, James Lau, Byron Rakitzis
  • Publication number: 20020007470
    Abstract: The invention provides a storage system that is highly available even in the face of component failures in the storage system, and a method for operating that storage system. A first and a second file server each includes a file server request log for storing incoming file server requests. Both the first and second file servers have access to a common set of mass storage elements. Each incoming file server request is copied to both the first and second file servers; the first file server processes the file server request while the second file server maintains a copy in its file server request log. Each file server operates using a file system that maintains consistent state after each file server request. On failover, the second file server can perform those file server requests in its file server request log since the most recent consistent state. There is no single point of failure that prevents access to any individual mass storage element.
    Type: Application
    Filed: September 21, 2001
    Publication date: January 17, 2002
    Inventor: Steven R. Kleiman
  • Patent number: 6260057
    Abstract: A method and apparatus for bypassing multiple pre-tests and post-tests during a system call when those tests are known to be inapplicable. One or more slow path flags are checked during a system call or TRAP. If the slow path flag is clear, execution follows a fast instruction path, resulting in faster execution for the system call or TRAP. Otherwise execution follows a slow instruction path. The slow path flags are set, cleared, and checked at appropriate times. The invention improves the execution time of a thread in a software process and may be used in a data processing system employing multiple threads. Each thread in the data processing system has its own set of slow path flags. The invention can set, clear and check the slow path flags of each thread independently, in subsets of threads, or in all threads.
    Type: Grant
    Filed: March 1, 1995
    Date of Patent: July 10, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Joseph R. Eykholt, Steven R. Kleiman
  • Patent number: 6170018
    Abstract: Doors are implemented in an existing operating system by using a novel adaptation of existing data structures and procedures which represent and control data files of the operating system. A door is represented by a file descriptor and is managed by existing mechanisms of an operating system, such as the Unix operating system, which are also used to manage files. A door is represented by a door node, which is a novel extension of the conventional vnode structure which in turn is used in conventional operating systems to represent the state of a computer resource, e.g., a data file. A door node is adapted such that most conventional file access and control procedures, e.g., procedures open( ) and close( ), can be used to access and control door with minimal adaptation.
    Type: Grant
    Filed: November 27, 1995
    Date of Patent: January 2, 2001
    Assignee: Sun MicroSystems, Inc.
    Inventors: James J. Voll, Graham Hamilton, Panagiotis Kougiouris, Steven R. Kleiman
  • Patent number: 6119244
    Abstract: The invention provides a storage system, and a method for operating a storage system, that provides for relatively rapid and reliable takeover among a plurality of independent file servers. Each file server maintains a reliable communication path to the others. Each file server maintains its own state in reliable memory. Each file server regularly confirms the state of the other file servers. Each file server labels messages on the redundant communication paths, so as to allow other file servers to combine the redundant communication paths into a single ordered stream of messages. Each file server maintains its own state in its persistent memory and compares that state with the ordered stream of messages, so as to determine whether other file servers have progressed beyond the file server's own last known state.
    Type: Grant
    Filed: August 25, 1998
    Date of Patent: September 12, 2000
    Assignee: Network Appliance, Inc.
    Inventors: Scott Schoenthal, Alan Rowe, Steven R. Kleiman
  • Patent number: 5950225
    Abstract: The invention provides a method and system for performing XOR operations without consuming substantial computing resources. A specialized processor is coupled to the same bus as a set of disk drives; the specialized processor reviews data transfers to and from the disk drives and performs XOR operations on data transferred to and from the disk drives without requiring separate transfers. The specialized processor maintains an XOR accumulator which is used for XOR operations, which records the result of XOR operations, and which is read out upon command of the processor. The XOR accumulator includes one set of accumulator registers for each RAID stripe, for a selected set of RAID stripes. A memory (such as a contents-addressable memory) associates one set of accumulator registers with each selected RAID stripe.
    Type: Grant
    Filed: February 28, 1997
    Date of Patent: September 7, 1999
    Assignee: Network Appliance, Inc.
    Inventor: Steven R. Kleiman
  • Patent number: 5822588
    Abstract: The present invention is a system and method for "checking the use of synchronization locks in a multi-threaded computer program" (hereinafter "WARLOCK II"). In Warlock II a set of source code representing a process which includes multiple threads may be annotated by the developer using a "NOTE" macro to describe the desired operation of the locks. This annotated source code is passed to a modified ANSI C compiler which outputs a special file designated a ".ll" file, as for example, file "foo.ll". This special ".ll" file is then processed as input along with other designated ".ll" files which might be related, by a "wlanalyze" program which will check the source code of the target programs in the ".ll" files to determine whether their use of synchronization locks is consistent with the intended use as specified in the annotations.
    Type: Grant
    Filed: June 9, 1995
    Date of Patent: October 13, 1998
    Assignee: Sun Microsystem, Inc.
    Inventors: Nicholas A. Sterling, Steven R. Kleiman, Charles E. Fineman, Douglas E. Walls, Keith H. Bierman