Patents by Inventor James Leong

James Leong 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).

  • Publication number: 20090222829
    Abstract: A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks.
    Type: Application
    Filed: May 13, 2009
    Publication date: September 3, 2009
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Scott Schoenthal, Stephen H. Strange, Srinivasan Viswanathan
  • Patent number: 7539991
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Grant
    Filed: March 21, 2002
    Date of Patent: May 26, 2009
    Assignee: NetApp, Inc.
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Scott Schoenthal, Stephen H. Strange, Srinivasan Viswanathan
  • Publication number: 20090125669
    Abstract: Storage servers use a fast, non-volatile or persistent memory to store data until it can be written to slower mass storage devices such as disk drives. If the server crashes before a write can complete, the data remains safely stored in non-volatile memory. If the data cannot be committed to disk when the server reboots (e.g. because the destination mass storage device is unavailable), it is stored in a file. When the disk reappears, the data in the file may be used to restore a file or file system on the disk to a consistent state.
    Type: Application
    Filed: November 13, 2007
    Publication date: May 14, 2009
    Inventors: Ratnesh Gupta, James Leong, Atul Goel
  • Patent number: 7437727
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Grant
    Filed: March 21, 2002
    Date of Patent: October 14, 2008
    Assignee: Network Appliance, Inc.
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan
  • Patent number: 7389379
    Abstract: A storage system with redundant mass storage device arrays determines that a mass storage device is non-responsive, and individually offlines the specific mass storage device for a temporary period. Reads to the offline mass storage device may be temporarily prevented from reaching the mass storage device, and may be serviced by a redundant array. Write to the offline mass storage device may also be temporarily prevented from reaching the mass storage device, and may be serviced with a temporary storage management that tracks and/or stores write transactions. The mass storage device can be synchronized with the write transactions on the basis of the tracking.
    Type: Grant
    Filed: April 25, 2005
    Date of Patent: June 17, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Atul Goel, James Leong, Loellyn Cassell
  • Patent number: 7328364
    Abstract: A technique coherently suspends input/output (I/O) operations in a RAID subsystem of a storage system. A configuration tree of the RAID subsystem has a plurality of objects representing a logical configuration of storage devices coupled to the system. According to the technique, a “freeze” condition may be imposed on an object of the configuration tree to suspend I/O operations directed to that object. In order to freeze, I/O operations underway (“in flight”) in the RAID subsystem and directed to the object need to complete sufficiently so as to reach a recoverable state in the event the subsystem subsequently fails prior to an I/O restart procedure. Once a freeze condition has been imposed, new I/O requests directed to the object are inserted onto a freeze list of pending requests at the RAID subsystem and are blocked from processing until the object is “unfrozen” (i.e., the freeze condition is lifted).
    Type: Grant
    Filed: March 21, 2003
    Date of Patent: February 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: James Leong, Scott Schoenthal, Srinivasan Viswanathan, Rajesh Sundaram
  • Patent number: 7254813
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Grant
    Filed: March 21, 2002
    Date of Patent: August 7, 2007
    Assignee: Network Appliance, Inc.
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Scott Schoenthal, Stephen H. Strange, Srinivasan Viswanathan
  • Patent number: 6950833
    Abstract: A cluster of computer system nodes share direct read/write access to storage devices via a storage area network using a cluster filesystem. Version information about subsystems is acquired by a leader node when forming a cluster membership and distributed to all nodes in the cluster to enable proper messaging during operation. Access to files on the storage devices is arbitrated by the cluster filesystem using tokens. Upon detection of a change in location of the metadata server, client nodes waiting for a token are interrupted to check on the status of at least one of data and node availability. The cluster operating system maintains consistency of a mirrored data volume by automatically ensuring replication of a mirror leg while continuing to accept access requests to the mirrored data volume.
    Type: Grant
    Filed: June 5, 2002
    Date of Patent: September 27, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Laurie Costello, Eric Mowat, James Leong
  • Publication number: 20030182349
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Application
    Filed: March 21, 2002
    Publication date: September 25, 2003
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Scott Schoenthal, Stephen H. Strange, Srinivasan Viswanathan
  • Publication number: 20030182503
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Application
    Filed: March 21, 2002
    Publication date: September 25, 2003
    Inventors: James Leong, Douglas P. Doucette, Scott Schoenthal, Stephen H. Strange, Rajesh Sundaram, Srinivasan Viswanathan
  • Publication number: 20030182348
    Abstract: The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
    Type: Application
    Filed: March 21, 2002
    Publication date: September 25, 2003
    Inventors: James Leong, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan
  • Publication number: 20030078946
    Abstract: A cluster of computer system nodes share direct read/write access to storage devices via a storage area network using a cluster filesystem. Version information about subsystems is acquired by a leader node when forming a cluster membership and distributed to all nodes in the cluster to enable proper messaging during operation. Access to files on the storage devices is arbitrated by the cluster filesystem using tokens. Upon detection of a change in location of the metadata server, client nodes waiting for a token are interrupted to check on the status of at least one of data and node availability. The cluster operating system maintains consistency of a mirrored data volume by automatically ensuring replication of a mirror leg while continuing to accept access requests to the mirrored data volume.
    Type: Application
    Filed: June 5, 2002
    Publication date: April 24, 2003
    Inventors: Laurie Costello, Eric Mowat, James Leong