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 .
DETAILED ACTION
This Office Action is in response to the application filed on 11/05/2025.
Claims 1-20 are pending.
Information Disclosure Statement
The information disclosure statement (IDS) filed on 11/05/2025 has been considered (see form-1449, MPEP 609).
Drawings
The drawings filed on 11/05/2025 are accepted.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-19 of U.S. Patent No. 12,493,612, and over claims 1-20 of Patent No. 11,940994. Although the conflicting are not patentably distinct from each other because the claims of the Patent No. 12,493,612 and 11,940,994 contains every element of the claims of the instant application, and as such, anticipate the claims of the instant application 19/380,666. (See table below).
Instant Application claim 1
Patent No. 12,493,612 claim 10
A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising:
maintaining a chain structure that links and orders a set of database objects stored in a cache, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation includes:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure; setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising: maintaining a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of database transactions against a database; determining to perform a first eviction operation to remove a particular set of database objects from the chain structure; and performing the first eviction operation using a first process, wherein the performing of the first eviction operation includes the first process: performing a comparison between an eviction identifier and a particular value; and in response to the comparison indicating that a relationship between the eviction identifier and the particular value satisfies a particular criteria, updating the eviction identifier to a different value, wherein the updated eviction identifier prevents other processes from performing eviction operations on the chain structure while the eviction identifier specifies the different value; after the updating of the eviction identifier, evicting the particular set of database objects from the chain structure; and after the evicting, updating the eviction identifier to the particular value to permit other processes to perform eviction operations on the chain structure.
Claims 10-14 of Patent No. 12,493,612 satisfies all the elements of claims 1-9 of the instant application, and as such, anticipates the claims of instant application.
Instant Application claim 10
Patent No. 12,493,612 claim 1
A method, comprising:
maintaining, by a computer system, a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing, by the computer system, an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure;
setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A method, comprising: maintaining, by a computer system, a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of database transactions against a database; receiving, by the computer system, a transaction request to perform a database transaction with respect to the database; as part of performing the database transaction, the computer system determining to perform a first eviction operation to remove a particular set of database objects from the chain structure; and performing, by the computer system, the first eviction operation, wherein the performing of the first eviction operation includes a first process of the computer system: performing a comparison between an eviction identifier and a particular value; and in response to the comparison indicating that a relationship between the eviction identifier and the particular value satisfies a particular criteria, updating the eviction identifier to a different value, wherein the updated eviction identifier prevents other processes from performing eviction operations on the chain structure while the eviction identifier specifies the different value; after the updating of the eviction identifier, evicting the particular set of database objects from the chain structure; and after the evicting, updating the eviction identifier to the particular value to permit other processes to perform eviction operations on the chain structure.
Claims 1-9 of Patent No. 12,493,612 satisfies all the elements of claims 10-15 of the instant application, and as such, anticipates the claims of instant application.
Instant Application claim 16
Patent No. 12/ 493,612 claim 15
A system, comprising: at least one processor; and
memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising:
maintaining a chain structure that links and orders a set of database objects stored in a cache, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation includes:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure;
setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A system, comprising: at least one processor; and memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising: maintaining a chain structure that links and orders a set of database objects stored in a cache of the system, wherein the set of database objects is usable to affect a performance of database transactions against a database; determining to perform a first eviction operation to remove a particular set of database objects from the chain structure; and performing the first eviction operation using a first process, wherein the performing of the first eviction operation includes the first process: performing a comparison between an eviction identifier and a particular value; and in response to the comparison indicating that a relationship between the eviction identifier and the particular value satisfies a particular criteria, updating the eviction identifier to a different value, wherein the updated eviction identifier prevents other processes from performing eviction operations on the chain structure while the eviction identifier specifies the different value; after the updating of the eviction identifier, evicting the particular set of database objects from the chain structure; and after the evicting, updating the eviction identifier to the particular value to permit other processes to perform eviction operations on the chain structure.
Claims 15-19 of Patent No. 12,493,612 satisfies all the elements of claims 16-20 of the instant application, and as such, anticipates the claims of instant application.
Instant Application claim 1
Patent No. 11,940,994 claim 1
A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising:
maintaining a chain structure that links and orders a set of database objects stored in a cache, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation includes:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure; setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising: maintaining a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of a database transaction against a database; receiving transaction requests to perform database transactions with respect to the database; as part of performing the database transactions, determining to perform an insertion operation to insert a first database object into the chain structure and an eviction operation to remove a second database object from the chain structure; and performing the insertion and eviction operations at least partially in parallel using a set of atomic operations without acquiring a lock on the chain structure.
Claims 11-15 of Patent No. 11,940,994 satisfies all the elements of claims 1-9 of the instant application, and as such, anticipates the claims of instant application.
Instant Application claim 10
Patent No. 12,493,612 claim 1
A method, comprising:
maintaining, by a computer system, a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing, by the computer system, an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure;
setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A method, comprising: maintaining, by a computer system, a chain structure that links and orders a set of database objects stored in a cache of the computer system, wherein the set of database objects is usable to affect a performance of a database transaction against a database; receiving, by the computer system, transaction requests to perform database transactions with respect to the database; as part of performing the database transactions, the computer system determining to perform an insertion operation to insert a first database object into the chain structure and an eviction operation to remove a second database object from the chain structure; and performing, by the computer system, the insertion and eviction operations in parallel using a set of atomic operations without acquiring a lock on the chain structure.
Claims 1-10 of Patent No. 12,493,612 satisfies all the elements of claims 10-15 of the instant application, and as such, anticipates the claims of instant application.
Instant Application claim 16
Patent No. 11,940994 claim 16
A system, comprising: at least one processor; and
memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising:
maintaining a chain structure that links and orders a set of database objects stored in a cache, wherein the set of database objects is usable to affect a performance of database transactions against a database;
performing an insertion operation to insert a particular database object into the chain structure, wherein the performing of the insertion operation includes:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure;
setting a pointer of the particular database object to point to the head database object;
performing a comparison between the head database object and a current head database object pointed at by the head pointer; and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation.
A system, comprising: at least one processor; and memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising: accessing a chain structure that links and orders a set of database objects stored in a cache of the system, wherein the set of database objects is usable to affect a performance of a database transaction against a database; determining to perform an insertion operation to insert, into the cache and the chain structure, a first database object accessed as part of performing a database transaction; determining to perform an eviction operation to evict a second database object from the cache and the chain structure, wherein the insertion and eviction operations include modifying the chain structure; performing the insertion and eviction operations in parallel using a set of atomic operations without acquiring a lock on the chain structure; and accessing the first database object from the cache as a part of performing another database transaction.
Claims 16-20 of Patent No. 11/940994 satisfies all the elements of claims 16-20 of the instant application, and as such, anticipates the claims of instant application.
Examiner Notes
Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
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.
The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-2, 4-7, 10-12, 14-17 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Schvey et al. (US PGPUB 2018/0349621, hereinafter Schvey), in view of Mark Hahnenberg (US PGPUB 2015/0067658, hereinafter Hahnenberg).
As per as claim 1, Schvey discloses:
A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising:
maintaining a chain structure that links and orders a set of database objects stored in a cache, wherein the set of database objects is usable to affect a performance of database transactions against a database (Schvey, e.g., [0005], “…distributed databases that include linked blocks that together form a chain, where each block includes a hash of the prior block in the chain which links the two blocks together…” and [0010-0011], [0066], “…a cryptographic system for the distribution of data structures among peer nodes in one or more networks built on top of an underlying network is provided, wherein the data structures includes a plurality of global state roots and wherein the plurality of global state roots includes a plurality of state roots, the cryptographic system comprising: a memory that stores a plurality of permissioned blocks within a privately sub spaced blockchain; a state root generator that creates a state root based on encrypted messages exchanged between a plurality of peer nodes within a subspace; a global state root generator that creates a global state root based on one or more state roots…”));
performing an insertion operation to insert a particular database object into the chain structure (Schvey, e.g., [0006], [0038], “…data to be permissioned to allow read/write access as necessary by nodes with sufficient permissions…” and [0046], “… defined subset of users are permitted to access and add to…”), wherein the performing of the insertion operation includes:
identifying, from a head pointer of the chain structure, a head database object at a head end of the chain structure (Schvey, e.g., [0046-0048], “…the header includes a global hash value that is based on one or more underlying hash values that correspond to subspaces and other data in the block. In a preferred embodiment, the global hash value is the state root of a hash tree, such as a Merkle tree, and where the underlying leaves of the tree represent subspaces. The header further includes a message root, which is a summary of all messages contained in the block, and which updates based on events triggered by the contents of the privately subspaced blockchain. Each subspace includes, in addition to the subspace's state root, the subspace's message root, receipt root, and amount of “gas” used for the execution (i.e., the number of computational steps for the transaction execution)…”);
setting a pointer of the particular database object to point to the head database object (Schvey, e.g., [0041-0046], “… secure hash may be used to implement the node ID, thereby allowing the use of different certificate types … a link to the previous block in the privately subspaced blockchain. Each block 400 includes a header 402 that has state information which is used to validate the contents of the block. As described in greater detail herein, the header includes a global hash value that is based on one or more underlying hash values that correspond to subspaces and other data in the block. In a preferred embodiment, the global hash value is the state root of a hash tree, such as a Merkle tree, and where the underlying leaves of the tree represent subspaces…”);
performing a comparison between the head database object and a current head database object pointed at by the head pointer (Schvey, e.g., [0059-0060], “…node C1 combines the state roots from the subspaces and determines a global state root and an updated block header and requests approval of the updated block header from follower nodes in the network. The follower nodes compare the updated block header from the block leader with their own determinations of the block header and indicate their approval to the block leader. Once approval is received, the block leader (in this example, node C1) creates the official block for that point in the privately subspaced blockchain, incorporating the state roots from all subspaces…”); and
in response to the comparison indicating that the head database object matches the current head database object, updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation (Schvey, e.g., [0046-0048], “…The header further includes a message root, which is a summary of all messages contained in the block, and which updates based on events triggered by the contents of the privately subspaced blockchain. Each subspace includes, in addition to the subspace's state root, the subspace's message root, receipt root, and amount of “gas” used for the execution (i.e., the number of computational steps for the transaction execution). The message root and receipt root are tree root hashes that update based on events triggered by the addition of messages and receipts, and are based on the data contained in those messages and receipt…”).
To further clarify the features of “updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation”.
However Hahnenberg, in an analogous art, discloses “updating the head pointer to point to the particular database object, wherein the comparison and the updating of the head pointer are performed together as an atomic operation” (Hahnenberg, e.g., [0045], [0076-0080], “… atomic update operation on the object to simultaneously update both the property reference and the index reference. For example, the atomic update operation can be performed to compare the property reference with a reference to the property structure and set the property reference to refer to the updated property structure if the property reference corresponds to the reference to the property structure based on the comparison…”). Thus, it would have been obvious to one of ordinary skill in the art BEFORE the effective filling date of the claimed invention to combine the teaching of Hahnenberg and Schvey to perform synchronized update operations without relying on costly software based lock/unlock mechanism and to ensure an atomic update operation is performed without interruption (Hahnenberg, e.g., [0041-0045]).
As per as claim 2, the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 1, wherein the performing of the insertion operation includes:
subsequent to the updating of the head pointer, setting a pointer of the head database object to point to the particular database object (Hahnenberg, e.g., [0076-0079], “...structure subsequent to the concurrent execution of the first and second instructions… atomic update operation on the object to simultaneously update both the property reference and the index reference. For example, the atomic update operation can be performed to compare the property reference with a reference to the property structure and set the property reference to refer to the updated property structure if the property reference corresponds to the reference to the property structure based on the comparison…”).
As per as claim 4, the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 1, wherein the operations further comprise:
performing a second insertion operation to insert a second particular database object into the chain structure (Schvey, e.g., [0006], [0038], [0046]), wherein the performing of the second insertion operation includes:
based on detecting that the head pointer indicates that the chain structure is empty, performing an atomic operation to update a tail pointer of the chain structure to point to the second particular database object (Hahnenberg, e.g., [0109-0110]); and
updating the head pointer to point to the second particular database object (Hahnenberg, e.g., [0045], [0076-0080], “… atomic update operation on the object to simultaneously update both the property reference and the index reference. For example, the atomic update operation can be performed to compare the property reference with a reference to the property structure and set the property reference to refer to the updated property structure if the property reference corresponds to the reference to the property structure based on the comparison…”).
As per as claim 5, the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 1, wherein the insertion operation is performed without acquiring a lock on the chain structure (Schvey, e.g., [0041-0046]).
As per as claim 6, the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 1, wherein the operations further comprise:
subsequent to the updating of the head pointer, performing an eviction operation to remove one or more database objects stored in the cache, wherein the performing of the eviction operation includes removing, from the cache beginning from a tail database object pointed at by a tail pointer of the chain structure, database objects up to, but not including, the particular database object pointed at by the head pointer (Hahnenberg, e.g., [0076-0079], “...structure subsequent to the concurrent execution of the first and second instructions… atomic update operation on the object to simultaneously update both the property reference and the index reference. For example, the atomic update operation can be performed to compare the property reference with a reference to the property structure and set the property reference to refer to the updated property structure if the property reference corresponds to the reference to the property structure based on the comparison…”).
As per as claim 7, the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 6, wherein the eviction operation is performed in response to detecting that a capacity of the cache satisfies a fullness threshold (Hahnenberg, e.g., [0187-0189], “…properties of the object and the space required to store an entire array of the properties with the additional array elements exceeds the available capacity of an online storage in the corresponding object cell…”).
Claims 3, 12 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Schvey et al. (US PGPUB 2018/0349621, hereinafter Schvey), in view of Mark Hahnenberg (US PGPUB 2015/0067658, hereinafter Hahnenberg) and further in view of Cha et al. (US PGPUB 2017/0075834, hereinafter Cha).
As per as claims 3, 12 and 18 the combination of Hahnenberg and Schvey disclose:
The non-transitory computer-readable medium of claim 1, method of claim 12 and system of claim 18, wherein the operations further comprise:
Hahnenberg and Schvey disclose comparison of objects database (Schvey, e.g., [0046-0048], but Hahnenberg and Schvey do not explicitly disclose “re-performing the identifying and the setting in response to the comparison indicating a mismatch between the head database object and the current head database object”.
However Cha, in an analogous art, discloses “re-performing the identifying and the setting in response to the comparison indicating a mismatch between the head database object and the current head database object” (Cha, e.g., [0005-0008], “…generation condition is satisfied when a difference between a tail pointer and a head pointer of a completion queue of the host in which the completion entry is stored is equal to a first mismatch value. The second interrupt generation condition is satisfied when the difference between the tail pointer and the head pointer is at least equal to an aggregation threshold…” and [0041-0043], [0058-0060], “…generating an interrupt at a point in time when a first mismatch between a tail pointer and a head pointer of the completion queue CQ occurs…generate a relatively small number of interrupts when the number of completion entries accumulated with the lazy interrupt generation operation exceeds a threshold…”). Thus, it would have been obvious to one of ordinary skill in the art BEFORE the effective filling date of the claimed invention to combine the teaching of Cha, Hahnenberg and Schvey to response to at least one of a first interrupt generation condition, a second interrupt generation condition, and a third interrupt generation condition being satisfied (Cha, e.g., [0006]).
Claims 10-11 and 13-15 are essentially the same as claims 1-2 and 4-7 except that they set forth the claimed invention as a method rather a non-transitory, respectively and correspondingly, therefore is rejected under the same reasons set forth in rejections of claims 1-2 and 4-7.
Claims 16-17 and 19-20 are essentially the same as claims 1-2 and 4-7 except that they set forth the claimed invention as a system rather a non-transitory, respectively and correspondingly, therefore is rejected under the same reasons set forth in rejections of claims 1-2 and 4-7.
Allowable Subject Matter
The prior arts do not teach “performing an eviction operation to remove one or more database objects stored in the cache, wherein the performing of the eviction operation includes: identifying, from a tail pointer of the chain structure, a tail database object at a tail end of the chain structure; based on detecting that the tail database object is pointed at by the head pointer, performing an atomic operation to update the head pointer to indicate that the chain structure is empty;
based on detecting that the identified tail database object matches a current tail database object pointed at by the tail pointer, performing an atomic operation to update the tail pointer to indicate that the chain structure is empty; and removing the tail database object from the cache” (Claim 8), “performing an eviction operation to remove one or more database objects stored in the cache, wherein the performing of the eviction operation includes: performing a comparison between an eviction identifier and a particular value; and in response to the comparison indicating that the eviction identifier matches the particular value, updating the eviction identifier to a different value, wherein the updated eviction identifier prevents other processes from performing eviction operations on the chain structure while the eviction identifier specifies the different value” (Claim 9). Per the instant office action, claims 8 and 9 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Additional Art Considered
The prior art made of record and not relied upon is considered pertinent to the Applicants’ disclosure.
The following patents and papers are cited to further show the state of the art at the time of Applicants’ invention with respect to manipulating a chain of database objects without locking the chain which maintain a chain that orders a set of database objects stored in a cache of the computer system, further determine to perform a plurality of chain operations that involve modifying the chain. The computer system may perform two or more of the plurality of chain operations at least partially in parallel using a set of atomic operations without acquiring a lock on the chain.
Hornung et al. (US PGPUB 2022/0066869, hereafter Hornung); “Method Of Demand Scrubbing By Placing Corrected Data In Memory Side Cache” discloses “control accesses to a storage array, and the memory controller chiplet can facilitate error correction and cache management in a manner to minimize interruptions to a sequence of data reads to write corrected data from a prior read back into the storage array”.
Hornung also teaches error detection, error correction, maintenance operations, or atomic operation execution [0023].
Hornung further teaches Built-in atomic operations can also involve requests for a “standard” atomic operation on the requested data, such as a comparatively simple, single cycle, integer atomics (e.g., fetch-and-increment or compare-and-swap), which will occur with the same throughput as a regular memory read or write operation not involving an atomic operation [0035-0038].
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TUAN A PHAM whose telephone number is (571)270-3173. The examiner can normally be reached M-F 7:45 AM - 6:30 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, Tony Mahmoudi can be reached on 571-272-4078. 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.
/TUAN A PHAM/Primary Examiner, Art Unit 2163