Nova Patents
EP3336718B1

Method for querying a database

Abstract

This record has no abstract on file.

EP3336718B1, drawing sheet 1
Sheet 1 of 4

Term

10.2 yearsleft in the term

Expires 16 December 2036.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

17 claims: 12 independent, 5 dependent

  1. 1
    A method for querying a database (30) stored on a server (22) via a network (48), the server (22) being coupled to the client (10) computer via the network (48), wherein the database (30) comprises a relation (32) being a tree, the relation (32) comprising data items (80-181) of respective nodes of the tree, the data items forming a partially ordered set in the relation (32), the data items being lexically sorted in the tree, the method comprising receiving at the client (10) a request (19) for a data operation on a desired data item, the method comprising a. determining as an initial version number of the tree valid for all the data items a currently valid single version number of the tree, b. traversing, starting from an initial data item of the data items, the relation (32) by repeatedly requesting by the client (10) current data items from the database (30) in order with respect to the partial order until the position of the desired data item or the desired data item itself is identified in the partially ordered set, wherein for each requesting the method comprises:determining the currently valid version number of the relation of the data items of the partially ordered set, and aborting the traversing in case the currently valid single version number of the tree is different from the initial version number of the tree, c. in case the traversing was completed, performing the data operation on the identified position of the desired data item or the desired data item itself, d. upon performing the data operation updating the currently valid version number to a new version number.
  2. 3
    The method of any of the previous claims, - the requesting further comprising transmitting the initial version number from the client (10) to the server (22) and receiving the transmitted initial version number by the server (22), - the determining if the currently valid version number is different from the initial version number being performed by the server (22) and comprises by the server (22) comparing the transmitted initial version number with the currently valid version number, - the aborting of the traversing being performed by the server (22).
  3. 5
    The method of any of the previous claims, wherein steps a.-b. are repeated in case the traversing was aborted, the method further comprising notifying the aborting to the client (10), the client (10) in response to the notifying initiating the repetition of the steps a.-b.
  4. 6
    The method of any of the previous claims, the updating of the currently valid version number to the new version number comprising an incrementing of the currently valid version number.
  5. 7
    The method of any of the previous claims, the request for the data operation on the desired data item comprising anyone of - a read request of the desired data item, - a request for a modification of the desired data item, - a request for inserting the desired data item into the partially ordered set, the position of the desired data item being the position in the partial ordered set at which the desired data item is to be inserted.
  6. 9
    The method of any of the previous claims, wherein steps a.-b. are repeated in case the traversing was aborted, wherein in case the data operation is a read request and for that read request the number of abortions of the traversing exceeds a predetermined threshold, the method further comprises - providing a read override flag to the partially ordered set, the read override flag blocking any new data operations on the data items involving a modification of at least a subset of the data items or an inserting of a further data item into the subset of the data items, - releasing the read override flag after the data operation on the identified position of the desired data item or the desired data item itself was completed.
  7. 11
    The method of any of the previous claims, wherein the data items are encrypted with a cryptographic key (18) in the relation (32), the partial order being formed with respect to the data items in non-encrypted form, the requesting and receiving by the client (10) of the current data items from the database (30) in order with respect to the partial order comprising by the client (10) - receiving the current data item, - decrypting the current data item, - providing a request for a new current data item to the database (30), the request comprising information that the new current data item is to be retrieved from a position in the partial order succeeding or preceding the position of the current data item, depending if the position of the desired data item in the partial order is preceding or succeeding the position of the decrypted current data item.
  8. 13
    The method of any of the previous claims, wherein in the relation (32) the data items form the partial ordered set via a rooted tree, the initial data item being the data item stored at the root of said tree.
  9. 14
    A method for querying a database (30) stored on a server (22) via a network (48), the server (22) being coupled to the client (10) computer via the network (48), wherein the database (30) comprises a relation (32) being a tree, the relation (32) comprising data items (80-181) of respective nodes of the tree, the data items forming a partially ordered set in the relation (32), the data items being lexically sorted in the tree, the method comprising by the server (22) a. determining as an initial version number of the tree valid for all the data items a currently valid single version number of the tree, and transmitting the initial version number to the client, b. repeatedly receiving requests for the data items from the client, the requests comprising the initial version number, wherein for each request the currently valid version number of the tree of the data items of the partially ordered set is determined, and providing in response to the requests the requested data items to the client (10) in case the currently valid single version number of the tree matches the received initial version number of the tree, the providing being aborted in case the currently single valid version number of the tree s different from the received initial version number of the tree;the method further comprising updating the currently valid version number to a new version number.
  10. 15
    A computer program product comprising computer executable instructions to perform the method as claimed in any of the previous claims.
  11. 16
    A client (10) computer for querying a database (30) stored on a server (22) via a network (48), the server (22) being coupled to the client (10) computer via the network (48), wherein the database (30) comprises a relation (32) being a tree, the relation (32) comprising data items (80-181) of respective nodes of the tree, the data items (80-181) forming a partially ordered set in the relation (32), the data items being lexically sorted in the tree, the client (10) being adapted to receiving at the client (10) a request (19) for a data operation on a desired data item, the client (10) being adapted for a. receiving as an initial version number of the tree valid for all the data items a currently valid single version number of the tree, b. traversing, starting from an initial data item of the data items, the relation (32) by repeatedly requesting by the client (10) current data items from the database (30) in order with respect to the partial order until the position of the desired data item or the desired data item itself is identified in the partially ordered set, wherein for each requesting the initial version number of the tree is transmitted from the client (10) to the server (22), wherein in response to each requesting either the current data item or a notification of an aborting is received from the server (22), the aborting being the result that a currently valid single version number of the tree is different from the initial version number of the tree, c. in case the traversing was completed, performing the data operation on the identified position of the desired data item or the desired data item itself.
  12. 17
    A server (22) computer comprising a database (30), the server (22) being coupled to a client (10) computer via a network (48), wherein the database (30) comprises a relation (32), the relation (32) comprising data items (80-181), the data items (80-181) forming a partially ordered set in the relation (32), the server (22) being adapted for a. determining as an initial version number of the data items a currently valid single version number of the tree of the data items (80-181), and transmitting the initial version number of the tree to the client, b. repeatedly receiving requests for the data items from the client (10), the requests comprising the initial version number of the tree, wherein for each request the currently single valid version number of the tree of data items of the partially ordered set is determined, and providing in response to the requests the requested data items to the client (10) in case the currently valid single version number of the tree matches the received initial version number of the tree, the providing being aborted in case the currently valid version number is different from the received initial version number;receiving a request to perform a data operation on the identified position of the desired data item or the desired data item itself, performing the data operation and updating the currently valid version number to a new version number.