Database Reference
In-Depth Information
13.5 Representative Systems
We now comment on some representative systems that use column-store and
in-memory database technologies. This does not pretend to be an exhaustive
list and does not express any preference from the authors about any particular
vendor. We just aim at showing how the general architecture and ideas
presented above are implemented in real-world products. In this section, we
first introduce three examples of column-store database systems, namely,
Vertica, MonetDB, and MonetDB/X100. We then show three examples of
IMDBSs, namely, SAP HANA, Oracle TimesTen, and Oracle Exalytics. We
conclude with Microsoft's approach based on column-store indexes called
xVelocity.
13.5.1 Vertica
Vertica 2 is a distributed massively parallel relational DBMS, which is based
on the C-Store research project carried out around the year 2005. Although
Vertica supports the INSERT , UPDATE ,and DELETE SQL operations, it is
mainly designed to support analytical workloads. Vertica has a hybrid in-
memory/on-disk architecture. This is the main difference with our general
architecture in Fig. 13.4 , where the main store and buffer store reside in
memory and only passive data are stored on disk. Vertica groups data on disk
by column rather than by row, with the advantages already commented for
analytical queries. Further, data are compressed using different techniques,
not only run-length encoding.
Vertica organizes data into sorted subsets of the attributes of a table.
These are called projections. Normally, there is one large projection called a
super projection (which contains every column in the table) and many small
projections. Note that this can be considered analogous to the combined
columns in Fig. 13.4 . Vertica also supports prejoin projections, although it
has been reported that actually they are not frequently used. Vertica has two
read- and write-optimized stores, which are somehow variants of the main
and buffer stores of Fig. 13.4 .The write-optimized store (WOS) is an in-
memory structure which is optimized for data inserts, deletes, and updates.
Data in the WOS are uncompressed, unsorted, and segmented and could
be stored in a row- or column-oriented manner. This allows low latency for
fast real-time data analysis. The read-optimized store (ROS) is a disk-
based store where most of the data reside. Data in the ROS are stored
as sets of index-value pairs, called ROS containers. Each ROS container is
composed of two files per database column: one containing the column itself
2 http://www.vertica.com/
Search WWH ::




Custom Search