Method and system for in-place modifications in a database
First Claim
1. A method for modifying an entry in a database, the database storing a plurality of entries comprising a class type and including a plurality of typed fields, the method comprising the steps of:
- providing a request including a first and a second template of the same type;
locating an entry in the database matching the first template; and
modifying the fields of the matching entry in place in the database according to the fields of the second template.
0 Assignments
0 Petitions
Accused Products
Abstract
A database system wherein one or more entry databases store a plurality of entries. Each entry is of a given type that defines the fields of the entry. Each field contains or identifies an object with associated attributes or data. The type of each entry may further define behavior in the form of methods the entry can implement. An entry type which is a subtype of another inherits all fields and behavior of its super-type, and contains additional fields and/or defines new/modified behavior. Entries may be expressed in a Java™ programming language. The database system may further employ a search engine which allows queries to be made upon entries in the database. In one implementation, the queries include a read operation, a take operation, and a notify operation. Each query request includes a command indicating the type of operation, and a template which is an entry object having some or all of its fields set to specific values that must be matched exactly. Other fields of the template entry may be specified as wildcards, whose values do not matter. The search engine may further be configured to create an index for caching entries having characteristics which are commonly specified by queries. In one implementation, the databases may also store sets of entries which are matched using sets of templates.
-
Citations
40 Claims
-
1. A method for modifying an entry in a database, the database storing a plurality of entries comprising a class type and including a plurality of typed fields, the method comprising the steps of:
-
providing a request including a first and a second template of the same type;
locating an entry in the database matching the first template; and
modifying the fields of the matching entry in place in the database according to the fields of the second template. - View Dependent Claims (2, 3, 4)
replacing each field of the matching entry corresponding to a non-null field in the second template with the value in the non-null field of the second template.
-
-
3. The method of claim 1, further including the step of:
repeating the locating and modifying steps until all entries in the database matching the first template are modified.
-
4. The method of claim 3, further including the step of:
returning a number representing the number of entries modified in the database.
-
5. A method for modifying items in a database, the database storing a plurality of items, each item including a plurality of typed entries, the method comprising the steps of:
-
providing a request including a first and a second multi-template, the templates of the first multi-template matching the number and type of the templates of the second multi-template;
locating an item in the database matching the first multi-template; and
modifying the entries of the matching item in place in the database according to the templates of the second multi-template received in request. - View Dependent Claims (6, 7, 8, 9)
modifying each entry in the matching item corresponding to a non-null template in the second multi-template according to the non-null template in the second multi-template.
-
-
7. The method of claim 5, wherein the modifying step includes the step of:
deleting each entry from the matching item corresponding to a null template in the second template.
-
8. The method of claim 5, further including the step of:
repeating the locating and modifying steps until all items in the database matching the first multi-template are modified.
-
9. The method of claim 8, further including the step of:
returning a number representing the number of items modified in the database.
-
10. A method for adding entries to items in place in a database, the database storing a plurality of items, each item including a plurality of typed entries, the method comprising the steps of:
-
providing a request including a multi-template and an item;
locating an item in the database matching the multi-template; and
adding the entries of the item received in the request to the matching item in the database. - View Dependent Claims (11, 12)
repeating the locating and adding steps until all items in the database matching the multi-template are modified.
-
-
12. The method of claim 10, further including the step of:
returning a number representing the number of items in the database to which entries were added.
-
13. A method for notification of a change of matching status between an entry and a template upon the modification of the entry in a database, the method comprising the steps of:
-
receiving a request to monitor a database for a change of matching status, the request including a template specifying which entries are to be monitored;
determining, upon modification of an entry, whether the entry has changed matching status with respect to the template in the request; and
returning notification of a change of matching status based on the determination. - View Dependent Claims (14, 15, 16, 17)
determining whether the entry transitioned from matching the template to not matching the template.
-
-
15. The method of claim 14, wherein the determining step further includes the step of:
determining whether the entry transitioned from not matching the template to matching the template.
-
16. The method of claim 13, wherein the entry is an item and the template is a multi-template.
-
17. The method of claim 13, wherein the receiving step includes the step of:
receiving a request including a lease time indicating the length of time the database is to be monitored.
-
18. A data processing apparatus having a database storing a plurality of entries comprising:
-
a providing component configured to provide a request including a first and a second template of the same type;
a locating component configured to locate an entry in the database matching the first template; and
a modifying component configured to modify the fields of the matching entry in place in the database according to the fields of a second template. - View Dependent Claims (19)
a replacing component configured to replace each field of the matching entry corresponding to a non-null field in the second template with the value in the non-null field of the second template.
-
-
20. A data processing apparatus having a database storing a plurality of items including a plurality of typed entries, the apparatus comprising:
-
a providing component configured to provide a request including a first and a second multi-template, the templates of the first multi-template matching the number and type of the templates of the second multi-template;
a locating component configured to locate an item in the database matching the first multi-template;
a modifying component configured to modify the entries of the matching item in place in the database according to the templates of the second multi-template received in request. - View Dependent Claims (21, 22)
a modifying component configured to modify each entry in the matching item corresponding to a non-null template in the second multi-template with the non-null template in the second multi-template.
-
-
22. The apparatus of claim 20, wherein the modifying component includes:
a deleting component configured to delete each entry from the matching item corresponding to a null template in the second template.
-
23. A data processing apparatus having a database storing a plurality of items including a plurality of typed entries, the apparatus comprising:
-
a providing component configured to provide a request including a multi-template and an item;
a locating component configured to locate an item in the database matching the multi-template; and
an adding component configured to add the entries of the item received in the request to the matching item in the database.
-
-
24. A data processing apparatus having a database storing a plurality of items including a plurality of typed entries, the apparatus comprising:
-
a receiving component configured to receive a request to monitor a database for a change of matching status between an entry and a template, the request including a template specifying which entries are to be monitored;
a determining component configured to determine, upon modification of an entry, whether the entry has changed matching status with respect to the template in the request; and
a returning component configured to return notification of a change of matching status based on the determination. - View Dependent Claims (25, 26, 27, 28)
a determining component configured to determine whether the entry transitioned from matching the template to not matching the template.
-
-
26. The apparatus of claim 24, wherein the determining component includes:
a determining component configured to determine whether the entry transitioned from not matching the template to matching the template.
-
27. The apparatus of claim 24, wherein the entry is an item and the template is a multi-template.
-
28. The apparatus of claim 24, wherein the receiving component includes:
a receiving component configured to receive a request including a lease time indicating the length of time the database is to be monitored.
-
29. A computer program product comprising a computer readable medium having computer readable code embodied therein for processing data in a database by:
-
providing a request including a first and a second template of the same type;
locating an entry in the database matching the first template; and
modifying the fields of the matching entry in place in the database according to the fields of the second template. - View Dependent Claims (30)
replacing each field of the matching entry corresponding to a non-null field in the second template with the value in the non-null field of the second template.
-
-
31. A computer program product comprising a computer readable medium having computer readable code embodied therein for processing data in a database by:
-
providing a request including a first and a second multi-template, the templates of the first template matching the number and type of the templates of the second multi-template;
locating an item in the database matching the first multi-template; and
modifying the entries of the matching item in place in the database according to the templates of the second multi-template received in request. - View Dependent Claims (32, 33)
modifying each entry in the matching item corresponding to a non-null template in the second multi-template according to the non-null template in the second multi-template.
-
-
33. The product of claim 31, wherein the modifying includes:
deleting each entry from the matching item corresponding to a null template in the second template.
-
34. A computer program product comprising a computer readable medium having computer readable code embodied therein for processing data in a database by:
-
providing a request including a multi-template and an item;
locating an item in the database matching the multi-template; and
adding the entries of the item received in the request to the matching item in the database.
-
-
35. A computer program product comprising a computer readable medium having computer readable code embodied therein for processing data in a database by:
-
receiving a request to monitor a database for a change of matching status between an entry and a template, the request including a template specifying which entries are to be monitored;
determining, upon modification of an entry, whether the entry has changed matching status with respect to the template in the request; and
returning notification of a change of matching status based on the determination. - View Dependent Claims (36, 37, 38, 39)
determining whether the entry transitioned from matching the template to not matching the template.
-
-
37. The product of claim 35, wherein the determining includes:
determining whether the entry transitioned from not matching the template to matching the template.
-
38. The product of claim 35, wherein the entry is an item and the template is a multi-template.
-
39. The product of claim 35, wherein the receiving includes:
receiving a request including a lease time indicating the length of time the database is to be monitored.
-
40. A computer program product comprising a computer readable medium having computer readable code embodied therein for processing data in a database, the computer readable medium comprising:
-
means for providing a request including a first and a second template of the same type;
means for locating an entry in the database matching the first template; and
means for modifying the fields of the matching entry in place in the database according to the fields of the second template.
-
Specification