Prosecution Insights
Last updated: July 17, 2026
Application No. 17/720,236

APPLICATION PROGRAMMING INTERFACE TO INDICATE INCREASED RESOURCE USAGE

Final Rejection §103
Filed
Apr 13, 2022
Priority
Apr 14, 2021 — provisional 63/174,999
Examiner
TRUONG, LECHI
Art Unit
2194
Tech Center
2100 — Computer Architecture & Software
Assignee
NVIDIA Corporation
OA Round
6 (Final)
87%
Grant Probability
Favorable
7-8
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 87% — above average
87%
Career Allowance Rate
770 granted / 884 resolved
+32.1% vs TC avg
Strong +37% interview lift
Without
With
+36.8%
Interview Lift
resolved cases with interview
Typical timeline
3y 0m
Avg Prosecution
24 currently pending
Career history
917
Total Applications
across all art units

Statute-Specific Performance

§101
2.1%
-37.9% vs TC avg
§103
92.3%
+52.3% vs TC avg
§102
2.0%
-38.0% vs TC avg
§112
1.2%
-38.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 884 resolved cases

Office Action

§103
CTFR 17/720,236 CTFR 79409 Notice of Pre-AIA or AIA Status 07-03-aia AIA 15-10-aia The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA. DETAILED ACTION Notice of Pre-AIA or AIA Status 07-03-aia AIA 15-10-aia The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA. Claims 1-24 are represented for the examination. Claim Rejections - 35 USC § 103 07-20-aia AIA The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. 07-21-aia AIA .Claim s 1, 7, 13, 19 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) and further in view of Pocock( US 20210240698 A1) . As to claim 1 , Rath teaches processor (includes one or more processors 3510 coupled to a system memory 3520, col 72, ln 1-3/ perform two or more application programming interfaces (APIs )( provide both control plane APIs and data plane APIs. The control plane APIs provided by the data storage service (and/or the underlying system) may be used to manipulate table-level entities, such as tables and indexes. These APIs may be called relatively infrequently (when compared to data plane APIs). In some embodiments, the control plane APIs provided by the service may be used to create tables, delete tables, and/or describe tables. In some embodiments, control plane APIs that perform updates to table-level entries may invoke asynchronous workflows to perform a requested operation. Methods that request "description" information (e.g., via a describeTables API) may simply return the current known state of the tables maintained by the service on behalf of a client/user. The data plane APIs provided by the data storage service (and/or the underlying system) may be used to perform item-level operations, such as storing, deleting, retrieving, and/or updating items and/or their attributes, or performing index-based search-type operations across multiple items in a table, such as queries and scans, col 11, ln 45-67). a call from one or more software instructions to track usage of data ( such embodiments, the success of the workflow may be subsequently determined by checking the status of the table via a DescribeTables API. For example, each table being managed by the service on behalf of a client/user may be in one of the following table states, and an indication of the state of each table may be returned in a response to a DescribeTables request:, col 12, ln 32-40/ In such embodiments, the success of the workflow may be subsequently determined by checking the status of the table via a DescribeTables API. In various embodiments, a DescribeTables API may be used to enumerate (e.g., list) information about tables belonging to a given storage service client, col 15, ln 15-20), in response to the call of one or more API generate one or more data structures comprising one or more indicators of the usage of data( a CreateTable API may be used to create a table having a specified primary index (i.e. a primary key). In some embodiments, in response to receiving a request to create a table on behalf of a storage service client via this API, the service may trigger (and/or the underlying system implementing the service may invoke) an asynchronous CreateTable workflow that returns immediately, col 12, ln 25-31/ When an entry[i ndicator ] is created for the new table, the table status may be set to "Creation Pending", which may indicate that the table has been accepted for creation, but that a workflow has not yet been invoked to create the table, col 12, ln 63-67/ This table may maintain a count of the total number of tables being maintained on behalf of a single client (i.e. user/subscriber or client application), and may also indicate how many of them are in each of the states Active, Creating, and/or Deleting, col 13, ln 1-6 ) ; in an event that the one or more software instructions stop using the data, cause the one or more indicators of usage of data by the one or more software instructions to be decremented( In some embodiments, the control plane APIs provided by the service may be used to create tables, delete tables, and/or describe tables, col 11, ln 50-55/ If the indication of the state of the table that is returned in a response to a DescribeTables request is "Deleting" then the delete operation may be in progress. In some embodiments, no error indication would be returned in this case. Once the delete process is complete, the response to a DescribeTables request may no longer include an entry[ indicato r] for the deleted table, col 15, ln 25 – 31/When an entry[i ndicator ] is created for the new table, the table status may be set to "Creation Pending", which may indicate that the table has been accepted for creation, but that a workflow has not yet been invoked to create the table, col 12, ln 63-67/ This table may maintain a count of the total number of tables being maintained on behalf of a single client (i.e. user/subscriber or client application), and may also indicate how many of them are in each of the state’s Active, Creating, and/or Deleting, col 13, ln 1-6 ) . Anderson teaches in an event that the one or more software instructions stop using the data, cause the one or more indicators of usage of data by the one or more software instructions to be decremented ( the count represents the number of times a save operation has been called for a node, para[0048], ln 2-6/until a portion of the data structure is to be changed, save operations for the portion may be tracked by use of a second counter at each node that is associated with each named state. This second counter indicates the number of save operations to be propagated to descendents within the data structure. The counter is incremented for each save operation and decremented for each restore operation. When the state of the portion of the data structure (e.g., a node) is to be changed, the instantiate operation is called, which instantiates the saves represented by the second counter at all ancestors of the node to be changed, para[0023], ln 1-13/ when the restore node state operation or the discard node state operation is called, the counter 310[ indicator ] associated with the name is decremented if its value is non-zero. The nodes in the hierarchy below this node[ data ] may then be skipped for the restore state or discard state operation, para[0047], ln 1-7). It would have been obvious to one of the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath with Anderson to incorporate the above feature because this needed are improved techniques for managing graph data structures and, more particularly, for storing and retrieving state information for a graph data structure. Parihar teaches circuitry to perform application programming interfaces (APIs) ( processor” describes an electronic circuit, col 7, ln 29-30/ the static performance analysis service 10 generates a call graph with performance scores for individual method calls using an application program interface(API), col 2, ln 50-55/ Fig.1): in response to software instructions to track usage of data, generate one or more data structures comprising one or more indicators of the usage of data( the static performance analysis service 10 generates a call graph with performance scores for individual method calls using an application program interface(API), col 2, ln 50-55/ Fig.1] from the user interface 20, the developer 18 [ in the service 10 which is an API ] can specify which portion of the code should be analyzed. Code analysis can be done on many levels, e.g., class, method, branch, etc. For example, if a branch is specified, then all the classes and methods in the code base are analyzed. If only a class name is provided, then all the methods in the class are analyzed. If a method name is specified, then only that method is analyzed. For each project, service 10[ API ] is also configured with a set of low level method names used in the code that are associated with methods that perform computationally intensive operations. For example, method names dbm1 and dbm2 may be method names used to perform database calls, dm1 and dm2 may be method names that perform disk IO, nwm1 and nwm2 may be method names that perform network IO, etc. Once the code segment to be analyzed is specified, call graph generation module 24 generates a call graph for each method contained in the specified portion. A call graph is a representation of breadthwise and depth-wise calls of a method, and numerous tools exist for generating a call graph from a method. For example, code-coverage tools in Java generate and utilize call graphs to compute code coverage of a unit test. A call graph generally comprises a directed graph that shows[i ndicator ] relationships between called and calling subroutines in a computer program. Each node represents a procedure and each edge indicates[ indicator] which calling procedure calls a called procedure. The call graph may also include repetitive action nodes such as loops and other cyclic or repeating constructs from which calls may be made, col 3, ln 10-40). It would have been obvious to one of the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath and Anderson with Parihar to incorporate the above feature because improves performance of the computer code based on scores indicative of substantial resource consumption. Pocock teaches in an event that the one or more data structures indicate that data is no longer being used by any of the one or more software instructions, initiate a destructor to destroy the one or more data structures ( In executing the undo data structure, the remote computing device may use the identifiers in the undo data structure to identify the remote call to undo and determine[ indicate ] the current state of the remote call, for example, whether it completed successfully, is partially completed, or is totally non-completed[ no longer being used ] . The remote computing device may use data describing the remote call in the undo data structure in determining the current state of the remote call, para[0026], ln 19-29/ A remote call generated by the database client 110 may be registered with the listener process 120[a destructor] , which may listen for messages from the remote computing device to which the remote call is sent to determine whether the remote call succeeded or failed. If the remote call and its associated database transaction are both successful, the database transaction may be committed by the database client 110 and the listener process 120[destructor] may delete the undo data structure t hat undoes the remote call from the storage 160 , para[0030], ln 11-18/ The remote execution on the remote computing device of the undo data structure transmitted by the listener process may reverse any changes made to the remote computing device, such as, for example, to a remote database that is local to the remote computing device , by the remote call……. the remote computing device may use the identifiers in the undo data structure to identify the remote call to undo and determine[ indicate ] the current state of the remote call, for example, whether it completed successfully, is partially completed, or is totally non-completed[ no longer being used ]. The remote computing device may use data describing the remote call in the undo data structure in determining[ indicate ] the current state of the remote call, for example, comparing a described database transaction in the undo data structure to changes made to the remote database. The undo data structure may also include instructions for undoing the remote call. The instructions may be executable by the remote computing device, and may undo any changes made by the remote call. For example, if the remote call caused a remote service to perform a reservation transaction[ data ] in the remote database, reserving a quantity of a product, the undo data structure may include an instruction to cancel[ indicate ] the reservation[ data ], undoing [indicate ] the reservation transaction and un-reserving the quantity of the product[ data ] that was reserved[ no longer used ]. After transmitting the undo data structure to the remote computing device, the listener process[ destructor ] may delete the undo data structure from the storage for undo data structures, para[0026]/ A remote call associated with this database transaction may be to a remote service on a remote computing device responsible for tracking the quantity of the product available and reserving the appropriate quantity of the product, para[0019, ln 25-31). It would have been obvious to one of the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson and Parihar with Pocock to incorporate the above feature because this allow the remote call and the database transaction in the local database to execute asynchronously, improving performance of the local database. As to claim 7, they are rejected for the same reason as to claim 1 above. As to claim 13, it is rejected for the same reason as to claim 1 above. In additional, Schmidt teaches A machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors ( a device, a method or a computer program product (e.g., a non-transitory computer-readable medium having computer executable instruction for performing the noted operations or steps). Accordingly, those aspects may take the form of an entire), col 7, ln 63-67 to col 8, ln 1-3) for the same reason as to claim 1 above. As to claim 19 , it is rejected for the same reason as to claim 1 above . 07-21-aia AIA 3. Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) further in view of Yu( US 20130019248 A1) . As to claim 2, Anderson teaches cause one or more indicators of usage of data by one or more software instructions to be decremented by at least reducing a count (the count represents the number of times a save operation has been called for a node, para[0048], ln 2-6/until a portion of the data structure is to be changed, save operations for the portion may be tracked by use of a second counter at each node that is associated with each named state. This second counter indicates the number of save operations to be propagated to descendents within the data structure. The counter is incremented for each save operation and decremented for each restore operation. When the state of the portion of the data structure (e.g., a node) is to be changed, the instantiate operation is called, which instantiates the saves represented by the second counter at all ancestors of the node to be changed, para[0023], ln 1-13/ when the restore node state operation or the discard node state operation is called, the counter 310[ indicator ] associated with the name is decremented if its value is non-zero. The nodes in the hierarchy below this node[ data ] may then be skipped for the restore state or discard state operation, para[0047], ln 1-7 ) for the same reason as to claim 1 above. Yu teaches a count of uses indicated by one or more data structure( Each resource queue may comprise a header including a count of usage on a corresponding performance monitoring resource indicating a number of users that are granted access to the corresponding performance monitoring resource. A count of usage that is greater than one may indicate that there is a potential conflict for resource usage, para[0010]/ If a user 245 cancels usage of a performance monitoring resource, the PRMU 200 removes the item from the resource queue 230 and reduces the count of resource usage. The weight multiplier changes accordingly, para[0029], ln 15-21). It would have been oblivious to one of the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson, Parihar and Pocock with Yu to incorporate the feature of a count of uses indicated by one or more data structures because this allows one user to use many hardware events on a limited number of performance counters in a timeshared manner . 07-21-aia AIA Claim s 3, 5, 6, 8, 12, 15, 22 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) and further in view of Pocock( US 20210240698 A1) and further in view of Watson (US 20080168235) As to claim 3, Watson teaches the usage of the data is indicated by one or more references associated with the information(FIG. 3 illustrates an example of a usage level for a memory with watermarks associated with corresponding memory reduction operations. In one embodiment, a watermark of a memory usage level 311 may represent a percentage of memory already in use with respect to the total available memory space of a memory device. For example, watermark 313 may indicate no more memory space is available for any application. In one embodiment, a memory usage level may be derived from a memory usage status received from a system kernel. The usage level of a memory may change over time as the number of running applications accessing the memory increases or decreases. The usage level of a memory may also change as an application accessing the memory runs in different states. In one embodiment, an association may be predefined between a memory usage level 311 and a set of memory reduction operations 323 based on a plurality of watermarks 325, para[0031], ln 1-20). It would have been obvious to one of the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of the usage of Rath, Anderson , Parihar and Pocock with Watson to incorporate the feature of the usage of the data is indicated by one or more references associated with the information because this monitors memory usage by multiple running applications to ensure availability of a required capacity of free memory. As to claim 5 , Watson teaches perform the API based at least in part on a parameter value indicating the one or more data structures( para[0029], ln 1-12) for the same reason as to claim 3 above. As to claim 6, Watson teaches the data includes memory used by the computer program( para[0030], ln 19-28) for the same reason as to claim 3 above. As to claim 8 , Watson teaches the usage of data by one or more software instruction to be decremented based on a parameter value indicating a number of references( para[0031], ln 3-27) for the same reason as to claim 3 above. As to claim 12, Watson teaches the one or more processors are further to cause execution of one or more functions indicated by the one or more data structures( para[0038], ln 1-20/ para[0036], ln 15-20). In additional, teaches execution of one or more functions indicated by the one or more indicator ( para[0256], ln 1-12/ para[0039], ln 12-18) for the same reason as to claim 3 above. As to claim 15 , Watson teaches the use of the information is indicated through one or more references used by one or more software instruction( para[0031], ln 1-30) for the same reason as to claim 3 above. As to claim 22, Watson teaches the information includes data upon which one or more operations are to be performed by the computer program( para[0040], ln 20-42) for the same reason as to claim 3 above . 07-21-aia AIA 5. Claim s 4, 11, 18 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and further in view of Bourd(US 20120185671 A1) . As to claim 4, Bourd teaches the computer program is executable by one or more parallel processing units (PPUs)( processing unit (GPGPU) 6 that is configurable to implement a processing pipeline 10. As described in more detail below, processing pipeline 10 of GPGPU 6 includes two or more parallel processing units configured to operate as stages of processing pipeline 10 and one or more local memory buffers configured to hold data for transfer between the parallel processing units to implement processing pipeline 10, para[0017], The local memory buffers may significantly reduce memory bandwidth usage by reducing or eliminating the need for each of the parallel processing units in the processing pipeline to make calls to the system memory to retrieve and/or store data, para[0016], ln 19-25). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson , Parihar and Pocock with Bourd to incorporate the feature of the computer program is executable by one or more parallel processing units (PPUs) because this allow efficient processing of pipeline-based applications. As to claim 11 , Bourd teaches the computer program is executable by one or more graphics processing units (GPUs)( para[0016], ln 19-25) for the same reason as to claim 4 above . As to claim 18, Bourd teaches the computer program is executable by one or more general purpose graphics processing units (GPGPUs)( para[0017], ln 1-10) for the same reason as to claim 4 above . 07-21-aia AIA 6. Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) further in view of Kaza(US 20120139929 A1). As to claim 9 , Kaza teaches one of more API is a runtime API( The request is received through an API provided by the runtime to the application for controlling execution state of the runtime. The API may provide one or more options that the application can set to request different levels of pausing to reduce resource usage of the runtime down to a predetermined level, para[0032], ln 3-12). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson , Parihar and Pocock with Kaza to incorporate the feature of API is a runtime API because this allows a hosting layer to dynamically control an underlying runtime to selectively turn on and off various subsystems of the runtime to save power and extend battery life of devices on which the system operates . 07-21-aia AIA 7. Claim s 20, 10, 24 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and further in view of Benerjee(A1 US 20030009482 A1). As to claim 20 , Benerjee teaches reducing one or more values of the one or more data structures based on the usage of the information by the computer program( para[FIG. 3B illustrates the contraction of a dynamic data structure according to the present invention. As in FIG. 3A, the server 300 receives and transmits network data over the network 310. In FIG. 3B, however, the network load is light as shown by the small number of network processes 350. As network load decreases the number of data items in the base dynamic data structure 330 also decrease. As explained in detail below, when a threshold is reached the dynamic data structure management module 222 contracts the base dynamic data structure 330 to create a new contracted dynamic data structure 360. The contracted dynamic data structure 340 is smaller in size than the base dynamic data structure 330 and reduces the amount of memory usage( para[0040], ln 1-15) . It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson , Parihar and Pocock with Benerjee to incorporate the feature of reducing one or more values of the one or more data structures based on the usage of the information by the computer program because this allows the performance of the network is optimized. As to claim 10 , Benerjee the one or more processors are further to decrement a count of references indicated by the one or more data structures(para[0040]/ para[0013], ln 1-10) for the same reason as to claim 20 above. As to claim 24 , Benerjee teaches the computer program is executable by one or more central processing units (CPUs)( para[0033], ln 2-5) for the same reason as to claim 20 above . 07-21-aia AIA 8. Claim s 14, 21 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) in view of Watson (US 20080168235) and further in view of Pantin(US 8392479 B1). As to claim 14 , Watson teaches cause the one or more processors to execute one or more destructor functions to cause the usage of the information by the computer program to be reduced ( when the memory usage level is identified to be between 80% watermark 317 and 90% watermark 315, an application may be notified to exit a system gracefully 303 including allowing a user to save application data. When the memory usage level is identified to be above watermark 90% 315, according to one embodiment, selected applications may be killed directly to reduce memory usage level 301 , para[0031], ln 17-33) for the same reason as to claim 2 above. Pantin teaches execute one or more destructor functions ( For example, the storage space counter may be adjusted by a size (in bytes) of data written to the file or deleted from the file. If the storage space counter exceeds the amount of available storage space, the determination module communicates an error message. If the storage space counter does not exceed the amount of available storage space, the determination module proceeds to update a current state of the file. If the system call is a delete file system call, the determination module deletes the file in the memory and decreases a storage space counter. For example, the storage space counter may be decremented by a size (in bytes) of the deleted file, col 15, ln 1-12). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson , Parihar , Pocock and Watson with Pantin to incorporate the feature of execute one or more destructor functions because this provides need in the art for a method and apparatus for optimizing storage space allocations. As to claim 21, it rejected for the same reason as to claim 14 above . 07-21-aia AIA 9. Claim 16 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) further in view of BROTHERS(US 20160358307 A1). As to claim 16 , BROTHERS teaches data structure comprises one or more graph data structures ( Referring to FIG. 2A, in one embodiment a data flow graph (or equivalent data structure) is generated by DAG dependency analysis module 114 that shows that the immediate dependency between a set of two or more images, such as image A and B, and may also include other subsequent images (e.g., C, D), para[0027], ln 1-10/ para[0028], ln 1-20). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson , Parihar and Pocock with BROTHERS to incorporate the feature of the computer program corresponds to one or more graph data structures because this reduces a requirement to access an external memory to perform reads and writes of intermediate data . 07-21-aia AIA 10. Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and further in view of Rabi(US 20160321094 A1). As to claim 17 , Rabi teaches the one or more processors to obtain one or more status indications as a result of performing the at least one of more APIs( multiple function calls may be “chained” together to help reduce data congestion at the host memory interface while increasing overall performance. Chaining successive function calls ensures that intermediate data results stay within the coprocessor and is fed directly back to the next accelerator module, para[0046], ln 1-9). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson, Parihar and Pocock with Rabi to incorporate the feature of to obtain one or more status indications as a result of performing the API because this provides reduced time-to-market (i.e., accelerated deployment), improved flexibility to address constantly changing demands . 07-21-aia AIA 11. Claim 23 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and further in view of Golas( US 20190005703 A1). As to claim 23 , Golas teaches performing the API based at least in part on a parameter value indicating graph code( In response to a determination that RT B does depend on RT A, the driver 108 determines how many levels of the dependency graph (e.g., an API dependency graph corresponding to a DAG) should be followed to reduce external memory accesses. Following every level of the dependency graph may not be required in all cases to achieve a reduction in external memory accesses. Moreover, following every level of a complex dependency graph consumes processing resources. Thus, an example embodiment of the DAG dependency analysis module 114 limits how many levels of the dependency graph are followed, para[0046], ln 5-19). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of Rath, Anderson, Parihar and Pocock with Golas to incorporate the feature of performing the API based at least in part on a parameter value indicating graph code because this computes workloads via a defined API, or is generated automatically without human intervention . 07-21-aia AIA 12. Claim 25 is rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and futher in view of YANG( CN 108717380 A) and further in view of Schmelter( US 20190018754 A1) As to claim 25, Yang teaches the one or more data structures further comprise a destructor callback to generate a call to initiate the destructor( calling the call-back function stored in the message queue for processing, s ec: In the embodiment of the invention, after obtaining the first message from the head of the message queue, ln 16-20/ it can call the callback function to process the message, after determining the call-back function of the message is processed. can continue processing the other message; if the message is an asynchronous message , it can call the callback function to process the message , without waiting for the execution result of the message, directly processing the other message. processing the other message can realize getting one message from the head of the message queue again by the work thread., Sec: one scheme can be selected, ln 9-19/ if it has been used up, it can direct destruction message queue, ending the message processing process, Sec: In one scheme can be selected,, ln 3-6/ As shown in FIG. 3, the user can provide information processing callback function by the call-back function structure, and message queue, and synchronous or asynchronous message-calling message queue, when the message queue is used, destruction message queue…. In one scheme can be selected by invoking a callback function of the asynchronous calling thread without waiting for the processing result of the asynchronous message, it can directly continue processing other messages , i.e. may activate condition variable, and wakeup work thread, continuously obtaining the message from the head of the message queue by the work thread to obtain the second information, continuously processing the second message.In one scheme can be selected, before obtaining the message from the message queue and processes it, firstly judging message whether it is used to, if unused, can obtains the message from the message queue, if it has been used up, it can direct destruction message queue , ending the message processing process, sec: In one scheme can be selected, ln 1-30 It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of above references to incorporate the above feature because this solves the problem that the message-based processing method of multi-thread inter-thread synchronization is complicated, resource contention, deadlock is solved. Schmelter teaches the one or more data structures further comprise a destructor callback to generate a call to initiate the destructor( At 306 , a determination is made as to whether a callback stack trace is active. If it is determined that a callback stack trace is active, method 300 proceeds to 308 . Otherwise, if it is determined that a callback stack trace is not active, method 300 proceeds to 310 , thus skipping 308 . At 308 , the callback stack trace is loaded. From 308 , method 300 proceeds to 310 At 310 , the current stack trace of the JavaScript function is retrieved. From 310 , method 300 proceeds to 312 . At 312 , the loaded callback stack trace and the current stack trace of the JavaScript function is saved as the time-based sampling data. From 312 , method 300 proceeds back to 302 . At 314 , a determination is made as to whether a new callback has been registered during VM execution (for example, during the execution of the JavaScript function). If it is determined that a new callback has been registered, method 300 proceeds to 316 . Otherwise, if it is determined that no new callback has been registered, method 300 proceeds to 318 . At 316 , the current stack trace is saved as the callback stack trace. From 316 , method 300 proceeds back to 302 to continue the VM execution. In some implementations, saving the current stack trace as the callback stack trace includes appending or otherwise attaching the current stack trace to previously saved callback stack trace, for example, in a similar manner as the example shown in FIG. 2. In some implementations, saving the current stack trace as the callback stack trace includes using the current stack trace to overwrite some or all of previously saved callback stack trace, for example, in the case that the previously saved callback stack trace has reached the configured depth of the stack trace.At 318 , a determination is made as to whether a callback has been called during VM execution. In some implementations, the callback has been called by an asynchronous JavaScript function that is currently executed by the VM. If it is determined that a callback has been called, method 300 proceeds to 320 . Otherwise, if it is determined that no callback has been called, method 300 proceeds to 324 . At 320 , a determination is made as to whether a callback stack trace is available. If it is determined that a callback stack trace is available, method 300 proceeds to 322 . Otherwise, if it is determined that no callback stack trace is available, method 300 proceeds back to 302 . At 322 , the available callback stack trace is set to be active. In some implementations, setting the available callback stack trace to be active includes associating the callback stack trace with the function (for example, an asynchronous JavaScript function) that calls the callback. In some implementations, setting a callback active includes storing the callback in a data structure (for example, a global data structure), where the data structure implicitly identifies the callback as active. In some implementations, the data structure could also represent a chain of active callbacks, for example, when a new callback is registered inside a called callback function. From 322 , method 300 proceeds back to 302 . At 324 , a determination is made as to whether a callback has been ended during the VM execution. If it is determined that a callback has been ended, method 300 proceeds to 326 . Otherwise, if it is determined that no callback has been ended, method 300 proceeds back to 302 . At 326 , a determination is made as to whether a callback stack trace has been set to be active. If it is determined that a callback stack trace has been set to active, method 300 proceeds to 328 . Otherwise, if it is determined that no callback stack trace has been set to active, method 300 proceeds back to 302 . At 328 , the active callback stack trace is discarded or cleared. In some implementations, discarding or clearing the active callback stack trace includes discarding the saved stack trace of the registered callback that has been ended , para[0030] to para[0041], ln 1-6/ Fig.3) It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of above references to incorporate the above feature because this saves the loaded callback stack trace and the current stack trace of the JavaScript function as the time-based sampling data . 07-21-aia AIA 13. Claim s 1, 7, 13, 19 are rejected under 35 U.S.C. 103 as being unpatentable over Rath( US 8843441 B1) in view of Anderson( US 20040249781 A1) in view of Parihar( US 11269604 B1) in view of Pocock( US 20210240698 A1) and futher in Aune( US 20130060989 A1) . As to claim 26, Aune teaches the usage of data comprises one or more references to one or more objects by the one or more software instructions( the utilities 602 include a block usage utility 606, par[0215], ln 1-2/ usage utility 606 references the data block usage information directly, such as in a shared memory structure. In a further embodiment, the block usage utility 606 references the data block usage information, in user mode, through an API of the storage client 607 and/or the storage manager 608. The block usage utility 606 may operate as an application or service in user mode or the equivalent functionality may be embedded directly into other modules such as the storage controller 616. In other words, the storage controller 616 may , para[9219], 1-15/ Data block usage information, in reference to the storage controller 506, may also refer to information maintained by the storage controller 506 regarding which physical blocks are allocated and/or deallocated/unallocated and changes in the allocation of physical blocks and/or logical-to-physical block mapping information. Data block usage information, in reference to the storage controller 506, may also refer to information maintained by the storage controller 506 regarding which blocks are in use and which blocks are not in use by a storage client, para[0196], ln 11-25). It would have been obvious to one or the ordinary skill in the art before the effective filling date of claimed invention was made to modify the teaching of above references to incorporate the feature because this provides performance enhancement allowing quicker storage and access to a data structure. Response to the argument : A. Applicant amendment filed on 02/19/2026 has been considered but they are not persuasive: Applicant argued in substance that : (1) “ Pocock further fails to teach or suggest "in an event that the one or more data structures indicate that data is no longer being used by any of the one or more software instructions, initiate a destructor to destroy the one or more data structures," as recited in claim 1. For example, a reservation is canceled. Pocock does not teach or suggest a destructor, let alone a destructor to destroy the undo data structure. " B. Examiner respectfully disagreed with Applicant's remarks: As to the point (1), Pocock teaches in an event that the one or more data structures indicate that data is no longer being used by any of the one or more software instructions, initiate a destructor to destroy the one or more data structures ( In executing the undo data structure, the remote computing device may use the identifiers in the undo data structure to identify the remote call to undo and determine[ indicate ] the current state of the remote call, for example, whether it completed successfully, is partially completed, or is totally non-completed[ no longer being used ] . The remote computing device may use data describing the remote call in the undo data structure in determining the current state of the remote call, para[0026], ln 19-29/ A remote call generated by the database client 110 may be registered with the listener process 120[a destructor] , which may listen for messages from the remote computing device to which the remote call is sent to determine whether the remote call succeeded or failed. If the remote call and its associated database transaction are both successful, the database transaction may be committed by the database client 110 and the listener process 120[destructor] may delete the undo data structure t hat undoes the remote call from the storage 160 , para[0030], ln 11-18/ The remote execution on the remote computing device of the undo data structure transmitted by the listener process may reverse any changes made to the remote computing device, such as, for example, to a remote database that is local to the remote computing device , by the remote call……. the remote computing device may use the identifiers in the undo data structure to identify the remote call to undo and determine[ indicate ] the current state of the remote call, for example, whether it completed successfully, is partially completed, or is totally non-completed[ no longer being used ]. The remote computing device may use data describing the remote call in the undo data structure in determining[ indicate ] the current state of the remote call, for example, comparing a described database transaction in the undo data structure to changes made to the remote database. The undo data structure may also include instructions for undoing the remote call. The instructions may be executable by the remote computing device, and may undo any changes made by the remote call. For example, if the remote call caused a remote service to perform a reservation transaction[ data ] in the remote database, reserving a quantity of a product, the undo data structure may include an instruction to cancel[ indicate ] the reservation[ data ], undoing [indicate ] the reservation transaction and un-reserving the quantity of the product[ data ] that was reserved[ no longer used ]. After transmitting the undo data structure to the remote computing device, the listener process[ destructor ] may delete the undo data structure from the storage for undo data structures, para[0026]/ A remote call associated with this database transaction may be to a remote service on a remote computing device responsible for tracking the quantity of the product available and reserving the appropriate quantity of the product, para[0019, ln 25-31). THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Conclusion US 9866574 B1 teaches some configurations, an interface is exposed, such as a network services application programming interface (“API”), through which interested services can obtain the protected data type usage graph. For example, and without limitation, an incident response service might utilize an API to obtain the protected data type usage graph for use in determining the protected data that was exposed to an intruder during a breach. As another example, an auditing service might utilize the API to obtain the protected data type usage graph for use in identifying gaps in policy regarding the hardening or public exposure of systems containing or handling certain protected data types or combinations of protected data types. US 20020059487 A1 teaches The executive 148 then responds to control and status bits indicating a successful operation by calling a routine (login_LUN0-4) 253 that checks for errors in the various data fields of the ORB and in particular checks to make sure that the ORB specifies a valid logical unit. In the present example, LUN refers to a log in host and up to 4 hosts are acceptable, HOST0, HOST1, HOST2 and HOST3. If no errors are found, the ORB is removed from the receive FIFO and temporarily stored in RAM 164 and a control and status register bit is set to implement further processing of the ORB data. If an error is found, a control and status register bit is set to indicate the error for further processing and the ORB is removed from the FIFO receive buffer. The routine for host testing 253 is then exited. US 20200133795 A1 teaches such platform APIs may be monitored to identify any changes in the state of these microservices, such as failed pods or increase/decrease in scale factors). US 8843441 B1 In such embodiments, the success of the workflow may be subsequently determined by checking the status of the table via a DescribeTabl API. In various embodiments, a DescribeTables API may be used to enumerate (e.g., list) information about tables belonging to a given storage service client. For example, in response to receiving a request on behalf of a user to describe tables belonging to that user, the data storage system may return primary key information and/or the status of any tables specified in the request or (if none are specified) all tables that belong to that user. US 20130246239 A1 teaches FIG. 17 is a detailed view of the functioning of an application programming interface to a trade accelerator according to an embodiment of the present invention which allows for tracking flow usage, in particular by decreasing the count of pending OUCH transactions for a stated flow. US 20040249781 A1 teaches the restore node state operation or the discard node state operation is called, the counter 310 associated with the name is decremented if its value is non-zero. The nodes in the hierarchy below this node may then be skipped for the restore state or discard state operation. Otherwise, if the value of the named count/ when the discard node state operation is called, the last pointer is popped off of the named stack and discarded and the levels in hierarchy below the node are traversed for the discard operation. US 6788315 B1 When a Np Graph er object is closed, i.e., the user closes the frame/window that the object occupies, the object calls a callback method graph erDestroyed( ), which is defined in interface Np Graph erAction, which AttributeScreen object implements. In the implementation of method graph erDestroyed( ), AttributeScreen object calls method delete Graph ( ) in each TargetAttribute object that appeared in the graph that was just closed. The result is that each TargetAttribute object deletes that graph from its graph s Hashtable. US 20120089859 A1 Herein, the specific handling process in Step 204 is as follows: the application program unregist ers the task-level exception handling functions registered in the task-level exception callback linked list by calling the unregist ration function of the exception handling module; the operating system destroys the linked list ; the exception control module reallocates a task-level exception callback linked list for a new running task again; and the application program registers exception handling functions for the new task in the task-level exception callback linked list. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to LECHI TRUONG whose telephone number is (571)272-3767. The examiner can normally be reached 10-8 PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor Young Kevin can be reached on (571)270-3180. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /LECHI TRUONG/Primary Examiner, Art Unit 2194 Application/Control Number: 17/720,236 Page 2 Art Unit: 2194 Application/Control Number: 17/720,236 Page 3 Art Unit: 2194 Application/Control Number: 17/720,236 Page 4 Art Unit: 2194 Application/Control Number: 17/720,236 Page 5 Art Unit: 2194 Application/Control Number: 17/720,236 Page 6 Art Unit: 2194 Application/Control Number: 17/720,236 Page 7 Art Unit: 2194 Application/Control Number: 17/720,236 Page 8 Art Unit: 2194 Application/Control Number: 17/720,236 Page 9 Art Unit: 2194 Application/Control Number: 17/720,236 Page 10 Art Unit: 2194 Application/Control Number: 17/720,236 Page 11 Art Unit: 2194 Application/Control Number: 17/720,236 Page 12 Art Unit: 2194 Application/Control Number: 17/720,236 Page 13 Art Unit: 2194 Application/Control Number: 17/720,236 Page 14 Art Unit: 2194 Application/Control Number: 17/720,236 Page 15 Art Unit: 2194 Application/Control Number: 17/720,236 Page 16 Art Unit: 2194 Application/Control Number: 17/720,236 Page 17 Art Unit: 2194 Application/Control Number: 17/720,236 Page 18 Art Unit: 2194 Application/Control Number: 17/720,236 Page 19 Art Unit: 2194 Application/Control Number: 17/720,236 Page 20 Art Unit: 2194 Application/Control Number: 17/720,236 Page 21 Art Unit: 2194 Application/Control Number: 17/720,236 Page 22 Art Unit: 2194 Application/Control Number: 17/720,236 Page 23 Art Unit: 2194 Application/Control Number: 17/720,236 Page 24 Art Unit: 2194 Application/Control Number: 17/720,236 Page 25 Art Unit: 2194 Application/Control Number: 17/720,236 Page 26 Art Unit: 2194 Application/Control Number: 17/720,236 Page 27 Art Unit: 2194 Application/Control Number: 17/720,236 Page 28 Art Unit: 2194
Read full office action

Prosecution Timeline

Show 17 earlier events
Jul 02, 2025
Request for Continued Examination
Jul 08, 2025
Response after Non-Final Action
Nov 19, 2025
Non-Final Rejection mailed — §103
Jan 05, 2026
Interview Requested
Jan 15, 2026
Applicant Interview (Telephonic)
Jan 22, 2026
Examiner Interview Summary
Feb 19, 2026
Response Filed
Jun 03, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12675339
WORKLOAD MEASURES BASED ON ACCESS LOCALITY
4y 2m to grant Granted Jul 07, 2026
Patent 12675336
SYSTEM AND METHOD FOR VISUALLY BUILDING CLOUD INFRASTRUCTURE AND RENDERING REQUIRED CONFIGURATIONS
2y 7m to grant Granted Jul 07, 2026
Patent 12670039
EYE-CATCHER INJECTION INTO LIBRARY TRANSFORMATION
2y 11m to grant Granted Jun 30, 2026
Patent 12670013
Dynamically Adapting Task Execution Parallelism of Distributed Applications
2y 7m to grant Granted Jun 30, 2026
Patent 12664017
REAL-TIME OPERATING SYSTEM WITH A CPU CYCLE TIME BASE
3y 10m to grant Granted Jun 23, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

7-8
Expected OA Rounds
87%
Grant Probability
99%
With Interview (+36.8%)
3y 0m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 884 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month