Database Reference
In-Depth Information
compile time. On the other hand, queries that contain complex calculations
over many tuples materialize an entire result column for each function in
the expression, even when they are not required in the query result, but just
as input to other functions in the expression. If the intermediate results are
small, materialization is not actually necessary and produces a large overhead.
13.5.3 MonetDB/X100
To solve the drawbacks of MonetDB, a new query processor, called X100,
was devised. Here, columns are fragmented vertically and compressed.
These fragments are eciently processed using a technique called vectorized
processing, which operates over small vertical chunks of data items in the
cache rather than single records. X100 uses a variant of the relational algebra
as query language. The relational operations can process multiple columns
at the same time. The primitives of MonetDB/X100 algebra resemble the
ones in an extended relational algebra: Scan , Select , Project , Join , Aggr (for
aggregation), TopN ,and Order . All operators, except for Order , TopN ,and
Select , return a data flow with the same format as the input. A typical query
scans one column at a time, and then the column is passed to the query tree,
where the operators above are applied to the data flow.
CPU
X100 Execution
Engine
Query tree
Scan
Column buffer manager
Cache
Decompression
Column data
Main
memory
Storage
Disk
Disk
Disk
Fig. 13.5 MonetDB/X100 architecture
Figure 13.5 depicts the general data storage architecture of Mon-
etDB/X100. All tables are stored in a vertically fragmented form. A storage
 
Search WWH ::




Custom Search