Prosecution Insights
Last updated: August 18, 2026
Application No. 17/135,576

ONLINE COMPUTER SYSTEM WITH METHODOLOGIES FOR DISTRIBUTED TRACE AGGREGATION AND FOR TARGETED DISTRIBUTED TRACING

Non-Final OA §103
Filed
Dec 28, 2020
Priority
Sep 26, 2014 — divisional of 10/880,191
Examiner
RAZA, MUHAMMAD A
Art Unit
2449
Tech Center
2400 — Computer Networks
Assignee
Netflix Inc.
OA Round
7 (Non-Final)
56%
Grant Probability
Moderate
7-8
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 56% of resolved cases
56%
Career Allowance Rate
159 granted / 282 resolved
-1.6% vs TC avg
Strong +69% interview lift
Without
With
+68.9%
Interview Lift
resolved cases with interview
Typical timeline
3y 9m
Avg Prosecution
14 currently pending
Career history
310
Total Applications
across all art units

Statute-Specific Performance

§101
18.8%
-21.2% vs TC avg
§103
48.8%
+8.8% vs TC avg
§102
5.2%
-34.8% vs TC avg
§112
23.0%
-17.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 282 resolved cases

Office Action

§103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Status of Claims Claims 21-24, 26-33, and 35-40 are pending in this Office Action. Response to Arguments Applicant's arguments filed in the amendment on 04/21/2026, have been fully considered but they are moot in view of new grounds of rejections. The reasons are set forth below. Drawings The formal drawings received on 12/28/2020 have been entered. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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. Claim(s) 21-24, 26-33, and 35-41 is/are rejected under 35 U.S.C. 103 as being unpatentable over Sigelman et al. (Dapper, a Large-Scale Distributed Systems Tracing Infrastructure, April 2010, Google, pages 1-14, hereinafter, “Sigelman,” provided in the IDS dated 03/15/2021) in view of Zhang et al. (US 20150180755), and further in view of Reynolds et al. (Pip: Detecting the Unexpected in Distributed Systems, 07 May 2007, The University of Wisconsin Madison, pages 1-17, hereinafter, “Reynolds”) and Banks et al. (US 2011/0134797). Claims 21, 30, 39. Sigelman teaches: A method, comprising: generating a plurality of trace events at a plurality of system nodes of an online distributed computer system for a plurality of request paths, – on pages 1-4, 8, 12, 13, Figs. 1-5 (Here we introduce the design of Dapper, Google’s production distributed systems tracing infrastructure. The Dapper “Depot API,” or DAPI, provides direct access to the distributed trace records in the regional Dapper repositories (or “Depots”). Dapper uses a global identifier to tie together related events from various parts of a distributed system. An additional design goal is for tracing data to be available for analysis quickly after it is generated: ideally within a minute. A tracing infrastructure for distributed services needs to record information about all the work done in a system on behalf of a given initiator. The resulting system also includes code to collect traces, tools to visualize them, and libraries and APIs (Application Programming Interfaces) to analyze large collections of traces. Figure 3 provides a more detailed view of the logged events in a typical Dapper trace span. A simple yet useful distributed trace for this request would be a collection of message identifiers and timestamped events for every message sent and received at each server. When a thread handles a traced control path, Dapper attaches a trace context to thread-local storage.) wherein each trace event in the plurality of trace events is generated for both a corresponding request path in the plurality of request paths and for a corresponding span of the corresponding request path, – on pages 1-4, Figs. 1-5 (For example, Figure 1 shows a service with 5 servers: a front-end (A), two middle-tiers (B and C) and two backends (D and E). When a user request (the initiator in this case) arrives at the front end, it sends two RPCs to servers B and C. B can respond right away, but C requires work from backends D and E before it can reply to A, which in turn responds to the originating request. A simple yet useful distributed trace for this request would be a collection of message identifiers and timestamped events for every message sent and received at each server. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. When a thread handles a traced control path, Dapper attaches a trace context to thread-local storage. A trace context is a small and easily copyable container of span attributes such as trace and span ids.) the corresponding span representing computation performed by a system node at which the trace event is generated; – on pages 3, Figs. 1-5 (In a Dapper trace tree, the tree nodes are basic units of work which we refer to as spans. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace.) wherein the subset of the plurality of trace events is identified based on one or more span identifiers associated with the particular system node and one or more parent span identifiers associated with the parent system node in the subset of the plurality of trace events; – on pages 2-4, Figs. 1-5 (Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. All spans associated with a specific trace also share a common trace id (not shown in the figure).) computing a span metric aggregate from one or more span metrics in the subset of the plurality of trace events; – on pages 3-5, 13, Figs. 1-5 (Two classes of solutions have been proposed to aggregate this information so that one can associate all record entries with a given initiator (e.g., RequestX in Figure 1), black-box and annotation-based monitoring schemes. Black-box schemes [1, 15, 2] assume there is no additional information other than the message record described above, and use statistical regression techniques to infer that association. Figure 3 provides a more detailed view of the logged events in a typical Dapper trace span. Span data is written (1) to local log files. Annotation-based schemes [3, 12, 9, 16] rely on applications or middleware to explicitly tag every record with a global identifier that links these message records back to the originating request. Dapper uses a global identifier to tie together related events from various parts of a distributed system.) wherein the plurality of trace events being associated with a particular system node and a parent system node of the particular system node – on pages 1-14 (In a Dapper trace tree, the tree nodes are basic units of work which we refer to as spans. The edges indicate a casual relationship between a span and its parent span. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. Spans created without a parent id are known as root spans. All spans associated with a specific trace also share a common trace id. The instrumentation points described above are sufficient to derive detailed traces of complex distributed systems, making the core Dapper functionality available to otherwise unmodified Google applications.) Sigelman does not explicitly teach: identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node across multiple request paths included in the plurality of request paths. However, Zhang teaches: identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node across multiple request paths included in the plurality of request paths, – in paragraphs [0042]-[0070] (The trace slice clustering 401 constructs the clusters of trace slices based on the similarity of the paths of packets. This path similarity is determined as the similarity of the switch id and the port pair which are represented as a trace slice vector.) It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Sigelman with Zhang to include identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node across multiple request paths included in the plurality of request paths, as taught by Zhang, in paragraphs [0002]-[0008], to provide a technique for network monitoring that includes providing network packet event characterization and analysis for network monitoring that comprises supporting summarization and characterization of network packet traces collected across multiple processing elements of different types in a network. Combination of Sigelman and Zhang does not explicitly teach: displaying, in a graphical user interface, a graphical representation of the particular system node; and displaying, in the graphical user interface, the span metric aggregate in conjunction with the display of the graphical representation of the particular system node. However, Reynolds teaches: displaying, in a graphical user interface, a graphical representation of the particular system node; and – on pages 5, 12-14 (Behavior Explorer - Interactive GUI displays: Casual Path Structure, Communication Structure, Valid/Invalid Paths, Resource Usage Graphs.) displaying, in the graphical user interface, the span metric aggregate in conjunction with the display of the graphical representation of the particular system node. – on pages 5, 12-14 (Behavior Explorer - Interactive GUI displays: Casual Path Structure, Communication Structure, Valid/Invalid Paths, Resource Usage Graphs.) It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Sigelman and Zhang with Reynolds to include displaying, in a graphical user interface, a graphical representation of the particular system node; and displaying, in the graphical user interface, the span metric aggregate in conjunction with the display of the graphical representation of the particular system node, as taught by Sigelman, on page 4, to allow application developers to enrich Dapper traces with additional information that may be useful to monitor higher level system behavior or to help in debugging problems. Combination of Sigelman, Zhang, and Reynolds does not explicitly teach: wherein each trace event is generated based on one or more interprocess communications. However, Banks teaches: wherein each trace event is generated based on one or more interprocess communications – in paragraphs (In response, a remote procedure call may be transmitted from the host 110 to the node 22 instructing the node 22 to transmit such a route trace message. In response, the core logic 80 of the node 22 creates a route trace message and wirelessly transmits such message via the communication device 77 of the node 22.) It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Sigelman, Zhang, and Reynolds with Banks to include wherein each trace event is generated based on one or more interprocess communications, as taught by Banks, in paragraph [0123], to discover the status or health of the route. Claims 22, 31. The method of claim 21 – refer to the indicated claim for the reference(s). Sigelman teaches: further comprising collecting the plurality of trace events from the plurality of system nodes. – on pages 4, 5, Figs. 1-5 (The Dapper trace logging and collection pipeline is a three-stage process (see Figure 5). First, span data is written (1) to local log files. It is then pulled (2) from all production hosts by Dapper daemons and collection infrastructure and finally written (3) to a cell in one of several regional Dapper Bigtable [8] repositories.) Claims 23, 32. The method of claim 21 – refer to the indicated claim for the reference(s). Sigelman teaches: wherein the computation performed by the system node occurs on behalf of an interprocess communication call from a parent span in the corresponding request path, wherein the parent span corresponding to one of the system nodes in the corresponding request path. – on pages 1-4, Figs. 1-5 (Nearly all of Google’s inter-process communication is built around a single RPC framework with bindings in both C++ and Java. We have instrumented that framework to define spans around all RPCs. The span and trace ids are transmitted from client to server for traced RPCs. For example, Figure 1 shows a service with 5 servers: a front-end (A), two middle-tiers (B and C) and two backends (D and E). When a user request (the initiator in this case) arrives at the front end, it sends two RPCs to servers B and C. B can respond right away, but C requires work from backends D and E before it can reply to A, which in turn responds to the originating request. A simple yet useful distributed trace for this request would be a collection of message identifiers and timestamped events for every message sent and received at each server. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. When a thread handles a traced control path, Dapper attaches a trace context to thread-local storage. A trace context is a small and easily copyable container of span attributes such as trace and span ids.) Claims 24, 33, 40. The method of claim 21 – refer to the indicated claim for the reference(s). Sigelman teaches: wherein identifying the subset of the plurality of trace events associated with the particular system node and the parent system node is based on one or more trace identifiers, the one or more span identifiers, and one or more node identifiers in the subset of the plurality of trace events. – on pages 3-4 (We illustrate how spans form the structure of a larger trace in Figure 2. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. Spans created without a parent id are known as root spans. All spans associated with a specific trace also share a common trace id.) Claims 26, 35. The method of claim 25 – refer to the indicated claim for the reference(s). Sigelman teaches: wherein identifying the subset of the plurality of trace events associated with the particular system node and the parent system node is based on one or more trace identifiers, one or more span identifiers, the one or more parent span identifiers, and one or more node identifiers in the subset of the plurality of trace events. – on pages 3-4 (We illustrate how spans form the structure of a larger trace in Figure 2. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. Spans created without a parent id are known as root spans. All spans associated with a specific trace also share a common trace id.) Claims 27, 36. The method of claim 21 – refer to the indicated claim for the reference(s). Reynolds further teaches: wherein the graphical user interface comprises a visual call graph having a set of visual nodes and one or more visual edges connecting the set of visual nodes. – on pages 5, 12-14 (Behavior Explorer - Interactive GUI displays: Casual Path Structure, Communication Structure, Valid/Invalid Paths, Resource Usage Graphs.) Claims 28, 37. The method of claim 21 – refer to the indicated claim for the reference(s). Sigelman teaches: wherein the span metric aggregate is displayed in response to detecting input directed to the graphical representation. – on pages 9-10 (The user describes the service and time window they’re interested in, as well as whatever information they need to distinguish trace patterns (in this case, the span name).) Claims 29, 38. The method of claim 21 – refer to the indicated claim for the reference(s). Reynolds further teaches: wherein the span metric aggregate is displayed in response to detecting input directed to a graphical representation of a graph edge visually connecting the graphical representation of the particular system node with a graphical representation of another node of the plurality of system nodes. – on pages 5, 12-14 (Behavior Explorer - Interactive GUI displays: Casual Path Structure, Communication Structure, Valid/Invalid Paths, Resource Usage Graphs.) Claim 41. The method of claim 21, – refer to the indicated claim for the reference(s). Sigelman teaches: wherein the subset of the plurality of trace events is identified based on one or more span identifiers and one or more parent span identifiers included in the subset of the plurality of trace events. – on pages 1-14 (In a Dapper trace tree, the tree nodes are basic units of work which we refer to as spans. The edges indicate a casual relationship between a span and its parent span. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. Spans created without a parent id are known as root spans. All spans associated with a specific trace also share a common trace id. The instrumentation points described above are sufficient to derive detailed traces of complex distributed systems, making the core Dapper functionality available to otherwise unmodified Google applications.) REMARKS Applicant has presented amendments to the claims. The examiner maintains the rejections, see remarks below. Argument 1: The Applicant argues that the art cited on the record does not teach identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node and a parent system node of the particular system node across multiple request paths included in the plurality of request paths, wherein the subset of the plurality of trace events is identified based on one or more span identifiers associated with the particular system node and one or more parent span identifiers associated with the parent system node in the subset of the plurality of trace events; computing a span metric aggregate from one or more span metrics in the subset of the plurality of trace events, as recited in the independent claims. In response, the examiner respectfully submits: Sigelman teaches wherein the subset of the plurality of trace events is identified based on one or more span identifiers associated with the particular system node and one or more parent span identifiers associated with the parent system node in the subset of the plurality of trace events; – on pages 2-4, Figs. 1-5 (Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. All spans associated with a specific trace also share a common trace id (not shown in the figure).) Sigelman teaches computing a span metric aggregate from one or more span metrics in the subset of the plurality of trace events; – on pages 3-5, 13, Figs. 1-5 (Two classes of solutions have been proposed to aggregate this information so that one can associate all record entries with a given initiator (e.g., RequestX in Figure 1), black-box and annotation-based monitoring schemes. Black-box schemes [1, 15, 2] assume there is no additional information other than the message record described above, and use statistical regression techniques to infer that association. Figure 3 provides a more detailed view of the logged events in a typical Dapper trace span. Span data is written (1) to local log files. Annotation-based schemes [3, 12, 9, 16] rely on applications or middleware to explicitly tag every record with a global identifier that links these message records back to the originating request. Dapper uses a global identifier to tie together related events from various parts of a distributed system.) Sigelman teaches wherein the plurality of trace events being associated with a particular system node and a parent system node of the particular system node – on pages 1-14 (In a Dapper trace tree, the tree nodes are basic units of work which we refer to as spans. The edges indicate a casual relationship between a span and its parent span. Dapper records a human-readable span name for each span, as well as a span id and parent id in order to reconstruct the causal relationships between the individual spans in a single distributed trace. Spans created without a parent id are known as root spans. All spans associated with a specific trace also share a common trace id. The instrumentation points described above are sufficient to derive detailed traces of complex distributed systems, making the core Dapper functionality available to otherwise unmodified Google applications.) However, Zhang teaches identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node across multiple request paths included in the plurality of request paths, – in paragraphs [0042]-[0070] (The trace slice clustering 401 constructs the clusters of trace slices based on the similarity of the paths of packets. This path similarity is determined as the similarity of the switch id and the port pair which are represented as a trace slice vector.) It would have been obvious for one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Sigelman with Zhang to include identifying, for the plurality of request paths, a subset of the plurality of trace events based on the subset of the plurality of trace events being associated with a particular system node across multiple request paths included in the plurality of request paths, as taught by Zhang, in paragraphs [0002]-[0008], to provide a technique for network monitoring that includes providing network packet event characterization and analysis for network monitoring that comprises supporting summarization and characterization of network packet traces collected across multiple processing elements of different types in a network. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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. Any inquiry concerning this communication or earlier communications from the examiner should be directed to MUHAMMAD RAZA whose telephone number is (571)272-7734. The examiner can normally be reached Monday-Friday, 7:00 A.M.-5:00 P.M.. 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, Vivek Srivastava can be reached on (571)272-7304. 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. /MUHAMMAD RAZA/Primary Examiner, Art Unit 2449
Read full office action

