Sorting, Encoding, and Compression
Vertica takes advantage of sorting, encoding, and compression for cost-effective loads and reads. For more information, see Data Encoding and Compression in the Vertica documentation.
Unlike conventional databases with row-based storage, Vertica takes advantage of column storage. Column storage is ideal for read-intensive workloads because it can dramatically reduce disk I/O compared to the more-typical row-based storage. This is because, to process a query, a row store must read all columns in all of the tables named in the query, regardless of how wide the tables might be or how many columns are actually needed. A column store with a query-specific projection reads only a subset of columns.For more information, see Vertica Cluster Architecture.
Hybrid Storage Model
The Vertica storage model consists of three components: WOS, ROS, and the Tuple Mover.
WOS stands for Write-Optimized Store. WOS is an in-memory data storage structure optimized for low-latency data loading. It is designed to efficiently support INSERT, UPDATE, DELETE, and most COPY operations.
ROS stands for Read-Optimized Store. ROS is a highly optimized, read-oriented, disk storage structure. ROS data is partitioned into sections called storage containers, which contain sets of rows created by moveout or COPY DIRECT statements. The bulk of the data in your database lives in ROS and is both sorted and compressed.
The Tuple Mover (TM) is used to control data movement. The TM performs two operations:
- Moveout: During moveout operations, the TM compresses and sorts the data in WOS and then moves it to ROS, creating new ROS containers for the new data. The ROS container setup allows for faster movement of data from WOS to ROS because newer data doesn’t need to be merged with existing ROS data immediately.
- Mergeout: During mergeout, the TM combines, or merges, the small ROS containers that were created by moveout operations or COPY DIRECT statements into larger ones. It also purges data that is marked for deletion.
Vertica provides a unique approach to failure recovery, based on the distributed nature of a database, as well as high availability through replication and segmentation. Database Designer takes care of replication and segmentation. For more information, see High Availability.
For more information about Vertica architecture, see these resources: