IP Library Granted Patent US 12,204,413
Granted Patent B2
US 12,204,413 · App. 17/900,596 · Granted Jan 21, 2025

Snapshot commitment in a distributed system

Inventors: Ronald Karr (Palo Alto, CA); Robert Lee (San Carlos, CA); Igor Ostrovsky (Mountain View, CA)
Assignee: PURE STORAGE, INC.
G06F11/1451G06F3/0619G06F3/065G06F3/067G06F11/1435G06F11/1464G06F2201/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,204,413
App. No.
17/900,596
Granted
Jan 21, 2025
Kind
B2
Abstract

A method for snapshots with crash consistency is provided. The method includes indicating intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to confirmation that all of a plurality of distributed agents are in a snapshot creation mode. The method includes responding, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of distributed agents regarding one or more I/O operations, after the indicating the intent to create the snapshot. The method includes creating the snapshot using the existing snapshot copy identifier and committing the snapshot, responsive to receiving responses from the plurality of distributed agents that service is complete for all I/O operations that started before the indicating the intent to create the snapshot or that are associated with the existing snapshot copy identifier.

Claims (51)

1. A method, comprising:

recording, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, an intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot;

switching to a new snapshot copy identifier;

receiving, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot;

responding to the corresponding requests with the new snapshot copy identifier; and

committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.

2. The method of claim 1 , wherein the one or more storage nodes have the distributed agents distributed among the one or more storage nodes.

3. The method of claim 1 , wherein the recording of the intent to create the snapshot is in response to receiving a remote procedure call.

4. The method of claim 1 , further comprising:

communicating to each of the distributed agents that the storage system is entering the snapshot creation mode.

5. The method of claim 1 , further comprising:

directing each of the distributed agents to complete service, using the existing snapshot copy identifier, to all of the I/O operations that started before recording the intent to create the snapshot.

6. The method of claim 1 , further comprising:

directing each of the distributed agents to complete service, using the existing snapshot copy identifier, to pending I/O operations, responsive to starting up and finding the recorded intent to create the snapshot.

7. The method of claim 6 , further comprising:

resuming creation of the snapshot, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.

8. A non-transitory computer-readable storage medium having instructions thereupon which, when executed by a processor, cause the processor to:

record, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot;

switch to a new snapshot copy identifier;

receive, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot;

respond to the corresponding requests with the new snapshot copy identifier; and

commit the snapshot and exiting a snapshot creation mode, responsive to receiving, by the coordinating agent, confirmation from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the processor is further to:

communicate to the distributed agents that the snapshot is visible, wherein each of the distributed agents recognizes the snapshot and grants read-only access to the snapshot.

10. The non-transitory computer-readable storage medium of claim 8 , wherein to record the intent to create the snapshot the processor is further to:

write metadata into a data structure stored in the memory of the one or more storage nodes, the metadata indicating the intent to create the snapshot.

11. The non-transitory computer-readable storage medium of claim 8 , wherein to record the intent to create the snapshot, the processor is further to:

receive a remote procedure call, wherein recording the intent to create the snapshot is in response to receiving the remote procedure call.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the processor is further to:

communicate an error response that indicates no snapshot creation is in progress, responsive to starting up and finding one or more of the distributed agents is in the snapshot creation mode but finding no record of the intent to create the snapshot, as a failover before precommitment of the snapshot.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the processor is further to:

direct each of the distributed agents to complete service, using the existing snapshot copy identifier, to pending I/O operations, responsive to starting up and finding the recorded intent to create the snapshot; and

resume creation of the snapshot, responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations, as a failover after precommitment of the snapshot.

14. A storage system, comprising:

a memory; and

a processor, operatively coupled to the memory, configured to:

record, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot;

switch to a new snapshot copy identifier;

receive, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot;

respond to the corresponding requests with the new snapshot copy identifier; and

commit the snapshot and exiting a snapshot creation mode, responsive to receiving, by the coordinating agent, confirmation from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.

15. The storage system of claim 14 , wherein the processor is further configured to:

communicate to the distributed agents that the snapshot is visible, wherein each of the distributed agents recognizes the snapshot and grants read-only access to the snapshot.

16. The storage system of claim 14 , to record the intent to create the snapshot the processor is further configured to:

write metadata into a data structure stored in the memory of the one or more storage nodes, the metadata indicating the intent to create the snapshot.

