IP Library › Granted Patent US 12,749,003
Granted Patent B2
US 12,749,003 · App. 17/159,639 · Granted Sep 29, 2026

Using container information to select containers for executing models

Inventors: Yuliya L. Feldman (Campbell, CA); Seyedshahin Ashrafzadeh (Foster City, CA); Alexandr Nikitin (El Sobrante, CA); Manoj Agarwal (Cupertino, CA)
Assignee: Salesforce, Inc.
G06N20/00G06F9/45558G06F9/5077G06F16/23G06F2209/501
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,749,003
App. No.
17/159,639
Granted
Sep 29, 2026
Kind
B2
Abstract

Using container information to select containers for executing models is described. A system receives a request from an application and identifies a version of a machine-learning model associated with the request. The system identifies a set of each serving container corresponding to the machine-learning model from a cluster of available serving containers associated with the version of the machine-learning model. The system selects a serving container from the set of each serving container corresponding to the machine-learning model. If the machine-learning model is not loaded in the serving container, the system loads the machine-learning model in the serving container. If the machine-learning model is loaded in the serving container, the system executes, in the serving container, the machine-learning model on behalf of the request. The system responds to the request based on executing the machine-learning model on behalf of the request.

Claims (103)

1 . A system for using container information to select containers for executing models, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

watch, by a watcher associated with a routing container of a cluster of routing containers, for changes in available serving containers in a cluster of available serving containers associated with the routing container, wherein the changes include addition of one or more new serving containers to the cluster of available serving containers;

provide, by the watcher, information about the changes in the available serving containers to the routing container to update a mapping of the available serving containers based on the information;

identify a version of a machine-learning model associated with a request, in response to receiving the request from an application;

identify a set of available serving containers corresponding to the version of the machine-learning model from a cluster of available serving containers associated with the version of the machine-learning model, wherein the set of available serving containers is identified based, at least in part, on executing a hashing function applied to identifiers of the set of available serving containers, an identifier of any corresponding machine-learning model, and a replication factor for the version of the machine-learning model, wherein the replication factor identifies a number of serving containers of the set of available serving containers from the cluster of available serving containers for loading the version of the machine-learning model;

select an existing serving container and a new serving container from the set of available serving containers corresponding to the version of the machine-learning model;

load the version of the machine-learning model in the existing serving container, in response to a determination that the version of the machine-learning model is not loaded in the existing serving container;

execute, in the existing serving container, the machine-learning model on behalf of the request, in response to a determination that the machine-learning model is loaded in the existing serving container;

when the existing serving container is executing the version of the machine-learning model by another request, load another copy of the version of the machine-learning model into the new serving container and execute, in the new serving container, the version of the machine-learning model; and

respond to the request based on executing the version of the machine-learning model on behalf of the request.

2 . The system of claim 1 , wherein selecting from any cluster of available serving containers is based on updating a data structure comprising container information associated with serving containers in any corresponding cluster of available serving containers.

3 . The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

identify an other version of an other machine-learning model associated with the request;

identify an other set of available serving containers corresponding to the other machine-learning model from an other cluster of available serving containers associated with the other version of the other machine-learning model;

select an other serving container from the other set of available serving containers corresponding to the other machine-learning model;

load the other machine-learning model in the other serving container, in response to a determination that the other machine-learning model is not loaded in the other serving container; and

execute, in the other serving container, the other machine-learning model on behalf of the request, in response to a determination that the other machine-learning model is loaded in the other serving container;

wherein responding to the request is further based on executing the other machine-learning model on behalf of the request.

4 . The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

identify the version of the machine-learning model associated with an additional request, in response to receiving the additional request from the application;

identify the set of available serving containers corresponding to the machine-learning model from the cluster of available serving containers associated with the version of the machine-learning model;

select an additional serving container from the set of available serving containers corresponding to the machine-learning model;

load a copy of the machine-learning model in the additional serving container, in response to a determination that the copy of the machine-learning model is not loaded in the additional serving container;

execute, in the additional serving container, the copy of the machine-learning model on behalf of the additional request, in response to a determination that the copy of the machine-learning model is loaded in the additional serving container; and

respond to the additional request based on executing the copy of the machine-learning model on behalf of the additional request.

5 . The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

identify an extra version of an extra machine-learning model associated with an extra request, in response to receiving the extra request from an extra application;

identify an extra set of available serving containers corresponding to the extra machine-learning model from the cluster of available serving containers which is associated with both the extra version of the extra machine-learning model and the version of the machine-learning model;

