Data Model

Relational

Hardware Acceleration

FPGA RDMA

Yellowbrick’s on-premise servers utilize a dual-core FPGA to accelerate table scans by performing file parsing, decompression, predicate evaluation, and Bloom filtering. The FPGA accelerator is also used for shuffling data between nodes, which happens via RDMA.

Indexes

Not Supported

Isolation Levels

Read Committed

Yellowbrick universally uses the READ COMMITTED isolation level.

Joins

Nested Loop Join Hash Join Sort-Merge Join

Yellowbrick supports hash, sort-merge, and nested loop joins.

Query Compilation

Code Generation

Yellowbrick partitions query plans into segments and converts them into C++ code. Segments are then compiled into machine code in parallel using a modified version of LLVM which is memory-resident with its ASTs pre-loaded. Compiled object files are cached and reused.

Yellowbrick also has a specialized pattern compiler for LIKE, SIMILAR TO, regular expressions, and date/time parsing. Yellowbrick generates finite state machines for these patterns and compiles them to machine code using LLVM.

Query Execution

Vectorized Model

Query Interface

SQL

Storage Architecture

Hybrid

Storage Model

Hybrid

Stored Procedures

Supported

Yellowbrick supports PL/pgSQL stored procedures (CREATE PROCEDURE) but not user-defined functions (CREATE FUNCTION). Unlike in PostgreSQL, stored procedures in Yellowbrick can return values and be called from SELECT statements, but only when there is no table-referencing FROM clause.

Triggers are not supported.

System Architecture

Shared-Nothing

Views

Virtual Views

Yellowbrick supports virtual views only.

Yellowbrick Logo
Website

https://yellowbrick.com

Tech Docs

https://yellowbrick.com/docs/

Twitter

@YellowbrickData

Developer

Yellowbrick Data

Country of Origin

US

Start Year

2014

Project Type

Commercial

Written in

C, C++, Go, Java, Python

Derived From

PostgreSQL

Compatible With

PostgreSQL

Operating Systems

Hosted, Linux

Licenses

Proprietary

Wikipedia

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