IP Library › Granted Patent US 12,346,290
Granted Patent B2
US 12,346,290 · App. 17/864,190 · Granted Jul 1, 2025

Workload allocation for file system maintenance

Inventors: Steven Henry Haber (Seattle, WA); Noah Trent Nelson (Seattle, WA); Thomas Scott Urban (Seattle, WA)
Assignee: Qumulo, Inc.
G06F16/128G06F11/1451G06F16/162G06F2201/84
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,346,290
App. No.
17/864,190
Filed
Jul 13, 2022
Granted
Jul 1, 2025
Kind
B2
Examiner
WU, TONY
Art Unit
2166
USPC
707/649
Abstract

Embodiments are directed to workload allocation for file system maintenance. A file system that includes storage nodes and snapshots may be provided such that each snapshot may be associated with a plurality of data blocks. If snapshots are deleted further actions may be performed, including: determining the dead blocks associated with the deleted snapshots such that each dead block may be a data block that may be unassociated with undeleted snapshots; adding the plurality of dead blocks to dead trees located on the storage nodes; determining an urgency score based on a workload model and file system metrics; determining delete tasks based on the urgency score; determining a portion of the storage nodes based on a number of delete tasks; and executing the delete tasks on the portion storage nodes to delete the dead blocks to return storage capacity to the file system.

Claims (128)

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

providing the file system that includes one or more storage nodes and a plurality of snapshots, wherein each snapshot is associated with a plurality of data blocks; and

in response to deleting one or more snapshots of the plurality of snapshots, performing further actions, including:

determining a plurality of dead blocks associated with the one or more deleted snapshots, wherein each dead block is a data block that is unassociated with one or more undeleted snapshots;

adding the plurality of dead blocks to a plurality of dead trees located on a randomly determined selection of the one or more storage nodes;

determining an urgency score based on a workload model that includes one or more individual workload sub-models for each of one or more file system metrics and one or more other metrics, wherein an overall urgency score is determined based on a highest urgency score determined by an individual workload sub-model for a plurality of delete tasks, and wherein the one or more other metrics are based on configuration information for a current state of the file system and include one or more of a network utilization, a cloud computing cost structure, a hardware capability, an ongoing rebalancing operation, or a rate of transactions;

determining initiation of the plurality of delete tasks for the one or more storage nodes based on the overall urgency score;

determining a portion of the storage nodes sequentially based on a total number of delete tasks that are initiated for each storage node in the portion, wherein a sequential order of the portion of the storage nodes is determined by an amount of the total number of initiated delete tasks that correspond to each storage node in the portion and configuration information for one or more of local requirements or local circumstances; and

executing each corresponding amount of initiated delete tasks concurrently on the portion of storage nodes to perform further actions including:

determining one or more dead blocks on the portion of storage nodes that are associated with the one or more deleted snapshots; and

deleting the one or more determined dead blocks on the portion of storage nodes and the one or more dead blocks added to the one or more dead trees on the one or more randomly determined storage nodes, wherein a storage capacity associated with the one or more deleted snapshots is returned to the file system.

2. The method of claim 1 , wherein determining the one or more file system metrics, further comprises, determining one or more of a count of the plurality of snapshots or an amount of available storage capacity in the file system.

3. The method of claim 1 , wherein determining the one or more dead blocks on the portion of storage nodes, further comprises:

determining one or more dead trees on the one or more storage nodes, wherein each dead tree includes a plurality of dead blocks associated with a plurality of deleted snapshots; and

traversing the one or more determined dead trees to identify the one or more dead blocks associated with the one or more deleted snapshots.

4. The method of claim 1 , further comprising:

in response to a completion of the execution of each corresponding amount of initiated delete tasks, performing further actions, including:

determining a remainder portion of the one or more storage nodes, wherein the execution of the corresponding amounts of initiated delete tasks excluded the remainder portion of storage nodes; and

further executing other corresponding amounts of other initiated delete tasks on the remainder portion of storage nodes.

5. The method of claim 1 , wherein deleting the one or more determined dead blocks, further comprises:

determining a portion of the one or more determined dead blocks that correspond to a storage capacity of a storage node in the file system based on the portion of the one or more determined dead blocks; and

