US8204989B2

Lightweight directory access protocol (LDAP) collision detection mechanism and method

Summary by NHIP

LDAP Collision Detection Method

The method detects and avoids update collisions on directory entries by assigning collision detection counter attributes to data subsets. Clients submit modification requests containing incremented counter values and a replace operation to verify data integrity before changes occur.

Claim Score by NHIP

Read claim 19, the broadest

Abstract

A LDAP collision detection mechanism and a method are described herein that allow a LDAP client to detect and avoid an update operation collision on an entry within a LDAP directory. The method includes the steps of: (a) reading data from the entry in the directory; (b) processing the retrieved data; (c) sending a request to modify the data in the entry in the directory, wherein the client is assured that the requested modification will not be performed by the directory if another client had previously performed a modification on the data within the entry that was originally read by the client. There are several different embodiments of the LDAP collision detection mechanism and the method described herein.

US8204989B2, drawing sheet 1
Sheet 1 of 10

Term

Projected expiry 7 September 2028.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

20 claims: 4 independent, 16 dependent

  1. 1
    A method for detecting and avoiding collisions on an entry in a directory upon update operations from more than one client front-end, said method comprising the steps of:receiving at the directory a request from a client front-end to read data on an entry in the directory;assigning at the directory at least one given collision detection value corresponding to at least one subset of the data on the entry in the directory, wherein the at least one given collision detection value is a given collision detection counter attribute (CDC), having a value (x) on the entry in the directory;submitting towards the client front-end the requested data along with the at least one given collision detection value;receiving at the directory a request from the client front-end to modify the at least one subset of the data on the entry in the directory, the request having at least one updated collision detection value for each at least one given collision detection value, wherein the request having the at least one updated collision detection value includes: (i) one or more ADD operations as follows ADD: CDC=(x)+1, ADD: CDC=(x)+2. . . ADD: CDC=(x) +Number of Collisions to Detect (NCD), where NCD has a value equal to or greater than a number of concurrent clients which could possibly read and modify the data from the entry in the directory;(ii) modified data;and (iii) a REPLACE operation as follows: REPLACE CDC=(x)+1;determining at the directory whether the at least one updated collision detection value is in accordance with a corresponding current collision detection value or not;submitting towards the client front-end either acceptance of the request to modify the at least one subset of the data on the entry in the directory, where the at least one updated collision detection value is in accordance with the corresponding current collision detection value, or refusal of the request if the request has an ADD operation that tries to operate on a current CDC attribute having a different value within the entry than the given CDC attribute value (x);and where the request is found acceptable, setting the current collision detection value to a next value.
  2. 7
    A directory accessible to a number of clients for reading and updating data therein, and arranged to detect and avoid an update operation collision on an entry in the directory, the directory comprising:input read means receiving a request from a client to read data on an entry in the directory;processing means assigning at least one given collision detection value corresponding to at least one subset of the data on the entry in the directory, wherein the at least one given collision detection value is a given collision detection counter attribute (CDC), having a value (x) on the entry in the directory;output read means submitting towards the client the requested data along with the at least one given collision detection value;input update means receiving a request from the client to modify the at least one subset of the data on the entry in the directory, the request to modify having at least one updated collision detection value for each at least one given collision detection value, wherein the request having the at least one updated collision detection value includes: (i) one or more ADD operations as follows ADD: CDC=(x)+1, ADD: CDC=(x)+2. . . ADD: CDC=(x) +Number of Collisions to Detect (NCD), where NCD has a value equal to or greater than a number of concurrent clients which could possibly read and modify the data from the entry in the directory;(ii) modified data;and (iii) a REPLACE operation as follows: REPLACE CDC=(x)+1;a collision detector determining whether the at least one updated collision detection value is in accordance with a corresponding current collision detection value or not;output update means either accepting and executing the request to modify the at least one subset of the data on the entry in the directory, where the at least one updated collision detection value is in accordance with the corresponding current collision detection value, or refusing and rejecting the request if the request has an ADD operation that tries to operate on a current CDC attribute having a different value within the entry than the given CDC attribute value (x);and the processing means setting the current collision detection value to a next value, where the request is found acceptable.
  3. 13
    A client front-end accessing a directory to read and update data therein, and comprising:output read means for submitting a request to read data on an entry in the directory;input read means for receiving the requested data along with at least one given collision detection value corresponding to at least one subset of the data on the entry in the directory, wherein the at least one given collision detection value is a given collision, detection counter attribute (CDC), having a value (x) on the entry in the directory;processor for processing the received data;output update means for sending a request to modify the at least one subset of the data on the entry in the directory, the request to modify having at least one updated collision detection value for each at least one given collision detection value, the request to modify having the at least one updated collision detection value including: (i) one or more ADD operations as follows ADD: CDC=(x)+1, ADD: CDC=(x)+2. . . ADD: CDC=(x) +Number of Collisions to Detect (NCD), where NCD has a value equal to or greater than a number of concurrent clients which could possibly read and modify the data from the entry in the directory;(ii) modified data;and (iii) a REPLACE operation as follows: REPLACE CDC=(x)+1;and input update means for receiving either acceptance of the request to modify the at least one subset of the data on the entry in the directory, where the at least one updated collision detection value is in accordance with a corresponding current collision detection value at the directory, or refusal of the request otherwise.
  4. 19
    Broadest claimClaim Score 25, narrow(NHIP)A method for detecting and avoiding collisions on an entry in a directory upon an update operation from a client front-end, said method comprising the steps of:submitting a request from a client front-end to read data on an entry in the directory;receiving at the client front-end the requested data along with at least one given collision detection value corresponding to at least one subset of the data, the at least one given collision detection value being a given collision detection counter attribute (CDC) having a value (x) on the entry in the directory;processing the retrieved data at the client front-end;sending a request from the client front-end to modify the at least one subset of the data on the entry in the directory, the request having at least one updated collision detection value for each at least one given collision detection value, the request having the at least one updated collision detection value, including: (i) one or more ADD operations as follows ADD: CDC=(x)+1, ADD: CDC=(x)+2 . . . ADD: CDC=(x) +Number of Collisions to Detect (NCD), where NCD has a value equal to or greater than a number of concurrent clients which could possibly read and modify the data from the entry in the directory;(ii) modified data;and (iii) a REPLACE operation as follows: REPLACE CDC=(x)+1;receiving at the client front-end either acceptance of the request to modify the at least one subset of the data on the entry in the directory, where the at least one updated collision detection value is in accordance with a corresponding current collision detection value at the directory, or refusal of the request otherwise.