IP Library › Granted Patent US 12,222,903
Granted Patent B1
US 12,222,903 · App. 18/799,431 · Granted Feb 11, 2025

Global namespaces for distributed file systems

Inventors: Thomas Gregory Rothschilds (Issaquah, WA); Aaron James Passey (San Rafael, CA); Edward Carpenter (Seattle, WA)
Assignee: Qumulo, Inc.
G06F16/1774G06F16/172G06F16/182
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,222,903
App. No.
18/799,431
Granted
Feb 11, 2025
Kind
B1
Abstract

Embodiments are directed to managing data in a file system. In response to a request from a client of a spoke file system to access file system items shared by a hub file system: determining a portion of the spoke file systems that may have an existing lock on the file system items; obtaining log entries from the portion of the spoke file systems such that the log entries are associated with commands that were executed in the portion of the spoke file systems; executing the commands in the hub file system to update the file system items in the hub file system; granting a lock on the file system items in the hub file system that enables the client to access the updated file system items from the spoke file systems.

Claims (149)

1. A method for managing data in a file system over a network using one or more processors to execute instructions that are configured to cause performance of actions, comprising:

sharing one or more portions of a hub file system that includes one or more nodes with one or more spoke file systems that includes one or more other nodes, wherein the hub file system shares a plurality of file system items with the one or more spoke file systems; and

employing a request from a client of the hub file system to access one or more file system items that are in the hub file system to perform further actions, including:

determining a portion of the one or more spoke file systems that have cached data associated with the one or more file system items;

updating the one or more file system items in the hub file system based on an execution of one or more commands associated with the request from the hub file system client;

generating one or more invalidation log entries on the hub file system based on an execution of the one or more commands;

communicating the one or more invalidation log entries to the portion of the one or more spoke file systems, wherein the portion of the one or more spoke file systems employs the one or more invalidation log entries to invalidate each cached portion of the data associated with the one or more file system items; and

employing another request from the client for access to one or more other file system items of the plurality of shared file system items to perform further actions, including:

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems, and wherein each log entry is associated with a logical timestamp that corresponds to a sequence that the one or more commands were executed in the other portion of the one or more spoke file systems;

executing the one or more commands in the sequence again in the hub file system for each logical timestamp of the one or more log entries to update the one or more other file system items in the hub file system; and

granting a lock on the one or more other file system items in the hub file system that enables the client of the one or more spoke file systems to access the one or more updated file system items from the other portion of one or more spoke file systems.

2. The method of claim 1 , further comprising:

employing another request from a client of a spoke file system to access one or more other file system items that are in the hub file system to perform further actions, including:

obtaining a lock on the one or more other file system items for the client of the spoke file system based on the other request;

generating one or more log entries based on an execution of one or more other commands associated with the other request, wherein the one or more log entries are stored in the spoke file system to complete the other request; and

communicating the one or more other log entries from the spoke file system to the hub file system based on one or more of a message from the hub file system or a policy of the hub file system.

3. The method of claim 1 , further comprising:

obtaining one or more log entries from a portion one or more spoke file systems, wherein the one or more log entries are associated with one or more commands that were previously executed on the portion of the one the one or more spoke file systems, and wherein the portion of the one or more spoke file system have one or more locks associated with a portion of the one or more file system items;

executing the one or more commands in the hub file system; and

directing the portion of the one or more spoke file systems to release each lock associated with the portion of one or more file system entries.

4. The method of claim 1 , further comprising:

employing an execution of one or more commands on the hub file system, to perform, further actions, including:

determining another portion of the one or more spoke file systems that have an existing lock on the one or more other file system items;

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems;

associating a logical timestamp of a log entry corresponding to a most recent executed command with the one or more file system items; and

disregarding one or more subsequent commands that are associated with another log entry that has a logical timestamp that is equal to or less than the logical timestamp associated with the one or more file system items.

5. The method of claim 1 , further comprising:

determining one or more meta-data updates associated with one or more other file system items stored in the hub file system;

determining another portion of the one or more spoke file systems that are shared a portion of the one or more other file system items;

generating one or more meta-data update log entries based on the one or more meta-data updates; and

communicating the one or more meta-data update log entries to the other portion of the one or more spoke file systems, wherein meta-data for each of the one or more other file system items is updated on the portion of one or more spoke file systems.

6. The method of claim 1 , further comprising:

determining a plurality of log entries that are stored in the portion of the one or more spoke file systems; and

determining one or more log entries from the plurality of log entries based on one or more file system item identifiers included in the one or more log entries, wherein one or more other log entries of the plurality of log entries that omit the one or more file system identifiers are excluded from the one or more log entries.

7. The method of claim 1 , further comprising:

generating a plurality of invalidation log entries on the hub file system based on an execution of a plurality of commands on the hub file system; and

communicating the plurality of invalidation log entries to the one or more spoke file systems, wherein each spoke file system is associated with a cursor that iterates independently through the plurality of invalidation log entries, and wherein each cursor enables its associated spoke file system to consume invalidation log entries at a different rate.

8. A system for managing data in a file system comprising:

a network computer, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that are configured to cause performance of actions, including:

sharing one or more portions of a hub file system that includes one or more nodes with one or more spoke file systems that includes one or more other nodes, wherein the hub file system shares a plurality of file system items with the one or more spoke file systems; and

employing a request from a client of the hub file system to access one or more file system items that are in the hub file system to perform further actions, including:

determining a portion of the one or more spoke file systems that have cached data associated with the one or more file system items;

updating the one or more file system items in the hub file system based on an execution of one or more commands associated with the request from the hub file system client;

generating one or more invalidation log entries on the hub file system based on an execution of the one or more commands;

communicating the one or more invalidation log entries to the portion of the one or more spoke file systems, wherein the portion of the one or more spoke file systems employs the one or more invalidation log entries to invalidate each cached portion of the data associated with the one or more file system items; and

