US 12,254,346 B1
Latency service level agreement based scheduling of operating system threads at cloud services
James Christopher Sorenson, III, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jun. 21, 2022, as Appl. No. 17/808,075.
Int. Cl. G06F 9/44 (2018.01); G06F 9/48 (2006.01)
CPC G06F 9/4875 (2013.01) 20 Claims
OG exemplary drawing
 
1. A system, comprising:
one or more computing devices;
wherein the one or more computing devices include instructions that upon execution on or across the one or more computing devices:
receive a request for a particular task at a request router node of a network-accessible service of a provider network from a task requester;
assign, to the particular task, a response initiation time target based at least in part on a service level agreement of the network-accessible service;
transmit a representation of the particular task and the response initiation time target from the request router node to a service logic implementation node selected from a plurality of service logic implementation nodes of the network-accessible service to execute at least a portion of the particular task, wherein the service logic implementation node is selected based at least in part on the response initiation time target and a metric obtained from the service logic implementation node;
set, at the service logic implementation node, a deadline parameter of a first thread identified to perform a plurality of sub-tasks of the particular task, wherein the deadline parameter is set to a first value based at least in part on the response initiation time target, and wherein the plurality of sub-tasks includes (a) a first sub-task to be completed before a response indicating successful completion of the particular task is sent to the task requester and (b) a second sub-task which is deferrable until after a response indicating successful completion of the particular task is sent to the task requester;
schedule the first thread for execution on a processor of the service logic implementation node using an operating system thread scheduling algorithm in which runnable threads are selected for execution (a) in order of deadline parameter values and (b) without taking processing time requirements of the runnable threads into account;
in response to determining, after the first thread is scheduled for execution on the processor in accordance with the first value, that the first sub-task has been completed no later than the response initiation time target, (a) transmit a response indicating completion of at least a portion of the particular task to the task requester and (b) set the deadline parameter to a second value; and
complete the second sub-task after the first thread has been scheduled at the processor in accordance with the second value.