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.
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.
Multi-version Concurrency Control (MVCC) Optimistic Concurrency Control (OCC)
Vector uses multi-version optimistic concurrency control to support snapshot isolation. 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.
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.
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.
http://www.actian.com/products/vectorwise
https://docs.actian.com/vector/5.1/index.html
Actian
Vectorwise, MonetDB/X100
Actian
C, C#, C++, COBOL, Java, Perl, PHP, Python, SQL, Visual Basic