Patents by Inventor Edward D. McClanahan

Edward D. McClanahan 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: 10762070
    Abstract: A technique reduces an amount of metadata stored in a memory of a node in a cluster. An extent store layer of a storage input/output (I/O) stack executing on the node stores key-value pairs in a plurality of data structures, e.g., cuckoo hash tables, resident in the memory. The cuckoo hash table embodies metadata that describes an extent and, as such, may be organized to associate a location on disk with a value that identifies the location on disk. The value may be embodied as a locator that includes a reference count used to support deduplication functionality of the extent store layer with respect to the extent. The reference count is divided into two portions: a delta count portion stored in memory for each slot of the hash table and an overflow count portion stored on disk in a header of each extent. One bit of the delta count portion is reserved as an overflow bit that indicates whether the in-memory reference count has overflowed.
    Type: Grant
    Filed: February 13, 2018
    Date of Patent: September 1, 2020
    Assignee: NetApp, Inc.
    Inventors: Manish Swaminathan, Dhaval Patel, Edward D. McClanahan, Jeffrey S. Kimmel
  • Patent number: 10339132
    Abstract: A flow control technique prevents exhaustion of storage resources in an exactly once semantics (EOS) system of a storage input/output stack executing on a node of a cluster. An EOS server may service transactions sent by an EOS client and issue replies with results to the EOS client. In order to replay the transactions during normal operation after recovery from a crash, the EOS server persistently stores the transactions in the storage resources until an acknowledgement of completion is received from the EOS client for each pending transaction. The EOS client may issue a checkpoint acknowledgement, e.g., as a prune record, after a periodic interval that marks the completion of all pending transactions issued prior to the record. The EOS server need only log the prune record (rather than each pending transaction) to thereby prevent exhaustion of the storage resources, while also minimizing logging overhead of the server.
    Type: Grant
    Filed: July 9, 2015
    Date of Patent: July 2, 2019
    Assignee: NetApp, Inc.
    Inventors: Pinkesh Zaveri, Mandar Naik, Edward D. McClanahan
  • Patent number: 10216966
    Abstract: A technique perturbs an extent key to compute a candidate extent key in the event of a collision with metadata (i.e., two extents having different data that yield identical hash values) stored in a memory of a node in a cluster. The perturbing technique may be used to compute a candidate extent key that is not previously stored in an extent store instance. The candidate extent key may be computed from a hash value of an extent using a perturbing algorithm, i.e., a hash collision computation, which illustratively adds a perturb value to the hash value. The perturb value is illustratively sufficient to ensure that the candidate extent key resolves to a same hash bucket and node (extent store instance) as the original extent key. In essence, the technique ensures that the original extent key is perturbed in a deterministic manner to generate the candidate extent key, so that the original extent and candidate extent key “decode” to the same hash bucket and extent store instance.
    Type: Grant
    Filed: February 24, 2016
    Date of Patent: February 26, 2019
    Assignee: NetApp, Inc.
    Inventors: Edward D. McClanahan, Jeffrey S. Kimmel
  • Patent number: 10210082
    Abstract: A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively, may be embodied as a segment cleaning process. The rate matching technique may be implemented as a feedback control mechanism configured to adjust the segment cleaning process based on the incoming workload. Components of the feedback control mechanism may include one or more weight schedulers and various accounting data structures, e.g., counters, configured to track the progress of segment cleaning and free space usage. The counters may also be used to balance the rates of segment cleaning and incoming I/O workload, which may change depending upon an incoming I/O rate.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: February 19, 2019
    Assignee: NetApp, Inc.
    Inventors: Dhaval Patel, Manish Swaminathan, Edward D. McClanahan, John Muth
  • Patent number: 10133511
    Abstract: An optimized segment cleaning technique is configured to efficiently clean one or more selected portions or segments of a storage array coupled to one or more nodes of a cluster. A bottom-up approach of the segment cleaning technique is configured to read all blocks of a segment to be cleaned (i.e., an “old” segment) to locate extents stored on the SSDs of the old segment and examine extent metadata to determine whether the extents are valid and, if so, relocate the valid extents to a segment being written (i.e., a “new” segment). A top-down approach of the segment cleaning technique obviates reading of the blocks of the old segment to locate the extents and, instead, examines the extent metadata to determine the valid extents of the old segment.
    Type: Grant
    Filed: September 12, 2014
    Date of Patent: November 20, 2018
    Assignee: NetApp, Inc
    Inventors: John Muth, Edward D. McClanahan, Dhaval Patel, Manish Swaminathan
  • Publication number: 20180173703
    Abstract: A technique reduces an amount of metadata stored in a memory of a node in a cluster. An extent store layer of a storage input/output (I/O) stack executing on the node stores key-value pairs in a plurality of data structures, e.g., cuckoo hash tables, resident in the memory. The cuckoo hash table embodies metadata that describes an extent and, as such, may be organized to associate a location on disk with a value that identifies the location on disk. The value may be embodied as a locator that includes a reference count used to support deduplication functionality of the extent store layer with respect to the extent. The reference count is divided into two portions: a delta count portion stored in memory for each slot of the hash table and an overflow count portion stored on disk in a header of each extent. One bit of the delta count portion is reserved as an overflow bit that indicates whether the in-memory reference count has overflowed.
    Type: Application
    Filed: February 13, 2018
    Publication date: June 21, 2018
    Inventors: Manish Swaminathan, Dhaval Patel, Edward D. McClanahan, Jeffrey S. Kimmel
  • Patent number: 9934264
    Abstract: A technique reduces an amount of metadata stored in a memory of a node in a cluster. An extent store layer of a storage input/output (I/O) stack executing on the node stores key-value pairs in a plurality of data structures, e.g., cuckoo hash tables, resident in the memory. The cuckoo hash table embodies metadata that describes an extent and, as such, may be organized to associate a location on disk with a value that identifies the location on disk. The value may be embodied as a locator that includes a reference count used to support deduplication functionality of the extent store layer with respect to the extent. The reference count is divided into two portions: a delta count portion stored in memory for each slot of the hash table and an overflow count portion stored on disk in a header of each extent. One bit of the delta count portion is reserved as an overflow bit that indicates whether the in-memory reference count has overflowed.
    Type: Grant
    Filed: June 2, 2015
    Date of Patent: April 3, 2018
    Assignee: NetApp, Inc.
    Inventors: Manish Swaminathan, Dhaval Patel, Edward D. McClanahan, Jeffrey S. Kimmel
  • Publication number: 20170235673
    Abstract: A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively, may be embodied as a segment cleaning process. The rate matching technique may be implemented as a feedback control mechanism configured to adjust the segment cleaning process based on the incoming workload. Components of the feedback control mechanism may include one or more weight schedulers and various accounting data structures, e.g., counters, configured to track the progress of segment cleaning and free space usage. The counters may also be used to balance the rates of segment cleaning and incoming I/O workload, which may change depending upon an incoming I/O rate.
    Type: Application
    Filed: April 28, 2017
    Publication date: August 17, 2017
    Inventors: Dhaval Patel, Manish Swaminathan, Edward D. McClanahan, John Muth
  • Patent number: 9671960
    Abstract: A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively, may be embodied as a segment cleaning process. The rate matching technique may be implemented as a feedback control mechanism configured to adjust the segment cleaning process based on the incoming workload. Components of the feedback control mechanism may include one or more weight schedulers and various accounting data structures, e.g., counters, configured to track the progress of segment cleaning and free space usage. The counters may also be used to balance the rates of segment cleaning and incoming I/O workload, which may change depending upon an incoming I/O rate.
    Type: Grant
    Filed: September 12, 2014
    Date of Patent: June 6, 2017
    Assignee: NetApp, Inc.
    Inventors: Dhaval Patel, Manish Swaminathan, Edward D. McClanahan, John Muth
  • Publication number: 20170011062
    Abstract: A flow control technique prevents exhaustion of storage resources in an exactly once semantics (EOS) system of a storage input/output stack executing on a node of a cluster. An EOS server may service transactions sent by an EOS client and issue replies with results to the EOS client. In order to replay the transactions during normal operation after recovery from a crash, the EOS server persistently stores the transactions in the storage resources until an acknowledgement of completion is received from the EOS client for each pending transaction. The EOS client may issue a checkpoint acknowledgement, e.g., as a prune record, after a periodic interval that marks the completion of all pending transactions issued prior to the record. The EOS server need only log the prune record (rather than each pending transaction) to thereby prevent exhaustion of the storage resources, while also minimizing logging overhead of the server.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Pinkesh Zaveri, Mandar Naik, Edward D. McClanahan
  • Publication number: 20160357743
    Abstract: A technique reduces an amount of metadata stored in a memory of a node in a cluster. An extent store layer of a storage input/output (I/O) stack executing on the node stores key-value pairs in a plurality of data structures, e.g., cuckoo hash tables, resident in the memory. The cuckoo hash table embodies metadata that describes an extent and, as such, may be organized to associate a location on disk with a value that identifies the location on disk. The value may be embodied as a locator that includes a reference count used to support deduplication functionality of the extent store layer with respect to the extent. The reference count is divided into two portions: a delta count portion stored in memory for each slot of the hash table and an overflow count portion stored on disk in a header of each extent. One bit of the delta count portion is reserved as an overflow bit that indicates whether the in-memory reference count has overflowed.
    Type: Application
    Filed: June 2, 2015
    Publication date: December 8, 2016
    Inventors: Manish Swaminathan, Dhaval Patel, Edward D. McClanahan, Jeffrey S. Kimmel
  • Publication number: 20160248583
    Abstract: A technique perturbs an extent key to compute a candidate extent key in the event of a collision with metadata (i.e., two extents having different data that yield identical hash values) stored in a memory of a node in a cluster. The perturbing technique may be used to compute a candidate extent key that is not previously stored in an extent store instance. The candidate extent key may be computed from a hash value of an extent using a perturbing algorithm, i.e., a hash collision computation, which illustratively adds a perturb value to the hash value. The perturb value is illustratively sufficient to ensure that the candidate extent key resolves to a same hash bucket and node (extent store instance) as the original extent key. In essence, the technique ensures that the original extent key is perturbed in a deterministic manner to generate the candidate extent key, so that the original extent and candidate extent key “decode” to the same hash bucket and extent store instance.
    Type: Application
    Filed: February 24, 2016
    Publication date: August 25, 2016
    Inventors: Edward D. McClanahan, Jeffrey S. Kimmel
  • Publication number: 20160246522
    Abstract: An exactly once semantics (EOS) system of a storage input/output (I/O) stack implements a technique ensuring that non-idempotent operations occur exactly once in a storage system embodied as a node of a cluster. Illustratively, a first layer of the storage I/O stack may act as a client issuing a non-idempotent operation to second layer of the stack, which may act as a server. According to the technique, the EOS system may wrap (i.e., encapsulate) the non-idempotent operation within a transaction embodied as an EOS transaction data structure having a transaction identifier that uniquely identifies the transaction. The server may complete the transaction and reply with a result to the client, which may acknowledge receipt of the reply. In response to a crash and subsequent recovery of the node, the EOS system may determine whether the transaction had completed prior to the crash. If so, the EOS system ensures that the transaction is not re-played (re-executed).
    Type: Application
    Filed: February 25, 2015
    Publication date: August 25, 2016
    Inventors: Srinath Krishnamachari, Kayuri H. Patel, Jeffrey S. Kimmel, Edward D. McClanahan
  • Publication number: 20160077745
    Abstract: A rate matching technique may be configured to adjust a rate of cleaning of one or more selected segments of the storage array to accommodate a variable rate of incoming workload processed by a storage input/output (I/O) stack executing on one or more nodes of a cluster. An extent store layer of the storage I/O stack may clean a segment in accordance with segment cleaning which, illustratively, may be embodied as a segment cleaning process. The rate matching technique may be implemented as a feedback control mechanism configured to adjust the segment cleaning process based on the incoming workload. Components of the feedback control mechanism may include one or more weight schedulers and various accounting data structures, e.g., counters, configured to track the progress of segment cleaning and free space usage. The counters may also be used to balance the rates of segment cleaning and incoming I/O workload, which may change depending upon an incoming I/O rate.
    Type: Application
    Filed: September 12, 2014
    Publication date: March 17, 2016
    Inventors: Dhaval Patel, Manish Swaminathan, Edward D. McClanahan, John Muth
  • Publication number: 20160077746
    Abstract: An optimized segment cleaning technique is configured to efficiently clean one or more selected portions or segments of a storage array coupled to one or more nodes of a cluster. A bottom-up approach of the segment cleaning technique is configured to read all blocks of a segment to be cleaned (i.e., an “old” segment) to locate extents stored on the SSDs of the old segment and examine extent metadata to determine whether the extents are valid and, if so, relocate the valid extents to a segment being written (i.e., a “new” segment). A top-down approach of the segment cleaning technique obviates reading of the blocks of the old segment to locate the extents and, instead, examines the extent metadata to determine the valid extents of the old segment.
    Type: Application
    Filed: September 12, 2014
    Publication date: March 17, 2016
    Inventors: John Muth, Edward D. McClanahan, Dhaval Patel, Manish Swaminathan
  • Patent number: 9069779
    Abstract: In at least some disclosed embodiments, a method includes a) creating a first stub file on a target file server, b) creating a t-stub file at the location of the source directory, c) disabling performance of operations on the source data while allowing completion of operations in progress, d) copying the source data into a hidden directory on the target file server, thus creating target data, e) overwriting the first stub file by renaming the target data, f) enabling performance of operations on the target data, g) performing queued operations on the target data, and h) deleting the source data from the source file server.
    Type: Grant
    Filed: December 7, 2007
    Date of Patent: June 30, 2015
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Edward D. McClanahan, Ranji Balasubramanian, Borislav Marinov, Dilip Naik
  • Patent number: 9031899
    Abstract: A method includes creating a temporary target s-stub file. The temporary target s-stub file points to a source share. The method further includes creating a plurality of stub files in a target top-level directory on a target share. Each stub file out of the plurality of stub files corresponds to source data. The source data includes files and subdirectories in a source top-level directory on a source share. The plurality of stub files include source information, the source information is associated with the temporary target s-stub file, and a source s-stub file points to the source share. The method further includes remapping the source s-stub to point to the target share.
    Type: Grant
    Filed: December 7, 2007
    Date of Patent: May 12, 2015
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Edward D. McClanahan, Rajni Balasubramanian, Sivakumar Darimisetty
  • Patent number: 8532119
    Abstract: A Fiber Channel router used to join fabrics. EX_ports are used to connect to the fabrics. The EX_port joins the fabric but the router will not merge into the fabric. Ports in the Fiber Channel router can be in a fabric, but other ports can be connected to other fabrics. Fiber Channel routers can be interconnected using a backbone fabric. Global, interfabric and encapsulation headers are developed to allow routing by conventional Fiber Channel switch devices in the backbone fabric and simplify Fiber Channel router routing. Phantom domains and devices must be developed for each of the fabrics being interconnected. Front phantom domains are present at each port directly connected to a fabric. Each of these is then connected to at least one translate phantom domain. Zoning is accomplished by use of a special LSAN zoning naming convention. This allows each administrator to independently define devices are accessible.
    Type: Grant
    Filed: July 30, 2004
    Date of Patent: September 10, 2013
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Robert Norman Snively, Steven L. Wilson, Edward D. McClanahan, Dennis Hideo Makishima, Daniel Ji Yong Park Chung
  • Patent number: 8200871
    Abstract: A system including a storage processing device with an input/output module. The input/output module has port processors to receive and transmit network traffic. The input/output module also has a switch connecting the port processors. Each port processor categorizes the network traffic as fast path network traffic or control path network traffic. The switch routes fast path network traffic from an ingress port processor to a specified egress port processor. The storage processing device also includes a control module to process the control path network traffic received from the ingress port processor. The control module routes processed control path network traffic to the switch for routing to a defined egress port processor. The control module is connected to the input/output module. The input/output module and the control module are configured to interactively support data virtualization, data migration, data journaling, and snapshotting.
    Type: Grant
    Filed: May 13, 2010
    Date of Patent: June 12, 2012
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Venkat Rangan, Edward D. McClanahan, Michael B. Schmitz
  • Patent number: 8059664
    Abstract: A Fiber Channel router used to join fabrics. EX_ports are used to connect to the fabrics. The EX_port joins the fabric but the router will not merge into the fabric. Ports in the Fiber Channel router can be in a fabric, but other ports can be connected to other fabrics. Fiber Channel routers can be interconnected using a backbone fabric. Global, interfabric and encapsulation headers are developed to allow routing by conventional Fiber Channel switch devices in the backbone fabric and simplify Fiber Channel router routing. Phantom domains and devices must be developed for each of the fabrics being interconnected. Front phantom domains are present at each port directly connected to a fabric. Each of these is then connected to at least one translate phantom domain. Zoning is accomplished by use of a special LSAN zoning naming convention. This allows each administrator to independently define devices are accessible.
    Type: Grant
    Filed: July 30, 2004
    Date of Patent: November 15, 2011
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Steven L. Wilson, Robert Norman Snively, Edward D. McClanahan, Dennis Hideo Makishima, Daniel Ji Yong Park Chung