Vertica is a distributed infrastructure-independent analytics platform. It can be deployed on various platforms like AWS,GCP,Azure...[02]
- Website
- http://www.vertica.com[01]
- Developers
- Country of Origin
- US
- Start Year
- 2005 [02]
- Acquired By
- Project Type
- Commercial
- Written in
- C++
- 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.
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.
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.
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- http://www.vertica.com vertica.com
- Vertica - Wikipedia wikipedia.org
- Troubleshooting Tips for the Vertica Catalog vertica.com
- https://blogs.opentext.com opentext.com
- Encoding Types vertica.com
- https://db-engines.com/en/system/MemSQL;Vertica db-engines.com
- https://www.vertica.com/blog/concurrency-workload-management vertica.com
- Advanced Analytics for Data Warehouse & Data Lakehouse vertica.com
- Foreign Key Constraints vertica.com
- Redesigning Projections for Query Optimization vertica.com
- Vertica Cluster Architecture vertica.com
- http://www.aodba.com/understanding-vertica-storage-mechanism/ aodba.com