select an extra serving container from the extra set of available each serving containers container corresponding to the extra machine-learning model;

load the extra machine-learning model in the extra serving container, in response to a determination that the extra machine-learning model is not loaded in the extra serving container;

execute, in the extra serving container, the extra machine-learning model on behalf of the extra request, in response to a determination that the extra machine-learning model is loaded in the extra serving container; and

respond to the extra request based on executing the extra machine-learning model on behalf of the extra request.

6 . The system of claim 5 , wherein the application is associated with a first tenant and the extra application is associated with a second tenant.

7 . The system of claim 1 , wherein any set of available serving containers corresponding to any machine-learning model is identified based on executing a consistent hashing function applied to identifiers of each serving container associated with any version of any corresponding machine-learning model and an identifier of any corresponding machine-learning model.

8 . A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the computer-readable program code including instructions to:

watch, by a watcher associated with a routing container of a cluster of routing containers, for changes in available serving containers in a cluster of available serving containers associated with the routing container, the changes include addition of one or more new serving containers to the cluster of available serving containers;

provide, by the watcher, information about the changes in the available serving containers to the routing container to update a mapping of the available serving containers based on the information;

identify a version of a machine-learning model associated with a request, in response to receiving the request from an application;

identify a set of available serving containers corresponding to the version of the machine-learning model from a cluster of available serving containers associated with the version of the machine-learning model, wherein the set of available serving containers is identified based, at least in part, on executing a hashing function applied to identifiers of the available serving containers, an identifier of any corresponding machine-learning model, and a replication factor for the version of the machine-learning model, wherein the replication factor identifies a number of serving containers of the set of available serving containers from the cluster of available serving containers for loading the version of the machine-learning model;

select an existing serving container and a new serving container from the set of available serving containers corresponding to the version of the machine-learning model;

load the version of the machine-learning model in the existing serving container, in response to a determination that the version of the machine-learning model is not loaded in the existing serving container;

execute, in the existing serving container, the machine-learning model on behalf of the request, in response to a determination that the machine-learning model is loaded in the existing serving container;

when the existing serving container is executing the version of the machine-learning model by another request, load another copy of the version of the machine-learning model into the new serving container and execute, in the new serving container, the version of the machine-learning model; and

respond to the request based on executing version of the machine-learning model on behalf of the request.

9 . The computer program product of claim 8 , wherein selecting from any cluster of available serving containers is based on updating a data structure comprising container information associated with serving containers in any corresponding cluster of available serving containers.

10 . The computer program product of claim 8 , wherein the computer-readable program code comprises further instructions to:

identify an other version of an other machine-learning model associated with the request;

identify an other set of available serving containers corresponding to the other machine-learning model from an other cluster of available serving containers associated with the other version of the other machine-learning model;

select an other serving container from the other set of available serving containers corresponding to the other machine-learning model;

load the other machine-learning model in the other serving container, in response to a determination that the other machine-learning model is not loaded in the other serving container; and

execute, in the other serving container, the other machine-learning model on behalf of the request, in response to a determination that the other machine-learning model is loaded in the other serving container;

wherein responding to the request is further based on executing the other machine-learning model on behalf of the request.

11 . The computer program product of claim 8 , wherein the computer-readable program code comprises further instructions to:

identify the version of the machine-learning model associated with an additional request, in response to receiving the additional request from the application;

identify the set of available serving containers corresponding to the machine-learning model from the cluster of available serving containers associated with the version of the machine-learning model;

select an additional serving container from the set of available serving containers corresponding to the machine-learning model;

load a copy of the machine-learning model in the additional serving container, in response to a determination that the copy of the machine-learning model is not loaded in the additional serving container;

execute, in the additional serving container, the copy of the machine-learning model on behalf of the additional request, in response to a determination that the copy of the machine-learning model is loaded in the additional serving container; and

respond to the additional request based on executing the copy of the machine-learning model on behalf of the additional request.

12 . The computer program product of claim 8 , wherein the computer-readable program code comprises further instructions to:

identify an extra version of an extra machine-learning model associated with an extra request, in response to receiving the extra request from an extra application, wherein the application is associated with a first tenant and the extra application is associated with a second tenant;

identify an extra set of available serving containers corresponding to the extra machine-learning model from the cluster of available serving containers which is associated with both the extra version of the extra machine-learning model and the version of the machine-learning model;

select an extra serving container from the extra set of available serving containers corresponding to the extra machine-learning model;