providing a delete message to the storage node, wherein the storage node deletes the portion of the one or more determined dead blocks.

6. The method of claim 1 , wherein deleting the one or more snapshots of the plurality of snapshots, further comprises:

adding the one or more deleted snapshots to a deleted snapshot queue; and

in response to deleting each dead block associated with the one or more deleted snapshots, removing the one or more deleted snapshots from the deleted snapshot queue.

7. The method of claim 1 , wherein adding the plurality of dead blocks to the plurality of dead trees, further comprises:

determining one or more portions of the plurality of dead blocks;

randomly determining a storage node in the file system;

determining a dead tree stored on the randomly determined storage node; and

adding the portion of dead blocks to the determined dead tree.

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:

providing the file system that includes one or more storage nodes and a plurality of snapshots, wherein each snapshot is associated with a plurality of data blocks; and

in response to deleting one or more snapshots of the plurality of snapshots, performing further actions, including:

determining a plurality of dead blocks associated with the one or more deleted snapshots, wherein each dead block is a data block that is unassociated with one or more undeleted snapshots;

adding the plurality of dead blocks to a plurality of dead trees located on a randomly determined selection of the one or more storage nodes;

determining an urgency score based on a workload model that includes one or more individual workload sub-models for each of one or more file system metrics and one or more other metrics, wherein an overall urgency score is determined based on a highest urgency score determined by an individual workload sub-model for a plurality of delete tasks, and wherein the one or more other metrics are based on configuration information for a current state of the file system and include one or more of a network utilization, a cloud computing cost structure, a hardware capability, an ongoing rebalancing operation, or a rate of transactions;

determining initiation of the plurality of delete tasks for the one or more storage nodes based on the overall urgency score;

determining a portion of the storage nodes sequentially based on a total number of delete tasks that are initiated for each storage node in the portion, wherein a sequential order of the portion of the storage nodes is determined by an amount of the total number of initiated delete tasks that correspond to each storage node in the portion and configuration information for one or more of local requirements or local circumstances; and

executing each corresponding amount of initiated delete tasks concurrently on the portion of storage nodes to perform further actions including:

 determining one or more dead blocks on the portion of storage nodes that are associated with the one or more deleted snapshots;

 deleting the one or more determined dead blocks on the portion of storage nodes and the one or more dead blocks added to the one or more dead trees on the one or more randomly determined storage nodes, wherein a storage capacity associated with the one or more deleted snapshots is returned to the file system; and

a client 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, providing one or more requests to delete the one or more snapshots.

9. The system of claim 8 , wherein determining the one or more file system metrics, further comprises, determining one or more of a count of the plurality of snapshots or an amount of available storage capacity in the file system.

10. The system of claim 8 , wherein determining the one or more dead blocks on the portion of storage nodes, further comprises:

determining one or more dead trees on the one or more storage nodes, wherein each dead tree includes a plurality of dead blocks associated with a plurality of deleted snapshots; and

traversing the one or more determined dead trees to identify the one or more dead blocks associated with the one or more deleted snapshots.

11. The system of claim 8 , wherein the one or more network computer processors execute instructions that perform actions, further comprising:

in response to a completion of the execution of each corresponding amount of initiated delete tasks, performing further actions, including:

determining a remainder portion of the one or more storage nodes, wherein the execution of the corresponding amounts of initiated delete tasks excluded the remainder portion of storage nodes; and

further executing other corresponding amounts of other initiated delete tasks on the remainder portion of storage nodes.

12. The system of claim 8 , wherein deleting the one or more determined dead blocks, further comprises:

determining a portion of the one or more determined dead blocks that correspond to a storage capacity of a storage node in the file system based on the portion of the one or more determined dead blocks; and

providing a delete message to the storage node, wherein the storage node deletes the portion of the one or more determined dead blocks.

13. The system of claim 8 , wherein deleting the one or more snapshots of the plurality of snapshots, further comprises:

adding the one or more deleted snapshots to a deleted snapshot queue; and

in response to deleting each dead block associated with the one or more deleted snapshots, removing the one or more deleted snapshots from the deleted snapshot queue.

