Patents by Inventor James Christopher Sorenson, III

James Christopher Sorenson, III 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: 10180953
    Abstract: Methods and apparatus for receiving uploaded data from a sender at a receiver. A data deduplication technique is described that may reduce the bandwidth used in uploading data from the sender to the receiver. In the technique, the receiver, rather than the sender, maintains a fingerprint dictionary for previously uploaded data. When a sender has additional data to be uploaded, the sender extracts fingerprints for units of the data and sends the fingerprints to the receiver. The receiver checks its fingerprint dictionary to determine the data units to be uploaded and notifies the sender of the identified units, which then sends the identified units of data to the receiver. The technique may, for example, be applied in virtualized data store systems to reduce bandwidth usage in uploading data.
    Type: Grant
    Filed: January 26, 2015
    Date of Patent: January 15, 2019
    Assignee: Amazon Technologies Inc.
    Inventor: James Christopher Sorenson, III
  • Publication number: 20180375928
    Abstract: A distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer (LB) nodes according to a per-flow hashed multipath routing technique. For a given packet flow, the LB nodes randomly select a server node as a target for the packet flow from among multiple server nodes and send a connection request to the server node. A load balancer module on the server node makes the decision on whether to accept or reject the connection based on one or more metrics indicating a respective server's current load. If the module accepts the connection request, a connection is established between the server and the client. Otherwise, the load balancer nodes may select another server node and try again. The connections established between clients and servers pass through the load balancer nodes, but are not terminated at the load balancer nodes.
    Type: Application
    Filed: August 31, 2018
    Publication date: December 27, 2018
    Applicant: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Douglas Stewart Laurence, Venkatraghavan Srinivasan, Akshay Suhas Vaidya, Fan Zhang
  • Publication number: 20180359177
    Abstract: A distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer nodes. The router exposes a public IP address and the load balancer nodes all advertise the same public IP address to the router. The router may implement a per-flow hashed multipath routing technique, for example an equal-cost multipath (ECMP) routing technique, to distribute the flows across the load balancer nodes. Thus, the multiple load balancer nodes may service a single public endpoint. The load balancer nodes may advertise to the router according to the Border Gateway Protocol (BGP). Rather than advertising itself, however, a load balancer node may be advertised to the router by one or more neighbor load balancer nodes; the neighbor nodes may terminate the BGP sessions with the router in response to determining that the load balancer node has failed.
    Type: Application
    Filed: July 27, 2018
    Publication date: December 13, 2018
    Applicant: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Douglas Stewart Laurence, Neha Shetty
  • Patent number: 10135914
    Abstract: A connection publishing method for a distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer (LB) nodes, which in turn distribute the packet flows among multiple server nodes. A load balancer (LB) module on each server node determines and publishes a list of active connections between client(s) and the server (a connection publishing packet) back to the LB nodes. The LB module may randomly select a LB node to receive the packet. Upon receiving the packet, the LB node processes the connection information in the packet, distributing the connection information among appropriate LB nodes. Receiving the connection publishing information from the server nodes refreshes leases for the connections on the LB nodes.
    Type: Grant
    Filed: April 16, 2013
    Date of Patent: November 20, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Douglas Stewart Laurence, Venkatraghavan Srinivasan, Akshay Suhas Vaidya
  • Patent number: 10129337
    Abstract: Methods, apparatus, and computer-accessible storage media for providing a volume-based block storage service and application programming interfaces (APIs) to the service. A block storage service and block storage service APIs may allow processes (applications or appliances) on the service client network to leverage remote, volume-based block storage provided by the service provider. The APIs may provide a standard interface to volume-based block storage operations on a remote data store. The service provider, the service clients, and/or third parties may develop various applications and/or appliances that may, for example, be instantiated in service clients' local networks and that leverage the block storage service via the APIs to create and manage volumes and snapshots on the remote data store and to upload and download data from the volumes and snapshots on the remote data store.
    Type: Grant
    Filed: April 24, 2017
    Date of Patent: November 13, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: Yun Lin, James Christopher Sorenson, III, David C. Salyers
  • Patent number: 10120579
    Abstract: Techniques for implementing a data management scheme for optimizing data storage are described herein. A deletion quantity or other metric relating to deletions of data within a first storage zone are tracked. Upon detection that the tracked deletion metric meets certain criteria, the data within the first storage zone are moved to a second storage zone. A verification of the data to be moved is also performed, and if such verification indicates that at least a portion of the data is corrupted, routines repairing and/or restoring at least the corrupted portion are initiated.
    Type: Grant
    Filed: August 8, 2012
    Date of Patent: November 6, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: Kestutis Patiejunas, Colin L. Lazier, James Christopher Sorenson, III
  • Patent number: 10091329
    Abstract: A computing environment is disclosed that receives from devices requests directed toward services accessible in the environment, and that forwards communications from services in the environment to devices registered with the environment. During a registration process at the environment, devices are assigned a device identifier that is used to identify and authenticate each particular device and requests communicated from and to the device via the environment. The computing environment maintains state information for each device that has been registered with the system. As the device interacts with the system, the state information is updated to reflect the changes in the device. When requests to perform functions are received from devices, the computing environment determines for the particular device and the particular function requested what processing needs to be performed by the environment in response to the request.
    Type: Grant
    Filed: June 30, 2015
    Date of Patent: October 2, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: Calvin Yue-Ren Kuo, James Christopher Sorenson, III, Alan Conrad Rawcliffe, Shyam Krishnamoorthy, Jonathan I. Turow, Marco Argenti
  • Patent number: 10075422
    Abstract: A computing environment is disclosed that receives from devices requests directed toward services accessible in the environment, and that forwards communications from services in the environment to devices registered with the environment. During a registration process at the environment, devices are assigned a device identifier that is used to identify and authenticate each particular device and requests communicated from and to the device via the environment. The computing environment maintains state information for each device that has been registered with the system. As the device interacts with the system, the state information is updated to reflect the changes in the device. When requests to perform functions are received from devices, the computing environment determines for the particular device and the particular function requested what processing needs to be performed by the environment in response to the request.
    Type: Grant
    Filed: June 30, 2015
    Date of Patent: September 11, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: Alan Conrad Rawcliffe, Samuel John Young, Shyam Krishnamoorthy, Marco Argenti, Jonathan I. Turow, Calvin Yue-Ren Kuo, James Christopher Sorenson, III
  • Patent number: 10069903
    Abstract: A distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer (LB) nodes according to a per-flow hashed multipath routing technique. For a given packet flow, the LB nodes randomly select a server node as a target for the packet flow from among multiple server nodes and send a connection request to the server node. A load balancer module on the server node makes the decision on whether to accept or reject the connection based on one or more metrics indicating a respective server's current load. If the module accepts the connection request, a connection is established between the server and the client. Otherwise, the load balancer nodes may select another server node and try again. The connections established between clients and servers pass through the load balancer nodes, but are not terminated at the load balancer nodes.
    Type: Grant
    Filed: April 16, 2013
    Date of Patent: September 4, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Douglas Stewart Laurence, Venkatraghavan Srinivasan, Akshay Suhas Vaidya, Fan Zhang
  • Publication number: 20180227388
    Abstract: A computing environment is disclosed that receives from devices requests directed toward services accessible in the environment, and that forwards communications from services in the environment to devices registered with the environment. During a registration process at the environment, devices are assigned a device identifier that is used to identify and authenticate each particular device and requests communicated from and to the device via the environment. The computing environment maintains state information for each device that has been registered with the system. As the device interacts with the system, the state information is updated to reflect the changes in the device. When requests to perform functions are received from devices, the computing environment determines for the particular device and the particular function requested what processing needs to be performed by the environment in response to the request.
    Type: Application
    Filed: February 1, 2018
    Publication date: August 9, 2018
    Inventors: Calvin Yue-Ren Kuo, James Christopher Sorenson, III, Alan Conrad Rawcliffe, Shyam Krishnamoorthy, Jonathan I. Turow, Marco Argenti
  • Patent number: 10038626
    Abstract: A distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer nodes. The router exposes a public IP address and the load balancer nodes all advertise the same public IP address to the router. The router may implement a per-flow hashed multipath routing technique, for example an equal-cost multipath (ECMP) routing technique, to distribute the flows across the load balancer nodes. Thus, the multiple load balancer nodes may service a single public endpoint. The load balancer nodes may advertise to the router according to the Border Gateway Protocol (BGP). Rather than advertising itself, however, a load balancer node may be advertised to the router by one or more neighbor load balancer nodes; the neighbor nodes may terminate the BGP sessions with the router in response to determining that the load balancer node has failed.
    Type: Grant
    Filed: April 16, 2013
    Date of Patent: July 31, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Douglas Stewart Laurence
  • Patent number: 10027712
    Abstract: Embodiments may include a load balancer that receives a request packet sent by a remote client to an original destination address of multiple network addresses serviced by the load balancer, and selects according to a load balancing protocol, a host computer of a plurality of host computers to process the request. The load balancer may, from among a plurality of ports on the selected host computer, select a particular port having a one-to-one association with the original destination address, the association specified by mapping information accessible to the load balancer, and send the request packet to the selected port on the selected host computer. The mapping information accessible to the selected host computer specifies a one-to-one association between the selected port and the original destination address. Sending the request packet to the selected port conveys that address to the selected server without that address being included in that packet.
    Type: Grant
    Filed: August 18, 2014
    Date of Patent: July 17, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, David Carl Salyers
  • Publication number: 20180199204
    Abstract: A provisioning device may be shipped to a client and used to automatically provision an IoT device to join a local network to communicate with a remote service provider. In response to a trigger input, the provisioning device creates a wireless hotspot that is recognizable by an IoT device as a provisioning hotspot. The provisioning device receives a signal from the IoT device indicating that the IoT device is available to be provisioned. The provisioning device obtains provisioning data and transmits the provisioning data to the IoT device. The IoT device uses the provisioning data to connect to a local wireless network and to establish a connection to the remote service provider. The IoT device may then use one or more IoT services of the service provider.
    Type: Application
    Filed: March 5, 2018
    Publication date: July 12, 2018
    Applicant: Amazon Technologies, Inc.
    Inventors: Kyle Michael Roche, James Christopher Sorenson, III
  • Patent number: 10003527
    Abstract: A device is described for assisting network technicians and other users with network cabling. The device can be provided to a technician, where the technician plugs a loose cable end into the device, and if the other end of the cable is attached to a switch (e.g. Euclid switch), the device indicates to the technician via a display where on the network the cable should be plugged in (which port on which switch). When the device is connected to a switch via a cable, the switch can make available its information to the device. The device can also consult a data store to determine where the other end should be attached. The information that is used to determine where the cable should be attached can include the number of layers in the network; the number of switches in each layer; and the number of ports on the switches.
    Type: Grant
    Filed: January 26, 2012
    Date of Patent: June 19, 2018
    Assignee: Amazon Technologies, Inc.
    Inventor: James Christopher Sorenson, III
  • Publication number: 20180157997
    Abstract: A system capable of identifying and locking resources (e.g., items, tickets, etc.) may map resources to a bit vector and use bit vectors to efficiently identify and lock the resources. For example, tickets to a concert may be mapped to a bit vector and the system may generate an availability bit vector indicating an availability of the seat locations. Thus, the tickets may be reserved by changing a binary value for bits corresponding to individual tickets. In addition, the system may generate bit vectors corresponding to metadata associated with the seat locations (e.g., aisle seat, handicap accessible, first ten rows, back ten rows, etc.), allowing the system to easily identify available seat locations that satisfy the search request. As the bit vectors are relatively small and can be processed easily, the system may improve a latency and reduce an error rate associated with searching for and reserving seat locations.
    Type: Application
    Filed: December 6, 2016
    Publication date: June 7, 2018
    Inventors: Steve Huynh, Owen Cummings, Karl Gohde, Antonio Gabriel Perez de Tejada Martinez, Adam Douglas Morley, Graham Pedersen, James Christopher Sorenson, III
  • Publication number: 20180157998
    Abstract: A system capable of identifying and locking resources (e.g., items, tickets, etc.) may map resources to a bit vector and use bit vectors to efficiently identify and lock the resources. For example, tickets to a concert may be mapped to a bit vector and the system may generate an availability bit vector indicating an availability of the seat locations. Using bit vectors, the system may easily identify available seat locations that satisfy a search request and may select from the available seat locations using an optimization technique. For example, the system may select groups of seats that are next to unavailable seat locations or avoid selling groups of seats that would leave only a single seat available. Thus, the system may avoid fragmentation of ticket sales while improving a latency associated with searching for and reserving seat locations.
    Type: Application
    Filed: December 6, 2016
    Publication date: June 7, 2018
    Inventors: Steve Huynh, Owen Cummings, Karl Gohde, Antonio Gabriel Perez de Tejada Martinez, Adam Douglas Morley, Graham Pedersen, James Christopher Sorenson, III
  • Patent number: 9990147
    Abstract: Methods and apparatus for optimizing resource utilization in distributed storage systems. A data migration technique is described that may operate in the background in a distributed storage data center to migrate data among a fleet of storage units to achieve a substantially even and randomized data storage distribution among all storage units in the fleet. When new storage units are added to the fleet and coupled to the data center network, the new storage units are detected. Instead of processing and storing new data to the newly added storage units, as in conventional distributed storage systems, the new units are blocked from general client I/O to allow the data migration technique to migrate data from other, previously installed storage hardware in the data center onto the new storage hardware. Once the storage load on the new storage units is balanced with the rest of the fleet, the new storage units are released for general client I/O.
    Type: Grant
    Filed: April 27, 2015
    Date of Patent: June 5, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: James Christopher Sorenson, III, Gang He, Saurabh Goel
  • Publication number: 20180152406
    Abstract: Systems and methods are described for management of data transmitted between computing devices in a communication network. An administrative component can configure one or more devices in the communication path of messages to be exchanged by devices to interpret codes embedded in the communication messages. A receiving device can review incoming messages and process the message to determine how the communication message will be routed or otherwise processed according to business rules or logic.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Calvin Yue-Ren Kuo, Jonathan I. Turow, Kyunghwan Choi, Marc John Brooker, James Christopher Sorenson, III, Weili Zhong McClenahan, Mark Edward Rafn
  • Publication number: 20180152405
    Abstract: Systems and methods are described for management of data transmitted between computing devices in a communication network. An administrative component can configure one or more devices in the communication path of messages to be exchanged by devices to interpret codes embedded in the communication messages. A receiving device can review incoming messages for one or more processing codes or instructions that are embedded in the portion of the communication typically utilized solely to identify the subject matter of the communication, generally referred to as the topic portion of the communication. The receiving devices can then process the embedded codes to determine how the communication message will be routed or otherwise processed.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Calvin Yue-Ren Kuo, Jonathan I. Turow, Kyunghwan Choi, Marc John Brooker, James Christopher Sorenson, III, Weili Zhong McClenahan, Mark Edward Rafn
  • Publication number: 20180150339
    Abstract: Systems and methods are described for implementing a coordinator within a coordinated environment, which environment includes set of coordinated devices managed by the coordinator. The coordinator can be provisioned with a set of tasks, each task corresponding to a segment of code that can be executed by the coordinator, such as to manage the coordinated devices. To assist in execution of the tasks, the coordinator can include a communications manager that enables communications between tasks. The communications manager can provide a language-independent interface to call for execution of tasks, pass information to a task, and obtain outputs of a task. In some embodiments, the communication manager may utilize a language-independent protocol, such as the hypertext transport protocol, and be configured to respond to requests addressed to uniform resource identifiers associated with the communications manager.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Cheng Pan, Calvin Yue-Ren Kuo, Jonathan I. Turow, Marc John Brooker, James Christopher Sorenson, III, Weili Zhong McClenahan