employing another request from the client for access to one or more other file system items of the plurality of shared file system items to perform further actions, including:

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems, and wherein each log entry is associated with a logical timestamp that corresponds to a sequence that the one or more commands were executed in the other portion of the one or more spoke file systems;

executing the one or more commands in the sequence again in the hub file system for each logical timestamp of the one or more log entries to update the one or more other file system items in the hub file system; and

granting a lock on the one or more other file system items in the hub file system that enables the client of the one or more spoke file systems to access the one or more updated file system items from the other portion of one or more spoke file systems; and

one or more client computers, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that are configured to cause performance of other actions, including:

communicating the request to the spoke file system.

9. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising:

employing another request from a client of a spoke file system to access one or more other file system items that are in the hub file system to perform further actions, including:

obtaining a lock on the one or more other file system items for the client of the spoke file system based on the other request;

generating one or more log entries based on an execution of one or more other commands associated with the other request, wherein the one or more log entries are stored in the spoke file system to complete the other request; and

communicating the one or more other log entries from the spoke file system to the hub file system based on one or more of a message from the hub file system or a policy of the hub file system.

10. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining one or more log entries from a portion one or more spoke file systems, wherein the one or more log entries are associated with one or more commands that were previously executed on the portion of the one the one or more spoke file systems, and wherein the portion of the one or more spoke file system have one or more locks associated with a portion of the one or more file system items;

executing the one or more commands in the hub file system; and

directing the portion of the one or more spoke file systems to release each lock associated with the portion of one or more file system entries.

11. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising: employing an execution of one or more commands on the hub file system, to perform, further actions, including:

determining another portion of the one or more spoke file systems that have an existing lock on the one or more other file system items;

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems;

associating a logical timestamp of a log entry corresponding to a most recent executed command with the one or more file system items; and

disregarding one or more subsequent commands that are associated with another log entry that has a logical timestamp that is equal to or less than the logical timestamp associated with the one or more file system items.

12. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising: determining one or more meta-data updates associated with one or more other file system items stored in the hub file system;

determining another portion of the one or more spoke file systems that are shared a portion of the one or more other file system items;

generating one or more meta-data update log entries based on the one or more meta-data updates; and

communicating the one or more meta-data update log entries to the other portion of the one or more spoke file systems, wherein meta-data for each of the one or more other file system items is updated on the portion of one or more spoke file systems.

13. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising:

determining a plurality of log entries that are stored in the portion of the one or more spoke file systems; and

determining one or more log entries from the plurality of log entries based on one or more file system item identifiers included in the one or more log entries, wherein one or more other log entries of the plurality of log entries that omit the one or more file system identifiers are excluded from the one or more log entries.

14. The system of claim 8 , wherein the one or more network computer processors execute instructions that are configured to cause performance of actions, further comprising:

generating a plurality of invalidation log entries on the hub file system based on an execution of a plurality of commands on the hub file system; and

communicating the plurality of invalidation log entries to the one or more spoke file systems, wherein each spoke file system is associated with a cursor that iterates independently through the plurality of invalidation log entries, and wherein each cursor enables its associated spoke file system to consume invalidation log entries at a different rate.

15. A processor readable non-transitory storage media that includes instructions for managing data in a file system over a network, wherein execution of the instructions by one or more processors on one or more network computers performs actions, comprising:

sharing one or more portions of a hub file system that includes one or more nodes with one or more spoke file systems that includes one or more other nodes, wherein the hub file system shares a plurality of file system items with the one or more spoke file systems; and

employing a request from a client of the hub file system to access one or more file system items that are in the hub file system to perform further actions, including:

determining a portion of the one or more spoke file systems that have cached data associated with the one or more file system items;

updating the one or more file system items in the hub file system based on an execution of one or more commands associated with the request from the hub file system client;

generating one or more invalidation log entries on the hub file system based on an execution of the one or more commands;

communicating the one or more invalidation log entries to the portion of the one or more spoke file systems, wherein the portion of the one or more spoke file systems employs the one or more invalidation log entries to invalidate each cached portion of the data associated with the one or more file system items; and

employing another request from the client for access to one or more other file system items of the plurality of shared file system items to perform further actions, including:

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems, and wherein each log entry is associated with a logical timestamp that corresponds to a sequence that the one or more commands were executed in the other portion of the one or more spoke file systems;

executing the one or more commands in the sequence again in the hub file system for each logical timestamp of the one or more log entries to update the one or more other file system items in the hub file system; and

granting a lock on the one or more other file system items in the hub file system that enables the client of the one or more spoke file systems to access the one or more updated file system items from the other portion of one or more spoke file systems.

16. The media of claim 15 , further comprising:

employing another request from a client of a spoke file system to access one or more other file system items that are in the hub file system to perform further actions, including:

obtaining a lock on the one or more other file system items for the client of the spoke file system based on the other request;

generating one or more log entries based on an execution of one or more other commands associated with the other request, wherein the one or more log entries are stored in the spoke file system to complete the other request; and

communicating the one or more other log entries from the spoke file system to the hub file system based on one or more of a message from the hub file system or a policy of the hub file system.

17. The media of claim 15 , further comprising:

obtaining one or more log entries from a portion one or more spoke file systems, wherein the one or more log entries are associated with one or more commands that were previously executed on the portion of the one the one or more spoke file systems, and wherein the portion of the one or more spoke file system have one or more locks associated with a portion of the one or more file system items;

executing the one or more commands in the hub file system; and

directing the portion of the one or more spoke file systems to release each lock associated with the portion of one or more file system entries.

18. The media of claim 15 , further comprising:

employing an execution of one or more commands on the hub file system, to perform, further actions, including:

determining another portion of the one or more spoke file systems that have an existing lock on the one or more other file system items;

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems;

associating a logical timestamp of a log entry corresponding to a most recent executed command with the one or more file system items; and

