DETAILED ACTION
Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
2. The Action is responsive to Applicant’s amendment, filed on May 13, 2026.
3. It is acknowledged that as a result of the amendment, claims 1, 9, and 15 have been amended.
4. Claims 1-20 are pending.
Response to Arguments
5. Applicant’s arguments with respect to claims 1-20 have been considered but are moot in view of the new grounds of rejection necessitated by Applicant’s amendment of the claims.
Claim Rejections - 35 USC § 101
6. The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior office action.
7. In view of the amendments to the claims, the Examiner withdraws all pending rejections under 35 U.S.C. 101.
Claim Rejections - 35 USC § 103
8. 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.
9. Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over in Inbar et al (US 2022/0121627), view of RAMAN et al (US 2019/0340166), hereinafter “Inbar” and “RAMAN” respectively.
As per Claim 1, Inbar discloses:
A method for conflict free replicated data type management in a database system including multiple data center nodes, the method comprising: (Par [0003], “Conflict-free replicated data types (CRDTs) are data structures that can be replicated across multiple nodes in a distributed system network to achieve strong eventual consistency” and Figures 1-3) receiving, by a message handling function associated with a processor of a data center node, (Par [0042], “3) At 106, at some later point in time, the shards emit their up-to-date OVC in periodic OVC update messages. These messages indicate that the shards have received all updates from Replica A” and see Figures 1-2; includes the data center; and Par [0144], “a mechanism that defines a strict type precedence when handling key type conflict resolution. For example, in some embodiments, a Replica A can create a list key K and append elements…”)
a request message defining a request relating to a multi-type conflict free replicated data type (CRDT) data item, (Par [0003], “Conflict-free replicated data types (CRDTs) are data structures that can be replicated across multiple nodes in a distributed system network to achieve strong eventual consistency”; par [0006], “receive a plurality of messages each acknowledging that the first key is to be deleted; determine that the plurality of messages includes a message for each of a plurality of shards of the first replica; and in response to determining that the plurality of messages includes a message for each of the plurality of shards of the first replica, delete the first key.”)
the data item defined without a data type or defined with one or more data types, (Par [0012], “methods for implementing conflict-free replicated data types in in-memory data structures are provided, the methods comprising: marking a first key of a conflict-free replicated data type as to be deleted; sending an update message reflecting that the first key is to be deleted to a first replica of an in-memory data structure”).
with the one or more data types (Par [0005], “implementing conflict-free replicated data types”) and performing, by the processor, one or more actions to reach eventual consistency based at least in part on the priority sequence (Par [0003], “Conflict-free replicated data types (CRDTs) are data structures that can be replicated across multiple nodes in a distributed system network to achieve strong eventual consistency”)
Inbar discloses causal order of operations, and achieving strong eventual consistency par [0033], in between replicas however not specifically based on the “priority sequency” to reach the eventual consistency.
Inbar does not specifically discloses the following: to reach eventual consistency based at least in part on the priority sequence
RAMAN discloses the following claimed features as follows: (Par {0030], “a particular workload may be governed by a particular consistency model, such as a strong consistency model where all updates are guaranteed to be strictly applied in “wall-clock” order across the entire data service; an eventual consistency model, where data sets stored by different servers may diverge, but are eventually and retrospectively reconciled to exhibit a consistent data set up to a certain time point…” and [0046], “…data version conflict 118, e.g., a collection of alternative values and/or value sequences that have been applied to one or more data items 108 by two or more masters 114, where the coexistence of such data versions represents a conflict 118 (e.g., some servers 104 may recognize a first value or value sequence for the involved data items 108, while other servers 104 may recognize a second, distinct value or value sequence for the same involved data items 108). The data version conflict resolution technique 204 may present such data versions to a user or client 112, and may receive a selection of a particular data version to be applied to the data set 106 as the resolution outcome 206 of the data version conflict 118. The data version conflict resolution technique 204 may then notify all servers 104 of the server set 102 of the selected value or value sequence that is to be recognized for the at least one data item 108.”)
Therefore, it would have been obvious to a person of ordinary skill in the art at the effective filing date to incorporate the teachings of RAMAN specifically having certain sequence into the method of Inbar to take advantage on applying the respective order of operations according to sequencing. The modification would have been obvious because one of the ordinary skills in the art would implement obtaining and providing wherein a first update with a lower value always precedes a second update with a higher value in the sequence.
As per Claim 2, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the step of performing includes: determining, by the message handling function, if the request includes a get-current-type request associated with the data item; (Par [0117], “In some embodiments, when a key is updated by a replica, there are two ways information about the update can be propagated to other replicas: CRDT Effect messages and CRDT State Merge messages.” And see Figures 1-2) upon determining the data item has a data type based at least in part on the priority sequence, (Par [0118], “a CRDT Effect message needs to have prior information about the updated key in some embodiments. For example, an effect may describe an operation such as “add element X to a set”. Because of this, CRDT Effect messages can be used between replicas after an initial state synchronization has been established in some embodiments.” And see Figures 1-2) reporting, by the message handling function, the data type associated with the data item; (Par [0006], “mark a first key of a conflict-free replicated data type as to be deleted; send an update message reflecting that the first key is to be deleted to a first replica of an in-memory data structure; receive a plurality of messages each acknowledging that the first key is to be deleted; determine that the plurality of messages includes a message for each of a plurality of shards of the first replica” and see Figures 1-2) and upon determining the data item has no data type, reporting, by the message handling function, the data item has no data type. (Par [0064] and par [0068], “In some embodiments, volatile keys can only be actively expired by the replica that owns the TTL, and never by other replicas. In some embodiments, active expiration is a process whereby keys are scanned and keys that have an expired TTL are removed” being the no data type, its attitudes are managed by time to live; and Par [0129], “In some embodiments, a replica in accordance with the mechanisms described here may start in one of three states” and par [0130] (“1) No dataset loaded from disk (because persistence was not used, or because of a fault).”)
As per Claim 3, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the step of performing includes: determining, by the message handling function, if the request includes a clear request associated with the data item; (Par [0006], “…and in response to determining that the plurality of messages includes a message for each of the plurality of shards of the first replica, delete the first key.” And par [0012], “…and in response to determining that the plurality of messages includes a message for each of the plurality of shards of the first replica, deleting the first key.” Deletes keys according to expiration and par [0018], “marking a first key of a conflict-free replicated data type as to be deleted” see Figures 1-2) and upon determining the request is a clear request: clearing, by the message handling function, one or more values associated with the data item; (Par [0023], “and applying a precedence to the fourth key and the fifth key based on the first type and the second type so that the fourth key is assigned the second value.” and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….” And see Figures 1-2) clearing, by the message handling function, one or more attributes associated with the data item; (Par [0023], “and applying a precedence to the fourth key and the fifth key based on the first type and the second type so that the fourth key is assigned the second value.” and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….” And see Figures 1-2) building, by the message handling function, a merge-clear message based on the clearing of the one or more values and the one or more attributes; (Par [0102], “ Replica B deletes the stream key and propagates the delete to Replica A.” and par [0117], “CRDT Effect messages and CRDT State Merge messages.” And par [0121], “Replica A sends a CRDT State Merge message for Ka to Replica B, and Replica B sends a CRDT State Merge message for Kb to Replica A. After both replicas perform the merge, the key K is guaranteed to transition to a common state…”) and sending, by the message handling function, a merge-clear request associated with the data item to all other data center nodes in the database system. (Par [0012], “sending an update message…” and Par [0094], “To serve this mode of reading, a stream can be merge-read from the sub-streams which are already sorted, in some embodiments. In this merge-read, the reader is provided with entries from the streams based on the order (e.g., oldest to newest)” and see Figures 1-2).
As per Claim 4, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the step of performing includes: upon determining the request is a not a clear request, determining, by the message handling function if the data item has a data type; and (Par [0006], “…and in response to determining that the plurality of messages includes a message for each of the plurality of shards of the first replica, delete the first key.” And par [0012], “…and in response to determining that the plurality of messages includes a message for each of the plurality of shards of the first replica, deleting the first key.” Deletes keys according to expiration and par [0018], “marking a first key of a conflict-free replicated data type as to be deleted” see Figures 1-2)
upon determining the data item has no data type and the request has a meaning: (Par [0064] and par [0068], “In some embodiments, volatile keys can only be actively expired by the replica that owns the TTL, and never by other replicas. In some embodiments, active expiration is a process whereby keys are scanned and keys that have an expired TTL are removed” being the no data time, its attitudes are managed by time to live) applying, by the message handling function, a change to a value associated with the data item as defined by the request; (Par [0023], “and applying a precedence to the fourth key and the fifth key based on the first type and the second type so that the fourth key is assigned the second value.” and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….” And see Figures 1-2) applying, by the message handling function, a change to an attribute associated with the data item as defined by the request; (Par [0023] and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….”) and sending, by the message handling function, a merge request associated with the data item to all other data center nodes in the database system. (Par [0012], “sending an update message…” and Par [0094], “To serve this mode of reading, a stream can be merge-read from the sub-streams which are already sorted, in some embodiments. In this merge-read, the reader is provided with entries from the streams based on the order (e.g., oldest to newest)” and see Figures 1-2).
As per Claim 5, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the step of performing includes: upon determining the data item has a data type at least in part based on the priority sequence and a current data type associated with the data item matches a data type defined in the request:
applying, by the message handling function, a change to a value associated with the data item as defined by the request; (Par [0023], “and applying a precedence to the fourth key and the fifth key based on the first type and the second type so that the fourth key is assigned the second value.” and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….” And see Figures 1-2) applying, by the message handling function, a change to an attribute associated with the data item as defined by the request; (Par [0023] and Paragraphs [0088-0089], “where t is the beginning time of the interval and v is the value (if no + or −) or change in value (if + or −)….”) and sending, by the message handling function, a merge request associated with the data item to all other data center nodes in the database system. (Par [0012], “sending an update message…” and Par [0094], “To serve this mode of reading, a stream can be merge-read from the sub-streams which are already sorted, in some embodiments. In this merge-read, the reader is provided with entries from the streams based on the order (e.g., oldest to newest)” and see Figures 1-2).
As per Claim 6, the rejection of Claim 1 is incorporated and Inbar further discloses:, wherein the step of performing includes: upon determining the data item has a data type at least in part based on the priority sequence and a current data type associated with the data item is different than a data type defined in the request: rejecting, by the message handling function, the request. (Paragraphs [0084-0085], Add-wins semantics imply that when an add or update operation is performed concurrently to a remove operation, on the same data, the add or update operations take precedence. For example, if Replica A adds an element X to a set while Replica B deletes the same element X from the same set, the result of the operation (after being propagated and consolidated) is a set with element X as part of it.” It’s handled according to it data type, see also par [0087], “Next, Replica B deletes the key K and concurrently (before receiving the delete update message) …” and see Figures 1-2)
As per Claim 7, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the request message is associated with a read request. (Paragraphs [0094-0097], “…one read mode that can be provided is a cursor-like XREAD from a streams' tail. In this mode, the reader requests to read the most recent message from the tail of the stream. The reader receives the message along with the stream's ID, and then makes a subsequent read using that ID in order to read the next message in the stream.” and see Figures 1-2).
As per Claim 9, the rejection of Claim 1 is incorporated and Inbar further discloses: wherein the data item can include multiple values and multiple data types, wherein the data types are incompatible. (Par [0028], “CRDTs and allow in-memory data structures (e.g., REDIS) to be deployed in an active-active deployment with minimal changes to APIs of the in-memory data structures (e.g., REDIS) and the known behavior of the in-memory data structures (e.g., REDIS).” Active-active CRDTS include different types of data, strings, sets, sorted sets, hashes, lists, counters, and JSON objects).
As per Claims 9-20, being the data center and system claims corresponding to the method claims 1-8 respectively and rejected under the same reason set forth in connection of the rejections of Claims 1-8 and further Inbar discloses: (Par [0027]).
Conclusion
10. The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
Taylor; Aaron Michael (US-20210342541-A1) relates to collaborative editing tools, such as Etherpad, Google Wave, Google Docs, Office 365, and Dropbox Paper use such journal structures to track edit events in the multi-person editable documents. To enable such systems to function, a subfield of computer science has merged to study conflict-free replicated data types (CRDTs). As is standard in the art of CRDTs and related operations journals, one can simplify the data in a journal by forming a checkpoint operation that summarizes the aggregate effect of the previous operations up to that point.
Kleiman-Weiner; Max (US-10839021-B2), relates to enable such systems to function, a subfield of computer science has merged to study conflict-free replicated data types (CRDTs). As is standard in the art of CRDTs and related operations journals, one can simplify the data in a journal by forming a checkpoint operation that summarizes the aggregate effect of the previous operations up to that point.
11. 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.
12. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANGELICA RUIZ whose telephone number is (571)270-3158. The examiner can normally be reached M-F 10:00 am to 6:00 pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Boris Gorney can be reached at (571) 270-5626. 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.
/ANGELICA RUIZ/Primary Examiner, Art Unit 2154 October 10, 2026