DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Vertica


Vertica is a distributed infrastructure-independent analytics platform. It can be deployed on various platforms like AWS,GCP,Azure...[02]

Country of Origin
US
Start Year
2005 [02]
Project Type
Commercial
Written in
C++
Supported Languages
C++, Java, Perl, Python, R
Derived From
PostgreSQL
Inspired By
C-Store
Operating System
Linux
License
Proprietary

It is designed to support a relatively high query performance compared with traditional DBMS. High availability and good scalability on commodity hardware can be achieved. Also, it supports good integration with Hadoop, Spark, Kafka, which makes user choose where they want to analyze data.

Database Entry

Vertica


Vertica is a distributed infrastructure-independent analytics platform. It can be deployed on various platforms like AWS,GCP,Azure... It is designed to support a relatively high query performance compared with traditional DBMS. High availability and good scalability on commodity hardware can be achieved. Also, it supports good integration with Hadoop, Spark, Kafka, which makes user choose where they want to analyze data.[02]

History[02]


Vetica was founded by Michael Stonebraker and Andrew Palmer in 2015. Vertica is derived from C-Store. C-Store is a prototype developed by MIT and few other universities like Brown. It was acquired by Hewlett Packard in 2011.Moreover, it also joined Micro Focus in 2017 due to the merger between Micro Focus and HP.

Checkpoints[03][04]


In Vertica, each node maintains checkpoints and transaction logs separately. The synchronization duration can be tuned by users. For a single-node failure, it is recovered from other nodes. If all nodes face failures, the database is recovered to the earliest checkpoints where all nodes are good. No new transaction log will be appended, if a new checkpoint starts in Vertica.

Compression[05]


Both Run-Length Encoding and Delta encoding are used in Vertica. RLE encoding is only used when the length is large, and it is processed by the execution engine run by run. Data encoding works for INTEGER/DATE/TIME/TIMESTAMP/INTERVAL, where the difference from the smallest value are used as the data.

Concurrency Control[06][07]


Vertica supports Multi-version Concurrency Control for data consistency. Apart from current status, previous status are also visible to transactions, Transaction isolations can be achieved here since there is no conflict between the read and write operations. A shared-nothing parallel processing architecture has been adopted in Vertica, which can prevent the overhead from locks.

Data Model[08]


Columnar store is used in Vertica to improve the performance of sequential access, even if the performance of single record have to be degraded. Compared with row-oriented databases which scan the whole table, only few columns are retrieved for given query, which can improve throughput by reducing I/O operations.

Foreign Keys[09]


Vertica allows users to define foreign key constraints. Foreign keys should be identified when tables are created or using "ALTER TABLE".

Joins[10]


Both Sort-Merge join and hash Join are supported in Vertica. Sort-Merge Join is faster in general and does not require too much memory. Hash Join requires more memory, but it is much faster if the inner table can fit in the memory.

Query Compilation


Query Interface


SQL

Storage Architecture[11]


Hybrid data store are supported in Vertica. Write Optimized Store(WOS) is about storing data in memory, which does not support compression and indexing. Read Optimized Store(ROS) is about storing data on disk, where data is sorted and segmented.

Storage Model[11]


Data is stored in Vertica in column format to improve the performance of read operations, since a lot of amount of disk I/O can be prevented.

Storage Organization[12]


Vertica store data in containers, and containers can be divided into ROS and WOS.

Stored Procedures


System Architecture


Views[04]


Projection in Vertica is similar to materialized view. Multiple projections can be created on the same table if some optimizations have to be done for some specific queries.

Citations

12 sources
  1. http://www.vertica.com vertica.com Spam — Check Archive
  2. Vertica - Wikipedia wikipedia.org
  3. Troubleshooting Tips for the Vertica Catalog vertica.com Dead — Check Archive
  4. https://blogs.opentext.com opentext.com Dead — Check Archive
  5. Encoding Types vertica.com
  6. https://db-engines.com/en/system/MemSQL;Vertica db-engines.com
  7. https://www.vertica.com/blog/concurrency-workload-management vertica.com
  8. Advanced Analytics for Data Warehouse & Data Lakehouse vertica.com Dead — Check Archive
  9. Foreign Key Constraints vertica.com
  10. Redesigning Projections for Query Optimization vertica.com
  11. Vertica Cluster Architecture vertica.com
  12. http://www.aodba.com/understanding-vertica-storage-mechanism/ aodba.com Dead — Check Archive
Revision #9