|
|
Consumers
In R-GMA, the user or service requiring information sends an
SQL SELECT query to the virtual
database via the consumer. The request is initiated by user code, but the
consumer service
carries out all of the work on its behalf. The query is first passed to the
Registry to identify which producers are able to answer that query, and
a list of appropriate producers established. This process is called
mediation .
The query is then passed by
the consumer service to each relevant producer, to obtain the answer tuples
directly.
There are four types of query: continuous, latest,
history
and static. .
The set of queries that a particular producer supports is
recorded in the registry. All query types except static can take an optional
time interval parameter.
A continuous query causes all new tuples that match the query, to be streamed
into the consumer's tuple-storage, as soon as they are inserted into the
virtual table by the producers. Streaming continues until the consumer requests
it to stop. If a time interval is specified, the consumer will additionally
receive any tuples which are already in the virtual table when the query starts,
and which are no older than the time interval. There is no guarantee that
tuples are time-ordered. All Primary and Secondary
producers support continuous queries. On-demand producers do not.
Latest and history queries are one-time
queries: they execute on the
current contents of the virtual table, then terminate. In a history-query,
all versions of any matching tuples are returned; in a latest-query, only
those representing the 'current state'
are returned. In both
cases, a time interval may be specified with the query, to limit the age of
the tuples returned. Primary and Secondary Producers may optionally support
one-time queries. On-demand producer do not.
Static queries are only supported by On-demand producers. They are one-off
database-like queries and do not contain R-GMA time-stamps. The primary
purpose of an On-demand producer is to allow large databases to be accessed
through the R-GMA infrastructure, without the overhead of copying tuples.
Next :
Retention Periods
|