disregarding one or more subsequent commands that are associated with another log entry that has a logical timestamp that is equal to or less than the logical timestamp associated with the one or more file system items.

19. The media of claim 15 , further comprising:

determining one or more meta-data updates associated with one or more other file system items stored in the hub file system;

determining another portion of the one or more spoke file systems that are shared a portion of the one or more other file system items;

generating one or more meta-data update log entries based on the one or more meta-data updates; and

communicating the one or more meta-data update log entries to the other portion of the one or more spoke file systems, wherein meta-data for each of the one or more other file system items is updated on the portion of one or more spoke file systems.

20. The media of claim 15 , further comprising:

generating a plurality of invalidation log entries on the hub file system based on an execution of a plurality of commands on the hub file system; and

communicating the plurality of invalidation log entries to the one or more spoke file systems, wherein each spoke file system is associated with a cursor that iterates independently through the plurality of invalidation log entries, and wherein each cursor enables its associated spoke file system to consume invalidation log entries at a different rate.

21. A network computer for managing data in a file system, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that are configured to cause performance of actions, including:

sharing one or more portions of a hub file system that includes one or more nodes with one or more spoke file systems that includes one or more other nodes, wherein the hub file system shares a plurality of file system items with the one or more spoke file systems; and

employing a request from a client of the hub file system to access one or more file system items that are in the hub file system to perform further actions, including:

determining a portion of the one or more spoke file systems that have cached data associated with the one or more file system items;

updating the one or more file system items in the hub file system based on an execution of one or more commands associated with the request from the hub file system client;

generating one or more invalidation log entries on the hub file system based on an execution of the one or more commands;

communicating the one or more invalidation log entries to the portion of the one or more spoke file systems, wherein the portion of the one or more spoke file systems employs the one or more invalidation log entries to invalidate each cached portion of the data associated with the one or more file system items; and

employing another request from the client for access to one or more other file system items of the plurality of shared file system items to perform further actions, including:

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems, and wherein each log entry is associated with a logical timestamp that corresponds to a sequence that the one or more commands were executed in the other portion of the one or more spoke file systems;

executing the one or more commands in the sequence again in the hub file system for each logical timestamp of the one or more log entries to update the one or more other file system items in the hub file system; and

granting a lock on the one or more other file system items in the hub file system that enables the client of the one or more spoke file systems to access the one or more updated file system items from the other portion of one or more spoke file systems.

22. The network computer of claim 21 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

employing another request from a client of a spoke file system to access one or more other file system items that are in the hub file system to perform further actions, including:

obtaining a lock on the one or more other file system items for the client of the spoke file system based on the other request;

generating one or more log entries based on an execution of one or more other commands associated with the other request, wherein the one or more log entries are stored in the spoke file system to complete the other request; and

communicating the one or more other log entries from the spoke file system to the hub file system based on one or more of a message from the hub file system or a policy of the hub file system.

23. The network computer of claim 21 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining one or more log entries from a portion one or more spoke file systems, wherein the one or more log entries are associated with one or more commands that were previously executed on the portion of the one the one or more spoke file systems, and wherein the portion of the one or more spoke file system have one or more locks associated with a portion of the one or more file system items;

executing the one or more commands in the hub file system; and

directing the portion of the one or more spoke file systems to release each lock associated with the portion of one or more file system entries.

24. The network computer of claim 21 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

employing an execution of one or more commands on the hub file system, to perform, further actions, including:

determining another portion of the one or more spoke file systems that have an existing lock on the one or more other file system items;

obtaining one or more log entries from the other portion of the one or more spoke file systems, wherein the one or more log entries are associated with one or more other commands that were executed in the other portion of the one or more spoke file systems;

associating a logical timestamp of a log entry corresponding to a most recent executed command with the one or more file system items; and

disregarding one or more subsequent commands that are associated with another log entry that has a logical timestamp that is equal to or less than the logical timestamp associated with the one or more file system items.

25. The network computer of claim 21 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

determining one or more meta-data updates associated with one or more other file system items stored in the hub file system;

determining another portion of the one or more spoke file systems that are shared a portion of the one or more other file system items;

generating one or more meta-data update log entries based on the one or more meta-data updates; and

communicating the one or more meta-data update log entries to the other portion of the one or more spoke file systems, wherein meta-data for each of the one or more other file system items is updated on the portion of one or more spoke file systems.

26. The network computer of claim 21 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

generating a plurality of invalidation log entries on the hub file system based on an execution of a plurality of commands on the hub file system; and

communicating the plurality of invalidation log entries to the one or more spoke file systems, wherein each spoke file system is associated with a cursor that iterates independently through the plurality of invalidation log entries, and wherein each cursor enables its associated spoke file system to consume invalidation log entries at a different rate.

