RethinkDB
Initial release | 24 July 2009[1] |
---|---|
Stable release | 2.3.2 / May 2, 2016 |
Development status | Active |
Written in | C++, JavaScript, Bash |
Operating system | Unix, Linux, OS X, BSD |
Available in | English |
License | AGPL |
Website | rethinkdb |
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.
Contents
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
- ↑ Jeremy Zawodny, RethinkDB: Rethinking the Database using Modern Assumptions, Linux Magazine, August 24, 2009
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://rethinkdb.com/blog/official-java-driver/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.