DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

CrateDB


CrateDB is an open-source, distributed SQL database system developed by Crate.io, build on top of a variety of open source projects. Some of these projects include Facebook’s Presto SQL parser and Apache’s Lucene search library. The system is designed for high scalability and written in Java, so it can run on any operating system with a Java 7 VM. CrateDB is typically used with machine-generated data, particularly for operational analytics applications. There is a free community edition under the Apache 2 license, and an enterprise edition which includes premium features and support options. Crate.io also owns other products: CrateDB Cloud, CrateDB Cloud on Azure, and Crate IoT Data Platform.[05][06][04][07]

Source Code
https://github.com/crate/crate[02]
Developer
Country of Origin
AT
Start Year
2014
Project Types
Commercial, Open Source
Written in
Java
Derived From
Elasticsearch, PrestoDB
Compatible With
PostgreSQL
Operating System
All OS with Java VM
License
Apache v2

Database Entry

CrateDB


CrateDB is an open-source, distributed SQL database system developed by Crate.io, build on top of a variety of open source projects. Some of these projects include Facebook’s Presto SQL parser and Apache’s Lucene search library. The system is designed for high scalability and written in Java, so it can run on any operating system with a Java 7 VM. CrateDB is typically used with machine-generated data, particularly for operational analytics applications. There is a free community edition under the Apache 2 license, and an enterprise edition which includes premium features and support options. Crate.io also owns other products: CrateDB Cloud, CrateDB Cloud on Azure, and Crate IoT Data Platform.[05][06][04][07]

History[04][07]


CradeDB started as a standalone project by Jodok Batlogg (who previously contributed to Open Source Initiative Vorarlberg), Christian Lutz, and Bern Dorn. The group, who ran a consulting business before that helped companies use tools for their data needs, turned that knowledge into a product. The team won Judge’s Choice at GigaOm Structure Launchpad competition in June 2014 and TechCrunch Discord Europe in October 2014. The first version was released in September 2016, and was reportedly downloaded millions of times. The second and enterprise versions released in May 2017.

Concurrency Control[08]


Optimistic concurrency control is implemented using rows’ sequence number and primary term. Initially each row’s sequence number is 0, and is incremented with every insert/update/delete to its shard (partition of the table). The primary term is incremented when a shard becomes primary. When updating or deleting, the query must be done with the correct sequence number and primary term, otherwise no effect will take place. CrateDB does not support transactions.

Joins[09]


CrateDB supports two join algorithms: nested loop joins and block hash joins. By default the system uses nested loop joins. Block hash joins can only be applied on inner joins where the condition meets the following criteria: it contains at least one equal operator and no or operators and every argument of an equal operator can only reference fields from one relation. The hash join algorithm can be enabled or disabled explicitly. The system supports cross joins, inner joins, and left/right/full outer joins, and its performance is limited when joining two or more tables (resulting in poor execution plans).

Logging[10][11]


CrateDB supports application logging (with Log4j) and JVM garbage collection logging. Apache’s Log4J provides logging functionalities for Java. Crate DB uses JVM garbage collection logging to maintain garbage collection times.

Views[12][13]


CrateDB supports creating, querying, and dropping views. The view is not materialized, so the query associated with this view is rerun every time the view is used. The enterprise version allows different users to have privileges, so to query a view the user must have DQL privileges on the view. The user who created the view automatically has DQL privileges on all the relations in the view.

Citations

13 sources
  1. CrateDB — Real-Time Analytics Database | SQL at Any Scale cratedb.com
  2. GitHub - crate/crate: CrateDB is a distributed and scalable SQL database for storing and analyzing massive amounts of data in near real-time, even with complex queries. It is PostgreSQL-compatible, and based on Lucene. · GitHub github.com
  3. CrateDB: Guide cratedb.com
  4. CrateDB - Wikipedia wikipedia.org
  5. CrateDB | Distributed SQL database for real-time analytics at scale cratedb.com
  6. CrateDB System Properties db-engines.com
  7. Crate Lets Developers Set Up Big Data Backends In Minutes | TechCrunch techcrunch.com
  8. Optimistic Concurrency Control - CrateDB: Reference cratedb.com
  9. Joins - CrateDB: Reference cratedb.com
  10. Logging - CrateDB: Reference cratedb.com
  11. Apache Log4j :: Apache Log4j apache.org
  12. Views - CrateDB: Reference cratedb.com
  13. CREATE VIEW - CrateDB: Reference cratedb.com
Revision #4