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 .
The Amendment filed on 03/30/26 has been received and entered. Application No. 18/738,249 of which claims 1-20 are pending in the application, all of which are ready for examination by the examiner.
Response to Amendment
Applicant’s amendment necessitated new grounds of rejection.
This action is made final in view of the new grounds of rejection.
Response to Arguments
Applicant’s arguments with respect to 35 USC § 103 rejections of claims 1-20 have been fully considered but are moot because the arguments do not apply to any of the references being used in the current rejection.
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 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 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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Regni et al. (U.S. PGPub 2015/0254272; hereinafter “Regni”) in view of Coldham et al. (U.S. PGPub 2019/0250800; hereinafter “Coldham”) and further in view of Weaver et al. (U.S. PGPGub 2019/0361916; hereinafter “Weaver”).
As per claims 1, 9 and 15, Regni discloses a method comprising: maintaining a database including at least one table and at least one index in addition to the at least one table, wherein the database includes immutable rows: (See Figs. 7b and 8, paras. 85, 89, 135, wherein immutable objects, row objects, rows in a table are disclosed, also See Fig. 12, paras. 94 and 110, wherein new and modified data are disclosed; as taught by Regni.)
an object identifier ("ID") referencing a specific object for which data in the immutable row in the at least one table pertains; (See Figs. 7b and 8, paras. 89, 135, wherein object IDs are disclosed, also See Fig. 12, paras. 94 and 110, wherein new and modified data are disclosed; as taught by Regni.)
However, Regni fails to disclose a hybrid logical clock value recording a system time in which changed data relative to the specific object represented by the object ID occurred and a change was made.
On the other hand, Coldham teaches a hybrid logical clock value recording a system time in which the changed data relative to the specific object represented by the object ID occurred and a change was made. (See paras. 19, 57, 70, wherein hybrid logical clock in which “second user computing device 502B may track changes for each mutable attribute on each object using a hybrid logical clock. Each time a mutable attribute is modified, an HLC timestamp is encoded to the change (e.g., as an attribute of an object or an attribute of an attribute)” [0070] are disclosed, also See Table 1, para. 115, wherein changed data, snapshots of data are disclosed, also Figures 11A-11B, paras. 40-42, 117-118, wherein process of storing sequence of snapshots as new history path in which “ the system may generate another new sequence of snapshots. This then creates a tree of history paths associated with the object of the same canvas that was originally used to generate the first snapshot in FIG. 11A. A history path may provide a user associated with a computing device with information about all the changes and operations that were performed on the object and the ability to select an object in a state at a specific point in time that may have occurred a long time ago” [0118] are disclosed; as taught by Coldham.)
Therefore, it would have been obvious to a person of ordinary skill in the computer art before the effective filing date of the claimed invention to incorporate the Coldham teachings in the Regni system. Skilled artisan would have been motivated to incorporate the method for generating and providing snapshots for playback on sequence of operations on objects taught by Coldham in the Regni system for distributed consistent database implementation within an object store. In addition, both of the references (Regni and Coldham) teach features that are directed to analogous art and they are directed to the same field of endeavor, such as data management. This close relation between both of the references highly suggests an expectation of success.
However, the combination of Regni and Coldham fails to disclose a server of a content management system; immutable rows with fields for data that cannot be deleted or overwritten and is descriptive of changed data occurring relative to objects stored in the content management system, wherein fields of an immutable row in the at least one table; creating, by the server of the content management system, a snapshot of a state of the specific object at a historical point in time when the change was made, by: identifying, from the immutable row, the object ID referencing the specific object and the hybrid logical clock value recording the system time in which the changed data relative to the specific object occurred and the change was made at the historical point in time; and retrieving at least one data block of the data blocks identified by the block list.
On the other hand, Weaver teaches a server of a content management system; (See paras. 94-95, 271-274, wherein management platform features are disclosed; as taught by Weaver.)
immutable rows with fields for data that cannot be deleted or overwritten and is descriptive of changed data occurring relative to objects stored in the content management system, wherein fields of an immutable row in the at least one table; (See paras. 88, 171, wherein immutable row in which “the transactional database uses a temporal data model that is composed of immutable versions, such that synchronous overwrites are avoided” [0088] and “all records (including schema) may be temporal and may support configurable retention policies. When records are updated or deleted, their prior contents are not overwritten; instead, a new immutable version at the current transaction timestamp may be inserted into the instance history, either as a create, update, or delete event” [0171] are disclosed; as taught by Weaver.)
creating, by the server of the content management system, a snapshot of a state of the specific object at a historical point in time when the change was made, by: identifying, from the immutable row, the object ID referencing the specific object and the hybrid logical clock value recording the system time in which the changed data relative to the specific object occurred and the change was made at the historical point in time; (See Figs. 1A-1B, paras. 173, 177-179, 282, wherein executing a snapshot to provide immutable data in which “users of the database may wish to have historical access to data, such as for enabling features like audit logs, “undo,” capabilities, social timelines, and data model migration, all of which are supported by temporal features. Historical access features may address requirements for standardized rendering of set and instance history, as well as generalized query support for transforming non-temporal (i.e., “snapshot”), read-only queries into temporal queries” [0179] are disclosed, also See paras. 46, 78-80, 243, wherein hybrid logical clock algorithm, hybrid clock are disclosed; as taught by Weaver.)
and retrieving at least one data block of the data blocks identified by the block list. (See Figs 1A-1B, paras. 21-23, 174-178, Tables 5-6, wherein retrieval process are disclosed, also See paras. 78-80, wherein accessing data by referencing database process are disclosed; as taught by Weaver.)
Therefore, it would have been obvious to a person of ordinary skill in the computer art before the effective filing date of the claimed invention to incorporate the Weaver teachings in the combination of Regni and Coldham system. Skilled artisan would have been motivated to incorporate the method for a data storage and retrieval taught by Weaver in the combination of Regni and Coldham system for distributed consistent database implementation within an object store. In addition, both of the references (Regni, Coldham, and Weaver) teach features that are directed to analogous art and they are directed to the same field of endeavor, such as data management. This close relation between both of the references highly suggests an expectation of success.
As per claim 2, the rejection of claim 1 is hereby incorporated by reference, the combination of Regni, Coldham, and Weaver further discloses wherein the at least one table includes first data when first changed data occurs relative to the specific object. (See Figs. 7b and 8, para. 89, wherein object IDs are disclosed, also See Fig. 12, paras. 94 and 110, wherein new and modified data are disclosed, also See paras. 52 and 87-89, wherein metadata with time of creating of data object and modified data in which “If a page is to be modified 805, the change is made to the page (which can be a change, deletion and/or addition upon the page's information), a new object ID 723 for the page is created and entered to the working mapping table 720 (the modified page keeps its page ID)” [0089] disclosed; as taught by Regni.)
As per claims 3, 10, and 16, the combination of Regni, Coldham, and Weaver further discloses wherein the fields further comprise at least one of: access capability data for the specific object represented by the object ID or object type data for the specific object represented by the object ID. (See paras. 32-35, wherein type of access in which “Each object is assigned its own unique (e.g., random) identifier that uniquely identifies its corresponding object. This particular type of access is distinguishing from other types of storage systems” is disclosed; as taught by Regni.)
As per claims 4, 11, and 17, the combination of Regni and Weaver further discloses receiving, at the database a request for a directory as it existed at a specific point in time; (See Figs. 1b, 9, paras. 52-54, 59, 79, wherein directory request, time of data created/modified in which “meta-data may include, e.g., time of creation of the data object, size of the data object, last access time of the data object, last modification time of the data object and the version number of the data object among other possible characteristics” [0052] are disclosed; as taught by Regni.)
and generating, by the content management system, the directory as it existed at the specific point in time. (See Fig. 9, paras. 35, 52-54, 59, 100-103, wherein implementing a file directory in which “implement the file directory interface 206 of FIG. 2. As is known in the art, a specific file is targeted in a file directory system by specifying a pathway of sub-directories/folders through the directory's hierarchy” [0101] are disclosed, also See paras. 61-62, 73, 79-80, wherein directory request in which “request 510 may be generated externally from DDS 502 (e.g., in the case where the distributed consistent database is exposed for direct use) or internally within DDS 502 (e.g., in the case where a larger database solution offered by DDS is invoking the distributed consistent database). Actions to be performed on a distributed consistent database typically include any of: 1) the fetching of one or more objects 503 from within KVS 501 that the distributed consistent database is configured to keep;” [0073] are disclosed; as taught by Regni.)
However, the combination of Regni and Weaver fails to disclose relating, at the database, the specific point in time to a specific snapshot created at the historical point in time; the specific snapshot created at the historical point in time.
On the other hand, Coldham teaches relating, at the database, the specific point in time to a specific snapshot created at the historical point in time; (See paras. 19, 57, 70, wherein hybrid logical clock are disclosed, also See Table 1, para. 115, wherein changed data, snapshots of data are disclosed, also Figures 11A-11B, paras. 40-42, 117-118, wherein process of storing sequence of snapshots as new history path in which “ the system may generate another new sequence of snapshots. This then creates a tree of history paths associated with the object of the same canvas that was originally used to generate the first snapshot in FIG. 11A. A history path may provide a user associated with a computing device with information about all the changes and operations that were performed on the object and the ability to select an object in a state at a specific point in time that may have occurred a long time ago” [0118] are disclosed; as taught by Coldham.)
the specific snapshot created at the historical point in time. (See Figs. 8, paras. 19-20, 39, 97-98, wherein generating snapshots in which “a snapshot may be generated to include patches that represent state information when a user instructs the system to change the object's color from red to green. The snapshot may include a set of one or more patches (e.g., a patch that, if applied, updates the object's color attribute to green) and a timestamp associated with when the snapshot was taken. Specifically and for example, in 804, the system may generate the snapshot to include an HLC timestamp to indicate when the snapshot was taken with assurances that all patches that occurred up to that point are reflected in the snapshot” [0097] are disclosed, also Figures 11A-11B, paras. 40-42, 111, 117-118, wherein process of storing sequence of snapshots as new history path in which “system may determine, based on the request, that marker 1024 is when the object changes its state (e.g., from a state of still existing to a state where it has been deleted). Thus, the system may provide snapshots 1002-1004 (e.g., the two snapshots that led up to marker 1024) back to the user associated with the computing device”[0111] and “the system may generate another new sequence of snapshots. This then creates a tree of history paths associated with the object of the same canvas that was originally used to generate the first snapshot in FIG. 11A. A history path may provide a user associated with a computing device with information about all the changes and operations that were performed on the object and the ability to select an object in a state at a specific point in time that may have occurred a long time ago” [0118] are disclosed; as taught by Coldham.)
See claims 1, 9, and 15 for motivation above.
As per claims 5, 12, and 18, the combination of Regni, Coldham, and Weaver further discloses receiving, at the content management system, a request to undo at least one change to the specific object, wherein each data block reflecting a change to the specific object is identified by the block list; and retrieving, using the block list, at least one data block that represents the specific object at a time before the at least one change. (See Figs. 7A-7C, 11, paras. 43, 56-57, 94, wherein utilizing delete commands on deleting outright and previously existing modified data items are disclosed, also See paras. 57-59, 69-70, 89-90, wherein resolving incorrect object ID storage process are disclosed; as taught by Regni.)
As per claims 6, 13, and 19, the combination of Regni and Weaver discloses a directory object; and establishing a directory structure at the first point in time. (See Figs. 1b, 9, paras. 52-54, 59, 79, wherein directory request, metadata are disclosed, also See paras. 32-35, wherein object identifiers, directory path are disclosed; as taught by Regni.)
However, the combination of Regni and Weaver fails to disclose wherein creating the snapshot further comprises: obtaining an object ID at a first point in time.
On the other hand, Coldham teaches wherein creating the snapshot further comprises: obtaining an object ID at a first point in time. (See Figs. 8-10, paras. 35-39, 57, 96, wherein hybrid logical clock, generating a snapshot of a state of object are disclosed, also See para. 88, wherein obtaining object identifier from a data structure process are disclosed; as taught by Coldham.)
See claims 1, 9, and 15 for motivation above.
As per claim 7, the rejection of claim 6 is hereby incorporated by reference, the combination of Regni, Coldham, and Weaver further discloses determining that the directory structure includes objects below the directory structure; (See Fig. 1b, paras. 4, 37, wherein sub-directories, lower sub-directories are disclosed; as taught by Regni.)
and compiling a tree of objects below the directory structure by at least one of: recursively querying a directory index to compile a tree of the objects below the directory structure or performing a depth first search of a hierarchy table. (See paras. 9-10, 16, wherein indexing layer features, querying for particular item within storage layer process are disclosed; as taught by Regni.)
As per claim 8, the rejection of claim 7 is hereby incorporated by reference, the combination of Regni, Coldham, and Weaver further discloses identifying, using the block list, a plurality of data blocks that comprise each object in the directory structure at the first point in time. (See Fig. 1c, paras. 44, 59, 94-95, wherein data objects are disclosed, also See Figs. 7A-7C, 11, paras. 32-35, 89-90, wherein object identifiers, directory path are disclosed; as taught by Regni.)
As per claims 14 and 20, the combination of Regni, Coldham, and Weaver further discloses wherein the instructions, when executed by a computing system, further cause the computing system to: determine that the directory structure includes objects below the directory structure; (See Fig. 1b, paras. 4, 37, wherein sub-directories, lower sub-directories are disclosed; as taught by Regni.)
compile a tree of objects below the directory structure by at least one of: recursively querying a directory index to compile a tree of the objects below the directory structure; or performing a depth first search of a hierarchy table; (See paras. 9-10, 16, wherein indexing layer features, querying for particular item within storage layer process are disclosed; as taught by Regni.)
and identify a plurality of data blocks that comprise each object in the directory structure at the first point in time. (See Fig. 1c, paras. 44, 59, 94-95, wherein data objects are disclosed, also See paras. 32-35, wherein object identifiers, directory path are disclosed; as taught by Regni.)
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to LIN LIN M HTAY whose telephone number is (571)272-7293. The examiner can normally be reached on M-F, 7am-3pm, PST.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kavita Stanley can be reached on (571)272-8352. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/L. L. H./
Examiner, Art Unit 2153
/KAVITA STANLEY/ Supervisory Patent Examiner, Art Unit 2153