17. The storage system of claim 14 , wherein the recording of the intent to create the snapshot is in response to receiving a remote procedure call.

18. The storage system of claim 14 , wherein the processor is further configured to:

communicate an error response that indicates no snapshot creation is in progress, responsive to starting up and finding one or more of the distributed agents is in the snapshot create mode but finding no record of the intent to create the snapshot, as a failover before precommitment of the snapshot.

19. The storage system of claim 14 , wherein the processor is further configured to:

direct each of the distributed agents to complete service, using the existing snapshot copy identifier, to pending I/O operations, responsive to starting up and finding the recorded intent to create the snapshot; and

resume creation of the snapshot, responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations, as a failover after precommitment of the snapshot.

Continuity (3)
Continuation 15644391 · Jul 7, 2017
Provisional Application 62516597 · Jun 7, 2017
Related Publication 20230004464A1 · Jan 5, 2023
References Cited (400)
US 5390327A · Lubbers et al. · 1995 [cited by applicant]
US 5450581A · Bergen et al. · 1995 [cited by applicant]
US 5479653A · Jones · 1995 [cited by applicant]
US 5488731A · Mendelsohn · 1996 [cited by applicant]
US 5504858A · Ellis et al. · 1996 [cited by applicant]
US 5564113A · Bergen et al. · 1996 [cited by applicant]
US 5574882A · Menon et al. · 1996 [cited by applicant]
US 5649093A · Hanko et al. · 1997 [cited by applicant]
US 5883909A · Dekoning et al. · 1999 [cited by applicant]
US 6000010A · Legg · 1999 [cited by applicant]
US 6260156B1 · Garvin et al. · 2001 [cited by applicant]
US 6269453B1 · Krantz · 2001 [cited by applicant]
US 6275898B1 · DeKoning · 2001 [cited by applicant]
US 6453428B1 · Stephenson · 2002 [cited by applicant]
US 6523087B2 · Busser · 2003 [cited by applicant]
US 6535417B2 · Tsuda · 2003 [cited by applicant]
US 6643748B1 · Wieland · 2003 [cited by applicant]
US 6725392B1 · Frey et al. · 2004 [cited by applicant]
US 6763455B2 · Hall · 2004 [cited by applicant]
US 6836816B2 · Kendall · 2004 [cited by applicant]
US 6985995B2 · Holland et al. · 2006 [cited by applicant]
US 7032125B2 · Holt et al. · 2006 [cited by applicant]
US 7047358B2 · Lee et al. · 2006 [cited by applicant]
US 7051155B2 · Talagala et al. · 2006 [cited by applicant]
US 7055058B2 · Lee et al. · 2006 [cited by applicant]
US 7065617B2 · Wang · 2006 [cited by applicant]
US 7069383B2 · Yamamoto et al. · 2006 [cited by applicant]
US 7076606B2 · Orsley · 2006 [cited by applicant]
US 7107480B1 · Moshayedi et al. · 2006 [cited by applicant]
US 7159150B2 · Kenchammana-Hosekote et al. · 2007 [cited by applicant]
US 7162575B2 · Dalal et al. · 2007 [cited by applicant]
US 7164608B2 · Lee · 2007 [cited by applicant]
US 7188270B1 · Nanda et al. · 2007 [cited by applicant]
US 7334156B2 · Land et al. · 2008 [cited by applicant]
US 7370220B1 · Nguyen et al. · 2008 [cited by applicant]
US 7386666B1 · Beauchamp et al. · 2008 [cited by applicant]
US 7398285B2 · Kisley · 2008 [cited by applicant]
US 7424498B1 · Patterson · 2008 [cited by applicant]
US 7424592B1 · Karr · 2008 [cited by applicant]
US 7444532B2 · Masuyama et al. · 2008 [cited by applicant]
US 7480658B2 · Heinla et al. · 2009 [cited by applicant]
US 7484056B2 · Madnani et al. · 2009 [cited by applicant]
US 7484057B1 · Madnani et al. · 2009 [cited by applicant]
US 7484059B1 · Ofer et al. · 2009 [cited by applicant]
US 7536506B2 · Ashmore et al. · 2009 [cited by applicant]
US 7558859B2 · Kasiolas · 2009 [cited by applicant]
US 7565446B2 · Talagala et al. · 2009 [cited by applicant]
US 7613947B1 · Coatney · 2009 [cited by applicant]
US 7634617B2 · Misra · 2009 [cited by applicant]
US 7634618B2 · Misra · 2009 [cited by applicant]
US 7681104B1 · Sim-Tang et al. · 2010 [cited by applicant]
US 7681105B1 · Sim-Tang et al. · 2010 [cited by applicant]
US 7681109B2 · Yang et al. · 2010 [cited by applicant]
US 7730257B2 · Franklin · 2010 [cited by applicant]
US 7730258B1 · Smith · 2010 [cited by applicant]
US 7730274B1 · Usgaonkar · 2010 [cited by applicant]
US 7743276B2 · Jacobsen et al. · 2010 [cited by applicant]
US 7752489B2 · Deenadhayalan et al. · 2010 [cited by applicant]
US 7757038B2 · Kitahara · 2010 [cited by applicant]
US 7757059B1 · Ofer et al. · 2010 [cited by applicant]
US 7778960B1 · Chatterjee et al. · 2010 [cited by applicant]
US 7783955B2 · At. · 2010 [cited by applicant]
US 7814272B2 · Barrall et al. · 2010 [cited by applicant]
US 7814273B2 · Barrall · 2010 [cited by applicant]
US 7818531B2 · Barrall · 2010 [cited by applicant]
US 7827351B2 · Suetsugu et al. · 2010 [cited by applicant]
US 7827439B2 · Matthew et al. · 2010 [cited by applicant]
US 7831768B2 · Ananthamurthy et al. · 2010 [cited by applicant]
US 7856583B1 · Smith · 2010 [cited by applicant]
US 7870105B2 · Arakawa et al. · 2011 [cited by applicant]
US 7873878B2 · Belluomini et al. · 2011 [cited by applicant]
US 7885938B1 · Greene et al. · 2011 [cited by applicant]
US 7886111B2 · Klemm et al. · 2011 [cited by applicant]
US 7908448B1 · Chatterjee et al. · 2011 [cited by applicant]
US 7916538B2 · Jeon et al. · 2011 [cited by applicant]
US 7921268B2 · Jakob · 2011 [cited by applicant]
US 7930499B2 · Duchesne · 2011 [cited by applicant]
US 7941697B2 · Mathew et al. · 2011 [cited by applicant]
US 7958303B2 · Shuster · 2011 [cited by applicant]
US 7971129B2 · Watson · 2011 [cited by applicant]
US 7984016B2 · Kisley · 2011 [cited by applicant]
US 7991822B2 · Bish et al. · 2011 [cited by applicant]
US 8006126B2 · Deenadhayalan et al. · 2011 [cited by applicant]
US 8010485B1 · Chatterjee et al. · 2011 [cited by applicant]
US 8010829B1 · Chatterjee et al. · 2011 [cited by applicant]
US 8020047B2 · Courtney · 2011 [cited by applicant]
US 8046548B1 · Chatterjee et al. · 2011 [cited by applicant]
US 8051361B2 · Sim-Tang et al. · 2011 [cited by applicant]
US 8051362B2 · Li et al. · 2011 [cited by applicant]
US 8074038B2 · Lionetti et al. · 2011 [cited by applicant]
US 8082393B2 · Galloway et al. · 2011 [cited by applicant]
US 8086603B2 · Nasre et al. · 2011 [cited by applicant]
US 8086634B2 · Mimatsu · 2011 [cited by applicant]
US 8086911B1 · Taylor · 2011 [cited by applicant]
US 8090837B2 · Shin et al. · 2012 [cited by applicant]
US 8108502B2 · Tabbara et al. · 2012 [cited by applicant]
US 8117388B2 · Jernigan, IV · 2012 [cited by applicant]
US 8117521B2 · Yang et al. · 2012 [cited by applicant]
US 8140821B1 · Raizen et al. · 2012 [cited by applicant]
US 8145838B1 · Miller et al. · 2012 [cited by applicant]
US 8145840B2 · Koul et al. · 2012 [cited by applicant]
US 8175012B2 · At. · 2012 [cited by applicant]
US 8176360B2 · Frost et al. · 2012 [cited by applicant]
US 8176405B2 · Hafner et al. · 2012 [cited by applicant]
US 8180855B2 · Aiello et al. · 2012 [cited by applicant]
US 8200922B2 · McKean et al. · 2012 [cited by applicant]
US 8209469B2 · Carpenter et al. · 2012 [cited by applicant]
US 8225006B1 · Karamcheti · 2012 [cited by applicant]
US 8239618B2 · Kotzur et al. · 2012 [cited by applicant]
US 8244999B1 · Chatterjee et al. · 2012 [cited by applicant]
US 8261016B1 · Goel · 2012 [cited by applicant]
US 8271455B2 · Kesselman · 2012 [cited by applicant]
US 8285686B2 · Kesselman · 2012 [cited by applicant]
US 8305811B2 · Jeon · 2012 [cited by applicant]
US 8315999B2 · Chatley et al. · 2012 [cited by applicant]
US 8327080B1 · Der · 2012 [cited by applicant]
US 8335769B2 · Kesselman · 2012 [cited by applicant]
US 8341118B2 · Drobychev et al. · 2012 [cited by applicant]
US 8351290B1 · Huang et al. · 2013 [cited by applicant]
US 8364920B1 · Parkison et al. · 2013 [cited by applicant]
US 8365041B2 · Chu et al. · 2013 [cited by applicant]
US 8375146B2 · Sinclair · 2013 [cited by applicant]
US 8397016B2 · Talagala et al. · 2013 [cited by applicant]
US 8402152B2 · Duran · 2013 [cited by applicant]
US 8412880B2 · Leibowitz et al. · 2013 [cited by applicant]
US 8423739B2 · Ash et al. · 2013 [cited by applicant]
US 8429436B2 · Filingim et al. · 2013 [cited by applicant]
US 8452928B1 · Ofer et al. · 2013 [cited by applicant]
US 8473698B2 · Lionetti et al. · 2013 [cited by applicant]
US 8473778B2 · Simitci · 2013 [cited by applicant]
US 8473815B2 · Yu et al. · 2013 [cited by applicant]
US 8479037B1 · Chatterjee et al. · 2013 [cited by applicant]
US 8484414B2 · Sugimoto et al. · 2013 [cited by applicant]
US 8498967B1 · Chatterjee et al. · 2013 [cited by applicant]
US 8522073B2 · Cohen · 2013 [cited by applicant]
US 8533408B1 · Madnani et al. · 2013 [cited by applicant]
US 8533527B2 · Daikokuya et al. · 2013 [cited by applicant]
US 8539177B1 · Ofer et al. · 2013 [cited by applicant]
US 8544029B2 · Bakke et al. · 2013 [cited by applicant]
US 8549224B1 · Zeryck et al. · 2013 [cited by applicant]
US 8583861B1 · Ofer et al. · 2013 [cited by applicant]
US 8589625B2 · Colgrove et al. · 2013 [cited by applicant]
US 8595455B2 · Chatterjee et al. · 2013 [cited by applicant]
US 8615599B1 · Takefman et al. · 2013 [cited by applicant]
US 8627136B2 · Shankar et al. · 2014 [cited by applicant]
US 8627138B1 · Clark · 2014 [cited by applicant]
US 8639669B1 · Douglis et al. · 2014 [cited by applicant]
US 8639863B1 · Kanapathippillai et al. · 2014 [cited by applicant]
US 8640000B1 · Cypher · 2014 [cited by applicant]
US 8650343B1 · Kanapathippillai et al. · 2014 [cited by applicant]
US 8660131B2 · Vermunt et al. · 2014 [cited by applicant]
US 8661218B1 · Piszczek et al. · 2014 [cited by applicant]
US 8671072B1 · Shah et al. · 2014 [cited by applicant]
US 8689042B1 · Kanapathippillai et al. · 2014 [cited by applicant]
US 8700875B1 · Barron et al. · 2014 [cited by applicant]
US 8706694B2 · Chatterjee et al. · 2014 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8706932B1 · Kanapathippillai et al. · 2014 [cited by applicant]
US 8712963B1 · Douglis et al. · 2014 [cited by applicant]
US 8713405B2 · Healey et al. · 2014 [cited by applicant]
US 8719621B1 · Karmarkar · 2014 [cited by applicant]
US 8725730B2 · Keeton et al. · 2014 [cited by applicant]
US 8751859B2 · Becker-Szendy et al. · 2014 [cited by applicant]
US 8756387B2 · Frost et al. · 2014 [cited by applicant]
US 8762793B2 · Grube et al. · 2014 [cited by applicant]
US 8838541B2 · Camble et al. · 2014 [cited by applicant]
US 8769232B2 · Suryabudi et al. · 2014 [cited by applicant]
US 8775858B2 · Gower et al. · 2014 [cited by applicant]
US 8775868B2 · Colgrove et al. · 2014 [cited by applicant]
US 8788913B1 · Xin et al. · 2014 [cited by applicant]
US 8793447B2 · Usgaonkar et al. · 2014 [cited by applicant]
US 8799746B2 · Baker et al. · 2014 [cited by applicant]
US 8819311B2 · Liao · 2014 [cited by applicant]
US 8819383B1 · Jobanputra et al. · 2014 [cited by applicant]
US 8824261B1 · Miller et al. · 2014 [cited by applicant]
US 8832528B2 · Thatcher et al. · 2014 [cited by applicant]
US 8838892B2 · Li · 2014 [cited by applicant]
US 8843700B1 · Salessi et al. · 2014 [cited by applicant]
US 8850108B1 · Hayes et al. · 2014 [cited by applicant]
US 8850288B1 · Lazier et al. · 2014 [cited by applicant]
US 8856593B2 · Eckhardt et al. · 2014 [cited by applicant]
US 8856619B1 · Cypher · 2014 [cited by applicant]
US 8862617B2 · Kesselman · 2014 [cited by applicant]
US 8862847B2 · Feng et al. · 2014 [cited by applicant]
US 8862928B2 · Xavier et al. · 2014 [cited by applicant]
US 8868825B1 · Hayes · 2014 [cited by applicant]
US 8874836B1 · Hayes · 2014 [cited by applicant]
US 8880793B2 · Nagineni · 2014 [cited by applicant]
US 8880825B2 · Lionetti et al. · 2014 [cited by applicant]
US 8886778B2 · Nedved et al. · 2014 [cited by applicant]
US 8898383B2 · Yamamoto et al. · 2014 [cited by applicant]
US 8898388B1 · Kimmel · 2014 [cited by applicant]
US 8904231B2 · Coatney et al. · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 8930307B2 · Colgrove et al. · 2015 [cited by applicant]
US 8930633B2 · Amit et al. · 2015 [cited by applicant]
US 8943357B2 · Atzmony · 2015 [cited by applicant]
US 8949502B2 · McKnight et al. · 2015 [cited by applicant]
US 8959110B2 · Smith et al. · 2015 [cited by applicant]
US 8959388B1 · Kuang et al. · 2015 [cited by applicant]
US 8972478B1 · Storer et al. · 2015 [cited by applicant]
US 8972779B2 · Lee et al. · 2015 [cited by applicant]
US 8977597B2 · Ganesh et al. · 2015 [cited by applicant]
US 8996828B2 · Kalos et al. · 2015 [cited by applicant]
US 9003144B1 · Hayes et al. · 2015 [cited by applicant]
US 9009724B2 · Gold et al. · 2015 [cited by applicant]
US 9021053B2 · Bernbo et al. · 2015 [cited by applicant]
US 9021215B2 · Meir et al. · 2015 [cited by applicant]
US 9025393B2 · Wu · 2015 [cited by applicant]
US 9043372B2 · Makkar et al. · 2015 [cited by applicant]
US 9047214B1 · Sharon et al. · 2015 [cited by applicant]
US 9053808B2 · Sprouse · 2015 [cited by applicant]
US 9058155B2 · Cepulis et al. · 2015 [cited by applicant]
US 9063895B1 · Madnani et al. · 2015 [cited by applicant]
US 9063896B1 · Madnani et al. · 2015 [cited by applicant]
US 9098211B1 · Madnani et al. · 2015 [cited by applicant]
US 9110898B1 · Chamness et al. · 2015 [cited by applicant]
US 9110964B1 · Shilane et al. · 2015 [cited by applicant]
US 9116819B2 · Cope et al. · 2015 [cited by applicant]
US 9117536B2 · Yoon · 2015 [cited by applicant]
US 9122401B2 · Zaltsman et al. · 2015 [cited by applicant]
US 9123422B2 · Sharon et al. · 2015 [cited by applicant]
US 9124300B2 · Olbrich et al. · 2015 [cited by applicant]
US 9134908B2 · Horn et al. · 2015 [cited by applicant]
US 9153337B2 · Sutardja · 2015 [cited by applicant]
US 9158472B2 · Kesselman et al. · 2015 [cited by applicant]
US 9159422B1 · Lee et al. · 2015 [cited by applicant]
US 9164891B2 · Karamcheti et al. · 2015 [cited by applicant]
US 9183136B2 · Kawamura et al. · 2015 [cited by applicant]
US 9189650B2 · Jaye et al. · 2015 [cited by applicant]
US 9201733B2 · Verma · 2015 [cited by applicant]
US 9207876B2 · Shu et al. · 2015 [cited by applicant]
US 9229656B1 · Contreras et al. · 2016 [cited by applicant]
US 9229810B2 · He et al. · 2016 [cited by applicant]
US 9235475B1 · Shilane et al. · 2016 [cited by applicant]
US 9244626B2 · Shah et al. · 2016 [cited by applicant]
US 9250687B1 · Aswadhati · 2016 [cited by applicant]
US 9250999B1 · Barroso · 2016 [cited by applicant]
US 9251066B2 · Colgrove et al. · 2016 [cited by applicant]
US 9268648B1 · Barash et al. · 2016 [cited by applicant]
US 9268806B1 · Kesselman et al. · 2016 [cited by applicant]
US 9286002B1 · Karamcheti et al. · 2016 [cited by applicant]
US 9292214B2 · Kalos et al. · 2016 [cited by applicant]
US 9298760B1 · Li et al. · 2016 [cited by applicant]
US 9304908B1 · Karamcheti et al. · 2016 [cited by applicant]
US 9311969B2 · Murin · 2016 [cited by applicant]
US 9311970B2 · Sharon et al. · 2016 [cited by applicant]
US 9323663B2 · Karamcheti et al. · 2016 [cited by applicant]
US 9323667B2 · Bennett · 2016 [cited by applicant]
US 9323681B2 · Apostolides et al. · 2016 [cited by applicant]
US 9335942B2 · Kumar et al. · 2016 [cited by applicant]
US 9348538B2 · Mallaiah et al. · 2016 [cited by applicant]
US 9355022B2 · Ravimohan et al. · 2016 [cited by applicant]
US 9384082B1 · Lee et al. · 2016 [cited by applicant]
US 9384252B2 · Akirav et al. · 2016 [cited by applicant]
US 9389958B2 · Sundaram et al. · 2016 [cited by applicant]
US 9390019B2 · Patterson et al. · 2016 [cited by applicant]
US 9396202B1 · Drobychev et al. · 2016 [cited by applicant]
US 9400828B2 · Kesselman et al. · 2016 [cited by applicant]
US 9405478B2 · Koseki et al. · 2016 [cited by applicant]
US 9411685B2 · Lee · 2016 [cited by applicant]
US 9417960B2 · Klein · 2016 [cited by applicant]
US 9417963B2 · He et al. · 2016 [cited by applicant]
US 9430250B2 · Hamid et al. · 2016 [cited by applicant]
US 9430542B2 · Akirav et al. · 2016 [cited by applicant]
US 9432541B2 · Ishida · 2016 [cited by applicant]
US 9454434B2 · Sundaram et al. · 2016 [cited by applicant]
US 9471579B1 · Natanzon · 2016 [cited by applicant]
US 9477554B2 · Chamness et al. · 2016 [cited by applicant]
US 9477632B2 · Du · 2016 [cited by applicant]
US 9501398B2 · George et al. · 2016 [cited by applicant]
US 9525737B2 · Friedman · 2016 [cited by applicant]
US 9529542B2 · Friedman et al. · 2016 [cited by applicant]
US 9535631B2 · Fu et al. · 2017 [cited by applicant]
US 9552248B2 · Miller et al. · 2017 [cited by applicant]
US 9552291B2 · Munetoh et al. · 2017 [cited by applicant]
US 9552299B2 · Stalzer · 2017 [cited by applicant]
US 9563517B1 · Natanzon et al. · 2017 [cited by applicant]
US 9588698B1 · Karamcheti et al. · 2017 [cited by applicant]
US 9588712B2 · Kalos et al. · 2017 [cited by applicant]
US 9594652B1 · Sathiamoorthy et al. · 2017 [cited by applicant]
US 9600193B2 · Ahrens et al. · 2017 [cited by applicant]
US 9619321B1 · Sharon et al. · 2017 [cited by applicant]
US 9619430B2 · Kannan et al. · 2017 [cited by applicant]
US 9645754B2 · Li et al. · 2017 [cited by applicant]
US 9667720B1 · Bent et al. · 2017 [cited by applicant]
US 9710535B2 · Aizman et al. · 2017 [cited by applicant]
US 9733840B2 · Karamcheti et al. · 2017 [cited by applicant]
US 9734225B2 · Akirav et al. · 2017 [cited by applicant]
US 9740403B2 · Storer et al. · 2017 [cited by applicant]
US 9740700B1 · Chopra et al. · 2017 [cited by applicant]
US 9740762B2 · Horowitz et al. · 2017 [cited by applicant]
US 9747319B2 · Bestler et al. · 2017 [cited by applicant]
US 9747320B2 · Kesselman · 2017 [cited by applicant]
US 9767130B2 · Bestler et al. · 2017 [cited by applicant]
US 9781227B2 · Friedman et al. · 2017 [cited by applicant]
US 9785498B2 · Misra et al. · 2017 [cited by applicant]
US 9798486B1 · Singh · 2017 [cited by applicant]
US 9804925B1 · Carmi et al. · 2017 [cited by applicant]
US 9811285B1 · Karamcheti et al. · 2017 [cited by applicant]
US 9811546B1 · Bent et al. · 2017 [cited by applicant]
US 9818478B2 · Chung et al. · 2017 [cited by applicant]
US 9829066B2 · Thomas · 2017 [cited by applicant]
US 9836245B2 · Hayes et al. · 2017 [cited by applicant]
US 9891854B2 · Munetoh et al. · 2018 [cited by applicant]
US 9891860B1 · Delgado et al. · 2018 [cited by applicant]
US 9892005B2 · Kedem et al. · 2018 [cited by applicant]
US 9892186B2 · Akirav et al. · 2018 [cited by applicant]
US 9904589B1 · Donlan et al. · 2018 [cited by applicant]
US 9904717B2 · Anglin et al. · 2018 [cited by applicant]
US 9952809B2 · Shah · 2018 [cited by applicant]
US 9910748B2 · Pan · 2018 [cited by applicant]
US 9910904B2 · Anglin et al. · 2018 [cited by applicant]
US 9934237B1 · Shilane et al. · 2018 [cited by applicant]
US 9940065B2 · Kalos et al. · 2018 [cited by applicant]
US 9946604B1 · Glass · 2018 [cited by applicant]
US 9959167B1 · Donlan et al. · 2018 [cited by applicant]
US 9965539B2 · D'Halluin et al. · 2018 [cited by applicant]
US 9998539B1 · Brock et al. · 2018 [cited by applicant]
US 10007457B2 · Hayes et al. · 2018 [cited by applicant]
US 10013177B2 · Liu et al. · 2018 [cited by applicant]
US 10013311B2 · Sundaram et al. · 2018 [cited by applicant]
US 10019314B2 · Litsyn et al. · 2018 [cited by applicant]
US 10019317B2 · Usvyatsky et al. · 2018 [cited by applicant]
US 10031703B1 · Natanzon et al. · 2018 [cited by applicant]
US 10061512B2 · Chu et al. · 2018 [cited by applicant]
US 10073626B2 · Karamcheti et al. · 2018 [cited by applicant]
US 10082985B2 · Hayes et al. · 2018 [cited by applicant]
US 10089012B1 · Chen et al. · 2018 [cited by applicant]
US 10089174B2 · Lin · 2018 [cited by applicant]
US 10089176B1 · Donlan et al. · 2018 [cited by applicant]
US 10108819B1 · Donlan et al. · 2018 [cited by applicant]
US 10146787B2 · Bashyam et al. · 2018 [cited by applicant]
US 10152268B1 · Chakraborty et al. · 2018 [cited by applicant]
US 10157098B2 · Chung et al. · 2018 [cited by applicant]
US 10162704B1 · Kirschner et al. · 2018 [cited by applicant]
US 10180875B2 · Northcott · 2019 [cited by applicant]
US 10185730B2 · Bestler et al. · 2019 [cited by applicant]
US 10235065B1 · Miller et al. · 2019 [cited by applicant]
US 11467913B1 · Karr · 2022 [cited by examiner]
US 20020144059A1 · Kendall · 2002 [cited by applicant]
US 20030105984A1 · Masuyama et al. · 2003 [cited by applicant]
US 20030110205A1 · Johnson · 2003 [cited by applicant]
US 20040161086A1 · Buntin et al. · 2004 [cited by applicant]
US 20050001652A1 · Malik et al. · 2005 [cited by applicant]
US 20050076228A1 · Davis et al. · 2005 [cited by applicant]
US 20050235132A1 · Karr et al. · 2005 [cited by applicant]
US 20050278460A1 · Shin et al. · 2005 [cited by applicant]
US 20050283649A1 · Turner et al. · 2005 [cited by applicant]
US 20060015683A1 · Ashmore et al. · 2006 [cited by applicant]
US 20060114930A1 · Lucas et al. · 2006 [cited by applicant]
US 20060155946A1 · Ji · 2006 [cited by examiner]
US 20060174157A1 · Barrall et al. · 2006 [cited by applicant]
US 20060248294A1 · Nedved et al. · 2006 [cited by applicant]
US 20070079068A1 · Draggon · 2007 [cited by applicant]
US 20070214194A1 · Reuter · 2007 [cited by applicant]
US 20070214314A1 · Reuter · 2007 [cited by applicant]
US 20070234016A1 · Davis et al. · 2007 [cited by applicant]
US 20070268905A1 · Baker et al. · 2007 [cited by applicant]
US 20080080709A1 · Michtchenko et al. · 2008 [cited by applicant]
US 20080107274A1 · Worthy · 2008 [cited by applicant]
US 20080155191A1 · Anderson et al. · 2008 [cited by applicant]
US 20080295118A1 · Liao · 2008 [cited by applicant]
US 20090077208A1 · Nguyen et al. · 2009 [cited by applicant]
US 20090138654A1 · Sutardja · 2009 [cited by applicant]
US 20090216910A1 · Duchesneau · 2009 [cited by applicant]
US 20090216920A1 · Lauterbach et al. · 2009 [cited by applicant]
US 20100017444A1 · Chatterjee et al. · 2010 [cited by applicant]
US 20100042636A1 · Lu · 2010 [cited by applicant]
US 20100094806A1 · Apostolides et al. · 2010 [cited by applicant]
US 20100115070A1 · Missimilly · 2010 [cited by applicant]
US 20100125695A1 · Wu et al. · 2010 [cited by applicant]
US 20100162076A1 · Sim-Tang et al. · 2010 [cited by applicant]
US 20100169707A1 · Mathew et al. · 2010 [cited by applicant]
US 20100174576A1 · Naylor · 2010 [cited by applicant]
US 20100268908A1 · Ouyang et al. · 2010 [cited by applicant]
US 20110040925A1 · Frost et al. · 2011 [cited by applicant]
US 20110060927A1 · Fillingim et al. · 2011 [cited by applicant]
US 20110119462A1 · Leach et al. · 2011 [cited by applicant]
US 20110219170A1 · Frost et al. · 2011 [cited by applicant]
US 20110238625A1 · Hamaguchi et al. · 2011 [cited by applicant]
US 20110264843A1 · Haines et al. · 2011 [cited by applicant]
US 20110302369A1 · Goto et al. · 2011 [cited by applicant]
US 20120011100A1 · Yamane · 2012 [cited by examiner]
US 20120011398A1 · Eckhardt · 2012 [cited by applicant]
US 20120079318A1 · Colgrove et al. · 2012 [cited by applicant]
US 20120089567A1 · Takahashi et al. · 2012 [cited by applicant]
US 20120110249A1 · Jeong et al. · 2012 [cited by applicant]
US 20120131253A1 · McKnight · 2012 [cited by applicant]
US 20120158923A1 · Mohamed et al. · 2012 [cited by applicant]
US 20120191900A1 · Kunimatsu et al. · 2012 [cited by applicant]
US 20120198152A1 · Terry et al. · 2012 [cited by applicant]
US 20120198261A1 · Brown et al. · 2012 [cited by applicant]
US 20120209943A1 · Jung · 2012 [cited by applicant]
US 20120226934A1 · Rao · 2012 [cited by applicant]
US 20120246435A1 · Meir et al. · 2012 [cited by applicant]
US 20120260055A1 · Murase · 2012 [cited by applicant]
US 20120311557A1 · Resch · 2012 [cited by applicant]
US 20130022201A1 · Glew et al. · 2013 [cited by applicant]
US 20130036314A1 · Glew et al. · 2013 [cited by applicant]