14. The system of claim 8 , wherein adding the plurality of dead blocks to the plurality of dead trees, further comprises:

determining one or more portions of the plurality of dead blocks;

randomly determining a storage node in the file system;

determining a dead tree stored on the randomly determined storage node; and

adding the portion of dead blocks to the determined dead tree.

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, are configured to cause performance of actions, comprising:

providing the file system that includes one or more storage nodes and a plurality of snapshots, wherein each snapshot is associated with a plurality of data blocks; and

in response to deleting one or more snapshots of the plurality of snapshots, performing further actions, including:

determining a plurality of dead blocks associated with the one or more deleted snapshots, wherein each dead block is a data block that is unassociated with one or more undeleted snapshots;

adding the plurality of dead blocks to a plurality of dead trees located on a randomly determined selection of the one or more storage nodes;

determining an urgency score based on a workload model that includes one or more individual workload sub-models for each of one or more file system metrics and one or more other metrics, wherein an overall urgency score is determined based on a highest urgency score determined by an individual workload sub-model for a plurality of delete tasks, and wherein the one or more other metrics are based on configuration information for a current state of the file system and include one or more of a network utilization, a cloud computing cost structure, a hardware capability, an ongoing rebalancing operation, or a rate of transactions;

determining initiation of the plurality of delete tasks for the one or more storage nodes based on the overall urgency score;

determining a portion of the storage nodes sequentially based on a total number of delete tasks that are initiated for each storage node in the portion, wherein a sequential order of the portion of the storage nodes is determined by an amount of the total number of initiated delete tasks that correspond to each storage node in the portion and configuration information for one or more of local requirements or local circumstances; and

executing each corresponding amount of initiated delete tasks concurrently on the portion of storage nodes to perform further actions including:

determining one or more dead blocks on the portion of storage nodes that are associated with the one or more deleted snapshots; and

deleting the one or more determined dead blocks on the portion of storage nodes and the one or more dead blocks added to the one or more dead trees on the one or more randomly determined storage nodes, wherein a storage capacity associated with the one or more deleted snapshots is returned to the file system.

16. The media of claim 15 , wherein determining the one or more file system metrics, further comprises, determining one or more of a count of the plurality of snapshots or an amount of available storage capacity in the file system.

17. The media of claim 15 , wherein determining the one or more dead blocks on the portion of storage nodes, further comprises:

determining one or more dead trees on the one or more storage nodes, wherein each dead tree includes a plurality of dead blocks associated with a plurality of deleted snapshots; and

traversing the one or more determined dead trees to identify the one or more dead blocks associated with the one or more deleted snapshots.

18. The media of claim 15 , further comprising:

in response to a completion of the execution of each corresponding amount of initiated delete tasks, performing further actions, including:

determining a remainder portion of the one or more storage nodes, wherein the execution of the corresponding amounts of initiated delete tasks excluded the remainder portion of storage nodes; and

further executing other corresponding amounts of other initiated delete tasks on the remainder portion of storage nodes.

19. The media of claim 15 , wherein deleting the one or more determined dead blocks, further comprises:

determining a portion of the one or more determined dead blocks that correspond to a storage capacity of a storage node in the file system based on the portion of the one or more determined dead blocks; and

providing a delete message to the storage node, wherein the storage node deletes the portion of the one or more determined dead blocks.

20. The media of claim 15 , wherein deleting the one or more snapshots of the plurality of snapshots, further comprises:

adding the one or more deleted snapshots to a deleted snapshot queue; and

in response to deleting each dead block associated with the one or more deleted snapshots, removing the one or more deleted snapshots from the deleted snapshot queue.

21. The media of claim 15 , wherein adding the plurality of dead blocks to the plurality of dead trees, further comprises:

determining one or more portions of the plurality of dead blocks;

randomly determining a storage node in the file system;

determining a dead tree stored on the randomly determined storage node; and

adding the portion of dead blocks to the determined dead tree.

22. 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:

providing the file system that includes one or more storage nodes and a plurality of snapshots, wherein each snapshot is associated with a plurality of data blocks; and

in response to deleting one or more snapshots of the plurality of snapshots, performing further actions, including:

