RethinkDB

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
RethinkDB
Initial release 24 July 2009 (2009-07-24) [1]
Stable release 2.3.2 / May 2, 2016 (2016-05-02)
Development status Active
Written in C++, JavaScript, Bash
Operating system Unix, Linux, OS X, BSD
Available in English
License AGPL
Website rethinkdb.com

RethinkDB is an open source, NoSQL, distributed document-oriented database. It stores JSON documents with dynamic schemas, and is designed to facilitate pushing real-time updates for query results to applications.

History

RethinkDB was founded in 2009, and open-sourced at version 1.2 in 2012. In 2015, RethinkDB released version 2.0, announcing that it was production-ready.[2]

ReQL

RethinkDB uses the ReQL query language, an internal (embedded) domain-specific language officially available for Ruby, Python, Java[3] and JavaScript (including Node.js). It has support for table joins, groupings, aggregations and functions. There are also unofficial, community-supported drivers for other languages, including C#, Clojure, Erlang, Go, Haskell, Lua, and PHP.

Popularity

According to the DB-Engines.com rankings, as of February 2016, it was the 46th most popular database.[4] The most recent major version 2.3 was released in April 2016[5]

Comparison with SQL databases

RethinkDB works with JSON documents. This allows for nested data structures, in contrast with SQL databases where data is stored as rows and columns. A strong schema is not enforced, so two documents stored in the same collection may have different structure. Updates on multiple documents are not atomic, and RethinkDB does not provide full ACID support.

When a strong schema is needed, relational databases (such as PostgreSQL or MySQL) will provide full ACID support.[6][non-primary source needed]

Comparison with other NoSQL databases

RethinkDB can also be significantly slower than other NoSQL databases like MongoDB. But it provides a helpful web-based administrative user interface for managing the database. Some of its API syntax can result in code that is visually messy.[7]

See also

References

  1. Jeremy Zawodny, RethinkDB: Rethinking the Database using Modern Assumptions, Linux Magazine, August 24, 2009
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. http://rethinkdb.com/blog/official-java-driver/
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.

External links