Snowflake

Concurrency Control

Multi-version Concurrency Control (MVCC)

Snowflake supports MVCC. As Snowflake's underlying data storage is done by Amazon S3, each write operation instead of performing writes in place, it creates a new entire file including the changes. The stale version of data is replaced by the newly created file, but is not deleted immediately. Snowflake allows users to define how long the stale version will be kept in S3, which is up to 90 days. Based on MVCC, Snowflake also supports time travel query.

Storage Model

Hybrid

Indexes

Not Supported

Query Execution

Vectorized Model

Storage Architecture

Disk-oriented

Isolation Levels

Snapshot Isolation

Query Compilation

Not Supported

Query Interface

SQL

System Architecture

Shared-Nothing

Foreign Keys

Supported

Snowflake supports defining and maintaining constraints, but does not enforce them, except for NOT NULL constraints, which are always enforced including foreign key constraint.

Data Model

Relational

Snowflake is relational as it supports ANSI SQL and ACID transactions. Moreover it offers built-in functions and SQL extensions for traversing, flattening, and nesting of semi-structured data, with support for popular formats such as JSON and Avro. Overhead for making operations on schema-less, semi-structured data is very small.

Snowflake Logo
Website

https://www.snowflake.net/

Tech Docs

https://docs.snowflake.net/manuals/index.html

Developer

Snowflake Computing

Country of Origin

US

Start Year

2013

Project Type

Commercial

Operating Systems

Hosted

Licenses

Proprietary