The First Fully-Vectorized Database as a Service in the Cloud
By 2025, 41.6 billion devices will capture our data, overwhelming big data analytics databases. The solution is vectorization. Watch how:
Sequential vs. Task-Level vs. Data-Level Processing
Say I need to dice a dozen peppers. Each one takes me 10 seconds. So, 12 peppers takes me two minutes to process sequentially. But what if I need to go faster?
Traditional parallel processing speeds up the work by dividing up the task. If I have three sous chefs join me, we can get the work done in 30 seconds. But chefs have a lot to do to feed a whole restaurant, so need to move more quickly.
Data-Level Parallel Processing (Vectorization)
The next generation of parallel processing, called vectorization, can process all the data with a single instruction: in this analogy, our food processor. This gets us twelve diced peppers in one second with one chef. That’s vectorization, and it can be a thousand times faster than traditional parallel processing on less than half the infrastructure.
Does this mean that sous chefs with knives are obsolete?
Of course not. You can’t debone a fish in a food processor. A modern restaurant has both. A modern database for data analytics should have both, too. Kinetica is the first fully vectorized database to serve big data analytics using task-level and data-level parallel processing.
A Brief History of Vectorization
Almost all distributed data warehouses offer some level of task parallelization by farming out queries and data to multiple nodes. Most analytical code out there is written in the slower sequential mode. This is not a surprise, since until about a decade ago, CPU and GPU hardware could not really support vectorization for data analysis. So most implementations had to be sequential.
The last 10 years, however, have seen the rise of new technologies like CUDA from Nvidia and advanced vector extensions from Intel that have dramatically shifted our ability to apply vectorization to data operations.
Because of the power of vectorization, some traditional vendors now make claims about including vectorization in their offerings. But shifting to this new vectorized paradigm is not easy, since all of your code needs to be written from scratch to utilize these capabilities. Unlike Kinetica, these traditional databases incorporate only partial vectorization, limited to specific operations such as filters or some aggregations and continue to use outdated and less performant modes of computation for other analytical tasks. These solutions also only leverage vectorization on the CPUs.
Vectorization: The New Era of Big Data Parallelism
Every five to 10 years, an engineering breakthrough emerges that disrupts database software for the better. Vectorization is the newest breakthrough gaining momentum towards widespread adoption. Early adopters are using fully vectorized databases to foster new applications and reap lower costs.
Learn more about vectorization in this white paper.Download the White Paper
How Does Vectorization Work?
Vectorization operates at the level of instructions sent to a processor within each node. For instance, in the illustration below, the instruction is to add 5 to a column of numbers and copy the results to a new column. With vectorization, all the data elements in that column are transformed simultaneously, i.e. the instruction to add 5 is applied to multiple pieces of data at the same time. This paradigm is sometimes referred to as Single Instruction Multiple Data (SIMD).
We can think of vectorization as subdividing the work into smaller chunks that can be handled independently by different computational units at the same time.
This is orders of magnitude faster than the conventional sequential model where each piece of data is handled one after the other in sequence.
With vectorization, performing the same operation on a modern intel CPU with a 512 bit register results in 16X greater performance. The performance gains on GPUs with thousands of computational cores is even greater.
Kinetica: The First as-a-Service Fully-Vectorized Database
Kinetica provides native support for vectorization on both CPUs and GPUs. Analytical functions in Kinetica have been written from scratch to take advantage of vectorization.
Kinetica at its core is a memory-first platform with tiered storage that leverages vectorization to parallelize tasks at the level of each instruction. Its integrated analytical suite of tools leverages these features to deliver high speed streaming and real-time analytics.
This is why enterprises often look to Kinetica when conventional solutions reach their breaking point trying to solve problems Kinetica can handle in a matter of seconds.
- A 700-node Spark cluster running queries in hours took seconds on 16 nodes of Kinetica for a large U.S. financial institution
- The largest retailer in the U.S. consolidated 100 nodes of Cassandra (NoSQL) and Spark into 8 nodes of Kinetica
- Performance between an 88-node Impala cluster and a 6-node Kinetica Intel cluster in Azure were identical for a major pharmaceutical firm
Try Kinetica Free
One-line install. No license expiration.