IP Library › Granted Patent US 12,198,170
Granted Patent B2
US 12,198,170 · App. 18/536,473 · Granted Jan 14, 2025

Systems and methods for server load balancing based on correlated events

Inventors: Xiaoli Liang (Toronto, CA); Kathryn Tang (Victoria, CA); Gregory Clarke (Belleville, CA); Milan Sreckovic (Toronto, CA); Kunal Kohli (Niagara Falls, CA)
Assignee: Shopify Inc.
G06Q30/0603G06Q30/0613G06Q30/0641
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 12,198,170
App. No.
18/536,473
Granted
Jan 14, 2025
Kind
B2
Abstract

Methods and systems for balancing online stores amongst servers. Detecting a flash sale associated with a first online store. Identifying an occurrence of a first event correlated to the flash sale associated with the first online store. Identifying a second online store associated with a second event corresponding to the first event. Responsive to identifying the second online store associated with the second event corresponding to the first event, moving the second online store from a first server to a second server.

Claims (40)

1. A computer-implemented method of balancing online stores amongst servers, the method comprising:

detecting a flash sale associated with a first online store;

identifying an occurrence of a first event correlated to the flash sale associated with the first online store;

identifying a second online store distinct from the first online store and associated with a second event corresponding to the first event; and

responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event:

ceasing to service, by a first server, requests associated with the second online store; and

configuring a second server to service requests associated with the second online store and commencing to service, by the second server, requests associated with the second online store.

2. The method of claim 1 , further comprising, responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event, configuring a router to cease directing requests corresponding to the second online store to the first server.

3. The method of claim 2 , further comprising, responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event, configuring the router to queue any new requests until the second server is ready to begin servicing requests associated with the second online store.

4. The method of claim 1 , wherein configuring the second server includes transferring an asset to the second server.

5. The method of claim 4 , wherein configuring the second server further includes configuring an application hosted on the second server with the transferred asset.

6. The method of claim 1 , wherein configuring the second server includes transferring an asset associated with the second online store to the second server.

7. The method of claim 1 , wherein configuring the second server includes transferring an asset stored on the first server to the second server.

8. The method of claim 1 , wherein configuring the second server includes deploying a web application on the second server.

9. The method of claim 1 , wherein the second online store is hosted on a virtual server and configuring the second server includes starting the virtual server on the second server.

10. The method of claim 1 , further comprising, responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event, updating routing data to direct requests associated with the second online store to the second server.

11. A system, the system comprising:

a processor; and

a memory storing computer-executable instructions that, when executed by the processor, are to cause the processor to:

detect a flash sale associated with a first online store;

identify an occurrence of a first event correlated to the flash sale associated with the first online store;

identify a second online store distinct from the first online store and associated with a second event corresponding to the first event; and

responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event:

cease to service, by a first server, requests associated with the second online store; and

configure a second server to service requests associated with the second online store and commencing to service, by the second server, requests associated with the second online store.

12. The system of claim 11 , wherein the instructions, when executed by the processor, are to further cause the processor to, responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event, configure a router to cease directing requests corresponding to the second online store to the first server.

13. The system of claim 12 , wherein the instructions, when executed by the processor, are to further cause the processor to, responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event, configure the router to queue any new requests until the second server is ready to begin servicing requests associated with the second online store.

14. The system of claim 11 , wherein configuring the second server includes transferring an asset to the second server.

15. The system of claim 14 , wherein configuring the second server further includes configuring an application hosted on the second server with the transferred asset.

16. The system of claim 11 , wherein configuring the second server includes transferring an asset associated with the second online store to the second server.

17. The system of claim 11 , wherein configuring the second server includes transferring an asset stored on the first server to the second server.

18. The system of claim 11 , wherein configuring the second server includes deploying a web application on the second server.

19. The system of claim 11 , wherein the second online store is hosted on a virtual server and configuring the second server includes starting the virtual server on the second server.

20. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, are to cause the one or more processors to:

detect a flash sale associated with a first online store;

identify an occurrence of a first event correlated to the flash sale associated with the first online store;

identify a second online store distinct from the first online store and associated with a second event corresponding to the first event; and

responsive to identifying the second online store distinct from the first online store and associated with the second event corresponding to the first event:

cease to service, by a first server, requests associated with the second online store; and