load the extra machine-learning model in the extra serving container, in response to a determination that the extra machine-learning model is not loaded in the extra serving container;

execute, in the extra serving container, the extra machine-learning model on behalf of the extra request, in response to a determination that the extra machine-learning model is loaded in the extra serving container; and

respond to the extra request based on executing the extra machine-learning model on behalf of the extra request.

13 . The computer program product of claim 8 , wherein any set of available serving containers corresponding to any machine-learning model is identified based on executing a consistent hashing function applied to identifiers of each serving container associated with any version of any corresponding machine-learning model and an identifier of any corresponding machine-learning model.

14 . A computer-implemented method for using container information to select containers for executing models, the computer-implemented method comprising:

watching, by a watcher associated with a routing container of a cluster of routing containers, for changes in available serving containers in a cluster of available serving containers associated with the routing container, wherein the changes include addition of one or more new serving containers to the cluster of available serving containers;

providing, by the watcher, information about the changes in the available serving containers to the routing container to update a mapping of the available serving containers based on the information;

identifying a version of a machine-learning model associated with a request, in response to receiving the request from an application;

identifying a set of available serving containers corresponding to the version of the machine-learning model from a cluster of available serving containers associated with the version of the machine-learning model, wherein the set of available serving containers is identified based, at least in part, on executing a hashing function applied to identifiers of the available serving containers and an identifier of any corresponding machine-learning model, and a replication factor for the version of the machine-learning model, wherein the replication factor identifies a number of serving containers of the set of available serving containers from the cluster of available serving containers for loading the version of the machine-learning model;

selecting an existing serving container and a new serving container from the set of available serving containers corresponding to the version of the machine-learning model;

loading the version of the machine-learning model in the existing serving container, in response to a determination that the version of the machine-learning model is not loaded in the existing serving container;

executing, in the existing serving container, the machine-learning model on behalf of the request, in response to a determination that the machine-learning model is loaded in the existing serving container;

when the existing serving container is executing the version of the machine-learning model by another request, loading another copy of the version of the machine-learning model into the new serving container and executing, in the new serving container, the version of the machine-learning model; and

responding to the request based on executing the version of the machine-learning model on behalf of the request.

15 . The computer-implemented method of claim 14 , wherein selecting from any cluster of available serving containers is based on updating a data structure comprising container information associated with available serving containers in any corresponding cluster of available serving containers.

16 . The computer-implemented method of claim 14 , the computer-implemented method further comprising:

identifying an other version of an other machine-learning model associated with the request;

identifying an other set of available serving containers corresponding to the other machine-learning model from an other cluster of available serving containers associated with the other version of the other machine-learning model;

selecting an other serving container from the other set of available serving containers corresponding to the other machine-learning model;

loading the other machine-learning model in the other serving container, in response to a determination that the other machine-learning model is not loaded in the other serving container; and

executing, in the other serving container, the other machine-learning model on behalf of the request, in response to a determination that the other machine-learning model is loaded in the other serving container;

wherein responding to the request is further based on executing the other machine-learning model on behalf of the request.

17 . The computer-implemented method of claim 14 , the computer-implemented method further comprising:

identifying the version of the machine-learning model associated with an additional request, in response to receiving the additional request from the application;

identifying the set of available serving containers corresponding to the machine-learning model from the cluster of available serving containers associated with the version of the machine-learning model;

selecting an additional serving container from the set of available serving containers corresponding to the machine-learning model;

loading a copy of the machine-learning model in the additional serving container, in response to a determination that the copy of the machine-learning model is not loaded in the additional serving container;

executing, in the additional serving container, the copy of the machine-learning model on behalf of the additional request, in response to a determination that the copy of the machine-learning model is loaded in the additional serving container; and

responding to the additional request based on executing the copy of the machine-learning model on behalf of the additional request.

18 . The computer-implemented method of claim 14 , the computer-implemented method further comprising:

identifying an extra version of an extra machine-learning model associated with an extra request, in response to receiving the extra request from an extra application;

identifying an extra set of available serving containers corresponding to the extra machine-learning model from the cluster of available serving containers which is associated with both the extra version of the extra machine-learning model and the version of the machine-learning model;

selecting an extra serving container from the extra set of available serving containers corresponding to the extra machine-learning model;

loading the extra machine-learning model in the extra serving container, in response to a determination that the extra machine-learning model is not loaded in the extra serving container;

executing, in the extra serving container, the extra machine-learning model on behalf of the extra request, in response to a determination that the extra machine-learning model is loaded in the extra serving container; and

