Kinetica

Kinetica is a very fast, distributed, GPU-accelerated database with advanced filtering, visualization, and aggregation functionality.

History

In 2009, Amit Vij and Nima Neghaban founded GIS Federal, a developer of software they called GPUdb. The GIS stood for Global Intelligence Solutions. GPUdb was initially marketed for US military and intelligence applications, at Fort Belvoir for INSCOM.

The United States Postal Service deployed GPUdb in to production 2014.

In 2014 and 2016, the analyst firm International Data Corporation mentioned Kinetica for its production deployments at the US Army and United States Postal Service, respectively. As a result of their work with USPS, IDC announced that Kinetica was the recipient of the HPC Innovation Excellence Award.

On March 3, 2016, the name of the company was changed to GPUdb to match the name of the software, and a $7 million investment was announced which included Raymond J. Lane. In September 2016, it announced another $6 million investment, and an office in San Francisco, while keeping its office in Arlington, Virginia. After adding marketing and service people, the name of both the company and product was changed to Kinetica.

In June 2017, the company announced USD$ 50 million in Series A funding led by Canvas Ventures and Meritech Capital Partners, along with new investor Citi Ventures and existing backer Ray Lane of GreatPoint Ventures

Hardware Acceleration

GPU

Kinetica makes use GPU to perform equijoins (sort-merge), predicate joins (nested loop), fixed-length string processing, aggression/window function and rendering. Because GPUs are good at handling SIMT (single instruction multiple thread) and simple data structure.

To make use of GPUs more efficiently, Kinetica encourages data locality to minimize data movement from CPU to GPU.

Compression

Dictionary Encoding

Kinetica supports data compression by individual column. Dictionary encoding can be applied to individual columns of restricted-length (charN) type, int type, or long type. During the query execution, when data is retrieved, Kinetica can temporarily decompressed a copy and discard the copy later. For data added or modification, the affected data segment will be uncompressed, modified, and then recompressed immediately.

Joins

Nested Loop Join Sort-Merge Join Index Nested Loop Join

Kinetica supports the SQL concept of joining data sets. Since Kinetica makes use of GPU acceleration, tables being joined together must either be replicated or be sharded on the columns being used to join the tables to avoid data communication. Besides, distributed joins, or joins that connect sharded tables on columns other than their shard keys, are not supported.

Join in Kinetican is creating a join view that can be refreshed and future filtering operations.

Indexes

B+Tree Hash Table

Kinetica uses primary key index, relation index and column index to improve data access performance.

A primary key index is created by default when a table is created with a primary key specified. The primary key index is hash-based and optimizes the performance of equality-based filter expressions.

A relational index is created as the result of applying a foreign key to a column.

A column index can be applied to a column in a table or view to improve the performance of operations applied to that column in an expression.The column index is implemented as a b-tree, which provides performance improvements for both equality-based and range-based filter criteria on individual columns. Column indexes can also be applied to the primary key columns.

Logging

Not Supported

Kinetica Logo
Website

https://www.kinetica.com/

Tech Docs

https://www.kinetica.com/docs/index.html

Developer

Kinetica DB Inc.

Country of Origin

US

Start Year

2009

Former Name

GPUdb

Project Type

Commercial

Written in

C, C++

Supported languages

C#, C++, Java, JavaScript, Python

Operating Systems

Linux

Licenses

Proprietary

Wikipedia

https://en.wikipedia.org/wiki/Kinetica_(software)