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: 11943093Abstract: 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: GrantFiled: November 20, 2018Date of Patent: March 26, 2024Assignee: Amazon Technologies, Inc.Inventors: Marc John Brooker, Timothy Allen Wagner, Mikhail Danilov, Niall Mullen, Holly Mesrobian, Philip Daniel Piwonka
-
Patent number: 11875173Abstract: 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: GrantFiled: November 30, 2020Date of Patent: January 16, 2024Assignee: Amazon Technologies, Inc.Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Patent number: 11593270Abstract: 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: GrantFiled: November 25, 2020Date of Patent: February 28, 2023Assignee: Amazon Technologies, Inc.Inventors: Marc Brooker, Philip Daniel Piwonka, Nare Hayrapetyan
-
Patent number: 11550713Abstract: 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: GrantFiled: November 25, 2020Date of Patent: January 10, 2023Assignee: Amazon Technologies, Inc.Inventors: Philip Daniel Piwonka, Mihir Sathe, Roger J. Tragin, Dmitry Kravtsov
-
Patent number: 11010188Abstract: 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: GrantFiled: February 5, 2019Date of Patent: May 18, 2021Assignee: Amazon Technologies, Inc.Inventors: Marc Brooker, Timothy Allen Wagner, Mikhail Danilov, Niall Mullen, Holly Mesrobian, Philip Daniel Piwonka
-
Publication number: 20210081233Abstract: 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: ApplicationFiled: November 30, 2020Publication date: March 18, 2021Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Patent number: 10949237Abstract: 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: GrantFiled: June 29, 2018Date of Patent: March 16, 2021Assignee: Amazon Technologies, Inc.Inventors: Philip Daniel Piwonka, Timothy Allen Wagner, Niall Mullen, Marc John Brooker
-
Patent number: 10884812Abstract: 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: GrantFiled: December 13, 2018Date of Patent: January 5, 2021Assignee: Amazon Technologies, Inc.Inventors: Marc John Brooker, Philip Daniel Piwonka, Niall Mullen, Mikhail Danilov, Holly Mesrobian, Timothy Allen Wagner
-
Patent number: 10853115Abstract: 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: GrantFiled: June 25, 2018Date of Patent: December 1, 2020Assignee: Amazon Technologies, Inc.Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Patent number: 10817331Abstract: 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: GrantFiled: June 25, 2018Date of Patent: October 27, 2020Assignee: Amazon Technologies, Inc.Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Publication number: 20200192707Abstract: 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: ApplicationFiled: December 13, 2018Publication date: June 18, 2020Inventors: Marc John Brooker, Philip Daniel Piwonka, Niall Mullen, Mikhail Danilov, Holly Mesrobian, Timothy Allen Wagner
-
Publication number: 20200004571Abstract: 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: ApplicationFiled: June 29, 2018Publication date: January 2, 2020Inventors: Philip Daniel Piwonka, Timothy Allen Wagner, Niall Mullen, Marc John Brooker
-
Publication number: 20190391841Abstract: 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: ApplicationFiled: June 25, 2018Publication date: December 26, 2019Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Publication number: 20190391834Abstract: 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: ApplicationFiled: June 25, 2018Publication date: December 26, 2019Inventors: Niall Mullen, Philip Daniel Piwonka, Timothy Allen Wagner, Marc John Brooker
-
Patent number: 10275506Abstract: 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: GrantFiled: December 20, 2013Date of Patent: April 30, 2019Assignee: Amazon Technologies, Inc.Inventors: Donald Erik Schneider, Kieran Sean Fitzpatrick, Brian Mitchell Percival, Anne Randolph Marshall, Philip Daniel Piwonka
-
Patent number: 9830333Abstract: 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: GrantFiled: June 27, 2014Date of Patent: November 28, 2017Assignee: 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: 8977592Abstract: 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: GrantFiled: January 12, 2014Date of Patent: March 10, 2015Assignee: Microsoft CorporationInventors: Philip Daniel Piwonka, Lev Novik, Sundarshan Chitre
-
Publication number: 20140143598Abstract: 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: ApplicationFiled: January 12, 2014Publication date: May 22, 2014Applicant: Microsoft CorporationInventors: Philip Daniel Piwonka, Lev Novik, Sundarshan Chitre
-
Patent number: 8675687Abstract: 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: GrantFiled: August 29, 2012Date of Patent: March 18, 2014Assignee: Microsoft CorporationInventors: Philip Daniel Piwonka, Lev Novik, Sudarshan Chitre, Gayathri Tambaram Kailasam
-
Patent number: 8630980Abstract: 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: GrantFiled: April 6, 2010Date of Patent: January 14, 2014Assignee: Microsoft CorporationInventors: Philip Daniel Piwonka, Lev Novik, Sudarshan Anand Chitre