← Back to Patent Explorer
US5899997A Expired / Lapsed US ⏱️ 0.0 years remaining

Object-oriented query mechanism

Assignee: Transparency Systems Inc
•
Filing: 1997-04-01
•
Granted: 1999-05-04
•
Expires: 2017-04-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An asynchronous, non-blocking method for making joins and retrieving joined data during query processing in a database. A sending object sends a join message that specifies a criteria for a join to one or more receiving objects. Receiving objects process the join message with an associated function and potentially generate a result message, then stop processing. During this process the sending object does not wait for a reply from the receiving object before continuing with subsequent processing. Join messages can be placed in a join message queue with the results from the receiving objects being placed in a results queue. The query method can be used as a basis for an ad-hoc SQL query facility that is not dependant on a flat data structure. In particular, the methods of the present invention can be used for joining both the complex structures of an object-oriented database model and the flat structures of the relational database model.

Inventors

  • 👤 Bruce A. Ellacott

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 18:14
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/289; G06F16/24; G06F16/245; G06F16/2455; G06F16/24553; G06F16/24558; G06F16/2456; Y; Y10; Y10S; Y10S707/00; Y10S707/99941; Y10S707/99944

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 84 words
A method of query processing in a database to combine data using a sending object and a receiving object, said method comprising: (a) sending a join message from the sending object to the receiver object within the database, said join message specifying a criteria for a join; and (b) processing the join message by a function associated with the receiving object to form a result, wherein said sending object does not wait for a reply from the receiving object for continuation of subsequent processing.
Claim 2
Independent Claim 84 words
A method of query processing in a database to combine data using a sending object and a receiving object, said method comprising: (a) sending a join message from the sending object to the receiver object within the database, said join message specifying a criteria for a join; and (b) processing the join message by a function associated with the receiving object to form a result, wherein said sending object does not wait for a reply from the receiving object for continuation of subsequent processing.
Claim 3
Dependent Claim 31 words
The method of claim 1, wherein the result from the receiving object proceeds to another object as another join message so that said result can be acted on by another function.
Claim 4
Dependent Claim 19 words
The method of claim 1, wherein the result from the receiving object is stored in an electronically readable medium.
Claim 5
Dependent Claim 19 words
The method of claim 1, wherein the result from the receiving object is displayed to a graphical user interface.
Claim 6
Dependent Claim 31 words
The method of claim 1, wherein the join message includes data attributes to be returned in the result from the receiving object when the criteria in the join message is satisfied.
Claim 7
Independent Claim 57 words
A method of creating non-blocking joins in a database, said method comprises: (a) sending a join message from a plurality of sending objects to a join message queue, the join message specifying a criteria for a join; and (b) processing the join message in the join message queue by a receiving object to form a result message.
Claim 8
Independent Claim 57 words
A method of creating non-blocking joins in a database, said method comprises: (a) sending a join message from a plurality of sending objects to a join message queue, the join message specifying a criteria for a join; and (b) processing the join message in the join message queue by a receiving object to form a result message.
Claim 9
Dependent Claim 26 words
The method of claim 6, wherein the result message is stored in a result queue and a result object is created associated with each result message.
Claim 10
Dependent Claim 36 words
The method of claim 6, wherein to process the join message the receiving object retrieves an attribute within its own record structure and compares to the criteria of the join to determine whether to filter itself.
Claim 11
Dependent Claim 27 words
The method of claim 6, wherein the join message is associated with semantics data for the query, said semantics data defining the meaning of the join message.
Claim 12
Dependent Claim 21 words
The method of claim 6, wherein the join message facilitates retrieval of data by the receiving object from the sending object.
Claim 13
Dependent Claim 23 words
The method of claim 8, wherein the receiving object is filtered using a filtering criteria established outside of the criteria for the join.
Claim 14
Dependent Claim 30 words
The method of claim 11, wherein data from the join message is copied into a the result message when the filtering criteria and the criteria for the join are satisfied.
Claim 15
Dependent Claim 24 words
The method of claim 11, wherein the receiving object stops processing when either the filtering criteria fails or the criteria for the join fails.
Claim 16
Dependent Claim 24 words
The method of claim 9, further comprising the step of storing the semantics data from the join message associated with the join message queue.
Claim 17
Dependent Claim 31 words
The method of claim 6, wherein the join message is sent to an intermediate storage mechanism; the receiving object retrieving and processing asynchronously the join message from said intermediate storage mechanism.
Claim 18
Dependent Claim 29 words
The method of claim 15, wherein the intermediate storage mechanism is organized for retrieval based on a technique selected from the group consisting of: hash buckets, B-tree, and bit-indexes.
Claim 19
Dependent Claim 127 words
In a distributed database having network nodes, the improvement in query processing comprises: (a) sending at least one message from a sending object on a first node to at least one receiving object on a second node; (b) said message being acted upon by a function associated with the receiving object to form at least one result; (c) each said result proceeding independently for further processing; (d) each sending object that has sent the message not awaiting for a reply from the receiving object; (d) maintaining a message count of unprocessed outstanding messages generated in steps (a) through (c) at each node that receives such messages, and (e) causing such node to notify all other nodes that have sent it messages when its local processing is complete.
Claim 20
Dependent Claim 127 words
In a distributed database having network nodes, the improvement in query processing comprises: (a) sending at least one message from a sending object on a first node to at least one receiving object on a second node; (b) said message being acted upon by a function associated with the receiving object to form at least one result; (c) each said result proceeding independently for further processing; (d) each sending object that has sent the message not awaiting for a reply from the receiving object; (d) maintaining a message count of unprocessed outstanding messages generated in steps (a) through (c) at each node that receives such messages, and (e) causing such node to notify all other nodes that have sent it messages when its local processing is complete.
Claim 21
Dependent Claim 41 words
The method of claim 17, wherein the step of further processing includes sending the result to another object as another join message so said result can be acted on by a function of such other object to form a further result.
Claim 22
Dependent Claim 19 words
The method of claim 18, wherein the step of further processing includes sending the result to a results object.
Claim 23
Independent Claim 130 words
A method of query processing in a database to combine and retrieve data using at least two objects; said method comprising: (a) sending at least one message from a first object to at least one second object within the database, said message specifying criteria for a join; (b) said message being acted upon by a function associated with the second object to form at least one output from each second object that has relevant data, each such output containing relevant data or a pointer to such relevant data; and (c) each said output proceeding independently either to another object as another message so said output can be acted up on by the method of such other object to form a further output or to a results object that stores results.
Claim 24
Independent Claim 130 words
A method of query processing in a database to combine and retrieve data using at least two objects; said method comprising: (a) sending at least one message from a first object to at least one second object within the database, said message specifying criteria for a join; (b) said message being acted upon by a function associated with the second object to form at least one output from each second object that has relevant data, each such output containing relevant data or a pointer to such relevant data; and (c) each said output proceeding independently either to another object as another message so said output can be acted up on by the method of such other object to form a further output or to a results object that stores results.
Claim 25
Dependent Claim 24 words
The method of claim 20, in which data which is related or potentially related to the data sought is sent to a results object.
Claim 26
Dependent Claim 52 words
A method as claimed in claim 20, in which an object having data which is related or potentially related to the query sends a pointer to the results object, whereby the results object can locate the object with the potentially useful data should the data be required to respond to the query.
Claim 27
Dependent Claim 28 words
A method as claimed in claim 20, in which a message is sent out in step (a) of claim 1 to all objects within a class of objects.
Claim 28
Dependent Claim 58 words
A method as claimed in claim 20, in which a plurality of messages is sent out during step (a) of claim 1, and some such messages are sent to individual objects and others are sent to groups of objects, and each said second object which receives both types of messages processes both types of messages from a queue.
Claim 29
Dependent Claim 34 words
A message as claimed in claim 24, in which the messages are accorded different priorities for processing according to whether they are messages to a group of objects or to said individual second object.
Claim 30
Dependent Claim 37 words
A method as claimed in claim 20, in which some messages as set out in step (a) of claim 1 are accorded different priorities, and such priorities are used to order messages in a queue for processing.
Claim 31
Dependent Claim 103 words
A method as claimed in claim 20, including the step of coordinating the processing of messages directed to groups of objects with the processing of messages directed to individual objects so that an individual second object is retrieved from physical storage to be processed by a thread, all messages directed to that individual object and directed to the groups of objects which include that object are processed as they relate to that object, and one or more output messages are generated by that object as set out in step (b) of claim 17 prior to processing of another second object by the thread.
Claim 32
Dependent Claim 37 words
The method of claim 20, which includes the additional step of maintaining counts of unprocessed outstanding messages generated in steps (a), through (d) and reporting that the query has been completed when such counts are all zero.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-05-03 2002-11-02 2003-05-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-05-03 2006-11-02 2007-05-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-05-03 2010-11-02 2011-05-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag