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 .
Claims 1 – 2, 4, 6 – 13, 15 – 20 are pending.
Priority
Applicant’s claim for the benefit of a prior-filed application under 35 U.S.C. 119(e) or under 35 U.S.C. 120, 121, 365(c), or 386(c) is acknowledged.
Terminal Disclaimer
The terminal disclaimer filed on 18 October 2024 disclaiming the terminal portion of any patent granted on this application which would extend beyond the expiration date of U.S. Patent No. 11,941,030 and 11,537,634 has been reviewed and is accepted. The terminal disclaimer has been recorded.
Response to Arguments
Applicant’s arguments have been fully considered and are persuasive in view of the amended claim language. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Krajec modified by Meister and Li, see rejection below. Further clarification of the tally records, delta record, updated values within, association of the expiring timer, and recursive property may help in overcoming the current prior art rejection and help move prosecution towards allowance.
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.
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, 3, 5-6, 7, 8, 11-15, and 18-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over US Pre-Grant Publication 2013/0232174 to Krajec in view of U.S. Patent Application Publication No. 2021/0303528 to Meister et al (hereinafter Meister), in further view of U.S. Patent Application Publication No. 2018/0137014 issued to Li et al (hereinafter Li).
As to claim 1, Krajec discloses a method implemented by a computing device and comprising:
determining that a first delta record exists for a first interior node in a hierarchical tree corresponding to a structure of a file system, wherein the first interior node is a new parent to a leaf node in the hierarchical tree that corresponds to a file moved to a new directory of the file system, and the first interior node corresponds to the new directory (Krajec: ¶¶0032-0033 – superset is the “parent” and activity is captured with regard to a time series. See fig. 7 in which examiner notes the highlighted records are the child delta records pertaining to at least one interior node in each instance of the time series of the example of fig. 7, which examiner further notes is discussed beginning at ¶0135. See also ¶0029 which describes a system of node tracking, naming and visualization that performs equivalent functionality to that commonly performed by a “directory of a file system”, and Krajec: Fig. 7 shows updates to interior nodes at time steps. See ¶¶0074-0075 – message passing, changes to graphs based upon received updates, user computer shows, i.e. stored locally, change records at least long enough to perform the graph display functions taught. Examiner notes that fig. 2 shows multiple devices outside the client device from which data are received);
updating a first value in the first delta record based on a second value in a first tally record for the leaf node (Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table. See ¶0049 – collection of data includes performance counters., as well as use of a database for maintenance of tracked data at ¶0072, ¶0088, ¶0097, and ¶¶0114-0115); and
updating a third value in a second tally record for the first interior node based on the first value in the first delta record, when a first timer associated with the first delta record has expired, wherein the first delta record, the first tally record, and the second tally record are maintained in a database (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….” See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps.).
However, Krajec does not disclose a hierarchical tree mapped to a structure of a file system, wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system and the first interior node is mapped to the new directory.
Meister teaches a hierarchical tree mapped to a structure of a file system (hierarchical directory trees of a file system utilizing path sets to coordinate storage operations of the file system, see Meister: Para. 0318 – 0320, 0323, 0330 – 0338, 0343 – 0353),
wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system (files of the directories as leaf nodes, and directories within directories as nodes in the tree, example: SVE1 and SVE2 are directory nodes of the tree while SVE3 and SVE4 are files (shown as leaf nodes) or other non-directory data elements within the path set, see Meister: Para. 0337 – 0353, particular attention to 0342-0344, 0347, 0351 and Fig. 13A - 13C) and
the first interior node is mapped to the new directory (directory node, and file leaf nodes thereof, mappings are updated/changed within the path set when the directory is moved, see Meister: Para. 0344, 0347, 0351 – 0352).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), in order to support tracking of changes made via messages and implementation of snapshots, space accounting and/or other operations of the data storage system (Meister: Abstract, Para. 0094, 0449 – 0451).
However, Krajec modified by Meister does not explicitly disclose a hierarchical tree mapped to a separate from a hierarchical structure of a file system; and the third value corresponds to a recursive property of the file system.
Li teaches a hierarchical tree mapped to and separate from a hierarchical structure of a file system (B+ tree snapshot structure mapped to the VM file system and changes to snapshot metadata reflecting changes to the file system, see Li: Para. 0014, 0017 – 0018, 0023 – 0028, 0030);
the third value corresponds to a recursive property of the file system (recursive SQL used to calculate the depth of each node within in the subtree, see Li: Para. 0031 – 0032, recursive property for determining node count within the tree discloses the tally record as disclosed in Applicant’s specification [0047]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), further with the separate hierarchical tree structure mapped the hierarchical structure of the file system (Li: 0014, 0017-0018, 0023-0030) and a recursive property used for determining the depth of nodes (count/tally) within the subtree of the B+ tree (Li: 0031-0032) in order to verify the correctness of B+ tree structures as snapshot sizes and numbers continue to grow (Li: 0004).
As to claim 6, Krajec modified by Meister and Li discloses the method of claim 1, further comprising updating a fourth value in a second delta record for a second interior node that is an old parent to the leaf node based on a negative of the second value, when the second delta record is determined to exist, wherein the second interior node corresponds to an old directory of the file system from which the file was moved (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
As to claim 7, Krajec modified by Meister and Li discloses the method of claim 1, further comprising setting a second timer for a second delta record created for a second interior node based on a negative of the second value, wherein the second interior node is an old parent to the leaf node (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
As to claim 8, Krajec discloses a non-transitory machine readable medium having stored thereon instructions comprising machine executable code that, when executed by at least one machine, causes the machine to:
determine that a first delta record exists for a first interior node that is a new parent to a leaf node that corresponds to a file moved to a new directory of a file system, wherein the first interior node corresponds to the new directory and the first interior node and the leaf node are in a hierarchical tree corresponding to a structure of the file system (Krajec: ¶¶0032-0033 – superset is the “parent” and activity is captured with regard to a time series. See fig. 7 in which examiner notes the highlighted records are the child delta records pertaining to at least one interior node in each instance of the time series of the example of fig. 7, which examiner further notes is discussed beginning at ¶0135. See also ¶0029 which describes a system of node tracking, naming and visualization that performs equivalent functionality to that commonly performed by a “directory of a file system”, and Krajec: Fig. 7 shows updates to interior nodes at time steps. See ¶¶0074-0075 – message passing, changes to graphs based upon received updates, user computer shows, i.e. stored locally, change records at least long enough to perform the graph display functions taught. Examiner notes that fig. 2 shows multiple devices outside the client device from which data are received);
update a first value of the first delta record based on a second value in a first tally record for the leaf node (Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table. See ¶0049 – collection of data includes performance counters., as well as use of a database for maintenance of tracked data at ¶0072, ¶0088, ¶0097, and ¶¶0114-0115); and
update a second tally record for the first interior node based on the first value in the first delta record to propagate the updated first value up the hierarchical tree, when a timer associated with the first delta record has expired, wherein one or more of the first delta record, the first tally record, or the second tally record are maintained in one or more databases (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….” See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps.).
However, Krajec does not disclose a hierarchical tree mapped to a structure of a file system, wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system and the first interior node is mapped to the new directory.
Meister teaches a hierarchical tree mapped to a structure of a file system (hierarchical directory trees of a file system utilizing path sets to coordinate storage operations of the file system, see Meister: Para. 0318 – 0320, 0323, 0330 – 0338, 0343 – 0353),
wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system (files of the directories as leaf nodes, and directories within directories as nodes in the tree, example: SVE1 and SVE2 are directory nodes of the tree while SVE3 and SVE4 are files (shown as leaf nodes) or other non-directory data elements within the path set, see Meister: Para. 0337 – 0353, particular attention to 0342-0344, 0347, 0351 and Fig. 13A - 13C) and
the first interior node is mapped to the new directory (directory node, and file leaf nodes thereof, mappings are updated/changed within the path set when the directory is moved, see Meister: Para. 0344, 0347, 0351 – 0352).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), in order to support tracking of changes made via messages and implementation of snapshots, space accounting and/or other operations of the data storage system (Meister: Abstract, Para. 0094, 0449 – 0451).
However, Krajec modified by Meister does not explicitly disclose a hierarchical tree mapped to a separate from a hierarchical structure of a file system; and the third value corresponds to a recursive property of the file system.
Li teaches a hierarchical tree mapped to and separate from a hierarchical structure of a file system (B+ tree snapshot structure mapped to the VM file system and changes to snapshot metadata reflecting changes to the file system, see Li: Para. 0014, 0017 – 0018, 0023 – 0028, 0030);
the third value corresponds to a recursive property of the file system (recursive SQL used to calculate the depth of each node within in the subtree, see Li: Para. 0031 – 0032, recursive property for determining node count within the tree discloses the tally record as disclosed in Applicant’s specification [0047]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), further with the separate hierarchical tree structure mapped the hierarchical structure of the file system (Li: 0014, 0017-0018, 0023-0030) and a recursive property used for determining the depth of nodes (count/tally) within the subtree of the B+ tree (Li: 0031-0032) in order to verify the correctness of B+ tree structures as snapshot sizes and numbers continue to grow (Li: 0004).
As to claim 11, Krajec modified by Meister and Li discloses the non-transitory machine readable medium of claim 8, wherein at least one of the databases comprises an indexed persistent data store that is distributed across a plurality of computing devices on which the file system is maintained (Krajec: ¶0056 – functionality of program modules may be distributed, further reads in relevant part, “…the embodiment may comprise program modules, executed by one or more systems, computers, or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types….” See fig. 7 in which changes are indexed according to times A-D shown as even-numbered elements 702-708 in the figure, and ¶0117 describing association between data items according to time, overlaying. See also ¶0049 – indexing in memory according to object names, as well as ¶0082 - persistence).
As to claim 12, Krajec modified by Meister and Li discloses the non-transitory machine readable medium of claim 8, wherein the machine executable code, when executed by the machine, further causes the machine to update a second delta record for a second interior node that is an old parent to the leaf node based on a negative of the second value, wherein the second interior node corresponds to an old directory of the file system from which the file was moved (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
Krajec does not explicitly disclose interior node mapped to a directory.
Meister teaches interior node mapped to a directory (files of the directories as leaf nodes, and directories within directories as nodes in the tree, example: SVE1 and SVE2 are directory nodes of the tree while SVE3 and SVE4 are files (shown as leaf nodes) or other non-directory data elements within the path set, see Meister: Para. 0337 – 0353, particular attention to 0342-0344, 0347, 0351 and Fig. 13A - 13C, and directory node, and file leaf nodes thereof, mappings are updated/changed within the path set when the directory is moved, see Meister: Para. 0344, 0347, 0351 – 0352).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), in order to support tracking of changes made via messages and implementation of snapshots, space accounting and/or other operations of the data storage system (Meister: Abstract, Para. 0094, 0449 – 0451).
As to claim 13, Krajec modified by Meister and Li discloses the non-transitory machine readable medium of claim 8, wherein the machine executable code, when executed by the machine, further causes the machine to set a second timer for a second delta record created for a second interior node based on a negative of the second value, wherein the second interior node is an old parent to the leaf node (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
As to claim 15, Krajec discloses a computing device, comprising one or more processors coupled to memory and configured to execute instructions stored in the memory (Krajec: ¶0080-0082) to cause the computing device to:
create a first delta record for a first interior node that is a new parent to a leaf node that corresponds to a file moved to a new directory of a file system, wherein the first interior node corresponds to the new directory and is below a root node in a hierarchical tree corresponding to a structure of the file system (Krajec: ¶¶0032-0033 – superset is the “parent” and activity is captured with regard to a time series. See fig. 7 in which examiner notes the highlighted records are the child delta records pertaining to at least one interior node in each instance of the time series of the example of fig. 7, which examiner further notes is discussed beginning at ¶0135. See also ¶0029 which describes a system of node tracking, naming and visualization that performs equivalent functionality to that commonly performed by a “directory of a file system”, and Krajec: Fig. 7 shows updates to interior nodes at time steps. See ¶¶0074-0075 – message passing, changes to graphs based upon received updates, user computer shows, i.e. stored locally, change records at least long enough to perform the graph display functions taught. Examiner notes that fig. 2 shows multiple devices outside the client device from which data are received);
update the first delta record based on a second value in a first tally record for the leaf node (Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table. See ¶0049 – collection of data includes performance counters., as well as use of a database for maintenance of tracked data at ¶0072, ¶0088, ¶0097, and ¶¶0114-0115); and
update a second tally record for the first interior node based on the updated first delta record, when a timer associated with the updated first delta record has expired, wherein the first delta record, the first tally record, and the second tally record are maintained in a database (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….” See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps.).
However, Krajec does not disclose a hierarchical tree mapped to a structure of a file system, wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system and the first interior node is mapped to the new directory.
Meister teaches a hierarchical tree mapped to a structure of a file system (hierarchical directory trees of a file system utilizing path sets to coordinate storage operations of the file system, see Meister: Para. 0318 – 0320, 0323, 0330 – 0338, 0343 – 0353),
wherein the first interior node is a new parent to a leaf node in the hierarchical tree that is mapped to a file moved to a new directory of the file system (files of the directories as leaf nodes, and directories within directories as nodes in the tree, example: SVE1 and SVE2 are directory nodes of the tree while SVE3 and SVE4 are files (shown as leaf nodes) or other non-directory data elements within the path set, see Meister: Para. 0337 – 0353, particular attention to 0342-0344, 0347, 0351 and Fig. 13A - 13C) and
the first interior node is mapped to the new directory (directory node, and file leaf nodes thereof, mappings are updated/changed within the path set when the directory is moved, see Meister: Para. 0344, 0347, 0351 – 0352).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), in order to support tracking of changes made via messages and implementation of snapshots, space accounting and/or other operations of the data storage system (Meister: Abstract, Para. 0094, 0449 – 0451).
However, Krajec modified by Meister does not explicitly disclose a hierarchical tree mapped to a separate from a hierarchical structure of a file system; and the third value corresponds to a recursive property of the file system.
Li teaches a hierarchical tree mapped to and separate from a hierarchical structure of a file system (B+ tree snapshot structure mapped to the VM file system and changes to snapshot metadata reflecting changes to the file system, see Li: Para. 0014, 0017 – 0018, 0023 – 0028, 0030);
the third value corresponds to a recursive property of the file system (recursive SQL used to calculate the depth of each node within in the subtree, see Li: Para. 0031 – 0032, recursive property for determining node count within the tree discloses the tally record as disclosed in Applicant’s specification [0047]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), further with the separate hierarchical tree structure mapped the hierarchical structure of the file system (Li: 0014, 0017-0018, 0023-0030) and a recursive property used for determining the depth of nodes (count/tally) within the subtree of the B+ tree (Li: 0031-0032) in order to verify the correctness of B+ tree structures as snapshot sizes and numbers continue to grow (Li: 0004).
As to claim 18, Krajec modified by Meister and Li discloses the computing device of claim 15, wherein the database comprises an indexed persistent data store that is distributed across a plurality of computing devices on which the file system is maintained (Krajec: ¶0056 – functionality of program modules may be distributed, further reads in relevant part, “…the embodiment may comprise program modules, executed by one or more systems, computers, or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types….” See fig. 7 in which changes are indexed according to times A-D shown as even-numbered elements 702-708 in the figure, and ¶0117 describing association between data items according to time, overlaying. See also ¶0049 – indexing in memory according to object names, as well as ¶0082 - persistence).
As to claim 19, Krajec modified by Meister and Li discloses the computing device of claim 15, wherein the one or more processors are further configured to execute the instructions to cause the computing device to update a second delta record for a second interior node that is an old parent to the leaf node based on a negative of the second value, wherein the second interior node corresponds to an old directory of the file system from which the file was moved (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
Krajec does not explicitly disclose interior node mapped to a directory.
Meister teaches interior node mapped to a directory (files of the directories as leaf nodes, and directories within directories as nodes in the tree, example: SVE1 and SVE2 are directory nodes of the tree while SVE3 and SVE4 are files (shown as leaf nodes) or other non-directory data elements within the path set, see Meister: Para. 0337 – 0353, particular attention to 0342-0344, 0347, 0351 and Fig. 13A - 13C, and directory node, and file leaf nodes thereof, mappings are updated/changed within the path set when the directory is moved, see Meister: Para. 0344, 0347, 0351 – 0352).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the mapping of a file system into a directory tree of directories as interior nodes and files as leaf nodes into the time based data storage system of Krajec by programming the instructions of Krajec to track the messages and time series data for the directed graphs of Krajec (Krajec: Para. 0025 – 0026) with the file system operations of Meister as directories and files are updated/added/moved/deleted/etc. (Meister: Para. 0342-0344, 0347 – 0353), such operations sent/received as system transfer messages (Meister: Para. 0094), in order to support tracking of changes made via messages and implementation of snapshots, space accounting and/or other operations of the data storage system (Meister: Abstract, Para. 0094, 0449 – 0451).
As to claim 20, Krajec modified by Meister and Li discloses the computing device of claim 15, wherein the one or more processors are further configured to execute the instructions to cause the computing device to set a second timer for a second delta record created for a second interior node based on a negative of the second value, wherein the second interior node is an old parent to the leaf node (Krajec: ¶0117 reads in part, “…the operations of highlighting activity in block 504 may identify changes to the graph from a specific time period and overlay those changes on the baseline graph. In one such example, a baseline graph may contain representations of all the computational elements and messages that may be passed during the lifetime of an application. In order to see the recent operations, operations in a current time period may be identified and displayed with visual highlighting, where other compute elements and message paths that were not exercised in the time period may be displayed without highlighting….”, See ¶0126 – creation of updates. See also above citations directed to propagation of updates, tally and ¶¶0027-0028 – visualization of application execution with measure of computational time consumed, data sets collected over time. See also ¶0220 and 0229 – Embodiment 1500 illustrates a method where a sequence may be defined for presentation, then the data browser may advance through the sequence to cause data sets to be displayed. In embodiment 1500, the sequences may be normal forward play where the data sets may be displayed in a time sequence, as well as reverse where the sequence of data sets are inverted or reversed, and fast forward where the sequence only shows every other data set such that the graph may be updated twice as fast as normal playback. Examiner notes that measurement of computational time consumed requires a timer and that expiration of the timer is the time at which the computational time interval measurement stops, as in the example depicted in fig. 7’s time steps. Examiner further notes that configuration file propagation updates would occur to a second interior node that is a parent of the node from which the update originates, while a fourth value would be a later update than the third being cited above).
Claims 2, 4, 9, 10, 16 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Krajec in view of Meister and Li, and in further view of US Pre-Grant Publication 2015/0142818 to Florendo.
As to claim 2, Krajec modified by Meister and Li discloses the method of claim 1,
Krajec modified by Meister and Li does not fully and explicitly teach wherein the first timer is in an in-memory data structure and the method further comprises removing the first timer from the in-memory data structure when the first timer has expired.
Florendo teaches wherein the first timer is in an in-memory data structure and the method further comprises removing the first timer from the in-memory data structure when the first timer has expired (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec by programming the instructions of Krajec modified by Meister and Li to use an identifier of data to perform tallying, as taught by Florendo. An advantage obtained through use of a identifier of data to perform tallying would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
As to claim 4, Krajec modified by Meister and Li discloses the method of claim 1,
Krajec modified by Meister and Li does not fully and explicitly teaches wherein the first delta record further comprises an identifier for the first interior node and the method further comprises identifying the second tally record based on the identifier.
Florendo teaches wherein the first delta record further comprises an identifier for the first interior node and the method further comprises identifying the second tally record based on the identifier (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec ¶0074 – message passing, ¶0117 timer, and ¶0029 which describes a system of node tracking, naming and visualization that updates for interior nodes, as cited above and seen in fig. 7 time steps of Krajec. Examiner notes that the timestamps continue to be created and each constitute a subsequent “timer” relative to moments following in the system’s operation, while the third would refer to a given configuration update.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec modified by Meister and Li by programming the instructions of Krajec modified by Meister and Li to perform deletion, as taught by Florendo. An advantage obtained through deletion would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
As to claim 9, Krajec modified by Meister and Li discloses the non-transitory machine readable medium of claim 8,
Krajec modified by Meister and Li does not fully and explicitly disclose wherein first timer is in an in-memory data structure and the machine executable code, when executed by the machine, further causes the machine to remove the first timer from the in-memory data structure when the first timer has expired.
Florendo teaches wherein first timer is in an in-memory data structure and the machine executable code, when executed by the machine, further causes the machine to remove the first timer from the in-memory data structure when the first timer has expired (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec modified by Meister and Li by programming the instructions of Krajec modified by Meister and Li to use an identifier of data to perform tallying, as taught by Florendo. An advantage obtained through use of a identifier of data to perform tallying would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
As to claim 10, Krajec modified by Meister and Li discloses the non-transitory machine readable medium of claim 8,
Krajec modified by Meister and Li does not fully and explicitly teaches wherein the first delta record further comprises an identifier for the first interior node and the machine executable code, when executed by the machine, further causes the machine to identify the second tally record based on the identifier.
Florendo teaches wherein the first delta record further comprises an identifier for the first interior node and the machine executable code, when executed by the machine, further causes the machine to identify the second tally record based on the identifier (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec ¶0074 – message passing, ¶0117 timer, and ¶0029 which describes a system of node tracking, naming and visualization that updates for interior nodes, as cited above and seen in fig. 7 time steps of Krajec. Examiner notes that the timestamps continue to be created and each constitute a subsequent “timer” relative to moments following in the system’s operation, while the third would refer to a given configuration update.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec modified by Meister and Li by programming the instructions of Krajec modified by Meister and Li to perform deletion, as taught by Florendo. An advantage obtained through deletion would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
As to claim 16, Krajec modified by Meister and Li discloses the computing device of claim 15,
Krajec modified by Meister and Li does not fully and explicitly teach wherein first timer is in an in-memory data structure and the one or more processors are further configured to execute the instructions to cause the computing device to remove the first timer from the in-memory data structure when the first timer has expired.
Florendo teaches wherein first timer is in an in-memory data structure and the one or more processors are further configured to execute the instructions to cause the computing device to remove the first timer from the in-memory data structure when the first timer has expired (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec: ¶0197 – count occurrence, i.e. “tally” in function shown in the immediately preceding table.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec modified by Meister and Li by programming the instructions of Krajec modified by Meister and Li to use an identifier of data to perform tallying, as taught by Florendo. An advantage obtained through use of a identifier of data to perform tallying would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
As to claim 17, Krajec modified by Meister and Li discloses the computing device of claim 15,
Krajec modified by Meister and Li does not fully and explicitly teaches wherein the first delta record further comprises an identifier for the first interior node and the one or more processors are further configured to execute the instructions to cause the computing device to identify the second tally record based on the identifier.
Florendo teaches wherein the first delta record further comprises an identifier for the first interior node and the one or more processors are further configured to execute the instructions to cause the computing device to identify the second tally record based on the identifier (Florendo: ¶0023 – removal of committed row from a delta part based upon a time. See ¶¶0103-0104 – removal, i.e. “deleting” of loaded page based upon value ID, deallocation of related address. See also ¶¶0094-0095 – construction of value ID at an access time, i.e. “timer”, and ID reflected in logical pointers to multiple blocks. See also Krajec ¶0074 – message passing, ¶0117 timer, and ¶0029 which describes a system of node tracking, naming and visualization that updates for interior nodes, as cited above and seen in fig. 7 time steps of Krajec. Examiner notes that the timestamps continue to be created and each constitute a subsequent “timer” relative to moments following in the system’s operation, while the third would refer to a given configuration update).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the tally identification of Florendo into the time based data storage system of Krajec modified by Meister and Li by programming the instructions of Krajec modified by Meister and Li to perform deletion, as taught by Florendo. An advantage obtained through deletion would have been desirable to implement in the time based data storage system of Krajec modified by Meister and Li. In particular, the motivation to combine the Krajec modified by Meister, Li and Florendo references would have been to improve the functioning of an in-memory data storage system. (Florendo: ¶0004, ¶¶0009-0010).
Contact Information
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 MARK E HERSHLEY whose telephone number is (571)270-7774. The examiner can normally be reached M-F: 9am-6pm.
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, Amy Ng can be reached on (571) 270-1698. 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.
/MARK E HERSHLEY/Primary Examiner, Art Unit 2164