US 11,886,920 B2
Methods and apparatus for load sharing between primary and secondary computing environments based on expected completion latency differences
Andrew Tubman, Ottawa (CA); and Kevin O'Donnell, Ottawa (CA)
Assigned to SHOPIFY INC., Ottawa (CA)
Filed by Shopify Inc., Ottawa (CA)
Filed on Mar. 19, 2021, as Appl. No. 17/207,444.
Prior Publication US 2022/0300325 A1, Sep. 22, 2022
Int. Cl. G06F 9/46 (2006.01); G06F 9/50 (2006.01); G06F 9/38 (2018.01)
CPC G06F 9/505 (2013.01) [G06F 9/3877 (2013.01); G06F 9/5038 (2013.01); G06F 9/5061 (2013.01)] 20 Claims
OG exemplary drawing
 
13. A computer-implemented method comprising:
accessing an electronic request to execute a process, wherein the process is to be executed using a first computing environment and a second computing environment, the first computing environment being a primary node and the second computing environment being a replica of the first computing environment, the first computing environment and the second computing environment having a known resource asymmetry;
calculating an expected resource need for processing of the request at the second computing environment
determining, based on the expected resource need for processing of the request, a first expected completion time for execution of the process using the second computing environment;
determining a second expected completion time for execution of the process using the first computing environment;
determining an expected latency associated with execution of the process using the first computing environment, the expected latency further based on a difference between the first and second expected completion times; and
selectively processing the request based on the expected latency, wherein execution of the process at each of the first computing environment and the second computing environment is caused when the expected latency does not exceed a threshold and a a rejection of the request is signaled in response to the expected latency exceeds the threshold.