responding to the extra request based on executing the extra machine-learning model on behalf of the extra request.

19 . The computer-implemented method of claim 18 , wherein the application is associated with a first tenant and the extra application is associated with a second tenant.

20 . The computer-implemented method of claim 14 , wherein any set of available serving containers corresponding to any machine-learning model is identified based on executing a consistent hashing function applied to identifiers of each serving container associated with any version of any corresponding machine-learning model and an identifier of any corresponding machine-learning model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2021
From: FELDMAN, YULIYA L.; ASHRAFZADEH, SEYEDSHAHIN; NIKITIN, ALEXANDR; AGARWAL, MANOJ
To: SALESFORCE.COM, INC.
Reel/Frame 055048/0831 →
Continuity (1)
Related Publication 20220237505A1 · Jul 28, 2022
References Cited (237)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz · 1997 [cited by applicant]
US 5649104A · Carleton · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz · 1998 [cited by applicant]
US 5819038A · Carleton · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier · 2003 [cited by applicant]
US 6654032B1 · Zhu · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshavsky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7620655B2 · Larsson · 2009 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7779039B2 · Weissman et al. · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 7851004B2 · Hirao et al. · 2010 [cited by applicant]
US 8010663B2 · Firminger et al. · 2011 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven et al. · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8209308B2 · Jakobson et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US 9926131B1 · Lehmann · 2018 [cited by examiner]
US 10509648B2 · Rabin · 2019 [cited by examiner]
US 10621019B1 · Faulhaber, Jr. · 2020 [cited by examiner]
US 10785334B2 · Kristiansson · 2020 [cited by examiner]
US 10812366B1 · Berenberg · 2020 [cited by examiner]
US 10931786B1 · Vasquez · 2021 [cited by examiner]
US 11055273B1 · Meduri · 2021 [cited by examiner]
US 11151467B1 · Shtein · 2021 [cited by examiner]
US 11200204B2 · Wang · 2021 [cited by examiner]
US 11272164B1 · Xing · 2022 [cited by examiner]
US 11341605B1 · Singh · 2022 [cited by examiner]
US 11429893B1 · Tong · 2022 [cited by examiner]
US 11487942B1 · Senthivel · 2022 [cited by examiner]
US 11537439B1 · Liberty · 2022 [cited by examiner]
US 11550614B2 · Faulhaber, Jr. · 2023 [cited by examiner]
US 11652769B2 · Weiss · 2023 [cited by examiner]
US 11775867B1 · Jamei · 2023 [cited by examiner]
US 11853401B1 · Nookula · 2023 [cited by examiner]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramanian et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20090063415A1 · Chatfield et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20120208501A1 · Tsuda · 2012 [cited by examiner]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20130047203A1 · Radhakrishnan · 2013 [cited by examiner]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130247519A1 · Clark · 2013 [cited by examiner]
US 20130330020A1 · Thakkar · 2013 [cited by examiner]
US 20140082131A1 · Jagtap · 2014 [cited by examiner]
US 20140359537A1 · Jakobson et al. · 2014 [cited by applicant]
US 20150007050A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150095162A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150172563A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150379429A1 · Lee · 2015 [cited by examiner]
US 20150379430A1 · Dirac · 2015 [cited by examiner]
US 20160078361A1 · Brueckner · 2016 [cited by examiner]
US 20160269318A1 · Su · 2016 [cited by examiner]
US 20160330277A1 · Jain · 2016 [cited by examiner]
US 20170063722A1 · Cropper · 2017 [cited by examiner]
US 20170344910A1 · Wu · 2017 [cited by examiner]
US 20180089592A1 · Zeiler · 2018 [cited by examiner]
US 20180152534A1 · Kristiansson · 2018 [cited by examiner]
US 20180176070A1 · Shafiee · 2018 [cited by examiner]
US 20180219959A1 · Bugenhagen · 2018 [cited by examiner]
US 20180278680A1 · Liu · 2018 [cited by examiner]
US 20180349191A1 · Dorsey · 2018 [cited by examiner]
US 20180357047A1 · Brown · 2018 [cited by examiner]
US 20190102206A1 · Fichtenholtz · 2019 [cited by examiner]
US 20190155633A1 · Faulhaber, Jr. · 2019 [cited by examiner]
US 20190156244A1 · Faulhaber, Jr. · 2019 [cited by examiner]
US 20190156247A1 · Faulhaber, Jr. · 2019 [cited by examiner]
US 20190279114A1 · Deshpande · 2019 [cited by examiner]
US 20190327259A1 · DeFelice · 2019 [cited by examiner]
US 20200167202A1 · Huang · 2020 [cited by examiner]
US 20200272920A1 · Liu · 2020 [cited by examiner]
US 20200311617A1 · Swan · 2020 [cited by examiner]
US 20200322263A1 · Wu · 2020 [cited by examiner]
US 20210026703A1 · Fichtenholtz · 2021 [cited by examiner]
US 20210055977A1 · Lisuk · 2021 [cited by examiner]
US 20210073736A1 · Alawi · 2021 [cited by examiner]
US 20210081313A1 · Jang · 2021 [cited by examiner]
US 20210144517A1 · Guim Bernat · 2021 [cited by examiner]
US 20210150411A1 · Coenders · 2021 [cited by examiner]
US 20210174238A1 · Song · 2021 [cited by examiner]
US 20210319360A1 · Vishnoi · 2021 [cited by examiner]
US 20210342193A1 · Anand · 2021 [cited by examiner]
US 20220075610A1 · Wang · 2022 [cited by examiner]
US 20220083363A1 · Lewis · 2022 [cited by examiner]
US 20220083389A1 · Poothia · 2022 [cited by examiner]
US 20220172100A1 · Balasubramanian · 2022 [cited by examiner]
US 20220179661A1 · Kim · 2022 [cited by examiner]
US 20220237505A1 · Feldman · 2022 [cited by examiner]
US 20220237506A1 · Feldman · 2022 [cited by examiner]
US 20220246303A1 · Sakaguchi · 2022 [cited by examiner]
US 20220255731A1 · Modica · 2022 [cited by examiner]
US 20220261270A1 · Gizis · 2022 [cited by examiner]
US 20220300754A1 · Biswas · 2022 [cited by examiner]
US 20220318647A1 · Ashrafzadeh · 2022 [cited by examiner]
US 20220382539A1 · Gumashta · 2022 [cited by examiner]
US 20220382601A1 · Feldman · 2022 [cited by examiner]
US 20220383150A1 · Le · 2022 [cited by examiner]
US 20220391747A1 · Ashrafzadeh · 2022 [cited by examiner]
US 20220391748A1 · Nikitin · 2022 [cited by examiner]
US 20220391749A1 · Feldman · 2022 [cited by examiner]
US 20220414547A1 · Ashrafzadeh · 2022 [cited by examiner]
US 20220414548A1 · Ashrafzadeh · 2022 [cited by examiner]
US 20230059339A1 · Rangarajan · 2023 [cited by examiner]
US 20230074530A1 · Rigamonti · 2023 [cited by examiner]
US 20230093963A1 · Kumar · 2023 [cited by examiner]
US 20230110057A1 · Kan · 2023 [cited by examiner]
US 20230111775A1 · Lee · 2023 [cited by examiner]
US 20230222783A1 · Bowman · 2023 [cited by examiner]
US 20230273837A1 · Fong · 2023 [cited by examiner]
US 20230300686A1 · Pantelidou · 2023 [cited by examiner]
US 20230306314A1 · Chandrasekaran · 2023 [cited by examiner]
US 20230325258A1 · Wang · 2023 [cited by examiner]
US 20230376167A1 · Imam · 2023 [cited by examiner]
US 20230385692A1 · Kang · 2023 [cited by examiner]
US 20240022927A1 · Tong · 2024 [cited by examiner]
US 20240143807A1 · Singh · 2024 [cited by examiner]
US 20250173183A1 · Trikande · 2025 [cited by examiner]
Office Action (Non-Final Rejection) dated Mar. 19, 2024 for U.S. Appl. No. 17/159,805 (pp. 1-21). [cited by applicant]
Office Action (Final Rejection) dated Jul. 2, 2024 for U.S. Appl. No. 17/159,805 (pp. 1-53). [cited by applicant]
U.S. Appl. No. 17/159,805, USPTO e-Office Action: CTNF—Non-Final Rejection, Jan. 21, 2025, 39 pages. [cited by applicant]
Office Action (Non-Final Rejection) dated May 1, 2025 for U.S. Appl. No. 17/159,805 (pp. 1-40). [cited by applicant]
Office Action (Final Rejection) dated Aug. 7, 2025 for U.S. Appl. No. 17/159,805 (pp. 1-23). [cited by applicant]
U.S. Appl. No. 17/159,805, USPTO e-Office Action: NOA—Notice of Allowance, Mar. 4, 2026, 18 pages. [cited by applicant]