determining a plurality of dead blocks associated with the one or more deleted snapshots, wherein each dead block is a data block that is unassociated with one or more undeleted snapshots;

adding the plurality of dead blocks to a plurality of dead trees located on a randomly determined selection of the one or more storage nodes;

determining an urgency score based on a workload model that includes one or more individual workload sub-models for each of one or more file system metrics and one or more other metrics, wherein an overall urgency score is determined based on a highest urgency score determined by an individual workload sub-model for a plurality of delete tasks, and wherein the one or more other metrics are based on configuration information for a current state of the file system and include one or more of a network utilization, a cloud computing cost structure, a hardware capability, an ongoing rebalancing operation, or a rate of transactions;

determining initiation of the plurality of delete tasks for the one or more storage nodes based on the overall urgency score;

determining a portion of the storage nodes sequentially based on a total number of delete tasks that are initiated for each storage node in the portion, wherein a sequential order of the portion of the storage nodes is determined by an amount of the total number of initiated delete tasks that correspond to each storage node in the portion and configuration information for one or more of local requirements or local circumstances; and

executing each corresponding amount of initiated delete tasks concurrently on the portion of storage nodes to perform further actions including:

determining one or more dead blocks on the portion of storage nodes that are associated with the one or more deleted snapshots; and

deleting the one or more determined dead blocks on the portion of storage nodes and the one or more dead blocks added to the one or more dead trees on the one or more randomly determined storage nodes, wherein a storage capacity associated with the one or more deleted snapshots is returned to the file system.

23. The network computer of claim 22 , wherein determining the one or more file system metrics, further comprises, determining one or more of a count of the plurality of snapshots or an amount of available storage capacity in the file system.

24. The network computer of claim 22 , wherein determining the one or more dead blocks on the portion of storage nodes, further comprises:

determining one or more dead trees on the one or more storage nodes, wherein each dead tree includes a plurality of dead blocks associated with a plurality of deleted snapshots; and

traversing the one or more determined dead trees to identify the one or more dead blocks associated with the one or more deleted snapshots.

25. The network computer of claim 22 , wherein the one or more processors execute instructions that perform actions, further comprising:

in response to a completion of the execution of each corresponding amount of initiated delete tasks, performing further actions, including:

determining a remainder portion of the one or more storage nodes, wherein the execution of the corresponding amounts of initiated delete tasks excluded the remainder portion of storage nodes; and

further executing other corresponding amounts of other initiated delete tasks on the remainder portion of storage nodes.

26. The network computer of claim 22 , wherein deleting the one or more determined dead blocks, further comprises:

determining a portion of the one or more determined dead blocks that correspond to a storage capacity of a storage node in the file system based on the portion of the one or more determined dead blocks; and

providing a delete message to the storage node, wherein the storage node deletes the portion of the one or more determined dead blocks.

27. The network computer of claim 22 , wherein deleting the one or more snapshots of the plurality of snapshots, further comprises:

adding the one or more deleted snapshots to a deleted snapshot queue; and

in response to deleting each dead block associated with the one or more deleted snapshots, removing the one or more deleted snapshots from the deleted snapshot queue.

28. The network computer of claim 22 , wherein adding the plurality of dead blocks to the plurality of dead trees, further comprises:

determining one or more portions of the plurality of dead blocks;

randomly determining a storage node in the file system;

determining a dead tree stored on the randomly determined storage node; and

adding the portion of dead blocks to the determined dead tree.

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 Jul 13, 2022
From: HABER, STEVEN HENRY; NELSON, NOAH TRENT; URBAN, THOMAS SCOTT
To: QUMULO, INC.
Reel/Frame 060499/0698 →
Continuity (1)
Related Publication 20240020268A1 · Jan 18, 2024
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 · 2010 [cited by examiner]
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 · Iyer 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 · 2019 [cited by examiner]
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 · 2007 [cited by examiner]
US 20070118561A1 · Idicula et al. · 2007 [cited by applicant]
US 20070143371A1 · Kottomtharayil · 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 · 2013 [cited by examiner]
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 · Parkinson 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 · 2014 [cited by examiner]
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 (5)
US 12,585,563 US 12,619,582 US 12,670,081 US 12,743,357 US 12,748,730