×

Negotiable locks for concurrent access of control data by multiple programs

  • US 5,721,943 A
  • Filed: 10/14/1993
  • Issued: 02/24/1998
  • Est. Priority Date: 10/14/1993
  • Status: Expired due to Fees
First Claim
Patent Images

1. In a computing system supporting concurrent access to control data by a plurality of program sessions where each of the program sessions requests a lock on the control data for concurrent access by each program session, a method for controlling concurrent access to the control data comprising the machine executed steps of:

  • receiving a request from a program session for a lock on the control data being accessed by the program session, wherein the control data is a set of rules for execution by the program session;

    granting the holding of a lock on the control data;

    receiving requests from other program sessions for additional locks on the control data, wherein at least one of the held lock and the requests for additional locks is an inferencing lock, wherein the inferencing lock allows a requesting program session to execute the control data;

    determining whether each of the requests for an additional lock conflicts with any held lock on the control data, or whether each of the requests does not conflict with any held lock, or whether negotiation between the holder of the held lock and the requester of the additional lock is required;

    granting an additional lock for each request that does not conflict with any held lock, wherein a reading update lock does not conflict with an inferencing lock, wherein the reading update lock indicates that the control data being locked will be modified;

    for each request for an additional lock that conflicts with any held lock, determining whether the request and the conflicting held lock can be resolved by negotiation between the holder of the held lock and the requester of the additional lock;

    denying those requests for additional locks where the request conflicts with any held lock and at least one of the held locks or requests cannot be resolved by negotiation between the holder of the held lock and the requester of the additional lock;

    notifying program sessions holding locks and program sessions requesting locks if the requests and held locks are negotiable;

    generating a success message indicating the negotiation has been successful or a failure message indicating the negotiation has failed, wherein said generating step further comprises the steps of;

    detecting that a program session holding a lock has removed the held lock or has changed the held lock to a lock that does not conflict with each requested additional lock or that the requesting program sessions have changed the requested additional locks to locks that do not conflict with the held lock,sending a success message in response to any of the conditions detected by said detecting step, andsending a failure message if none of the conditions detected by said detecting step are detected;

    granting the additional locks to sessions in response to the success message; and

    denying the additional locks if there is a failure message.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×