Première version | |
---|---|
Dernière version | 2.4.4 ()[1] |
Dépôt | RethinkDB sur GitHub |
État du projet | actif |
Écrit en | C++[2] |
Système d'exploitation | Type Unix |
Environnement | CentOS, Debian, OS X, Ubuntu |
Type | Système distribué de gestion de base de données (d) |
Licence | Apache License 2.0 |
Site web | Site officiel |
RethinkDB est un système de gestion de base de données orientée documents et distribuée. C'est un logiciel libre, sous licence Apache License 2.0.
RethinkDB est également le nom de l'entreprise qui développe le logiciel. Elle a été fondée le et son siège est situé à Mountain View, en Californie. Elle a été soutenue dès sa création par Y Combinator[3]. L'entreprise annonce sa fin en , en indiquant toutefois que le développement du produit doit se poursuivre par sa communauté[4]. L'équipe de développement rejoint alors Stripe.
Le développement de RethinkDB a débuté en 2009[5]. C'est au départ un outil basé sur MySQL et optimisé pour les disques SSD[6]. Une des idées de RethinkDB est alors de simplifier le travail du serveur en se débarrassant des caches de données[7]. Par exemple, le moteur de stockage InnoDB, présent dans MySQL, optimise ses accès aux disques durs en écrivant des séries de données, celles-ci étant physiquement proches les unes des autres sur le disque. Dans le cas d'un disque SSD, les données sont réparties sur tout le disque et il est donc inutile d'essayer de rassembler des données pour les écrire ensemble sur disque[8].
En , la version 1.0 de RethinkDB est publiée, avec d'importants changements par rapport au plan initial : le produit n'est plus basé sur MySQL et est adapté à tous les types de stockages (disques SSD, disques durs et cloud)[9].
En , RethinkDB est en position 67 du classement de popularité des bases de données établi par DB-Engines[10].
Il existe plusieurs groupes d'utilisateurs de RethinkDB se rencontrant régulièrement, notamment aux États-Unis, au Royaume-Uni et en Israël[11].
RethinkDB fait partie du mouvement NoSQL. Il permet de stocker des documents JSON[12].
RethinkDB dispose de son propre langage de requête : ReQL. C'est en fait une API qui permet d'interagir avec la base de données[13], pour toutes les opérations (CRUD, MapReduce[14], DDL, etc.). Un des points forts de ReQL est de permettre les jointures[15].