IP Library Granted Patent US 9,805,479
Granted Patent B2
US 9,805,479 · App. 14/077,146 · Granted Oct 31, 2017

Session idle optimization for streaming server

Inventors: Quais Taraki (Bellevue, WA); Matthew Vahlsing (Seattle, WA); Vinod Murli Mamtani (Bellevue, WA); James Jonathan Morris (Duvall, WA); Gerard Joseph Heinz, II (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06T11/001G06F9/45558G06T1/20G06F2009/45575
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,805,479
App. No.
14/077,146
Granted
Oct 31, 2017
Kind
B2
Abstract

Graphics rendering services may be provided to a client device by a remote computing facility. One or more rendering processes may be executed on a virtual machine operating on a host computing device. Client state information may be monitored to detect periods of inactivity. A rendering process may be inactivated by suspending the virtual machine on which it executes. Upon resumption of activity, the rendering process may be reactivated by resuming execution of the virtual machine.

Claims (47)

1. A system comprising:

one or more processors; and

one or more memories to store a set of instructions, which if executed by the one or more processors, causes the one or more processors to perform operations comprising:

receiving a request indicative of rendering graphics on behalf a client, the request comprising information indicative of a set of graphics resources,

selecting a virtual machine from a plurality of virtual machines to execute a rendering process associated with the client based at least in part on content that is rendered by one or more other processes executing on the virtual machine;

suspending operation of the virtual machine in response to a first determination that a request to keep the rendering process in an active state has not been received and a second determination that an amount of time since receiving information indicative of input by a user of the client has exceeded a first threshold, wherein a first state of the virtual machine while suspended comprises a second state for the rendering process; and

resuming operation of the virtual machine in response to receiving information indicative of input by a user of the client.

2. The system of claim 1 , wherein the operations further comprise:

storing the first state of the virtual machine in a low-latency cache; and

storing the first state of the virtual machine on a storage device in response to the amount of time since receiving information indicative of input by the user of the client exceeding a second threshold.

3. The system of claim 1 , wherein the operations further comprise:

activating an additional virtual machine based at least in part on suspending the virtual machine.

4. The system of claim 1 , wherein the request to keep the rendering process in an active state is transmittable by a process operating on the client.

5. A non-transitory computer-readable storage medium having stored thereon instructions that, upon execution by one or more computing devices, cause the one or more computing devices at least to:

receive a request indicative of performing graphics rendering services for a client, the client executing a process associated with a set of graphics resources;

select a virtual machine from a plurality of virtual machines to execute a rendering process associated with the client based at least in part on content that is rendered by one or more other processes executing on the virtual machine;

perform, by the rendering process, the graphics rendering services for the client;

suspend operation of the virtual machine based at least in part on determining that a request to keep the rendering process active has not been received and on determining that an amount of time since receiving information indicative of activity by the client has exceeded a first threshold amount of time; and

resume operation of the virtual machine in response to receiving information indicative of activity by the client.

6. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

store a state of the virtual machine in a low-latency cache.

7. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

store a state of the virtual machine on a storage device in response to the amount of time since receiving information indicative of activity by the client has exceeded a second threshold amount of time.

8. The non-transitory computer-readable storage medium of claim 5 , wherein suspending the operation of the virtual machine comprises retaining a state of the virtual machine in memory.

9. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

activate an additional virtual machine in response to determining that a number of active virtual machines not running a rendering process has fallen below a threshold.

10. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

suspend operation of the virtual machine based at least in part on determining that a number of active rendering processes on the virtual machine has fallen below a threshold level.

11. The non-transitory computer-readable storage medium of claim 5 , wherein the request to keep the rendering process active was initiated by a process running on the client.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the process initiated the request in response to entering a state in which no user input is expected for a period of time.

13. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

send information indicative of a time to resume operation of the rendering process to the client.

14. The non-transitory computer-readable storage medium of claim 5 , comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:

transfer a state of a rendering process from the virtual machine to another virtual machine.

15. A method comprising:

receiving a request indicative of performing graphics rendering services for a client, the client executing a process associated with a set of graphics resources;

selecting a virtual machine from a plurality of virtual machines to execute a rendering process associated with the client based at least in part content that is rendered by one or more other processes executing on the virtual machine;

performing, by the rendering process operating on the virtual machine, the graphics rendering services for the client;

suspending operation of the virtual machine based at least in part on a first determination that a request to keep the rendering process in an active state has not been received, and a second determination that an amount of time since receiving information indicative of input by a user of the client has exceeded a first threshold; and

resuming operation of the virtual machine in response to receiving information indicative of receiving a request to perform graphics rendering on behalf of the client.

16. The method of claim 15 , wherein the request to keep the rendering process in an active state is based at least in part on entering a state in which no user input is expected for a period of time.

17. The method of claim 15 , further comprising:

storing a state of the virtual machine in a low-latency cache for at least a period of time equal to a second threshold.

18. The method of claim 15 , further comprising:

resetting the virtual machine to an initial state, the initial state corresponding to a state of the virtual machine prior to executing the rendering process.

19. The method of claim 15 , further comprising:

sending information indicative of a status of resuming the rendering process to the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2015
From: TARAKI, QUAIS; VAHLSING, MATTHEW; MAMTANI, VINOD MURLI; MORRIS, JAMES JONATHAN; HEINZ, GERARD JOSEPH, II
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 035030/0355 →
Continuity (1)
Related Publication 20150130813A1 · May 14, 2015