R-GMA: Architectural Design

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.

consumer overview diagram
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

    Contact the R-GMA team Last Modified: 26/07/2005