Patents by Inventor Nathan L. Williams

Nathan L. Williams 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: 11442632
    Abstract: This application relates to load balancing for a number of partitions of a network-based storage service. Each partition includes a number of server devices and/or network devices located in a data center and configured to provide access to storage resources hosted within the data center. User accounts are assigned to a particular partition such that requests related to a particular user account are routed to that partition. Periodically, a load balancing algorithm is executed to re-assign user accounts to different partitions to rebalance resource consumption across the different partitions. The load balancing algorithm can balance resource consumption for any number of resource types by generating a vector of resource utilization parameters for each user account, sorting the plurality of user accounts into clusters based on the vectors, and mapping at least some user accounts to different partitions.
    Type: Grant
    Filed: September 20, 2018
    Date of Patent: September 13, 2022
    Assignee: Apple Inc.
    Inventors: Nicolas A. Favre-Felix, Alexander Shraer, Ori Herrnstadt, Nathan L. Williams
  • Publication number: 20190303021
    Abstract: This application relates to load balancing for a number of partitions of a network-based storage service. Each partition includes a number of server devices and/or network devices located in a data center and configured to provide access to storage resources hosted within the data center. User accounts are assigned to a particular partition such that requests related to a particular user account are routed to that partition. Periodically, a load balancing algorithm is executed to re-assign user accounts to different partitions to rebalance resource consumption across the different partitions. The load balancing algorithm can balance resource consumption for any number of resource types by generating a vector of resource utilization parameters for each user account, sorting the plurality of user accounts into clusters based on the vectors, and mapping at least some user accounts to different partitions.
    Type: Application
    Filed: September 20, 2018
    Publication date: October 3, 2019
    Inventors: Nicolas A. FAVRE-FELIX, Alexander SHRAER, Ori HERRNSTADT, Nathan L. WILLIAMS
  • Patent number: 8271458
    Abstract: A markup language document representing computing elements of a computing architecture, such as data storage elements of a data storage architecture, is constructed and analyzed. A first computing element contained by a second computing element is represented; a first tag of the document corresponding to the first computing element is nested within a second tag of the markup language document corresponding to the second computing element. A non-containing/contained relationship from the first computing element to a third computing element is also represented; a pointer tag of the document corresponding to the data access path is nested within the first tag, and references a third tag of the document corresponding to the third computing element. Get-pointer-node and get-child-node application programming interfaces for the markup language are called to traverse among containing/contained relationships. Pointer tags are followed to traverse among non-containing/contained relationships.
    Type: Grant
    Filed: September 6, 2011
    Date of Patent: September 18, 2012
    Assignee: International Business Machines Corporation
    Inventors: Bernhard J. Klingenberg, Steven J. Davis, David G. Van Hise, James E. Gruener, Alisa Neeman, Emil R. Nunez, Nathan L. Williams
  • Publication number: 20110320929
    Abstract: A markup language document representing computing elements of a computing architecture, such as data storage elements of a data storage architecture, is constructed and analyzed. A first computing element contained by a second computing element is represented; a first tag of the document corresponding to the first computing element is nested within a second tag of the markup language document corresponding to the second computing element. A non-containing/contained relationship from the first computing element to a third computing element is also represented; a pointer tag of the document corresponding to the data access path is nested within the first tag, and references a third tag of the document corresponding to the third computing element. Get-pointer-node and get-child-node application programming interfaces for the markup language are called to traverse among containing/contained relationships. Pointer tags are followed to traverse among non-containing/contained relationships.
    Type: Application
    Filed: September 6, 2011
    Publication date: December 29, 2011
    Inventors: Bernhard J. Klingenberg, Steven J. Davis, David G. Van Hise, James E. Gruener, Alisa Neeman, Emil R. Nunez, Nathan L. Williams
  • Patent number: 8037404
    Abstract: A markup language document representing computing elements of a computing architecture, such as data storage elements of a data storage architecture, is constructed and analyzed. A first computing element contained by a second computing element is represented; a first tag of the document corresponding to the first computing element is nested within a second tag of the markup language document corresponding to the second computing element. A non-containing/contained relationship from the first computing element to a third computing element is also represented; a pointer tag of the document corresponding to the data access path is nested within the first tag, and references a third tag of the document corresponding to the third computing element. Get-pointer-node and get-child-node application programming interfaces for the markup language are called to traverse among containing/contained relationships. Pointer tags are followed to traverse among non-containing/contained relationships.
    Type: Grant
    Filed: May 3, 2009
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Bernhard J. Klingenberg, Steven J. Davis, David G. Van Hise, James E. Gruener, Alisa Neeman, Emil R. Nunez, Nathan L. Williams
  • Publication number: 20100281356
    Abstract: A markup language document representing computing elements of a computing architecture, such as data storage elements of a data storage architecture, is constructed and analyzed. A first computing element contained by a second computing element is represented; a first tag of the document corresponding to the first computing element is nested within a second tag of the markup language document corresponding to the second computing element. A non-containing/contained relationship from the first computing element to a third computing element is also represented; a pointer tag of the document corresponding to the data access path is nested within the first tag, and references a third tag of the document corresponding to the third computing element. Get-pointer-node and get-child-node application programming interfaces for the markup language are called to traverse among containing/contained relationships. Pointer tags are followed to traverse among non-containing/contained relationships.
    Type: Application
    Filed: May 3, 2009
    Publication date: November 4, 2010
    Inventors: Bernhard J. Klingenberg, Steven J. Davis, David G. Van Hise, James E. Gruener, Alisa Neeman, Emil R. Nunez, Nathan L. Williams