Vector

Actian Vector is a commercial main-memory RDBMS targeting analytical workload and decision support application. It adopts columnar storage model and vectorized processing model. To speed up analytical query exectuion, Vector makes use of various technologies including x86 SIMD execution, in-cache execution, parallel execution, data compression, storage indexes.

Actian Vector is available on Windows, Linux, Hadoop, AWS, and Microsoft Azure platforms.

History

The origin of Vector dates back to the MonetDB project at CWI (Centrum Wiskunde & Informatica) Research Institute in Netherlands. MonetDB is a columnar in-memory RDBMS that adopts column-at-a-time processing model and targets analytical workload. The "MonetDB/X100" project started in 2005 further improves MonetDB with vectorized processing model and other technologies. In 2008, X100 project parted from CWI as a foundation for a commercial RDBMS product in Vectorwise BV company. Vectorwise BV cooperated with Ingres Corporation (renamed as Actian Corporation in 2011) to integrate X100 with Ingres front-end. The first version of Vectorwise DBMS was released in June 2010. In 2011, Vectorwise technology was acquired by Actian Corporation. In 2014, Vectorwise was rebranded as Actian Vector.

Checkpoints

Consistent Blocking

Checkpoints can be taken either online or offline. For online checkpoints, Vector uses blocking consistent checkpoints. The system waits for all running transactions to finish before taking a new checkpoint. Any new transaction is blocked until the checkpoint is completed.

Query Interface

SQL

Vector supports industry-standard ANSI SQL:2003.

Concurrency Control

Multi-version Concurrency Control (MVCC) Optimistic Concurrency Control (OCC)

Vector uses multi-version optimistic concurrency control to support snapshot isolation. With multi-version concurrency control, a transaction observes a consistent state of the database at starting timestamp. With optimistic concurrency control, records are not locked for reads/writes, and conflicts are detected at transaction commit time. Optimistic concurrency control improves the performance of Vector because record updates and read-only analytical transactions do not block each other.

Compression

Dictionary Encoding Delta Encoding Run-Length Encoding Naïve (Page-Level) Bit Packing / Mostly Encoding

Vector compresses each column on a per-page basis for better compression performance. Thus different pages of the same column may be compressed using different algorithms.

For the page-level naïve compression, Vector uses LZ4 to compress string values.

Vector adopts late decompression approach. The compressed columns in the memory-based disk buffer are only are decompressed only when they are needed for query processing.

Storage Model

Hybrid

Vector uses an adaptive storage model based on PAX partitions. By default, Vector stores tables in columnar model. Nullable attribute has a boolean type column which is stored together with the attribute column. However, if there exists an index where the key spans multiple attributes, these columns are grouped together and stored in the same block. For small tables, user can instruct Vector to store data in n-ary model to reduce wasted space.

Vector Logo
Website

http://www.actian.com/products/vectorwise

Tech Docs

https://docs.actian.com/vector/5.1/index.html

Developer

Actian

Country of Origin

NL

Former Name

Vectorwise, MonetDB/X100

Acquired By

Actian

Project Type

Commercial

Supported languages

C, C#, C++, COBOL, Java, Perl, PHP, Python, SQL, Visual Basic

Derived From

MonetDB

Operating Systems

Linux, Windows

Licenses

Proprietary

Wikipedia

https://en.wikipedia.org/wiki/Vectorwise