IP Library › Granted Patent US 12,572,399
Granted Patent B2
US 12,572,399 · App. 18/538,504 · Granted Mar 10, 2026

Waiting room with zero latency

Inventors: Oren Brezner (Rishon LeZion, IL); Nir Gabay (Rehovot, IL); Ortal Hasid (Modi'in, IL); Shlomit Abergel (Rehovot, IL)
Assignee: Imperva, Inc.
G06F9/546G06F9/547G06F16/9574G07C11/00H04L67/56G06Q30/0201G07C2011/04
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,572,399
App. No.
18/538,504
Granted
Mar 10, 2026
Kind
B2
Abstract

A method by one or more computing devices functioning as a ticket master for a website that has a virtual waiting room, wherein the ticket master is communicatively coupled to a plurality of proxies controlling access to the website. When the ticket master is in a relaxed mode (as opposed to a pressure mode), the method includes pre-allocating a number of tickets to the plurality of proxies for a first upcoming time period and setting a queue head for the first upcoming time period to a ticket number of a last ticket created, wherein the number of tickets that are pre-allocated for the first upcoming time period is greater than a target number of users allowed to enter the website during the first upcoming time period but less than a predefined maximum sudden spike number.

Claims (30)

1 . A method by one or more computing devices functioning as a ticket master for a website that has a virtual waiting room, wherein the ticket master is communicatively coupled to a plurality of proxies controlling access to the website, the method comprising:

when the ticket master is in a pressure mode, allocating tickets to the plurality of proxies based on a number of users waiting for a ticket at respective ones of the plurality of proxies and setting a queue head for a first upcoming time period, wherein the queue head for the first upcoming time period is allowed to be greater than a ticket number of a last ticket created, wherein the plurality of proxies allows users possessing a ticket having a ticket number that is less than the queue head to access the website, and wherein the allocating tickets to the plurality of proxies comprises:

transmitting, to each of the plurality of proxies, a range of ticket numbers allocated to the proxy and the queue head for the first upcoming time period.

2 . The method of claim 1 , wherein the queue head for the first upcoming time period is set to be greater than a current queue head at least by a target number of users allowed to enter the website during the first upcoming time period but less than a sum of the ticket number of the last ticket created and a predefined maximum sudden spike number.

3 . The method of claim 2 , wherein the queue head for the first upcoming time period is set to be a lesser of (1) current_queue_head+entrance_rate (ER)+tickets_canceled and (2) last_ticket_created+maximum_sudden_spike (MSS), wherein current_queue_head indicates the current queue head, ER indicates the target number of users allowed to enter the website during the first upcoming time period, tickets_canceled indicates a number of tickets canceled at the plurality of proxies, last_ticket_created indicates the ticket number of the last ticket created, and MSS indicates the predefined maximum sudden spike number.

4 . The method of claim 1 , further comprising:

switching from the pressure mode to a relaxed mode in response to a determination that the queue head has been greater than a ticket number of a last ticket created for longer than a threshold consecutive length of time.

5 . The method of claim 4 , further comprising:

when the ticket master is in a relaxed mode, pre-allocating a number of tickets to the plurality of proxies for a second upcoming time period and setting a queue head for the second upcoming time period to a ticket number of a last ticket created, wherein the number of tickets that are pre-allocated for the second upcoming time period is greater than a target number of users allowed to enter the website during the second upcoming time period but less than a predefined maximum sudden spike number.

6 . The method of claim 5 , wherein the pre-allocating comprises: transmitting, to each of the plurality of proxies, a range of ticket numbers allocated to the proxy and the queue head for the second upcoming time period.

7 . The method of claim 5 , wherein the tickets that are pre-allocated for the second upcoming time period are distributed among the plurality of proxies based on a number of users waiting for a ticket at respective ones of the plurality of proxies and an average ticket consumption rate of respective ones of the plurality of proxies.

8 . The method of claim 5 , wherein the number of tickets that are pre-allocated for the second upcoming time period is half of the predefined maximum sudden spike number.

9 . The method of claim 5 , wherein when the ticket master is in the relaxed mode, the ticket master pre-allocates tickets to the plurality of proxies for each of a plurality of time periods, wherein the tickets pre-allocated for one of the plurality of time periods replaces the tickets pre-allocated for a previous one of the plurality of time periods.

10 . The method of claim 4 , further comprising:

switching from the relaxed mode to the pressure mode in response to a determination that a sum of average ticket consumption rates of the plurality of proxies is greater than a threshold ticket consumption rate.

11 . The method of claim 1 , wherein the ticket master manages ticket allocations for a plurality of websites each having separate virtual waiting rooms.

12 . A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor of a computing device functioning as a ticket master for a website that has a virtual waiting room, will cause said ticket master to perform operations for allocating tickets to a plurality of proxies controlling access to the website, the operations comprising:

when the ticket master is in a pressure mode, allocating tickets to the plurality of proxies based on a number of users waiting for a ticket at respective ones of the plurality of proxies and setting a queue head for a first upcoming time period, wherein the queue head for the first upcoming time period is allowed to be greater than a ticket number of a last ticket created, wherein the plurality of proxies allows users possessing a ticket having a ticket number that is less than the queue head to access the website, and wherein the allocating tickets to the plurality of proxies comprises:

transmitting, to each of the plurality of proxies, a range of ticket numbers allocated to the proxy and the queue head for the first upcoming time period.

13 . The non-transitory machine-readable storage medium of claim 12 , wherein the queue head for the first upcoming time period is set to be greater than a current queue head at least by a target number of users allowed to enter the website during the first upcoming time period but less than a sum of the ticket number of the last ticket created and a predefined maximum sudden spike number.

14 . The non-transitory machine-readable storage medium of claim 13 , wherein the queue head for the first upcoming time period is set to be a lesser of (1) current_queue_head+entrance_rate (ER)+tickets_canceled and (2) last_ticket_created+maximum_sudden_spike (MSS), wherein current_queue_head indicates the current queue head, ER indicates the target number of users allowed to enter the website during the first upcoming time period, tickets_canceled indicates a number of tickets canceled at the plurality of proxies, last_ticket_created indicates the ticket number of the last ticket created, and MSS indicates the predefined maximum sudden spike number.

15 . The non-transitory machine-readable storage medium of claim 12 , wherein the operations further comprise:

switching from the pressure mode to a relaxed mode in response to a determination that the queue head has been greater than a ticket number of a last ticket created for longer than a threshold consecutive length of time.

16 . The non-transitory machine-readable storage medium of claim 15 , wherein the operations further comprise:

when the ticket master is in a relaxed mode, pre-allocating a number of tickets to the plurality of proxies for a second upcoming time period and setting a queue head for the second upcoming time period to a ticket number of a last ticket created, wherein the number of tickets that are pre-allocated for the second upcoming time period is greater than a target number of users allowed to enter the website during the second upcoming time period but less than a predefined maximum sudden spike number.

17 . A computing device to function as a ticket master for a website that has a virtual waiting room, wherein the ticket master is to be communicatively coupled to a plurality of proxies controlling access to the website, the computing device comprising:

one or more processors; and

a non-transitory machine-readable storage medium having instructions stored therein, which when executed by the one or more processors, causes the ticket master to:

when the ticket master is in a pressure mode, allocate tickets to the plurality of proxies based on a number of users waiting for a ticket at respective ones of the plurality of proxies and setting a queue head for a first upcoming time period, wherein the queue head for the first upcoming time period is allowed to be greater than a ticket number of a last ticket created, wherein the plurality of proxies allows users possessing a ticket having a ticket number that is less than the queue head to access the website, and wherein the allocating tickets to the plurality of proxies comprises:

transmitting, to each of the plurality of proxies, a range of ticket numbers allocated to the proxy and the queue head for the first upcoming time period.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2023
From: BREZNER, OREN; GABAY, NIR; HASID, ORTAL; ABERGEL, SHLOMIT
To: IMPERVA, INC.
Reel/Frame 065860/0294 →
Continuity (2)
Continuation 17450155 · Oct 6, 2021
Related Publication 20240241776A1 · Jul 18, 2024
References Cited (21)
US 6836785B1 · Bakshi et al. · 2004 [cited by applicant]
US 8417817B1 · Jacobs · 2013 [cited by applicant]
US 11128732B1 · Czerpak et al. · 2021 [cited by applicant]
US 20020087714A1 · Connor · 2002 [cited by examiner]
US 20110282980A1 · Kumar et al. · 2011 [cited by applicant]
US 20140052835A1 · Felton et al. · 2014 [cited by applicant]
US 20140122663A1 · Jordan et al. · 2014 [cited by applicant]
US 20150088697A1 · Garnepudi et al. · 2015 [cited by applicant]
US 20180152335A1 · Matsuki · 2018 [cited by examiner]
US 20200051045A1 · Gupta et al. · 2020 [cited by applicant]
US 20210058453A1 · Balasubramanian · 2021 [cited by examiner]
US 20210099758A1 · Narasimhan et al. · 2021 [cited by applicant]
KR 1020030089285A · 2003 [cited by applicant]
WO 2012072690A1 · 2012 [cited by applicant]
WO 2016155491A1 · 2016 [cited by applicant]
Akamai Technologies, Inc., “Visitor Prioritization workflow,” Visitor Prioritization Cloudlet guide, Copyright 2021, downloaded from https://learn.akamai.com/en-us/webhelp/visitor-prioritization/visitor-prioritization-g… [cited by applicant]
Fastly, Inc., “Waiting room,” Tutorials, Copyright 2021, downloaded from https://developer.fastly.com/solutions/tutorials/waiting-room/ on Oct. 6, 2021, 17 pages. [cited by applicant]
Final Office Action, U.S. App. No. 17/450,155, Jun. 23, 2023, 22 pages. [cited by applicant]
Imperva, Inc., “Cloud Application and Edge Security,” Aug. 16, 2021, 7 pages. [cited by applicant]
Non-Final Office Action, U.S. App. No. 17/450,155, Jan. 30, 2023, 20 pages. [cited by applicant]
Notice of Allowance, U.S. App. No. 17/450,155, Sep. 13, 2023, 21 pages. [cited by applicant]