configure a second server to service requests associated with the second online store and commencing to service, by the second server, requests associated with the second online store.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2023
From: LIANG, XIAOLI; TANG, KATHRYN; CLARKE, GREGORY; SRECKOVIC, MILAN; KOHLI, KUNAL
To: SHOPIFY INC.
Reel/Frame 065840/0001 →
Continuity (2)
Continuation 17408777 · Aug 23, 2021
Related Publication 20240104618A1 · Mar 28, 2024
References Cited (47)
US 7660894B1 · Carrie · 2010 [cited by applicant]
US 9727882B1 · Huntwork · 2017 [cited by applicant]
US 9871744B2 · Janssens · 2018 [cited by applicant]
US 9979617B1 · Meyer · 2018 [cited by applicant]
US 10248970B1 · Caldarone · 2019 [cited by applicant]
US 10409649B1 · Young · 2019 [cited by examiner]
US 10949894B1 · Bansal · 2021 [cited by applicant]
US 10997662B1 · Warfel · 2021 [cited by applicant]
US 20010037374A1 · Shrum et al. · 2001 [cited by applicant]
US 20040111504A1 · Halim et al. · 2004 [cited by applicant]
US 20060168223A1 · Mishra et al. · 2006 [cited by applicant]
US 20080320484A1 · Rosenbach et al. · 2008 [cited by applicant]
US 20090119396A1 · Kanda · 2009 [cited by applicant]
US 20090157879A1 · Stoll · 2009 [cited by applicant]
US 20130110674A1 · Schoettle · 2013 [cited by applicant]
US 20140006482A1 · Raghu et al. · 2014 [cited by applicant]
US 20140025535A1 · Douglas · 2014 [cited by applicant]
US 20140365350A1 · Shvarts · 2014 [cited by applicant]
US 20160189191A1 · Spalding · 2016 [cited by applicant]
US 20160321115A1 · Thorpe · 2016 [cited by applicant]
US 20170171119A1 · Hattar · 2017 [cited by applicant]
US 20170214738A1 · Agarwal · 2017 [cited by applicant]
US 20180032997A1 · Gordon et al. · 2018 [cited by applicant]
US 20190272331A1 · Gangadhar · 2019 [cited by applicant]
US 20190306061A1 · Lesartre · 2019 [cited by applicant]
US 20190370085A1 · Gross · 2019 [cited by applicant]
US 20200175535A1 · Xu · 2020 [cited by applicant]
US 20200192706A1 · Huus · 2020 [cited by applicant]
US 20200242639A1 · Laserson · 2020 [cited by applicant]
US 20200272517A1 · Trigalo · 2020 [cited by applicant]
US 20200329097A1 · Kumbi · 2020 [cited by applicant]
US 20200409914A1 · Nadimpalli et al. · 2020 [cited by applicant]
US 20210241240A1 · Lyver et al. · 2021 [cited by applicant]
US 20210243160A1 · Francis · 2021 [cited by applicant]
US 20210336889A1 · Yaswi · 2021 [cited by applicant]
US 20220084057A1 · Lai · 2022 [cited by applicant]
US 20220171647A1 · Mutha et al. · 2022 [cited by applicant]
US 20220244993A1 · MacDonald · 2022 [cited by applicant]
Chandra, Abhishek, and Prashant Shenoy. “Effectiveness of dynamic resource allocation for handling internet flash crowds.” TR03-37, Department of Computer Science, University of Massachusetts, USA (2003). [cited by examiner]
Extended European Search Report dated Sep. 12, 2022, Application No. 22169543.0 Sep. 12, 2022. [cited by applicant]
CA Application No. 3,160,024; Office Action dated Sep. 29, 2023 Sep. 29, 2023. [cited by applicant]
Yazdanov, Lenar. Towards auto-scaling in the cloud: online resource allocation techniques. 2016. Dissertation. Technische Universität Dresden. (Year: 2016). [cited by applicant]
Chandra, Abhishek, and Prashant Shenoy. “Effectiveness of Dynamic Resource Allocation for Handling Internet Flash Crowds.” TR03-37, Department of Computer Science, University of Massachusetts Amherst, USA (2003). [cited by applicant]
An e-comm taste-tester, Caruso, Jeff, Network World. 22.29: 64,66. Foundry, (Jul. 25, 2005), Retrieved via ProQuest (Year: 2005). [cited by applicant]
Scaling Your E_Business, Menasce, Daniel; Almeida, Virgilio. Software Magazine, 21.1:42. King Content Co./Software Magazine. (Feb. 2001). Retrieved via ProQuest (Year: 2001). [cited by applicant]
2021 E-Commerce: No Rest for the Weary: COVID-19 accelerated e-commerce demand to levels that weren't expected until 2005. How can supply chains get up to speed-and fast? Argod, Vikas. Logistics Management (Highlandsd R… [cited by applicant]
6 Steps To Holiday-Proof Your Website. Casey, Kevin. Informationweek—Online Informa. (Oct. 11, 2011). Retrieved via ProQuest (Year: 2011). [cited by applicant]