Patents by Inventor Philip Daniel Piwonka

Philip Daniel Piwonka 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: 11943093
    Abstract: Systems and methods are described for enabling graceful recovery of network connections in a virtual machine instance that has been migrated or temporarily halted. To prevent the virtual machine instance from attempting to reuse open connections, which might fail due to migration or halting, a host device identifies open connections just prior to halting the virtual machine instance on the host, and transmits to the virtual machine instance termination signals for the open connections. The host device may further transmit termination signals to the other parties to such connections. Each termination signal may be formatted so as to appear to originate from the other party to the connection, causing both parties to synchronize their knowledge of the connection. On reactivation, the virtual machine instance can recovery the connections without errors associated with attempted utilization of broken connections.
    Type: Grant
    Filed: November 20, 2018
    Date of Patent: March 26, 2024
    Assignee: Amazon Technologies, Inc.
    Inventors: Marc John Brooker, Timothy Allen Wagner, Mikhail Danilov, Niall Mullen, Holly Mesrobian, Philip Daniel Piwonka
  • Patent number: 11875173
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning or configuring sidecar virtualized execution environments that work in conjunction with the main virtualized execution environment executing the submitted code. Sidecar virtualized execution environments may be identified and obtained from a library of preconfigured sidecar virtualized execution environments, or a sidecar agent that provides the auxiliary function may be identified from a library, and then a virtualized execution environment may be provisioned with the agent and/or configured to work in conjunction with the main virtualized execution environment.
    Type: Grant
    Filed: November 30, 2020
    Date of Patent: January 16, 2024
    Assignee: Amazon Technologies, Inc.
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Patent number: 11593270
    Abstract: Systems and methods are described for providing rapid access to data objects stored in a cache. Rather than storing data objects directly, each object can be broken into a number of parts via erasure coding, which enables the object to be generated from less than all parts. When servicing a request for the data object, a device can attempt to retrieve all parts, but begin to generate the data object as soon as a sufficient number of parts is retrieved, even if requests for other parts are outstanding. In this way, the data object can be retrieved without delay due to the slowest requests. For example, where one or more requests timeout, such as due to failure of cache devices, this timeout may have no effect on time required to retrieve the data object from the cache.
    Type: Grant
    Filed: November 25, 2020
    Date of Patent: February 28, 2023
    Assignee: Amazon Technologies, Inc.
    Inventors: Marc Brooker, Philip Daniel Piwonka, Nare Hayrapetyan
  • Patent number: 11550713
    Abstract: Systems and methods are described for enabling garbage collection on data storage systems. Traditional garbage collection often attempts to track use of data items on an individual level, deleting each item when it is no longer used. In distributed systems, tracking use on an individual level is difficult, and may require centralized knowledge across the system with respect to individual data items. Provided herein is a “coarse-grained” garbage collection mechanism, which divides objects into logical groups referred to as “roots.” Each root has a life cycle. While active, new data can be stored in a root. While inactive, use of data within a root can cause that date to be copied to a different, active root. When the system detects that data hasn't been used in an inactive root for a threshold period, the root can be considered “dead” and data within the root may be deleted.
    Type: Grant
    Filed: November 25, 2020
    Date of Patent: January 10, 2023
    Assignee: Amazon Technologies, Inc.
    Inventors: Philip Daniel Piwonka, Mihir Sathe, Roger J. Tragin, Dmitry Kravtsov
  • Patent number: 11010188
    Abstract: Systems and methods are described for simulated data object storage on a data storage system. The system may allow clients to store computed data objects, which are generated from a source data object based on a user-defined transformation. For example, computed data objects may be thumbnail images generated based on a full resolution image. When a request to store a computed data object is received, the system can predict a timing of a next request for the data object. If expected resource consumption associated with storing the data object until a next request exceeds expected resource consumption associated with generating the data object in response to the next request, the system can acknowledge the request to store the data object, but not actually store the data object. Instead, the system may generate the data object in response to the next request.
    Type: Grant
    Filed: February 5, 2019
    Date of Patent: May 18, 2021
    Assignee: Amazon Technologies, Inc.
    Inventors: Marc Brooker, Timothy Allen Wagner, Mikhail Danilov, Niall Mullen, Holly Mesrobian, Philip Daniel Piwonka
  • Publication number: 20210081233
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning or configuring sidecar virtualized execution environments that work in conjunction with the main virtualized execution environment executing the submitted code. Sidecar virtualized execution environments may be identified and obtained from a library of preconfigured sidecar virtualized execution environments, or a sidecar agent that provides the auxiliary function may be identified from a library, and then a virtualized execution environment may be provisioned with the agent and/or configured to work in conjunction with the main virtualized execution environment.
    Type: Application
    Filed: November 30, 2020
    Publication date: March 18, 2021
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Patent number: 10949237
    Abstract: Systems and methods are described for managing operating system customization in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the operating system functions that the submitted code may invoke when executed on the system, and may determine whether the required functionality can be provided by a customized operating system. The customized operating system may provide some functionality but omit other functionality, and thereby avoid consuming any resources associated with making the omitted functionality available. For example, the system may determine that the user-submitted code does not require filesystem interactions, network interactions, interactions with particular devices, caching, paging, profiling, etc., and may thus provide an operating system that does not include one or more of these services.
    Type: Grant
    Filed: June 29, 2018
    Date of Patent: March 16, 2021
    Assignee: Amazon Technologies, Inc.
    Inventors: Philip Daniel Piwonka, Timothy Allen Wagner, Niall Mullen, Marc John Brooker
  • Patent number: 10884812
    Abstract: Systems and methods are described for providing performance-based hardware emulation in an on-demand network code execution system. A user may generate a task on the system by submitting code. The system may determine, based on the code or its execution, that the code executes more efficiently if certain functionality is available, such as an extension to a processor's instruction set. The system may further determine that it can provide the needed functionality using various computing resources, which may include physical hardware, emulated hardware (e.g., a virtual machine), or combinations thereof. The system may then determine and provide a set of computing resources to use when executing the user-submitted code, which may be based on factors such as availability, cost, estimated performance, desired performance, or other criteria. The system may also migrate code from one set of computing resources to another, and may analyze demand and project future computing resource needs.
    Type: Grant
    Filed: December 13, 2018
    Date of Patent: January 5, 2021
    Assignee: Amazon Technologies, Inc.
    Inventors: Marc John Brooker, Philip Daniel Piwonka, Niall Mullen, Mikhail Danilov, Holly Mesrobian, Timothy Allen Wagner
  • Patent number: 10853115
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning sidecar virtual machine instances that work in conjunction with the virtual machine instance executing the submitted code. The sidecars may provide auxiliary functions on a per-task, per-user, or per-request basis, and the lifecycles of the sidecars may be determined based on the lifecycles of the virtual machine instances that execute submitted code. Auxiliary functions may thus be provided only when needed, and may be provided securely by preventing a user from accessing the sidecars of other users.
    Type: Grant
    Filed: June 25, 2018
    Date of Patent: December 1, 2020
    Assignee: Amazon Technologies, Inc.
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Patent number: 10817331
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning sidecar virtual machine instances that work in conjunction with the virtual machine instance executing the submitted code. The sidecars may provide auxiliary functions on a per-task, per-user, or per-request basis, and the lifecycles of the sidecars may be determined based on the lifecycles of the virtual machine instances that execute submitted code. Auxiliary functions may thus be provided only when needed, and may be provided securely by preventing a user from accessing the sidecars of other users.
    Type: Grant
    Filed: June 25, 2018
    Date of Patent: October 27, 2020
    Assignee: Amazon Technologies, Inc.
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Publication number: 20200192707
    Abstract: Systems and methods are described for providing performance-based hardware emulation in an on-demand network code execution system. A user may generate a task on the system by submitting code. The system may determine, based on the code or its execution, that the code executes more efficiently if certain functionality is available, such as an extension to a processor's instruction set. The system may further determine that it can provide the needed functionality using various computing resources, which may include physical hardware, emulated hardware (e.g., a virtual machine), or combinations thereof. The system may then determine and provide a set of computing resources to use when executing the user-submitted code, which may be based on factors such as availability, cost, estimated performance, desired performance, or other criteria. The system may also migrate code from one set of computing resources to another, and may analyze demand and project future computing resource needs.
    Type: Application
    Filed: December 13, 2018
    Publication date: June 18, 2020
    Inventors: Marc John Brooker, Philip Daniel Piwonka, Niall Mullen, Mikhail Danilov, Holly Mesrobian, Timothy Allen Wagner
  • Publication number: 20200004571
    Abstract: Systems and methods are described for managing operating system customization in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the operating system functions that the submitted code may invoke when executed on the system, and may determine whether the required functionality can be provided by a customized operating system. The customized operating system may provide some functionality but omit other functionality, and thereby avoid consuming any resources associated with making the omitted functionality available. For example, the system may determine that the user-submitted code does not require filesystem interactions, network interactions, interactions with particular devices, caching, paging, profiling, etc., and may thus provide an operating system that does not include one or more of these services.
    Type: Application
    Filed: June 29, 2018
    Publication date: January 2, 2020
    Inventors: Philip Daniel Piwonka, Timothy Allen Wagner, Niall Mullen, Marc John Brooker
  • Publication number: 20190391841
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning sidecar virtual machine instances that work in conjunction with the virtual machine instance executing the submitted code. The sidecars may provide auxiliary functions on a per-task, per-user, or per-request basis, and the lifecycles of the sidecars may be determined based on the lifecycles of the virtual machine instances that execute submitted code. Auxiliary functions may thus be provided only when needed, and may be provided securely by preventing a user from accessing the sidecars of other users.
    Type: Application
    Filed: June 25, 2018
    Publication date: December 26, 2019
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Publication number: 20190391834
    Abstract: Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning sidecar virtual machine instances that work in conjunction with the virtual machine instance executing the submitted code. The sidecars may provide auxiliary functions on a per-task, per-user, or per-request basis, and the lifecycles of the sidecars may be determined based on the lifecycles of the virtual machine instances that execute submitted code. Auxiliary functions may thus be provided only when needed, and may be provided securely by preventing a user from accessing the sidecars of other users.
    Type: Application
    Filed: June 25, 2018
    Publication date: December 26, 2019
    Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
  • Patent number: 10275506
    Abstract: This disclosure describes devices, architectures, and techniques to coordinate data related to separate services to help create a more robust user experience for a user accessing either or both of the separate services. For instance, if the user currently accesses two separate services that relate to a common subject matter, techniques of this disclosure will provide data from one of the services when the user accesses the other. In one example, an activity feed that includes activities relating to both a first service and a second service may be generated and displayed to a user accessing the first service.
    Type: Grant
    Filed: December 20, 2013
    Date of Patent: April 30, 2019
    Assignee: Amazon Technologies, Inc.
    Inventors: Donald Erik Schneider, Kieran Sean Fitzpatrick, Brian Mitchell Percival, Anne Randolph Marshall, Philip Daniel Piwonka
  • Patent number: 9830333
    Abstract: This disclosure relates to a geographically distributed, multi-master system for storing data records, and associated methods and computer-readable media for replicating data records across geographically distributed data stores of the system in a manner that achieves consistency between data stored in geographically distributed regions as well as deterministic data replication.
    Type: Grant
    Filed: June 27, 2014
    Date of Patent: November 28, 2017
    Assignee: Amazon Technologies, Inc.
    Inventors: Scott Daniel Wisniewski, Donald Erik Schneider, Mathew Persons Jack, Ajay Kumar Sarda, Timothy Zelinsky, Philip Daniel Piwonka, Jeetendra Mirchandani
  • Patent number: 8977592
    Abstract: Architecture for restoring nodes. After restoring a node, fix-up occurs to make the node appear as a different node than before the restore operation. The node appears as a new node, which new node knows the data up to a certain point from when the new node had the prior identity. This enables new changes generated by the new node to flow to the other nodes in the topology, as well as have the changes that the prior identity sent to other nodes flow back to the new node. In other words, the architecture maintains information to create the new node in the topology while maintaining prior data knowledge. Additionally, item level metadata of associated data items is updated to correlate with the updated data items so that changes can be correctly enumerated and applied. This metadata update occurs across scopes of which the data items are included.
    Type: Grant
    Filed: January 12, 2014
    Date of Patent: March 10, 2015
    Assignee: Microsoft Corporation
    Inventors: Philip Daniel Piwonka, Lev Novik, Sundarshan Chitre
  • Publication number: 20140143598
    Abstract: Architecture for restoring nodes. After restoring a node, fix-up occurs to make the node appears as a different node than before the restore operation. The node appears as a new node, which new node knows the data up to a certain point from when the new node had the prior identity. This allows for new changes generated by the new node to flow to the other nodes in the topology, as well as have the changes that the prior identity sent to other nodes flow back to the new node. In other words, the architecture maintains information to create the new node in the topology while maintaining prior data knowledge. Additionally, item level metadata of associated data items is updated to correlate with the updated data items so that changes can be correctly enumerated and applied. This metadata update occurs across scopes of which the data items are included.
    Type: Application
    Filed: January 12, 2014
    Publication date: May 22, 2014
    Applicant: Microsoft Corporation
    Inventors: Philip Daniel Piwonka, Lev Novik, Sundarshan Chitre
  • Patent number: 8675687
    Abstract: The subject disclosure relates to cross scope synchronization among different sets of nodes that synchronize the same data item(s) according to different synchronization scopes. In one aspect, create and update versions are defined for a scope in which a data item was created and updated, respectively, and create and update versions are defined for a local node shared for different groups of nodes synchronizing according to the different synchronization scopes (e.g., a server node).
    Type: Grant
    Filed: August 29, 2012
    Date of Patent: March 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Philip Daniel Piwonka, Lev Novik, Sudarshan Chitre, Gayathri Tambaram Kailasam
  • Patent number: 8630980
    Abstract: Architecture for restoring nodes. After restoring a node, fix-up occurs to make the node appears as a different node than before the restore operation. The node appears as a new node, which new node knows the data up to a certain point from when the new node had the prior identity. This allows for new changes generated by the new node to flow to the other nodes in the topology, as well as have the changes that the prior identity sent to other nodes flow back to the new node. In other words, the architecture maintains information to create the new node in the topology while maintaining prior data knowledge. Additionally, item level metadata of associated data items is updated to correlate with the updated data items so that changes can be correctly enumerated and applied. This metadata update occurs across scopes of which the data items are included.
    Type: Grant
    Filed: April 6, 2010
    Date of Patent: January 14, 2014
    Assignee: Microsoft Corporation
    Inventors: Philip Daniel Piwonka, Lev Novik, Sudarshan Anand Chitre