The open-source database for the realtime web.
OTHER License
Bot releases are visible (Hide)
Published by danielmewes about 9 years ago
Bug fix release
Note: If you are building RethinkDB from source and you have built older versions of RethinkDB before, you might need to run make clean
before building RethinkDB 2.1.5.
rethinkdb.jobs
table" errors (#4819)std::terminate() called without any exception.
when losing a cluster connectionmark_ready()
function that could occur whenorderBy.limit
queries (#4850)orderBy.limit
queries correctly (#4852)indexStatus
to report results for additional indexes thatAssertion failed: [ptr_]
error when reconfiguring tables quickly with ar.js
functions to avoid aGuarantee failed: [!key.IsEmpty() && !val.IsEmpty()]
crash in the worker processgetAll
queries that fetch multiple keys at once (#1526)Published by danielmewes about 9 years ago
Bug fix release
reconfigure
is called with a non-existent server tag (#4840)stats
system table (#4837)rethinkdb restore
and rethinkdb import
commands now wait for secondaryPublished by danielmewes about 9 years ago
Bug fix release
ssl
option in the JavaScript driver (#4786)backports.ssl_match_hostname
library to the Python driver package (#4683)https
sources in r.http
on OS X (#3112)Unexpected exception
error (#4758)Guarantee failed: [pair.second]
crash that could occur during resharding"_debug_recommit"
recovery option to emergency_repair
(#4720)celery
and nose
(#4764)r.db('rethinkdb')
while theMany thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1.3. In no particular order:
Published by danielmewes about 9 years ago
Deprecated version: This release is a bug fix release for the deprecated 2.0.x version branch. For new installations, we recommend using the latest version of RethinkDB (currently 2.1.2).
Bug fix release
r.js
(#4663)eglibc
bug that caused an unexpected address family
Guarantee failed: [active()]
(#4678)Guarantee failed: [fn_id != __null]
in combination with the r.js
command (#4611)is_empty
term (#4592)Published by danielmewes about 9 years ago
Bug fix release
get_all
query no longer return initial values. This restores theget_all
queries to avoid variousindex_create
atomic to avoid race conditions when multiple indexes were createdr.js
(#4663)Branch history is missing pieces
error (#4721)Guarantee failed: [!send_mutex.is_locked()]
(#4710)Guarantee failed: [active()]
(#4678)Guarantee failed: [val.has()]
(#4736)Assertion failed
issue when running a debug-mode binary (#4685)eglibc
bug that caused an unexpected address family
Published by danielmewes about 9 years ago
Bug fix release
--migrate-inconsistent-data
command line argument (#4665)Published by danielmewes about 9 years ago
Release highlights:
Read the blog post for more details.
Data files from RethinkDB versions 1.14.0 onward will be automatically migrated.
As with any major release, back up your data files before performing the upgrade.
If you're upgrading directly from RethinkDB 1.13 or earlier, you will need to manually
upgrade using rethinkdb dump
.
Note that files from the RethinkDB 2.1.0 beta release are not compatible with this
version.
This release introduces a new system for dealing with server failures and network
partitions based on the Raft consensus algorithm.
Previously, unreachable servers had to be manually removed from the cluster in order to
restore availability. RethinkDB 2.1 can resolve many cases of availability loss
automatically, and keeps the cluster in an administrable state even while servers are
missing.
There are three important scenarios in RethinkDB 2.1 when it comes to restoring the
availability of a given table after a server failure:
emergency_repair
optiontable.reconfigure
can be used to restore table availability in this case.To reflect changes in the underlying cluster administration logic, some of the tables in
the rethinkdb
database changed.
Changes to table_config
:
nonvoting_replicas
, that can be set to areplicas
field.write_acks
must now be either "single"
or "majority"
. Custom write ack"error"
field.indexes
field lists the secondary indexes on the given table.Changes to table_status
:
primary_replica
field is now called primary_replicas
and has an array ofstate
field now are "ready"
, "transitioning"
,"backfilling"
, "disconnected"
, "waiting_for_primary"
and "waiting_for_quorum"
.Changes to current_issues
:
"table_needs_primary"
, "data_lost"
, "write_acks"
,"server_ghost"
and "server_disconnected"
can no longer occur."table_availability"
was added and appears whenever a table isChanges to cluster_config
:
id
"heartbeat"
allows configuring the heartbeat timeout forRethinkDB 2.1 introduces new error types that allow you to handle different error classes
separately in your application if you need to. You can find the
complete list of new error types in the documentation.
As part of this change, ReQL error types now use the Reql
name prefix instead of Rql
(for example ReqlRuntimeError
instead of RqlRuntimeError
).
The old type names are still supported in our drivers for backwards compatibility.
.split('')
now treats the input as UTF-8 instead of an array of bytesnull
values in compound index are no longer discardedread_mode="outdated"
optional argument replaces use_outdated=True
The older protocol-buffer-based client protocol is deprecated in this release. RethinkDB
2.2 will no longer support clients that still use it. All "current" drivers listed on
the drivers page use the new JSON-based protocol and will continue to work
with RethinkDB 2.2.
table.reconfigure
now works even if some servers are disconnected (#3913)ceil
, floor
and round
(#866)rethinkdb export
now supports the --delimiter
option for CSV files (#3916)table_status
system table (#3882, #4196)indexes
field to the table_config
system table (#4525)datum_t
movable (#4056)is_empty
term (#4592)squash
option now send batches early if the changefeed queue.split('')
is now UTF-8 aware (#2518)null
(#4146)r.union
is now a top-level term (#4030)condition.branch(...)
now works just like r.branch(condition, ...)
(#4438)update
and replace
arguments (#4582)--max-document-size
option to the rethinkdb import
script to handler.__version__
property (#3100)time_of_date
and date
now respect timezones (#4149)has_fields
now returns a selection when called on a table (#2609)Guarantee failed: [fn_id != __null]
in combination with the r.js
command (#4611)db
optional argument to run
consistent with the Ruby andMany thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1. In no particular order:
Published by danielmewes over 9 years ago
This is a beta release for RethinkDB 2.1. It is not for production use and has known
bugs. Please do not use this version for production data.
We are looking forward to your bug reports on GitHub
or on our mailing list.
Release highlights:
Read the blog post for more details.
Update 07/27/2015: The server downloads have been updated to include additional bug fixes and improvements.
$ npm install http://download.rethinkdb.com/dev/2.1.0-0BETA1/rethinkdb-2.1.0-BETA1.nodejs.tgz
$ pip install http://download.rethinkdb.com/dev/2.1.0-0BETA1/rethinkdb-2.1.0beta1.python.tar.gz
$ wget http://download.rethinkdb.com/dev/2.1.0-0BETA1/rethinkdb-2.1.0.beta.1.gem
$ gem install rethinkdb-2.1.0.beta.1.gem
This beta release does not include automatic migration of data
directories from older versions of RethinkDB. The final release of RethinkDB 2.1 will
automatically migrate data from RethinkDB 1.14 and up.
If you're upgrading directly from RethinkDB 1.13 or earlier, you will need to manually
upgrade using rethinkdb dump
.
This release introduces a new system for dealing with server failures and network
partitions based on the Raft consensus algorithm.
Previously, unreachable servers had to be manually removed from the cluster in order to
restore availability. RethinkDB 2.1 can resolve many cases of availability loss
automatically, and keeps the cluster in an administrable state even while servers are
missing.
There are three important scenarios in RethinkDB 2.1 when it comes to restoring the
availability of a given table after a server failure:
emergency_repair
optiontable.reconfigure
can be used to restore table availability in this case.To reflect changes in the underlying cluster administration logic, some of the tables in
the rethinkdb
database changed.
Changes to table_config
:
nonvoting_replicas
, that can be set to areplicas
field.write_acks
must now be either "single"
or "majority"
. Custom write ack"error"
field.Changes to table_status
:
primary_replica
field is now called primary_replicas
and has an array ofstate
field now are "ready"
, "transitioning"
,"backfilling"
, "disconnected"
, "waiting_for_primary"
and "waiting_for_quorum"
.Changes to current_issues
:
"table_needs_primary"
, "data_lost"
, "write_acks"
,"server_ghost"
and "server_disconnected"
can no longer occur."table_availability"
was added and appears whenever a table is.split('')
now treats the input as UTF-8 instead of an array of bytesnull
values in compound index are no longer discardedread_mode="outdated"
optional argument replaces use_outdated=True
table.reconfigure
now works even if some servers are disconnected (#3913)ceil
, floor
and round
(#866)rethinkdb export
now supports the --delimiter
option for CSV files (#3916)table_status
system table (#3882, #4196)indexes
field to the table_config
system table (#4525)datum_t
movable (#4056).split('')
is now UTF-8 aware (#2518)null
(#4146)r.union
is now a top-level term (#4030)condition.branch(...)
now works just like r.branch(condition, ...)
(#4438)r.__version__
property (#3100)time_of_date
and date
now respect timezones (#4149)db
optional argument to run
consistent with the Ruby andMany thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1. In no particular order:
Published by danielmewes over 9 years ago
Bug fix release
distinct
queries over low-cardinality data sets (#4362)info
on an ordered table stream (#4242)Published by AtnNn over 9 years ago
Bug fix release
r.js
(#4190)Published by AtnNn over 9 years ago
Bug fix release
return_changes: 'always'
option to restore the return_changes
behavior from before 2.0.0 (#4068)return_changes
where it would populate changes
despite an error occurring (#4208)get_all
with many keys (#4218)r.row
with the contains
command in the JavaScript driver (#4125)Published by AtnNn over 9 years ago
Bug fix update
Published by AtnNn over 9 years ago
Release highlights:
get_all
and union
commandsRead the release blog post for more details.
Data files from RethinkDB versions 1.13.0 onward will be automatically
migrated to version 2.0. As with any major release, back up your data files
before performing the upgrade.
IEEE 754 floating point numbers distinguish between negative (-0) and
positive (+0) zero. The following information is only relevant if you
are storing negative zero values in your documents. We expect very
few users to be affected by this change.
ReQL compares -0 and +0 as equal in accordance with IEEE 754. In
previous versions of RethinkDB, -0 and +0 were however treated as
distinct values in primary and secondary indexes. This could lead to
inconsistent behavior and wrong query results in some rare cases.
Starting with RethinkDB 2.0, -0 and +0 are indexed as equal values.
Secondary indexes can be migrated online using
the rethinkdb index-rebuild
utility. If any of your documents have
negative zero values in their primary keys, those documents will
become partially inaccessible in RethinkDB 2.0. You will need to
re-import the affected tables using the rethinkdb dump
and
rethinkdb restore
commands. See the article "Back up your
data" for more information.
If you are unsure if any of your documents are affected, you can run
python -m rethinkdb._negative_zero_check
after upgrading both the
server and Python driver. See the output of python -m rethinkdb._negative_zero_check --help
for additional options.
between
no longer accepts null
bounds. The new r.minval
andr.maxval
can be used insteadany
and all
commands have been removed. The or
and and
indexes_of
has been renamed to offsets_of
squash
argument to changes
now defaults to false
RqlDriverError
now inherit from theRqlError
type. RqlRuntimeError
, RqlCompileError
andRqlClientError
additionally inherit from the new RqlQueryError
get_all
and union
queries (#3642)between
no longer accepts null
as a bound. The new r.minval
and r.maxval
can be used instead (#1023)include_states
optarg to changes
(#3709)cursor.next
(#3529)ResponseNotes
field to convey extra information (#3715)batchspec_t
(#2671)multi_throttling
infrastructure (#4021)TCP_NODELAY
in the Python and Ruby driver to avoid delays in combination with noreply
(#3998)table.rebalance
with insufficient data is no longer an error (#3679)indexes_of
to offsets_of
to avoid confusion with secondary indexes (#3265)any
and all
in favor of or
and and
(#1581)return_changes
(#3697)timeout
option to r.connect
(#1666)RDBBtree
tests to avoid false positives (#3805)order_by.limit
changefeeds when a table become unavailable (#3932)noreplyWait
no longer waits for non-noreply
queries (#3812)order_by
changefeeds are now returned in order (#3993)InternalError
when loading large tables (#3873)localStorage
(#3935)rethinkdb export
compatibility between Python 2 and Python 3 (#3911)rethinkdb export
to hang when certain errors occur (#4005)cursor.each
to fail with an exception (#3826)close
twice (#4017)feed.close
(#3967)Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.0. In no particular order:
Published by AtnNn over 9 years ago
Bug fix update.
rethinkdb export
compatibility between Python 2 and Python 3 (#3911)rethinkdb restore
(#3859)cursor.each
to fail with an exception (#3826)Published by danielmewes over 9 years ago
This is a release candidate for the upcoming RethinkDB 2.0 release. It is not for production use. It might still have bugs. If you decide to test it, please back up all your data first.
Please report any bugs you find on GitHub (http://github.com/rethinkdb/rethinkdb/issues/new) or on our mailing list (https://groups.google.com/forum/#!forum/rethinkdb).
Release highlights:
get_all
and union
commandsRead the blog post for more details.
Update (03/31/2015): The drivers have been updated to include EventMachine (Ruby) and Tornado (Python) integration.
$ npm install http://download.rethinkdb.com/dev/2.0.0-0RC1/rethinkdb-2.0.0-RC1.nodejs.tgz
$ pip install http://download.rethinkdb.com/dev/2.0.0-0RC1/rethinkdb-2.0.0rc2.python.tar.gz
$ wget http://download.rethinkdb.com/dev/2.0.0-0RC1/rethinkdb-2.0.0.rc.2.gem
$ gem install rethinkdb-2.0.0.rc.2.gem
Data files accessed with this release candidate might be incompatible
with the final version of RethinkDB 2.0.
IEEE 754 floating point numbers distinguish between negative (-0) and positive (+0) zero. The following information is only relevant if you are storing negative zero values in your documents. We expect very few users to be affected by this change.
ReQL compares -0 and +0 as equal in accordance with IEEE 754. In previous versions of RethinkDB, -0 and +0 were however treated as distinct values in primary and secondary indexes. This could lead to inconsistent behavior and wrong query results in some rare cases.
Starting with RethinkDB 2.0, -0 and +0 are indexed as equal values. Secondary indexes can be migrated online using the rethinkdb index-rebuild
utility. If any of your documents have negative zero values in their primary keys, those documents will become partially inaccessible in RethinkDB 2.0. You will need to
re-import the affected tables using the rethinkdb dump
and rethinkdb restore
commands. See the article "Back up your data" for more information.
If you are unsure if any of your documents are affected, you can run python -m rethinkdb._negative_zero_check
after upgrading both the server and Python driver. See the output of python -m rethinkdb._negative_zero_check --help
for additional options.
between
no longer accepts null
bounds. The new r.minval
and r.maxval
can be used insteadany
and all
commands have been removed. The or
and and
commands can be used insteadindexes_of
has been renamed to offsets_of
squash
argument to changes
now defaults to false
RqlDriverError
now inherit from the RqlError
type. RqlRuntimeError
, RqlCompileError
and RqlClientError
additionally inherit from the new RqlQueryError
typeget_all
and union
queries (#3642)between
no longer accepts null
as a bound. The new r.minval
and r.maxval
can be used instead (#1023)include_states
optarg to changes
(#3709)cursor.next
(#3529)ResponseNotes
field to convey extra information (#3715)batchspec_t
(#2671)table.rebalance
with insufficient data is no longer an error (#3679)indexes_of
to offsets_of
to avoid confusion with secondary indexes (#3265)any
and all
in favor of or
and and
(#1581)return_changes
(#3697)timeout
option to r.connect
(#1666)RDBBtree
tests to avoid false positives (#3805)order_by.limit
changefeeds when a table become unavailable (#3932)noreplyWait
no longer waits for non-noreply
queries (#3812)InternalError
when loading large tables (#3873)localStorage
(#3935)rethinkdb export
compatibility between Python 2 and Python 3 (#3911)cursor.each
to fail with an exception (#3826)Many thanks to external contributors from the RethinkDB community for helping
us ship the RethinkDB 2.0 release candidate. In no particular order:
Published by AtnNn over 9 years ago
Bug fix update.
r.range
that caused query failures (#3767).order_by.limit.changes
(#3765)r.js
performance (#3757)Published by AtnNn over 9 years ago
Bug fix update.
rethinkdb dump
and other backup scripts to correctly detect the server version (#3706)rethinkdb dump
to clarify that indexes are being saved (#3708)written_docs_total
field of rethinkdb.stats
(#3713)-f
flag of rethinkdb import
(#3728)r.js
(#3745)Published by AtnNn over 9 years ago
The highlights of this release are:
Read the release blog post for more details.
Data files from RethinkDB versions 1.13.0 onward will be automatically
migrated to version 1.16.x. As with any major release, back up your data files
before performing the upgrade. If you are upgrading from a release earlier
than 1.13.0, follow the migration instructions before upgrading.
Secondary indexes now use a new format; old indexes will continue to work, but
you should rebuild indexes after upgrading to 1.16.x. A warning about outdated
indexes will be issued on startup.
Indexes can be migrated to the new format with the rethinkdb index-rebuild
utility. Consult the troubleshooting document for more information.
The abstraction of datacenters has been replaced by server tags.
Existing datacenter assignments will be converted to server tags automatically.
The tableCreate
, tableDrop
, dbCreate
and dbDrop
terms have a new set of return values.
The previous return values created
and dropped
have been renamed to tables_creates
/ dbs_created
and
tables_dropped
/ dbs_dropped
respectively. The terms now additionally return a config_changes
field.
Consult the API documentation for these commands for details:
tableCreate, tableDrop, dbCreate, dbDrop
Changefeeds on a table now combine multiple changes to the same document into a single notification if they happen rapidly.
You can turn this behavior off by passing the squash: false
optional argument (see the
API documentation for details).
Strings passed to ReQL are now rejected if they are not valid UTF-8.
Non UTF-8 conformant data can be stored as binary data instead.
rethinkdb
table_config
table allows changing a table's configuration (#2870)server_config
table allows listing and managing servers in the cluster (#2873)db_config
table allows listing and renaming databases (#151, #2871)cluster_config
table contains cluster-wide settings (#2924)table_status
table displays each table's availability and replication status (#2983, #3269)server_status
table contains information about the servers in the cluster (#2923, #3270)current_issues
table lists issues affecting the cluster and suggests solutions (#2864, #3258)jobs
table lists running queries and background tasks (#3115)stats
table contains real-time statistics about the server (#2885)logs
table provides access to the server logs (#2884)identifierFormat
optional argument to table
switches how databases, tables and servers are referenced in the system tables. Can be either "name" or "uuid" (#3266)_debug_table_status
, _debug_stats
). These tables are subject to change and not part of the official administration interface (#2901, #3385)--server-tag
flag or by updating the server_config
table (#2856)tableCreate
(#2876)rethinkdb admin
command line interfacereconfigure
command to change the replication and sharding settings of a table (#2932)rebalance
command to even out the size of a table's shards (#2981)config
command for tables and databases as an alias for the corresponding row in db_config
or table_config
status
command for tables as an alias for the corresponding row in table_status
/ajax
endpoints have been removed. Their functionality has been moved to the system tables (#2878, #2879)db_create
, db_drop
, table_create
and table_drop
(#3001)durability
and write_acks
are configured (#3066)r.range
which generates all numbers from a given range (#875)wait
command which waits for a table to be ready (#2259)toJsonString
which converts a datum into a JSON string (#2513)map
into a variadic function for mapping over multiple sequences in parallel (#2574)map
(#3321)squash
argument to the changes
command, which lets the server combine multiple changes to the same document (defaults to true
) (#2726, #3558)min
and max
now use an index when passed the new index
parameter (#2974, #2981)changes
can now be chained onto:
between
(#3232)get
filter
map
and other commands that are stream-polymorphic such as merge
min
and max
orderBy
and limit
between
followed by map
--direct-io
flag to enable direct IO and deprecated the --no-direct-io
flag (#3391)rethinkdb export
now exports secondary index information and rethinkdb import
re-creates those indexes unless it is given the --no-secondary-indexes
flag (#3484)rethinkdb
executable (#1093)getAll
queries on secondary indexes are now shown in the performance graph (#2379)getField
to the autocompletion in the Data Explorer (#2624)jemalloc
is now used by default instead of tcmalloc
, which solves some memory inflation (#2279)stderr
can't be flushed (#2790)--machine-name
flag is now --server-name
(#2877, #3254)info:
lines to stderr and added a notice
log level (#3040)--no-default-bind
option that prevents the server from listening on loopback addresses (#3154)kqueue
is now used instead of poll
for events on OS X for better performance (#3403)--no-update-check
flag (#3170)typeOf
and info
now match (#3059)isOpen
method to connections (#2113)info
on tables now works when useOutdated
is true (#3355)info
on tables now includes the table id (#3358)SUCCESS_ATOM_FEED
return type, used when returning changes for a single document (#3389)next
method for cursors (#3042)r.expr
now accepts any iterable or mapping (#3146)rethinkdb export
now avoids traversing each table twice by using an estimated document count (#3483)procps
as a dependency in the Debian packages (#3404)jemalloc
instead of gperftools
(#3419)TimerTest
test (#549)between
queries to from TABLE
to the more correct TABLE_SLICE
(#1728)run
(#3161)order_by
(#3221)Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 1.16. In no particular order:
Published by AtnNn almost 10 years ago
Bug fix update.
reverse_iterator
implementation for leaf nodes (#3446)between
anddistinct
(#3346)NULL
to memcpy
(#3317)rethinkdb import
and rethinkdb export
to hang (#3458)Published by AtnNn almost 10 years ago
Bug fix update.
r.point
constructor to be deterministic, allowing it to be usedimport
commandobject_buffer_t
data (#3300)