There are a number of components in the implementation of our system: operators implement relational algebra operations such as joins and projections, queues hold tuples between operators, and synopses materialize collections of tuples. Each of these is a subclass of a generic Entity class. Each entity has a table of attribute-values pairs called its Control Table (CT for short), and each entity exports an interface to query and update its CT.
This file is automatically generated from the entity-descriptors.xml file used by the system to construct entities.
entity (abstract) | ||||||||||||||||
Extends | ||||||||||||||||
Parameters |
| |||||||||||||||
Abstract supertype of all entity types. |
schema | ||||||||||||||||
Extends | entity | |||||||||||||||
Parameters |
| |||||||||||||||
A schema describes the format of data received from an input stream. |
queue (abstract) | ||||||||||
Extends | entity | |||||||||
Parameters |
| |||||||||
Queues are used to pass tuples between operators. |
object-queue (abstract) | ||||
Extends | queue | |||
Parameters |
| |||
Abstract supertype of all arbitrary-sized-object queue types. Note that this queue does not support the StrTuple enqueue/dequeue interface. |
var-len-obj-queue | ||||
Extends | object-queue | |||
Parameters |
| |||
Object queues that can be used to pass arbitrary variable size objects between operators. The queue is implemented as a single page grabbed from the memory manager. Note that this queue does not support the StrTuple enqueue/dequeue interface. |
interface-output-queue | ||||
Extends | object-queue | |||
Parameters |
| |||
Object queue used by the programmable interface to get the results The operator InterfaceOutputOperator writes to it |
fixed-len-obj-queue | |||||||
Extends | object-queue | ||||||
Parameters |
| ||||||
Object queues that can be used to pass arbitrary fixed size objects between operators. The queue is implemented as a single page grabbed from the memory manager. Note that this queue does not support the StrTuple enqueue/dequeue interface. |
stream-queue | |||||||
Extends | fixed-len-obj-queue | ||||||
Parameters |
| ||||||
A queue that is used to receive the raw output of a stream. Tuples from the network manager are added copied into a stream queue for that stream. |
simple-queue | |||||||
Extends | queue | ||||||
Parameters |
| ||||||
A simple implementation of a queue. Uses an array in the heap to store contents currently. We will make the implementation page-based soon. Not thread safe. |
multiplier-queue | ||||||||||
Extends | simple-queue | |||||||||
Parameters |
| |||||||||
Wraps a simple queue. Does not add any functionality to simple queues. Multiplier queues are the source of tuple references (aka StrTuples), and not the actual tuples, from the Stream Shepherd. |
synopsis (abstract) | ||||
Extends | entity | |||
Parameters |
| |||
Synopses store intermediate data generated executing the query plan. |
tuple-synopsis (abstract) | |||||||
Extends | synopsis | ||||||
Parameters |
| ||||||
Interface for all synopses which are bags of tuples. |
unmaterialized-synopsis | ||||
Extends | tuple-synopsis | |||
Parameters |
| |||
A tuple-synopsis that does not materialize itself. It simply does allocate memory for the tuple data so that the tuple can exist in queues, but does not keep a reference to the page or any state regarding its content. As a result, all operations other than insertTuple() are no-ops. |
shared-tuple-synopsis-store (abstract) | ||||
Extends | tuple-synopsis | |||
Parameters |
| |||
Shared relational store. |
shared-window-synopsis-store | ||||
Extends | tuple-synopsis | |||
Parameters |
| |||
Shared relational store. |
shared-rand-synopsis-store | ||||
Extends | tuple-synopsis | |||
Parameters |
| |||
Shared store for multiple time-based, tuple-based, and now windows. |
shared-time-synopsis-stub | ||||||||||
Extends | tuple-synopsis | |||||||||
Parameters |
| |||||||||
Stub to access shared store for multiple time-based, tuple-based, and now windows. Each stub corresponds to a specific window. |
shared-tuple-synopsis-stub | ||||||||||
Extends | tuple-synopsis | |||||||||
Parameters |
| |||||||||
Stub to access shared relational store, including shared window stores. |
partition-synopsis-store | |||||||
Extends | tuple-synopsis | ||||||
Parameters |
| ||||||
Shared partitioned synopsis (shared in the sense that it has a writer and multiple readers - not multiple partitioned window specifications) |
partition-synopsis-stub | ||||||||||
Extends | tuple-synopsis | |||||||||
Parameters |
| |||||||||
Stub for access shared partition store |
partition-wrapper | ||||||||||
Extends | tuple-synopsis | |||||||||
Parameters |
| |||||||||
Stub for access shared partition store |
propeller (abstract) | |||||||
Extends | entity | ||||||
Parameters |
| ||||||
Abstract supertype of all propeller types. |
join-propeller | ||||||||||||||||||||||
Extends | propeller | |||||||||||||||||||||
Parameters |
| |||||||||||||||||||||
Joins incoming tuples with a local synopsis. |
output-propeller | ||||||||||||||||
Extends | propeller | |||||||||||||||
Parameters |
| |||||||||||||||
Outputs the result of an n-way join into its output queue. |
operator (abstract) | ||||
Extends | entity | |||
Parameters |
| |||
Abstract supertype of all operator types. |
unary-operator (abstract) | ||||||||||
Extends | operator | |||||||||
Parameters |
| |||||||||
An operator with exactly one input and one output |
binary-operator (abstract) | |||||||||||||
Extends | operator | ||||||||||||
Parameters |
| ||||||||||||
An operator with exactly two inputs and one output |
terminal-operator (abstract) | ||||||||||
Extends | operator | |||||||||
Parameters |
| |||||||||
Terminal operators sit at the top of query plans and have an input, but no outputs within the system. |
seq-window | |||||||||||||||||||||||||
Extends | unary-operator | ||||||||||||||||||||||||
Parameters |
| ||||||||||||||||||||||||
A sequential window operator implements one or more time or tuple-based windows. You can register new time or tuple-based windows dynamically with this operator. To register a new window you need to specify: 1. the window type in ROWS (tuple), RANGE (time), NOW (now) (done using the "type" attribute) 2. the window size (done using the "size" attribute): - number of tuples for ROWS - number of seconds for RANGE 3. the ouptut queue for the +/- tuples in the window (done using the "window-output-queue" attribute) The type, size, and window-output-queue attributes must be in this order in the XML fragment describing a new window to be added to the sequential window operator. |
shared-rel-op | ||||||||||||||||
Extends | operator | |||||||||||||||
Parameters |
| |||||||||||||||
This operator materializes a relation that is streamed to it as input. The relation can be shared among multiple client operators, each of which registers a queue with this operator at run-time. This class is the relational equivalent of the SeqWindow operator. |
printer | ||||
Extends | terminal-operator | |||
Parameters |
| |||
A printer operator writes its tuples to standard output -- for testing purposes only. |
interface-output | ||||||||||
Extends | operator | |||||||||
Parameters |
| |||||||||
This output operator is used by the programmable interface to the DSMS. |
stream-glue | |||||||
Extends | unary-operator | ||||||
Parameters |
| ||||||
Connects the output from a stream CQLVIEW to the input of a shared window operator. This operator simply forwards each input tuple to the input queue of the shared window operator for that (derived) stream. The derived stream has to be explicitly registered before the CQLVIEW is registered. |
rel-glue | |||||||
Extends | unary-operator | ||||||
Parameters |
| ||||||
Connects the output from a relational CQLVIEW to the input of a shared relation operator. This operator simply forwards each input tuple to the input queue of the shared relation operator for that (derived) relation. The derived relation has to be explicitly registered before the CQLVIEW is registered. |
output | |||||||||||||
Extends | terminal-operator | ||||||||||||
Parameters |
| ||||||||||||
An output operator sends tuples to a client over the network. |
plan-shepherd | ||||||||||
Extends | operator | |||||||||
Parameters |
| |||||||||
The Plan Shepherd operator reads tuples from the "QueryPlan" stream which it gets from the StreamQueue for the "QueryPlan" stream. These tuples represent query plans. The plan shepherd enters these plans into the global query network. |
command-shepherd | |||||||
Extends | operator | ||||||
Parameters |
| ||||||
One stop shop for commands sent to the DSMS. |
stream-shepherd | |||||||||||||||||||
Extends | operator | ||||||||||||||||||
Parameters |
| ||||||||||||||||||
The Stream Shepherd operator for a stream S reads tuples of S from the StreamQueue of S, stores each tuple in a synopsis, creates a reference (StrTuple) to the tuple, and copies the reference into each of the output queues. |
relation-shepherd | |||||||||||||||||||
Extends | operator | ||||||||||||||||||
Parameters |
| ||||||||||||||||||
The Relation Shepherd operator The relational dual of stream-shepherd. for a relation R reads tuples of R from the StreamQueue of R, stores each tuple in a synopsis, creates a reference (StrTuple) to the tuple, and copies the reference into each of the output queues. |
select | ||||||||||
Extends | unary-operator | |||||||||
Parameters |
| |||||||||
Outputs a subset of its input tuples based on a filter predicate. |
project | |||||||
Extends | unary-operator | ||||||
Parameters |
| ||||||
Implements projection. |
binary-join | |||||||||||||||||||
Extends | binary-operator | ||||||||||||||||||
Parameters |
| ||||||||||||||||||
An operator which performs a join over two streams or relations. |
n-way-propeller-join | |||||||||||||||||||||||||||||||||||||||||||
Extends | operator | ||||||||||||||||||||||||||||||||||||||||||
Parameters |
| ||||||||||||||||||||||||||||||||||||||||||
An n-way symmetric join. |
antisemijoin | |||||||||||||
Extends | binary-operator | ||||||||||||
Parameters |
| ||||||||||||
An anti-semijoin operator |
union | ||||
Extends | binary-operator | |||
Parameters |
| |||
An implementation of a bag union |
plan-shepherd | ||||||||||
Extends | operator | |||||||||
Parameters |
| |||||||||
Processes plans that arrive in the "QueryPlan" stream. |
command-shepherd | |||||||
Extends | operator | ||||||
Parameters |
| ||||||
Processes commands that arrive in the "command-stream" stream. |
aggregate | |||||||||||||||||||
Extends | unary-operator | ||||||||||||||||||
Parameters |
| ||||||||||||||||||
Implements grouped aggregation. |
duplicate-eliminate | ||||
Extends | unary-operator | |||
Parameters |
| |||
Duplicate elimination operator. |
x-stream (abstract) | ||||
Extends | unary-operator | |||
Parameters |
| |||
Parent of i-stream, r-stream, and d-stream |
i-stream | ||||
Extends | x-stream | |||
Parameters |
| |||
Implements ISTREAM semantics. Sends inserts while dropping deletes. |
r-stream | ||||
Extends | x-stream | |||
Parameters |
| |||
Implements RSTREAM semantics. Sends snapshot of its relation at every instant. |
d-stream | ||||
Extends | x-stream | |||
Parameters |
| |||
Implements DSTREAM semantics. Sends deletes while dropping inserts. |
relation-materializer | |||||||
Extends | unary-operator | ||||||
Parameters |
| ||||||
Materializes the relation that is specified by tuples read from its input queue. |