DETAILED ACTION
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 instant application having Application No. 19/115,984 filed on 09/28/2023 is presented for examination by the Examiner. Claims 1-20 are currently pending in the present application.
Drawings
The drawings filed 03/27/2025 are accepted for examination purposes.
Information Disclosure Statement
As required by M.P.E.P. 609, the Applicant's submission of the Information Disclosure Statement dated 09/11/2025 is acknowledged by the Examiner and the cited references have been considered in the examination of the claims now pending.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
As per claim 1, the claim recites “A computer-implemented method of distributed administration of a lock, comprising:
receiving multiple concurrent requests by multiple servers;
performing, by the multiple servers, lock preemption to a distributed lock
using a synchronization mechanism;
acquiring the distributed lock using the synchronization mechanism by only
one server of the multiple servers;
updating, by the only one server, a lock value of the distributed lock; and
executing business logic;
wherein performing, by a respective server of the multiple servers, lock
preemption to the distributed lock comprises comparing a current memory value of the
distributed lock with an expected value;
wherein the method further comprises:
modifying, by the only one server, the current memory value to an updated
value if the current memory value matches the expected value;
writing, by the only one server, the updated value to a memory of the
distributed lock; and
restoring, by the only one server, a memory value of the distributed lock to the
current memory value if executing business logic fails; and
recording, by the only one server, an operation of restoring the memory value”.
Step 1 : Statutory Category
Claim 1 discloses a method which is a process within the meaning of the section.
Step 2A - Prong One: Judicial Exception Recited
The claim recites the limitations “performing” and “acquiring” which specifically recite “performing, by the multiple servers, lock preemption……………..a synchronization mechanism” and “acquiring the distributed lock using the synchronization………………..the multiple servers”. These limitations are processes that, under their broadest reasonable interpretation, cover performance of the limitation in the mind, but for the recitation of generic computer components. That is, other than reciting “processor”, nothing in the claim element precludes the steps from practically being performed in a human mind or with the aid of pen or paper. For example, “acquiring” in the context of this claim encompass a user mentally, and with the aid of pen and paper looking at the data items/records and identify that the data items/records are relevant.
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea.
Step 2A - Prong Two: Integrated into a Practical Application
The claim recites the additional elements “receiving multiple concurrent…………”, “restoring, by the only one server, a memory value……..” and “recording, by the only one server, an operation………..”. The judicial exception is not integrated into a practical application. In particular, the additional steps: the “receiving” step mounts to data gathering which is considered to be insignificant extra-solution activity (see MPEP 2106.05(g)). Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea, thus fail to integrate the abstract idea into a practical application. See MPEP 2106.05(g).
Step 2B: Claim provides an Inventive Concept
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The insignificant extra-solution activities identified above, which include the data-gathering and the steps of “updating, by the only one server, ….…” and “modifying, by the only one server, ……..” and “writing, by the only one server,.……” are recognized by the courts as well-understood, routine, and conventional activities when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity (see MPEP 2106.05(d)(II)). For these reasons, there is no inventive concept in the claim, and thus it is ineligible.
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element of using one or more processors to detect the updating, by the only one server………” and “modifying” steps amount to no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept.
The claim as a whole, does not amount to significantly more than the abstract idea itself. This is because the claim does not affect an improvement to the functioning of a computer itself; and the claim does not move beyond a general link of the use of an abstract idea to a particular technological environment.
Accordingly, claim 1 is directed to an abstract idea.
As per claim 2, the claim recites “wherein performing, by the respective server
of the multiple servers, lock preemption to the distributed lock further comprises maintaining
the current memory value of the distributed lock unchanged if the current memory value does
not match the expected value”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 3, the claim recites “wherein performing, by the respective server of the multiple servers, lock preemption to the distributed lock further comprises providing, by a processor, a CPU instruction that atomotically compares the current memory value of the distributed lock with an expected value and updates it if the comparison succeeds”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 4, the claim recites “releasing the distributed lock subsequent to restoring the memory value of the distributed lock to the current memory value”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 5, the claim recites “utilizing Redis as an underlying data storage and coordination mechanism for the distributed lock; wherein each distributed lock is represented by a specific key-value pair in Redis, where the key represents the lock identifier, and the value represents the lock state or
value; a Compare and Swap principle is applied to the Redis key-value pair representing the distributed lock; and when the respective server attempts to preempt the lock, it performs a Compare and Swap operation on a lock value stored in Redis”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 6, the claim recites “utilizing Lua scripting for performing atomotic operations and business logic on Redis data”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 7, the claim recites “recording, by the only one server, an operation of restoring the memory value”. The judicial exception is not integrated into a practical application. In particular, this additional limitation amounts to no more than mere instructions to exception to perform an existing process on a generic computer (MPEP 2106.05(f)). Mere instructions to apply an exception using a generic computer do not amount to significantly more.
As per claim 8 the claim recites “An apparatus for distributed administration of a lock, comprising:
a data storage and coordination mechanism for a distributed lock; and
multiple servers;
wherein the multiple servers are configured to:
receive multiple concurrent requests; and
perform lock preemption to a distributed lock using a synchronization
mechanism;
wherein only one server of the multiple servers is configured to:
acquire the distributed lock using the synchronization mechanism;
update a lock value of the distributed lock; and
execute business logic;
wherein a respective server of the multiple servers is configured to compare a
current memory value of the distributed lock with an expected value;
wherein the only one server of the multiple servers is configured to:
modify the current memory value to an updated value if the current memory
value matches the expected value;
write the updated value to a memory of the distributed lock; and
restore a memory value of the distributed lock to the current memory value if
executing business logic fails”.
Step 1: Statutory Category
Claim 8 discloses a system which is a machine within the meaning of the section.
Claim 8 recites the same limitations as claim 1 and therefore is rejected under the same premise as claim 1.
As per claim 9, the claim is rejected under the same premise as claim 2.
As per claim 10, the claim is rejected under the same premise as claim 3.
As per claim 11, the claim is rejected under the same premise as claim 4.
As per claim 12, the claim is rejected under the same premise as claim 5.
As per claim 13, the claim is rejected under the same premise as claim 6.
As per claim 14, the claim is rejected under the same premise as claim 7.
As per claim 15 the claim recites “A computer-program product, comprising a non-transitory tangible computer-readable medium having computer-readable instructions thereon, the computer-readable instructions are executable by one or more processors to cause the one or more processors to perform:
causing multiple servers to receive multiple concurrent requests;
causing the multiple servers to perform lock preemption to a distributed lock
using a synchronization mechanism;
causing only one server of the multiple servers to acquire the distributed lock
using the synchronization mechanism;
causing the only one server to update a lock value of the distributed lock; and
causing the only one server to execute business logic;
wherein the computer-readable instructions being executable by a processor to
cause the processor to perform:
causing a respective server of the multiple servers to compare a current
memory value of the distributed lock with an expected value;
wherein the computer-readable instructions being executable by a processor to
cause the processor to perform:
causing the only one server to modify the current memory value to an updated
value if the current memory value matches the expected value;
causing the only one server to write the updated value to a memory of the
distributed lock; and
causing the only one server to restore a memory value of the distributed lock
to the current memory value if executing business logic fails”.
Step 1: Statutory Category
Claim 15 discloses a CRM which is a manufacture within the meaning of the section.
Claim 15 recites the same limitations as claim 1 and therefore is rejected under the same premise as claim 1.
As per claim 16, the claim is rejected under the same premise as claim 2.
As per claim 17, the claim is rejected under the same premise as claim 3.
As per claim 18, the claim is rejected under the same premise as claim 4.
As per claim 19, the claim is rejected under the same premise as claim 5.
As per claim 20, the claim is rejected under the same premise as claim 6.
Allowable Subject Matter
7. Claims 1-20 would be allowable if rewritten or amended to overcome the rejections as set forth in this Office action.
Conclusion
8. The prior art made of record, listed on PTO 892 provided to Applicant is considered to have relevancy to the claimed invention. Applicant should review each identified reference carefully before responding to this office action to properly advance the case in light of the prior art.
Contact Information
9. Any inquiry concerning this communication or earlier communications from the examiner should be directed to KIM T NGUYEN whose telephone number is (571)270-1757. The examiner can normally be reached on Mon-Thurs 6-4:30pm.
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.
Aug. 27, 2026
/KIM T NGUYEN/Primary Examiner, Art Unit 2153