Assignments (2)
SECURITY INTEREST Recorded Jul 17, 2025
From: QUMULO, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071748/0322 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: ROTHSCHILDS, THOMAS GREGORY; PASSEY, AARON JAMES; CARPENTER, EDWARD
To: QUMULO, INC.
Reel/Frame 068240/0364 →
References Cited (400)
US 5165031A · Pruul et al. · 1992 [cited by applicant]
US 5283875A · Gibson et al. · 1994 [cited by applicant]
US 5319773A · Britton et al. · 1994 [cited by applicant]
US 5410684A · Ainsworth et al. · 1995 [cited by applicant]
US 5410719A · Shackleford · 1995 [cited by applicant]
US 5442561A · Yoshizawa et al. · 1995 [cited by applicant]
US 5953719A · Kleewein et al. · 1999 [cited by applicant]
US 6049809A · Raman et al. · 2000 [cited by applicant]
US 6236996B1 · Bapat et al. · 2001 [cited by applicant]
US 6385641B1 · Jiang et al. · 2002 [cited by applicant]
US 6415283B1 · Conklin · 2002 [cited by applicant]
US 6496944B1 · Hsiao et al. · 2002 [cited by applicant]
US 6529998B1 · Yochai et al. · 2003 [cited by applicant]
US 6560615B1 · Zayas et al. · 2003 [cited by applicant]
US 6772435B1 · Thexton et al. · 2004 [cited by applicant]
US 6874130B1 · Baweja et al. · 2005 [cited by applicant]
US 6892211B2 · Hitz et al. · 2005 [cited by applicant]
US 6965903B1 · Agarwal et al. · 2005 [cited by applicant]
US 6965936B1 · Wipfel et al. · 2005 [cited by applicant]
US 7072911B1 · Doman et al. · 2006 [cited by applicant]
US 7165158B1 · Yagawa · 2007 [cited by applicant]
US 7213040B1 · Stokes et al. · 2007 [cited by applicant]
US 7330948B2 · Deguchi et al. · 2008 [cited by applicant]
US 7467333B2 · Keeton et al. · 2008 [cited by applicant]
US 7594138B2 · Abdulvahid · 2009 [cited by applicant]
US 7636743B2 · Erofeev · 2009 [cited by applicant]
US 7693876B2 · Hackworth et al. · 2010 [cited by applicant]
US 7757056B1 · Fair · 2010 [cited by applicant]
US 7761456B1 · Cram et al. · 2010 [cited by applicant]
US 7844580B2 · Srivastava et al. · 2010 [cited by applicant]
US 7933870B1 · Webster · 2011 [cited by applicant]
US 7937421B2 · Mikesell et al. · 2011 [cited by applicant]
US 7956293B2 · Echigo et al. · 2011 [cited by applicant]
US 7958304B1 · Goel et al. · 2011 [cited by applicant]
US 7962709B2 · Agrawal · 2011 [cited by applicant]
US 7966293B1 · Owara et al. · 2011 [cited by applicant]
US 8027827B2 · Bitar et al. · 2011 [cited by applicant]
US 8046378B1 · Zhuge et al. · 2011 [cited by applicant]
US 8108429B2 · Sim-Tang et al. · 2012 [cited by applicant]
US 8296312B1 · Leung et al. · 2012 [cited by applicant]
US 8341540B1 · Haynes et al. · 2012 [cited by applicant]
US 8355407B2 · Wookey et al. · 2013 [cited by applicant]
US 8364648B1 · Sim-Tang · 2013 [cited by applicant]
US 8423733B1 · Ozdemir · 2013 [cited by applicant]
US 8423821B1 · Keith, Jr. · 2013 [cited by applicant]
US 8448170B2 · Wipfel et al. · 2013 [cited by applicant]
US 8463825B1 · Harty et al. · 2013 [cited by applicant]
US 8489656B2 · Erofeev · 2013 [cited by applicant]
US 8504733B1 · Tyer et al. · 2013 [cited by applicant]
US 8515911B1 · Zhou et al. · 2013 [cited by applicant]
US 8612404B2 · Bone et al. · 2013 [cited by applicant]
US 8612488B1 · Subramanya et al. · 2013 [cited by applicant]
US 8645323B2 · Jackiewicz et al. · 2014 [cited by applicant]
US 8661447B1 · Olliff et al. · 2014 [cited by applicant]
US 8725691B1 · Natanzon · 2014 [cited by applicant]
US 8776050B2 · Plouffe et al. · 2014 [cited by applicant]
US 8782655B2 · Blanding et al. · 2014 [cited by applicant]
US 8805786B1 · Natanzon · 2014 [cited by applicant]
US 8806154B1 · Gupta et al. · 2014 [cited by applicant]
US 8838887B1 · Burke et al. · 2014 [cited by applicant]
US 8838931B1 · Marshak et al. · 2014 [cited by applicant]
US 8849754B2 · Craggs · 2014 [cited by applicant]
US 8849764B1 · Long et al. · 2014 [cited by applicant]
US 8849809B1 · Seshadri · 2014 [cited by applicant]
US 8868797B1 · Kirac et al. · 2014 [cited by applicant]
US 8924364B1 · Zhong et al. · 2014 [cited by applicant]
US 8972694B1 · Dolan et al. · 2015 [cited by applicant]
US 9015214B2 · Nishida et al. · 2015 [cited by applicant]
US 9026765B1 · Marshak et al. · 2015 [cited by applicant]
US 9031994B1 · Cao et al. · 2015 [cited by applicant]
US 9032170B2 · Vaghani et al. · 2015 [cited by applicant]
US 9047017B1 · Dolan et al. · 2015 [cited by applicant]
US 9141633B1 · Li et al. · 2015 [cited by applicant]
US 9143379B1 · Berger et al. · 2015 [cited by applicant]
US 9158653B2 · Gold · 2015 [cited by applicant]
US 9171145B2 · Dash et al. · 2015 [cited by applicant]
US 9244975B2 · Das et al. · 2016 [cited by applicant]
US 9244976B1 · Zhang et al. · 2016 [cited by applicant]
US 9361187B2 · Jarvis · 2016 [cited by applicant]
US 9384252B2 · Akirav et al. · 2016 [cited by applicant]
US 9396202B1 · Drobychev et al. · 2016 [cited by applicant]
US 9459804B1 · Natanzon et al. · 2016 [cited by applicant]
US 9501487B1 · Yuan et al. · 2016 [cited by applicant]
US 9519664B1 · Kharatishvili et al. · 2016 [cited by applicant]
US 9547560B1 · Lee · 2017 [cited by applicant]
US 9600193B2 · Ahrens et al. · 2017 [cited by applicant]
US 9613120B1 · Kharatishvili et al. · 2017 [cited by applicant]
US 9727432B1 · Cutforth et al. · 2017 [cited by applicant]
US 9747171B2 · Beeken et al. · 2017 [cited by applicant]
US 9753782B2 · Fang et al. · 2017 [cited by applicant]
US 9753932B1 · Brow et al. · 2017 [cited by applicant]
US 9753987B1 · Dolan et al. · 2017 [cited by applicant]
US 9785377B2 · Shin et al. · 2017 [cited by applicant]
US 9836480B2 · Okun et al. · 2017 [cited by applicant]
US 9846698B1 · Panidis et al. · 2017 [cited by applicant]
US 10073856B1 · Cooper et al. · 2018 [cited by applicant]
US 10095708B2 · Passey et al. · 2018 [cited by applicant]
US 10095709B2 · Okun et al. · 2018 [cited by applicant]
US 10095729B2 · Taron et al. · 2018 [cited by applicant]
US 10140185B1 · Lopez et al. · 2018 [cited by applicant]
US 10162980B1 · Bernotavicius et al. · 2018 [cited by applicant]
US 10261868B2 · Brown et al. · 2019 [cited by applicant]
US 10275493B1 · Mostak · 2019 [cited by applicant]
US 10303561B2 · Beeken et al. · 2019 [cited by applicant]
US 10318401B2 · Rothschilds et al. · 2019 [cited by applicant]
US 10318494B2 · Krasnow et al. · 2019 [cited by applicant]
US 10339101B1 · Gupta · 2019 [cited by applicant]
US 10346355B2 · Godman · 2019 [cited by applicant]
US 10387810B1 · Kalush et al. · 2019 [cited by applicant]
US 10409784B1 · Krasnow et al. · 2019 [cited by applicant]
US 10423609B1 · Strauss · 2019 [cited by applicant]
US 10437509B1 · Alexeev et al. · 2019 [cited by applicant]
US 10447779B2 · Dieterich et al. · 2019 [cited by applicant]
US 10459884B1 · Godman · 2019 [cited by applicant]
US 10459892B2 · Godman et al. · 2019 [cited by applicant]
US 10460122B1 · Kirby et al. · 2019 [cited by applicant]
US 10474635B1 · Unger et al. · 2019 [cited by applicant]
US 10534758B1 · Carpenter et al. · 2020 [cited by applicant]
US 10540662B2 · Barlett et al. · 2020 [cited by applicant]
US 10545986B2 · Tappan et al. · 2020 [cited by applicant]
US 10552373B2 · Brow et al. · 2020 [cited by applicant]
US 10606812B2 · Cooper et al. · 2020 [cited by applicant]
US 10614033B1 · Rothschilds et al. · 2020 [cited by applicant]
US 10614241B1 · Kirby et al. · 2020 [cited by applicant]
US 10621057B2 · Tripathi et al. · 2020 [cited by applicant]
US 10621147B1 · Liang et al. · 2020 [cited by applicant]
US 10664408B1 · Chatterjee et al. · 2020 [cited by applicant]
US 10678663B1 · Sharma et al. · 2020 [cited by applicant]
US 10678671B2 · Rothschilds et al. · 2020 [cited by applicant]
US 10725977B1 · Chmiel et al. · 2020 [cited by applicant]
US 10795796B1 · Bai et al. · 2020 [cited by applicant]
US 10860372B1 · Bai et al. · 2020 [cited by applicant]
US 10860414B1 · Urban et al. · 2020 [cited by applicant]
US 10860546B2 · Ye et al. · 2020 [cited by applicant]
US 10860547B2 · Passey et al. · 2020 [cited by applicant]
US 10877942B2 · Okun et al. · 2020 [cited by applicant]
US 10936538B1 · Unger et al. · 2021 [cited by applicant]
US 10936551B1 · Unger et al. · 2021 [cited by applicant]
US 11023535B1 · Greenwood et al. · 2021 [cited by applicant]
US 11132126B1 · Chmiel et al. · 2021 [cited by applicant]
US 11132336B2 · Passey et al. · 2021 [cited by applicant]
US 11150823B2 · Gao et al. · 2021 [cited by applicant]
US 11151001B2 · Su et al. · 2021 [cited by applicant]
US 11151092B2 · Chmiel et al. · 2021 [cited by applicant]
US 11157458B1 · Carter et al. · 2021 [cited by applicant]
US 11249907B1 · Brewer · 2022 [cited by applicant]
US 11256682B2 · Taron et al. · 2022 [cited by applicant]
US 11265262B1 · Makie et al. · 2022 [cited by applicant]
US 11294604B1 · McMullan et al. · 2022 [cited by applicant]
US 11294718B2 · Bai et al. · 2022 [cited by applicant]
US 11347699B2 · Carpenter et al. · 2022 [cited by applicant]
US 11354273B1 · O'Neill et al. · 2022 [cited by applicant]
US 11360936B2 · Haber et al. · 2022 [cited by applicant]
US 11372735B2 · Su et al. · 2022 [cited by applicant]
US 11372819B1 · Carter et al. · 2022 [cited by applicant]
US 11435901B1 · Chmiel et al. · 2022 [cited by applicant]
US 11461241B2 · Carpenter et al. · 2022 [cited by applicant]
US 11461286B2 · Godman et al. · 2022 [cited by applicant]
US 11567660B2 · Chmiel et al. · 2023 [cited by applicant]
US 11599508B1 · Harward et al. · 2023 [cited by applicant]
US 11630832B2 · Choi et al. · 2023 [cited by applicant]
US 11669255B2 · Hansen et al. · 2023 [cited by applicant]
US 11722150B1 · Fachan et al. · 2023 [cited by applicant]
US 11729269B1 · Meernik et al. · 2023 [cited by applicant]
US 11734147B2 · Bai et al. · 2023 [cited by applicant]
US 11775481B2 · Unger et al. · 2023 [cited by applicant]
US 11921677B1 · Kirby et al. · 2024 [cited by applicant]
US 11934660B1 · McMullan et al. · 2024 [cited by applicant]
US 11966592B1 · Bai · 2024 [cited by applicant]
US 12019875B1 · McMullan et al. · 2024 [cited by applicant]
US 12038877B1 · Kirby et al. · 2024 [cited by applicant]
US 20010039622A1 · Hitz et al. · 2001 [cited by applicant]
US 20020059439A1 · Arroyo et al. · 2002 [cited by applicant]
US 20020065835A1 · Fujisaki · 2002 [cited by applicant]
US 20020083073A1 · Vaidya et al. · 2002 [cited by applicant]
US 20020099691A1 · Lore et al. · 2002 [cited by applicant]
US 20020178271A1 · Graham et al. · 2002 [cited by applicant]
US 20030033308A1 · Patel et al. · 2003 [cited by applicant]
US 20030145009A1 · Forman et al. · 2003 [cited by applicant]
US 20030177379A1 · Hori et al. · 2003 [cited by applicant]
US 20030182313A1 · Federwisch et al. · 2003 [cited by applicant]
US 20040030727A1 · Armangau et al. · 2004 [cited by applicant]
US 20040093474A1 · Lin et al. · 2004 [cited by applicant]
US 20040098425A1 · Wiss et al. · 2004 [cited by applicant]
US 20040153479A1 · Mikesell et al. · 2004 [cited by applicant]
US 20040255048A1 · Lev Ran et al. · 2004 [cited by applicant]
US 20050015674A1 · Haugh · 2005 [cited by applicant]
US 20050027748A1 · Kisley · 2005 [cited by applicant]
US 20050065986A1 · Bixby et al. · 2005 [cited by applicant]
US 20050091663A1 · Bagsby · 2005 [cited by applicant]
US 20050114593A1 · Cassell et al. · 2005 [cited by applicant]
US 20050114726A1 · Ouchi · 2005 [cited by applicant]
US 20050119996A1 · Ohata et al. · 2005 [cited by applicant]
US 20050154866A1 · Steely, Jr. et al. · 2005 [cited by applicant]
US 20050182992A1 · Land et al. · 2005 [cited by applicant]
US 20050187992A1 · Prahlad et al. · 2005 [cited by applicant]
US 20050195660A1 · Kavuri et al. · 2005 [cited by applicant]
US 20050223019A1 · Das et al. · 2005 [cited by applicant]
US 20060004890A1 · Semple et al. · 2006 [cited by applicant]
US 20060053139A1 · Marzinski et al. · 2006 [cited by applicant]
US 20060089982A1 · Abbott et al. · 2006 [cited by applicant]
US 20060090036A1 · Zohar et al. · 2006 [cited by applicant]
US 20060123005A1 · Burnett et al. · 2006 [cited by applicant]
US 20060173842A1 · Horvitz et al. · 2006 [cited by applicant]
US 20060271604A1 · Shoens · 2006 [cited by applicant]
US 20070005297A1 · Beresniewicz et al. · 2007 [cited by applicant]
US 20070011302A1 · Groner et al. · 2007 [cited by applicant]
US 20070027985A1 · Ramany et al. · 2007 [cited by applicant]
US 20070061783A1 · Prakash · 2007 [cited by applicant]
US 20070100855A1 · T. Kohl · 2007 [cited by applicant]
US 20070106706A1 · Ahrens et al. · 2007 [cited by applicant]
US 20070118561A1 · Idicula et al. · 2007 [cited by applicant]
US 20070143371A1 · Kottomtharayil et al. · 2007 [cited by applicant]
US 20080028006A1 · Liu et al. · 2008 [cited by applicant]
US 20080059399A1 · Delorme et al. · 2008 [cited by applicant]
US 20080059541A1 · Fachan et al. · 2008 [cited by applicant]
US 20080082593A1 · Komarov et al. · 2008 [cited by applicant]
US 20080162608A1 · Torii et al. · 2008 [cited by applicant]
US 20080172366A1 · Hannel et al. · 2008 [cited by applicant]
US 20080228772A1 · Plamondon · 2008 [cited by applicant]
US 20080250357A1 · Lee et al. · 2008 [cited by applicant]
US 20080256474A1 · Chakra et al. · 2008 [cited by applicant]
US 20080270469A1 · Myerson et al. · 2008 [cited by applicant]
US 20080270928A1 · Chakra et al. · 2008 [cited by applicant]
US 20080282244A1 · Wu et al. · 2008 [cited by applicant]
US 20080288306A1 · MacIntyre et al. · 2008 [cited by applicant]
US 20080301256A1 · McWilliams et al. · 2008 [cited by applicant]
US 20080313217A1 · Dunsmore et al. · 2008 [cited by applicant]
US 20090077087A1 · Urano et al. · 2009 [cited by applicant]
US 20090138500A1 · Yuan et al. · 2009 [cited by applicant]
US 20090199190A1 · Chen et al. · 2009 [cited by applicant]
US 20090222509A1 · King et al. · 2009 [cited by applicant]
US 20090240539A1 · Slawson et al. · 2009 [cited by applicant]
US 20090274047A1 · Kruys et al. · 2009 [cited by applicant]
US 20090319566A1 · Wald et al. · 2009 [cited by applicant]
US 20090327642A1 · Ogihara et al. · 2009 [cited by applicant]
US 20100030825A1 · Matsuzawa et al. · 2010 [cited by applicant]
US 20100036895A1 · Boyd et al. · 2010 [cited by applicant]
US 20100088317A1 · Bone et al. · 2010 [cited by applicant]
US 20100161557A1 · Anderson et al. · 2010 [cited by applicant]
US 20100179959A1 · Shoens · 2010 [cited by applicant]
US 20100217948A1 · Mason et al. · 2010 [cited by applicant]
US 20100241668A1 · Susanto et al. · 2010 [cited by applicant]
US 20100281214A1 · Jernigan, IV · 2010 [cited by applicant]
US 20100287512A1 · Gan et al. · 2010 [cited by applicant]
US 20110039622A1 · Levenson · 2011 [cited by applicant]
US 20110066668A1 · Guarraci · 2011 [cited by applicant]
US 20110082836A1 · Wang et al. · 2011 [cited by applicant]
US 20110125799A1 · Kandasamy et al. · 2011 [cited by applicant]
US 20110125973A1 · Lev et al. · 2011 [cited by applicant]
US 20110153560A1 · Bryant et al. · 2011 [cited by applicant]
US 20110161381A1 · Wang et al. · 2011 [cited by applicant]
US 20110161964A1 · Piazza et al. · 2011 [cited by applicant]
US 20110196833A1 · Drobychev et al. · 2011 [cited by applicant]
US 20110196899A1 · Hughes et al. · 2011 [cited by applicant]
US 20110202925A1 · Banerjee et al. · 2011 [cited by applicant]
US 20110246724A1 · Marathe et al. · 2011 [cited by applicant]
US 20110302357A1 · Sullivan · 2011 [cited by applicant]
US 20120036463A1 · Krakovsky et al. · 2012 [cited by applicant]
US 20120066179A1 · Saika · 2012 [cited by applicant]
US 20120096059A1 · Shimizu et al. · 2012 [cited by applicant]
US 20120116478A1 · Buhlmann et al. · 2012 [cited by applicant]
US 20120136843A1 · Bone et al. · 2012 [cited by applicant]
US 20120151438A1 · Bach et al. · 2012 [cited by applicant]
US 20120166478A1 · Das et al. · 2012 [cited by applicant]
US 20120179886A1 · Prahlad et al. · 2012 [cited by applicant]
US 20120204060A1 · Swift et al. · 2012 [cited by applicant]
US 20120216005A1 · Naito et al. · 2012 [cited by applicant]
US 20120317079A1 · Shoens et al. · 2012 [cited by applicant]
US 20130019072A1 · Strasser et al. · 2013 [cited by applicant]
US 20130024609A1 · Gorobets et al. · 2013 [cited by applicant]
US 20130031232A1 · Clymer et al. · 2013 [cited by applicant]
US 20130073819A1 · Havewala et al. · 2013 [cited by applicant]
US 20130086121A1 · Preslan · 2013 [cited by applicant]
US 20130091168A1 · Bhave et al. · 2013 [cited by applicant]
US 20130110787A1 · Garimella et al. · 2013 [cited by applicant]
US 20130145471A1 · Richard et al. · 2013 [cited by applicant]
US 20130191355A1 · Bone et al. · 2013 [cited by applicant]
US 20130212579A1 · Ben-Shaul et al. · 2013 [cited by applicant]
US 20130227236A1 · Flynn et al. · 2013 [cited by applicant]
US 20130254163A1 · Savage et al. · 2013 [cited by applicant]
US 20130268650A1 · Faitelson et al. · 2013 [cited by applicant]
US 20130275391A1 · Batwara et al. · 2013 [cited by applicant]
US 20130304903A1 · Mick et al. · 2013 [cited by applicant]
US 20130311454A1 · Ezzat · 2013 [cited by applicant]
US 20130318194A1 · Timbs · 2013 [cited by applicant]
US 20130325806A1 · Bachar et al. · 2013 [cited by applicant]
US 20130325808A1 · Bachar et al. · 2013 [cited by applicant]
US 20130339406A1 · Kanfi · 2013 [cited by applicant]
US 20140006354A1 · Parkison et al. · 2014 [cited by applicant]
US 20140040199A1 · Golab et al. · 2014 [cited by applicant]
US 20140040693A1 · Kim et al. · 2014 [cited by applicant]
US 20140059158A1 · Chen et al. · 2014 [cited by applicant]
US 20140089278A1 · Lovinger et al. · 2014 [cited by applicant]
US 20140089649A1 · Chaganti · 2014 [cited by applicant]
US 20140095249A1 · Tarakad et al. · 2014 [cited by applicant]
US 20140095505A1 · Blanchflower et al. · 2014 [cited by applicant]
US 20140095560A1 · Ikai et al. · 2014 [cited by applicant]
US 20140095582A1 · Eshel et al. · 2014 [cited by applicant]
US 20140101389A1 · Nellans et al. · 2014 [cited by applicant]
US 20140156956A1 · Ezra · 2014 [cited by applicant]
US 20140181441A1 · Kottomtharayil et al. · 2014 [cited by applicant]
US 20140189257A1 · Aritome · 2014 [cited by applicant]
US 20140189267A1 · Qi et al. · 2014 [cited by applicant]
US 20140195847A1 · Webman et al. · 2014 [cited by applicant]
US 20140237193A1 · Shivashankaraiah · 2014 [cited by applicant]
US 20140258609A1 · Cui et al. · 2014 [cited by applicant]
US 20140258657A1 · Schott et al. · 2014 [cited by applicant]
US 20140280485A1 · A Hummaida et al. · 2014 [cited by applicant]
US 20140281307A1 · Peterson et al. · 2014 [cited by applicant]
US 20140281411A1 · Abdallah · 2014 [cited by applicant]
US 20140344222A1 · Morris et al. · 2014 [cited by applicant]
US 20140358356A1 · Jones et al. · 2014 [cited by applicant]
US 20140372384A1 · Long et al. · 2014 [cited by applicant]
US 20140372607A1 · Gladwin et al. · 2014 [cited by applicant]
US 20140373032A1 · Merry et al. · 2014 [cited by applicant]
US 20150006226A1 · Smith et al. · 2015 [cited by applicant]
US 20150012656A1 · Phillips et al. · 2015 [cited by applicant]
US 20150012666A1 · Pannese et al. · 2015 [cited by applicant]
US 20150067086A1 · Adriaens et al. · 2015 [cited by applicant]
US 20150067142A1 · Renkema · 2015 [cited by applicant]
US 20150106145A1 · Hamilton et al. · 2015 [cited by applicant]
US 20150135331A1 · Das · 2015 [cited by applicant]
US 20150143026A1 · Reddy et al. · 2015 [cited by applicant]
US 20150149736A1 · Kwon et al. · 2015 [cited by applicant]
US 20150186217A1 · Eslami Sarab · 2015 [cited by applicant]
US 20150186410A1 · Petculescu et al. · 2015 [cited by applicant]
US 20150186483A1 · Tappan et al. · 2015 [cited by applicant]
US 20150186527A1 · Rao et al. · 2015 [cited by applicant]
US 20150186529A1 · Rope et al. · 2015 [cited by applicant]
US 20150193347A1 · Kluesing et al. · 2015 [cited by applicant]
US 20150215405A1 · Baek et al. · 2015 [cited by applicant]
US 20150234716A1 · Brooker et al. · 2015 [cited by applicant]
US 20150234879A1 · Baldwin et al. · 2015 [cited by applicant]
US 20150242263A1 · Klose · 2015 [cited by applicant]
US 20150248253A1 · Kim et al. · 2015 [cited by applicant]
US 20150278282A1 · Sardina et al. · 2015 [cited by applicant]
US 20150278329A1 · Hrle et al. · 2015 [cited by applicant]
US 20150310034A1 · Godman et al. · 2015 [cited by applicant]
US 20150310035A1 · Godman et al. · 2015 [cited by applicant]
US 20150310054A1 · Passey et al. · 2015 [cited by applicant]
US 20150347126A1 · Tibble et al. · 2015 [cited by applicant]
US 20160034356A1 · Aron et al. · 2016 [cited by applicant]
US 20160034481A1 · Kumarasamy et al. · 2016 [cited by applicant]
US 20160071233A1 · Macko et al. · 2016 [cited by applicant]
US 20160110105A1 · Karamcheti et al. · 2016 [cited by applicant]
US 20160139836A1 · Nallathambi et al. · 2016 [cited by applicant]
US 20160139952A1 · Geng et al. · 2016 [cited by applicant]
US 20160147654A1 · Zhao et al. · 2016 [cited by applicant]
US 20160224430A1 · Long et al. · 2016 [cited by applicant]
US 20160239185A1 · Balimidi et al. · 2016 [cited by applicant]
US 20160246816A1 · Abiri et al. · 2016 [cited by applicant]
US 20160269501A1 · Usgaonkar et al. · 2016 [cited by applicant]
US 20160292013A1 · Li et al. · 2016 [cited by applicant]
US 20160292429A1 · Manville et al. · 2016 [cited by applicant]
US 20160306810A1 · Ni et al. · 2016 [cited by applicant]
US 20160314046A1 · Kumarasamy · 2016 [cited by applicant]
US 20160335278A1 · Tabaaloute et al. · 2016 [cited by applicant]
US 20160350363A1 · Raja et al. · 2016 [cited by applicant]
US 20160357677A1 · Hooker et al. · 2016 [cited by applicant]
US 20160359859A1 · Capone · 2016 [cited by applicant]
US 20160371296A1 · Passey et al. · 2016 [cited by applicant]
US 20160371297A1 · Okun et al. · 2016 [cited by applicant]
US 20160380878A1 · Bugenhagen et al. · 2016 [cited by applicant]
US 20160380913A1 · Morgan et al. · 2016 [cited by applicant]
US 20170024152A1 · Bhagi et al. · 2017 [cited by applicant]
US 20170032006A1 · Anglin et al. · 2017 [cited by applicant]
US 20170046143A1 · Kochhar et al. · 2017 [cited by applicant]
US 20170052898A1 · Ash et al. · 2017 [cited by applicant]
US 20170078164A1 · Hildebrand et al. · 2017 [cited by applicant]
US 20170091046A1 · Bangalore et al. · 2017 [cited by applicant]
US 20170118287A1 · Beck · 2017 [cited by applicant]
US 20170123883A1 · Hall · 2017 [cited by applicant]
US 20170123935A1 · Pandit et al. · 2017 [cited by applicant]
US 20170163728A1 · Chawla et al. · 2017 [cited by applicant]
US 20170201582A1 · Zhang et al. · 2017 [cited by applicant]
US 20170206231A1 · Binder et al. · 2017 [cited by applicant]
US 20170270180A1 · State · 2017 [cited by applicant]
US 20170286455A1 · Li et al. · 2017 [cited by applicant]
US 20170316321A1 · Whitney et al. · 2017 [cited by applicant]
US 20170336983A1 · Roh et al. · 2017 [cited by applicant]
US 20170344598A1 · Constantinescu et al. · 2017 [cited by applicant]
US 20170344905A1 · Hack et al. · 2017 [cited by applicant]
US 20170366609A1 · Dieterich et al. · 2017 [cited by applicant]
US 20180040029A1 · Zeng et al. · 2018 [cited by applicant]
US 20180059946A1 · Kunii et al. · 2018 [cited by applicant]
US 20180089031A1 · Mitkar et al. · 2018 [cited by applicant]
US 20180101546A1 · Krasnow et al. · 2018 [cited by applicant]
US 20180129443A1 · Karve et al. · 2018 [cited by applicant]
US 20180165300A1 · Okun et al. · 2018 [cited by applicant]
US 20180165321A1 · Taron et al. · 2018 [cited by applicant]
US 20180176082A1 · Katz et al. · 2018 [cited by applicant]
US 20180176120A1 · Katz et al. · 2018 [cited by applicant]
US 20180181583A1 · Godman · 2018 [cited by applicant]
US 20180203798A1 · Hughes et al. · 2018 [cited by applicant]
US 20180232386A1 · Brow et al. · 2018 [cited by applicant]
US 20180276078A1 · Blea et al. · 2018 [cited by applicant]
US 20180288057A1 · Varadamma et al. · 2018 [cited by applicant]
US 20180307579A1 · Rothchilds et al. · 2018 [cited by applicant]
US 20180314423A1 · Gong et al. · 2018 [cited by applicant]
Cited By (8)
US 12,443,559 US 12,443,568 US 12,481,625 US 12,585,563 US 12,619,582 US 12,670,081 US 12,743,357 US 12,748,730