Prosecution Timeline

Show 25 earlier events
Nov 17, 2025
Examiner Interview (Telephonic)
Dec 09, 2025
Final Rejection mailed — §103
Feb 06, 2026
Response after Non-Final Action
Mar 04, 2026
Request for Continued Examination
Mar 16, 2026
Response after Non-Final Action
Mar 23, 2026
Examiner Interview (Telephonic)
Apr 02, 2026
Examiner Interview Summary
Aug 05, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12689670
SYSTEMS AND METHODS FOR MONITORING HEALTH OF A DIGITAL APPLICATION SYSTEM
1y 8m to grant Granted Jul 21, 2026
Patent 12676773
MANAGING ACCESS TO PRIVATE NETWORK RESOURCES FROM EXTERNAL DEVICES VIA A RELAY COMPUTING ELEMENT
1y 9m to grant Granted Jul 07, 2026
Patent 12645693
SYSTEMS AND METHODS FOR GENERATING A TARGET DATASET HAVING A TARGET DATA FORMAT ON A USER DEVICE
4y 0m to grant Granted Jun 02, 2026
Patent 12621227
SERVICE ASSURANCE IN 5G NETWORKS USING KEY PERFORMANCE INDICATOR NAVIGATION TOOL
3y 7m to grant Granted May 05, 2026
Patent 12621372
DATA TRANSFER DEVICE AND METHOD
1y 8m to grant Granted May 05, 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
56%
Grant Probability
99%
With Interview (+68.9%)
3y 9m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 282 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