DETAILED ACTION
This office action is responsive to claims 1 - 20 filed in this application Jo et al., U.S. Patent Application No. 18/194,082, (Filed March 31, 2023) (“Jo”).
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement(s) (IDS) filed on 3/31/2023 & 6/5/2024 are in compliance with the provisions of 37 CFR 1.97, 1.98 and MPEP § 609. The references listed therein have been considered, and placed in the application file.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1 – 16 are rejected under 35 U.S.C. 101 because the claimed inventions are directed to non-statutory subject matter. The claimed inventions do not fall within a statutory category of invention because the claimed invention is directed to a “Mental Processes” abstract idea without significantly more.
1. Claims 1 and 14 recite install instrumentation points in respective tasks of an application, the instrumentation points including a source instrumentation point installed in a source task and a target instrumentation point installed in a target task, wherein the source task and the target task are configured to execute in parallel on the one or more processors, and wherein each task comprises a respective sequence of instructions executable by the one or more processors, and determine a measure of a causal relationship between the source instrumentation point and the target instrumentation point based on observation of a delay in the target instrumentation point induced by a delay amount generated by the source instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper, but for the recitation of generic computer components.
That is, other than reciting additional elements of generic computer components linking the abstract idea to a particular technological environment, nothing in the claim elements precludes the instrumentation point installation, delay observation, and relationship determination from being performed by a human using a computer as a tool. See MPEP 2106.05(h) & (f)(2). As drafted, the claimed process, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, which falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
This judicial exception is not integrated into a practical application because the claims only recite generic computer components linking the abstract idea to a particular technological environment. See MPEP 2106.05(h). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the identified additional elements of generic computer components have been identified by courts as well-understood, routine, and convention activity that do not amount to significantly more than the judicial exception. See MPEP 2106.05(d).
2. Claims 2 and 15 include the abstract idea of select the source task from among the tasks of the application, select the source instrumentation point based on it being in the selected source task, determine the delay amount, and predict timestamps of instrumentation points to be executed in the source task after a delay of the source instrumentation point, wherein the delay is determined based on the determined delay amount, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
3. Claim 3 includes the same abstract idea of the parent claims and contains the additional element of training a model which merely indicates a field of use of the abstract idea because the limitation does not recite any additional details of how the training is performed and only includes a statement of the intended use of the trained model, which fails to integrate the judicial exception into a practical application, see MPEP 2106.05(f), and is insufficient to amount to significantly more than the judicial exception because merely applying the abstract idea is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(f).
4. Claim 4 includes the abstract idea of select an instrumentation point having a variance of an inter-arrival time that exceeds a threshold variance to be the source instrumentation point from among the installed instrumentation points, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
5. Claim 5 includes the abstract idea of determine the delay amount based on a distribution of inter-arrival times of the target instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
6. Claim 6 includes the abstract idea of gradually increase the delay amount for the source instrumentation point from a minimum delay amount that is determined based on a distribution of inter-arrival times of the target instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
7. Claim 7 includes the abstract idea of wherein the measure of the causal relationship corresponds to a degree of a causal relationship between the delay amount generated by the source instrumentation point and the observed delay of the target instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
8. Claim 8 includes the abstract idea of determine the measure of the causal relationship based on a comparison between a probability that a recorded timestamp for the target instrumentation point follows an original distribution of the target instrumentation point and a probability that the recorded timestamp for the target instrumentation point follows a delayed distribution of the target instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
9. Claims 9 and 16 includes the abstract idea of estimate a predicted timestamp of an instrumentation point other than the source instrumentation point based on an analysis of the collected time information, and select the target instrumentation point based on a mismatch between a recorded timestamp thereof and the predicted timestamp, which covers performance of the limitations that can be performed in the mind or by pen and paper. The claim contains additional elements directed to insignificant pre-solution data gathering of time information occurring prior to the abstract idea of the claim, that fails to integrate the judicial exception into a practical application, see MPEP 2106.05(g) and is insufficient to amount to significantly more than the judicial exception because data gathering is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(d) & (g).
10. Claim 10 includes the abstract idea of cause the one or more processors to collect the time information for each of the plurality of instrumentation points identified based on calling context information, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
11. Claim 11 includes the abstract idea of the parent claims and contains the additional element of training a sequence predictor model which merely indicates a field of use of the abstract idea because the limitation does not recite any additional details of how the training is performed and only includes a statement of the intended use of the trained model, which fails to integrate the judicial exception into a practical application, see MPEP 2106.05(f), and is insufficient to amount to significantly more than the judicial exception because merely applying the abstract idea is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(f).
The claim contains an additional element directed to insignificant pre-solution data gathering of collected time information, that fails to integrate the judicial exception into a practical application, see MPEP 2106.05(g) and is insufficient to amount to significantly more than the judicial exception because data gathering is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(d) & (g).
12. Claim 12 includes the abstract idea of perform clustering inter-arrival times including a new inter-arrival time for an instrumentation point, based on an arrival at the instrumentation point, which covers performance of the limitations that can be performed in the mind or by pen and paper.
The claim contains the additional element of training a sequence predictor model based on a result of clustering the inter-arrival times which merely indicates a field of use of the abstract idea because the limitation does not recite any additional details of how the training is performed, which fails to integrate the judicial exception into a practical application, see MPEP 2106.05(f), and is insufficient to amount to significantly more than the judicial exception because merely applying the abstract idea is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(f).
The claim contains an insignificant data gathering additional element directed to obtain a distribution of the inter-arrival times for each cluster, that fails to integrate the judicial exception into a practical application, see MPEP 2106.05(g) and is insufficient to amount to significantly more than the judicial exception because data gathering is a function that has been identified by courts as well-understood, routine, and convention activity that does not amount to significantly more than the judicial exception, see MPEP 2106.05(d) & (g).
13. Claim 13 includes the abstract idea of cause the one or more processors to collect the time information for each of the plurality of instrumentation points identified based on calling context information, which covers performance of the limitations that can be performed in the mind or by pen and paper and contains no additional elements.
Claim Rejections - 35 USC § 112(b)
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1 – 20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
Claim 1 is rejected as being indefinite. Claim 1 recites “measure of a causal relationship.” It is unclear if the measure is intended to be “of” the claimed “relationship” or is a measure related to or based on the relationship. The specification provides a definition for the claim term “causal relationship” stating “A causal relationship is one in which a first event in a first task is required to cause a second event in a second task”. Jo at ¶ 0049. This represents a binary dependency relationship where two tasks are either causal or not. It is unclear how a “measure” can be taken “of” such a relationship beyond, perhaps, whether the relationship exists at all. However, the claim affirmatively recites that the relationship does exist by stating “of a causal relationship between the source instrumentation point and the target instrumentation point. It is therefore unclear if the measure is intended to be a measurement “of” the claimed “relationship” or is a measure of some other metric that is related to or based on the relationship but is not “of” the relationship itself.
Claims 7, 8 (including for “degree of a causal relationship”), and 13, are rejected for similar reasoning. Claims 2 – 13 are rejected as depending on claim 1.
Claim 1 is rejected as being indefinite. Claim 1 recites “determine a measure.” It is unclear if the measure is intended to be a numerical quantity, a quality or strength, or a purpose or goal of the causal relationship. While claims be may be broadly claimed, it is unclear in this case the functional nature of how the claimed “measure” relates to the determination step and the causal relationship element.
Claims 7, 8, and 13, are rejected for similar reasoning. Claims 2 – 13 are rejected as depending on claim 1.
Claim 1 is rejected as being indefinite. Claim 1 recites “delay in the target instrumentation point.” It is unclear if the delay is “in” the execution of the instrument point or if it a delayed starting of the execution of the point.
Claims 2, 5 - 7, 14, 15, are rejected for similar reasoning. Claims 2 – 13 are rejected as depending on claim 1. Claims 15 – 16 are rejected as depending on claim 14.
Claim 2 is rejected as being indefinite. Claim 2 recites “predict timestamps of instrumentation points to be executed in the source task” (emphasis added). It is unclear which timestamps are predicted, those for which the “to be” execution is predictable according to the source code of the source task and the instrumentation points or for instrumentation points where execution will actually occur when the source task is executed in real-time. It is unclear from the claim which instrumentation points are to have timestamps predicted for them since it is unclear which instrumentation points are “to be” executed.
Claims 15 is rejected for similar reasoning.
Claim 2 is rejected as being indefinite. Claim 2 recites “inter-arrival.” It is unclear if the time for each arrival is a time between a source and target instrumentation point as suggested from claim 1 or if it is between arrivals at the same instrumentation point such as when if the instrumentation point is executed in a loop or in multiple iterations of the application.
Claims 3, 4, 5, 6, 11, and 12 are rejected for similar reasoning.
Claim 2 is rejected as being indefinite. Claim 2 recites “after a delay.” It is unclear if the timestamp prediction is performed after the delay, if the prediction is restricted to only instrumentation points that are listed for execution in the application after a source instrumentation point that has a delay, or if it is for all instrumentation points that will actually be executed after the source instrumentation point that has a delay regardless of where they are listed in the application. It is also unclear if the instrumentation points for which the timestamps are predicted are selected based on being executed “after” the source instrumentation point that has a delay or based on being executed “after” the completion of the delay.
Claim 15 is rejected for similar reasoning.
Claim 3 is rejected as being indefinite. Claim 3 recites train a model “based on detection of a mismatch.” It is unclear if “based on” means the model is trained when the mismatch is detected or if the detected mismatch is used as input to the training of the model.
Claim 9 is rejected for similar reasoning. Claims 10 and 11 are rejected as depending on claim 9.
Claim 3 is rejected as being indefinite. Claim 3 recites “arrivals.” It is unclear if the arrivals refer to reviewing code or trace log files or to the execution of code.
Claim 12 is rejected for similar reasoning.
Claim 4 is rejected as being indefinite. Claim 4 recites “variance of an inter-arrival time.” It is unclear if the claimed “variance of an inter-arrival time” varies from itself, from some other inter-arrival times, from the threshold variance value, or from some other value.
Claim 5 is rejected as being indefinite. Claim 5 recites the term “distribution.” It is unclear if the claimed “distribution” is an apportionment, assignment, average, probability, or something else. It is thus unclear the meaning of the terms which are modified by distribution, such as a “distribution” of inter-arrival times in claim 5 which could mean an average of a plurality of times, a set of individual times across an interval, or an apportionment, clustering, grouping, or assigning of the times.
Claims 5, 6, 8, 12, and 18 are rejected for similar reasoning.
Claim 5 is rejected as being indefinite. Claim 5 recites determining delay based on “inter-arrival times” of instrumentation points. It is unclear how there are a plurality of “inter-arrival times” that are used to determine the delay amount when claim 1, from which claim 5 depends, states that “a delay” is observed to be induced by “a delay” from the “source instrumentation point” which are both singular delay amounts and not a plurality that could result in a plurality of “inter-arrival times” as claimed in claim 5.
Claims 5, 6, 11, and 12 are rejected for similar reasoning.
Claim 6 is rejected as being indefinite. The term “gradually” in claim 6 is a relative term which renders the claim indefinite. The term "gradually" is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention.
Claim 6 is rejected as being indefinite. The term “minimum” in claim 6 is a relative term which renders the claim indefinite. The term "minimum" is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention.
Claim 7 is rejected as being indefinite. Claim 7 recites a measure of the causal relationship “corresponds to” a degree of a causal relationship. It is unclear how the recited measure corresponds to the degree since in one aspect a measure and a degree are synonyms. Since both terms are being used in the claim it is suggested that the meanings are intended to be different but it is unclear as to how that difference is to be understood.
Claim 8 is rejected as being indefinite. Claim 8 includes various recitations of “follows” such as “a probability that” a timestamp “follows” an original distribution. It is unclear if “follows” is intended to mean “comes after,” “matches,” or some other meaning.
Claim 8 is rejected as being indefinite. Claim 8 includes various recitations of “probability”. It is unclear if the recited probability is intended to mean “likelihood” or is intended to mean a percentage or ratio.
Claim 9 is rejected as being indefinite. Claim 9 recites “select the target instrumentation point based on a mismatch between a recorded timestamp thereof and the predicted timestamp.” It is unclear how a recorded timestamp of a selected target instrumentation point can be identified and used to perform the section of the target instrumentation point when the target instrumentation point has not yet been selected and thus is not the “selected target instrumentation point.”
Claims 10 and 11 are rejected as depending on claim 9.
Claim 10 is rejected as being indefinite. There is a lack of antecedent basis for the claimed “the plurality of instrumentation points identified.” No “plurality of instrumentation points identified” has been previously introduced in the claim or in a claim from which it descends.
Claim 10 is rejected as being indefinite. Claim 10 recites “collect the time information for each of the plurality of instrumentation points identified based on calling context information.” It is unclear if the time information is collected based on calling context information or if the plurality of instrumentation points are identified based on calling context information.
Claim 11 is rejected as being indefinite. Claim 11 recites “last visit…subsequent visit…next visit.” It is unclear of the order of the visits since a last visit would not have any visits which have occurred after it, but a “subsequent” visit is recite which suggests the “subsequent” visit is really the “last” visit. It is also unclear if the “next visit” comes after the last and subsequent visit or if it comes in-between.
Claim 12 is rejected as being indefinite. Claim 12 recites “perform clustering inter-arrival times.” It is unclear if only perform, only clustering, or perform and clustering are intended to be used as verbs to identify functional steps performed in the limitation. It is unclear if only performing occurs and what is being performed are “clustering inter-arrival times” which might be intended to be a type of inter-arrival times, i.e. a “clustering” type, or if only clustering is intended to occur and what is being clustered are “inter-arrival times.”
Claim 12 is rejected as being indefinite. There is a lack of antecedent basis for the claimed “each cluster.” No plurality of “clusters” has been previously introduced in the claim or in a claim from which it descends.
Claim 12 is rejected as being indefinite. Claim 12 recites “based on an arrival at the instrumentation point.” It is unclear if the perform, clustering, and/or the new inter-arrival time is “based on an arrival at the instrumentation point.”
Claim 13 is rejected as being indefinite. Claim 13 recites “based on the causal relationship measure.” It is unclear if the “generate a profile” or the “control a processor setting/allocation” is “based on the causal relationship measure.”
Claim 14 is rejected as being indefinite. Claim 1 recites “determining causality information between a source instrumentation point and a target instrumentation point based on observation of a delay in the target instrumentation point triggered by a delay in the source instrumentation point among the plurality of instrumentation points (emphasis added).” It is unclear if the determined “causality information” is for the source and target points or is “among the plurality of instrumentation points that are “between” the source and target points.
Claims 15 and 16 are rejected as depending on claim 14.
Claim 16 is rejected as being indefinite. Claim 16 recites “the instrumentation points.” It is unclear if the “instrumentation points” being referred to are “the plurality of instrumentation points” the two different “an instrumentation point,” or some other instrumentation points.
Claim 16 is rejected as being indefinite. Claim 16 recites “an instrumentation point that is not the source” and “determining an instrumentation point.” It is unclear if these are intended to be the same or different instrumentation points.
Claim 17 is rejected as being indefinite. Claim 17 recites “the execution units including a source execution unit…and a target execution unit.” It is unclear if each execution units “includes” both a source and target or if at least one execution unit IS a source execution unit and at least one execution unit IS a target execution unit.
Claims 18 – 20 are rejected as depending on claim 17.
Claim 17 is rejected as being indefinite. Claim 17 recites “determining an extent to which the visit times are affected by the pause times.” It is unclear if the claimed “extent…affected” refers to an effect on the time of each visit or the time between visits, or if the limitation refers to a number of visit times that are affected, or a likelihood of being affected.
Claims 18 – 20 are rejected as depending on claim 17. Claim 19 is rejected for substantially similar reasoning.
Claim 18 is rejected as being indefinite. Claim 18 recites pause times that “vary randomly.” It is unclear if the random variability is a random amount of variation for the time of each pause, a random variation between the pause times, or that the pause times selected for variation only randomly.
Claims 18 – 20 are rejected as depending on claim 17.
Claim 20 is rejected as being indefinite. The term “related” in claim 20 is a relative term which renders the claim indefinite. The term " related " is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention.
Claim Rejections 35 U.S.C. §103
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 of this title, 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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claims 1, 2, 4 – 10, 13 - 20 are rejected under 35 U.S.C. 103 as being unpatentable over Pan et al., United States Patent Application Publication No. 2009/0320021 (Published December 24, 2009 filed June 19, 2008) (“Pan”) in view of Iyer, United States Patent No. 10,545,850 (Patented January 28, 2020, filed October 18, 2018) (“Iyer”)
Claims 1 and 14
With respect to claims 1 and 14, Pan teaches the invention as claimed including an electronic device comprising:
one or more processors; a memory storing instructions configured to cause the one or more processors to: install instrumentation points in respective tasks of an application, the instrumentation points including a source instrumentation point installed in a source task and a target instrumentation point installed in a target task, wherein the source task and the target task are configured to execute in parallel on the one or more processors, and wherein each task comprises a respective sequence of instructions executable by the one or more processors, and determine a measure of a causal relationship between the source instrumentation point and the target instrumentation point based on observation of a delay in the target instrumentation point …generated by the source instrumentation point. {Instrumentation points are added to dependent threads to identify timestamps and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution).}
However, Pan doesn’t explicitly teach the limitation:
induced by a delay amount {Iyer does teach this limitation. Iyer teaches that tracking delays between instrumentation points in parallel threads, as taught in Pan, may include intentionally inserting the instrumentation point delays into the source code in order to identify processes that are giving rise to faults. Iyer at Abstract; id. at col. 3 ll. 1 – 52; id. at col. 12 ll. 15 – 54; id. at col. 13 ll. 42 - 50.
Pan and Iyer are analogous art because they are from the “same field of endeavor” and are both from the same “problem-solving area.” Specifically, they are both from the field of application monitoring, and both are trying to solve the problem of how to detect anomalous application performance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to combine tracking delays between instrumentation points in parallel threads, as taught in Pan, with inserting intentional delays, as taught in Iyer. Iyer teaches that instrumentation can introduce faults. Id. at col. 1 ll. 30 - 36. Therefore, one having ordinary skill in the art would have been motivated to combine tracking delays between instrumentation points in parallel threads, as taught in Pan, with inserting intentional delays, as taught in Iyer, for the purpose of using a known delay based instrumentation fault detection method with a system that uses instrumentation delays to detect faults.}
Claims 2 and 15
With respect to claims 2 and 15, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to: select the source task from among the tasks of the application, select the source instrumentation point based on it being in the selected source task, determine the delay amount, and predict timestamps of instrumentation points to be executed in the source task after a delay of the source instrumentation point, wherein the delay is determined based on the determined delay amount. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution).}
Claim 4
With respect to claims 4, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to select an instrumentation point having a variance of an inter-arrival time that exceeds a threshold variance to be the source instrumentation point from among the installed instrumentation points. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Claim 5
With respect to claims 5, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to determine the …based on a distribution of inter-arrival times of the target instrumentation point. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
delay amount {Intentionally inserting the instrumentation point delays into the source code in order to identify processes that are giving rise to faults. Iyer at Abstract; id. at col. 3 ll. 1 – 52; id. at col. 12 ll. 15 – 54; id. at col. 13 ll. 42 – 50; id. at col. 8 ln. 51 – col. 9 ln. 2 (amount of delay).}
Claim 6
With respect to claims 6, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to gradually increase the … for the source instrumentation point from a minimum delay amount that is determined based on a distribution of inter-arrival times of the target instrumentation point. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
delay amount {Intentionally inserting the instrumentation point delays into the source code in order to identify processes that are giving rise to faults. Iyer at Abstract; id. at col. 3 ll. 1 – 52; id. at col. 12 ll. 15 – 54; id. at col. 13 ll. 42 – 50; id. at col. 8 ln. 51 – col. 9 ln. 2 (amount of delay).}
Claim 7
With respect to claims 7, Pan and Iyer, teach the invention as claimed including:
wherein the measure of the causal relationship corresponds to a degree of a causal relationship between the … generated by the source instrumentation point and the observed delay of the target instrumentation point. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
delay amount {Intentionally inserting the instrumentation point delays into the source code in order to identify processes that are giving rise to faults. Iyer at Abstract; id. at col. 3 ll. 1 – 52; id. at col. 12 ll. 15 – 54; id. at col. 13 ll. 42 – 50; id. at col. 8 ln. 51 – col. 9 ln. 2 (amount of delay).}
Claim 8
With respect to claims 8, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to determine the measure of the causal relationship based on a comparison between a probability that a recorded timestamp for the target instrumentation point follows an original distribution of the target instrumentation point and a probability that the recorded timestamp for the target instrumentation point follows a delayed distribution of the target instrumentation point. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Claim 9
With respect to claims 9, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to: collect time information of the instrumentation points by iteratively executing the application, estimate a predicted timestamp of an instrumentation point other than the source instrumentation point based on an analysis of the collected time information, and select the target instrumentation point based on a mismatch between a recorded timestamp thereof and the predicted timestamp. {Instrumentation points are added to dependent threads to identify and track time delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold time for anomaly detection).}
Claim 10
With respect to claims 10, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to collect the time information for each of the plurality of instrumentation points identified based on calling context information. {Instrumentation points are added to dependent threads to identify timestamps and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Claim 13
With respect to claims 13, Pan and Iyer, teach the invention as claimed including:
wherein the instructions are further configured to cause the one or more processors to: generate a profile configured to control a processor core setting or a processor core allocation based on the causal relationship measure. {Instrumentation points are added to dependent threads to identify and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold); id. at ¶¶ 0141 & 0144 (performance evaluator performed on multi-core CPU).}
Claim 16
With respect to claims 16, Pan and Iyer, teach the invention as claimed including:
wherein the determining of the causality information comprises: collecting time information of the plurality of instrumentation points based on iteratively executing the application; estimating a predicted timestamp of an instrumentation point that is not the source instrumentation point based on an analysis of the collected time information; and determining an instrumentation point in which a mismatch between a recorded timestamp and the predicted timestamp is observed to be the target instrumentation point among the instrumentation points. {Instrumentation points are added to dependent threads to identify and track time delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold time for anomaly detection).}
Claim 17
With respect to claim 17, Pan teaches the invention as claimed including a method comprising:
inserting instrumentation code into execution units of an application, wherein the execution units are processes or threads some of which are configured to execute in parallel with respect to each other, the execution units including a source execution unit including inserted source instrumentation code and a target execution unit including inserted target instrumentation code; executing the application, including: executing the source instrumentation code, …source…wherein each time the target instrumentation code is executed a visit time is captured for the target execution unit, wherein each visit time corresponds to a time at which the target instrumentation code is executed; and determining an extent to which the visit times are affected by the pause times. {Instrumentation points are added to dependent threads to identify timestamps and track delays in performance of a dependent thread due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution).}
However, Pan doesn’t explicitly teach the limitation:
wherein each time the [source] instrumentation code is executed it induces pause times of pausing execution of the source execution unit; executing the target execution unit, {Iyer does teach this limitation. Iyer teaches that tracking delays between instrumentation points in parallel threads, as taught in Pan, may include intentionally inserting the instrumentation point delays into the source code in order to identify processes that are giving rise to faults. Iyer at Abstract; id. at col. 3 ll. 1 – 52; id. at col. 12 ll. 15 – 54; id. at col. 13 ll. 42 - 50.
Pan and Iyer are analogous art because they are from the “same field of endeavor” and are both from the same “problem-solving area.” Specifically, they are both from the field of application monitoring, and both are trying to solve the problem of how to detect anomalous application performance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to combine tracking delays between instrumentation points in parallel threads, as taught in Pan, with inserting intentional delays, as taught in Iyer. Iyer teaches that instrumentation can introduce faults. Id. at col. 1 ll. 30 - 36. Therefore, one having ordinary skill in the art would have been motivated to combine tracking delays between instrumentation points in parallel threads, as taught in Pan, with inserting intentional delays, as taught in Iyer, for the purpose of using a known delay based instrumentation fault detection method with a system that uses instrumentation delays to detect faults.}
Claim 18
With respect to claims 18, Pan and Iyer, teach the invention as claimed including:
wherein the pause times vary randomly, and wherein the extent is determined based on a distribution of the pause times and a distribution of the visit times. {A plurality of delays between dependent threads and threads on which it depends are tracked where the delays may be varied such as being beyond a threshold time. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Claim 19
With respect to claims 19, Pan and Iyer, teach the invention as claimed including:
wherein a second execution unit includes second target instrumentation code, wherein the executing the application further comprises executing the second target instrumentation code which captures second visit times of the second target instrumentation code, and wherein the method further comprises: determining an extent to which the second visit times are affected by the pause times. {A plurality of instrumentation points are added to a plurality of dependent threads to identify and track delays in performance of dependent threads due to delays from threads on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Claim 20
With respect to claims 20, Pan and Iyer, teach the invention as claimed including:
further comprising: determining that the target execution unit is causally related to the source execution unit based on the extent to which the visit times are affected by the pause times; and determining that the second target execution unit is not causally related to the source execution unit based on the extent to which the second visit times are affected by the pause times. {Instrumentation points are added to dependent threads to identify and track delays in performance of identified dependent threads due to a delay from a thread on which it depends. Pan at Abstract; id. at ¶¶ 0002, 0053, 0078, 0115 - 0117, 0090, 0113; id. at ¶¶ 0005 & 0119 (synchronous thread execution); id. at ¶¶ 0085, 0090, 0093 (threshold).}
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to THEODORE E HEBERT whose telephone number is (571)270-1409. The examiner can normally be reached on Monday to Friday 9:00 a.m. to 6: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, Lewis Bullock can be reached on 571-272-3759. 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.
//T.H./ October 18, 2024
Examiner, Art Unit 2199
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199