rethinkdb

The open-source database for the realtime web.

OTHER License

Downloads
59.5K
Stars
26.5K
Committers
185

Bot releases are hidden (Show)

rethinkdb - 2.1.5 — Forbidden Planet

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.

Compatibility

  • RethinkDB 2.1.5 servers cannot be mixed with servers running RethinkDB 2.1.4 or earlier
    in the same cluster

Bug fixes

  • Fixed a memory corruption bug that caused segmentation faults on some systems
    (#4917)
  • Made the build system compatible with OS X El Capitan (#4602)
  • Fixed spurious "Query terminated by rethinkdb.jobs table" errors (#4819)
  • Fixed an issue that caused changefeeds to keep failing after a table finished
    reconfiguring (#4838)
  • Fixed a race condition that resulted in a crash with the message
    std::terminate() called without any exception. when losing a cluster connection
    (#4878)
  • Fixed a segmentation fault in the mark_ready() function that could occur when
    reconfiguring a table (#4875)
  • Fixed a segmentation fault when using changefeeds on orderBy.limit queries (#4850)
  • Made the Data Explorer handle changefeeds on orderBy.limit queries correctly (#4852)
  • Fixed a "Branch history is incomplete" crash when reconfiguring a table repeatedly in
    quick succession (#4866)
  • Fixed a problem that caused indexStatus to report results for additional indexes that
    were not specified in its arguments (#4868)
  • Fixed a segmentation fault when running RethinkDB on certain ARM systems (#4839)
  • Fixed a compilation issue in the UTF-8 unit test with recent versions of Xcode (#4861)
  • Fixed an Assertion failed: [ptr_] error when reconfiguring tables quickly with a
    debug-mode binary (#4871)
  • Improved the detection of unsupported values in r.js functions to avoid a
    Guarantee failed: [!key.IsEmpty() && !val.IsEmpty()] crash in the worker process
    (#4879)
  • Fixed an unitialized data access issue on shutdown (#4918)

Performance improvements

  • Improved the performance of getAll queries that fetch multiple keys at once (#1526)
  • Optimized the distribution of tasks across threads on multi-core servers (#4905)
rethinkdb - 2.1.4 — Forbidden Planet

Published by danielmewes about 9 years ago

Bug fix release

Compatibility

  • RethinkDB 2.1.4 servers cannot be mixed with servers running RethinkDB 2.1.1 or earlier
    in the same cluster

Bug fixes

  • Fixed a data corruption bug that could occur when deleting documents (#4769)
  • The web UI no longer ignores errors during table configuration (#4811)
  • Added a check in case reconfigure is called with a non-existent server tag (#4840)
  • Removed a spurious debug-mode assertion that caused a server crash when trying
    to write to the stats system table (#4837)
  • The rethinkdb restore and rethinkdb import commands now wait for secondary
    indexes to become ready before beginning the data import (#4832)
rethinkdb - 2.1.3 — Forbidden Planet

Published by danielmewes about 9 years ago

Bug fix release

Compatibility

  • RethinkDB 2.1.3 servers cannot be mixed with servers running RethinkDB 2.1.1 or earlier
    in the same cluster

Bug fixes

  • Fixed a data corruption bug in the b-tree implementation (#4769)
  • Fixed the ssl option in the JavaScript driver (#4786)
  • Made the Ruby driver compatible with Ruby on Rails 3.2 (#4753)
  • Added the backports.ssl_match_hostname library to the Python driver package (#4683)
  • Changed the update check to use an encrypted https connection (#3988, #4643)
  • Fixed access to https sources in r.http on OS X (#3112)
  • Fixed an Unexpected exception error (#4758)
  • Fixed a Guarantee failed: [pair.second] crash that could occur during resharding
    (#4774)
  • Fixed a bug that caused some queries to not report an error when interrupted (#4762)
  • Added a new "_debug_recommit" recovery option to emergency_repair (#4720)
  • Made error reporting in the Python driver compatible with celery and nose (#4764)
  • Changed the handling of outdated indexes from RethinkDB 1.13 during an import to no
    longer terminate the server (#4766)

Performance improvements

  • Improved the latency when reading from a system table in r.db('rethinkdb') while the
    server is under load (#4773)
  • Improved the parallelism of JSON encoding on the server to utilize multiple CPU cores
  • Refactored JSON decoding in the Python driver to allow the use of custom JSON parsers
    and to speed up pseudo type conversion (#4585)
  • Improved the prefetching logic in the Python driver to increase the throughput of
    cursors
  • Changed the Python driver to use a more efficient data structure to store cursor
    results (#4782)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1.3. In no particular order:

  • Adam Grandquist (@grandquista)
  • ajose01 (@ajose01)
  • Paulius Uza (@pauliusuza)
rethinkdb - 2.0.5 — Yojimbo

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

  • Added precautions to avoid secondary index migration issues in subsequent releases
  • Fixed a memory leak in r.js (#4663)
  • Added a workaround for an eglibc bug that caused an unexpected address family
    error on startup (#4470)
  • Fixed a bug in the changefeed code that could cause crashes with the message
    Guarantee failed: [active()] (#4678)
  • Fixed a bug that caused intermittent server crashes with the message
    Guarantee failed: [fn_id != __null] in combination with the r.js command (#4611)
  • Improved the performance of the is_empty term (#4592)
rethinkdb - 2.1.2 — Forbidden Planet

Published by danielmewes about 9 years ago

Bug fix release

Compatibility

  • RethinkDB 2.1.2 servers cannot be mixed with servers running earlier versions in the
    same cluster
  • Changefeeds on a get_all query no longer return initial values. This restores the
    behavior from RethinkDB 2.0

Bug fixes

  • Fixed an issue where writes could be acknowledged before all necessary data was written
    to disk
  • Restored the 2.0 behavior for changefeeds on get_all queries to avoid various
    issues and incompatibilities
  • Fixed an issue that caused previously migrated tables to be shown as unavailable (#4723)
  • Made outdated secondary index warnings disappear once the problem is resolved (#4664)
  • Made index_create atomic to avoid race conditions when multiple indexes were created
    in quick succession (#4694)
  • Improved how query execution times are reported in the Data Explorer (#4752)
  • Fixed a memory leak in r.js (#4663)
  • Fixed the Branch history is missing pieces error (#4721)
  • Fixed a race condition causing a crash with
    Guarantee failed: [!send_mutex.is_locked()] (#4710)
  • Fixed a bug in the changefeed code that could cause crashes with the message
    Guarantee failed: [active()] (#4678)
  • Fixed various race conditions that could cause crashes if changefeeds were present
    during resharding (#4735, #4734, #4678)
  • Fixed a race condition causing a crash with Guarantee failed: [val.has()] (#4736)
  • Fixed an Assertion failed issue when running a debug-mode binary (#4685)
  • Added a workaround for an eglibc bug that caused an unexpected address family
    error on startup (#4470)
  • Added precautions to avoid secondary index migration issues in subsequent releases
  • Out-of-memory errors in the server's JSON parser are now correctly reported (#4751)
rethinkdb - 2.1.1 — Forbidden Planet

Published by danielmewes about 9 years ago

Bug fix release

  • Fixed a problem where after migration, some replicas remained unavailable when
    reconfiguring a table (#4668)
  • Removed the defunct --migrate-inconsistent-data command line argument (#4665)
  • Fixed the slider for setting write durability during table creation in the web UI
    (#4660)
  • Fixed a race condition in the clustering subsystem (#4670)
  • Improved the handling of error messages in the testing system (#4657)
rethinkdb - 2.1.0 — Forbidden Planet

Published by danielmewes about 9 years ago

Release highlights:

  • Automatic failover using a Raft-based protocol
  • More flexible administration for servers and tables
  • Advanced recovery features

Read the blog post for more details.

Compatibility

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.

Changed handling of server failures

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:

  • The table has three or more replicas, and a majority of the servers that are hosting
    these replicas are connected. RethinkDB 2.1 automatically elects new primary replicas
    to replace unavailable servers and restore availability. No manual intervention is
    required, and data consistency is maintained.
  • A majority of the servers for the table are connected, regardless of the number of
    replicas. The table can be manually reconfigured using the usual commands, and data
    consistency is always maintained.
  • A majority of servers for the table are unavailable. The new emergency_repair option
    to table.reconfigure can be used to restore table availability in this case.

System table changes

To reflect changes in the underlying cluster administration logic, some of the tables in
the rethinkdb database changed.

Changes to table_config:

  • Each shard subdocument now has a new field nonvoting_replicas, that can be set to a
    subset of the servers in the replicas field.
  • write_acks must now be either "single" or "majority". Custom write ack
    specifications are no longer supported. Instead, non-voting replicas can be used to set
    up replicas that do not count towards the write ack requirements.
  • Tables that have all of their replicas disconnected are now listed as special documents
    with an "error" field.
  • Servers that are disconnected from the cluster are no longer included in the table.
  • The new indexes field lists the secondary indexes on the given table.

Changes to table_status:

  • The primary_replica field is now called primary_replicas and has an array of
    current primary replicas as its value. While under normal circumstances only a single
    server will be serving as the primary replica for a given shard, there can temporarily
    be multiple primary replicas during handover or while data is being transferred between
    servers.
  • The possible values of the state field now are "ready", "transitioning",
    "backfilling", "disconnected", "waiting_for_primary" and "waiting_for_quorum".
  • Servers that are disconnected from the cluster are no longer included in the table.

Changes to current_issues:

  • The issue types "table_needs_primary", "data_lost", "write_acks",
    "server_ghost" and "server_disconnected" can no longer occur.
  • A new issue type "table_availability" was added and appears whenever a table is
    missing at least one server. Note that no issue is generated if a server which is not
    hosting any replicas disconnects.

Changes to cluster_config:

  • A new document with the id "heartbeat" allows configuring the heartbeat timeout for
    intracluster connections.

New ReQL error types

RethinkDB 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.

Other API-breaking changes

  • .split('') now treats the input as UTF-8 instead of an array of bytes
  • null values in compound index are no longer discarded
  • The new read_mode="outdated" optional argument replaces use_outdated=True

Deprecated functionality

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.

New features

  • Server
    • Added automatic failover and semi-lossless rebalance based on Raft (#223)
    • Backfills are now interuptible and reversible (#3886, #3885)
    • table.reconfigure now works even if some servers are disconnected (#3913)
    • Replicas can now be marked as voting or non-voting (#3891)
    • Added an emergency repair feature to restore table availability if consensus is lost
      (#3893)
    • Reads can now be made against a majority of replicas (#3895)
    • Added an emergency read mode that extracts data directly from a given replica for data
      recovery purposes (#4388)
    • Servers with no responsibilities can now be removed from clusters without raising an
      issue (#1790)
    • Made the intracluster heartbeat timeout configurable (#4449)
  • ReQL
    • Added ceil, floor and round (#866)
    • Extended the ReQL error type hierarchy to be more fine-grained (#4544)
  • All drivers
    • Added driver-side support for SSL connections and CA verification (#4075, #4076,
      #4080)
  • Python driver
    • Added Python 3 asyncio support (#4071)
    • Added Twisted support (#4096)
    • rethinkdb export now supports the --delimiter option for CSV files (#3916)

Improvements

  • Server
    • Improved the handling of cluster membership and removal of servers (#3262, #3897,
      #1790)
    • Changed the formatting of the table_status system table (#3882, #4196)
    • Added an indexes field to the table_config system table (#4525)
    • Improved efficiency by making datum_t movable (#4056)
    • ReQL backtraces are now faster and smaller (#2900)
    • Replaced cJSON with rapidjson (#3844)
    • Failed meta operations are now transparently retried (#4199)
    • Added more detailed logging of cluster events (#3878)
    • Improved unsaved data limit throttling to increase write performance (#4441)
    • Improved the performance of the is_empty term (#4592)
    • Small backfills are now prioritized to make tables available more quickly after a
      server restart (#4383)
    • Reduced the memory requirements when backfilling large documents (#4474)
    • Changefeeds using the squash option now send batches early if the changefeed queue
      gets too full (#3942)
  • ReQL
    • .split('') is now UTF-8 aware (#2518)
    • Improved the behaviour of compound index values containing null (#4146)
    • Errors now distinguish failed writes from indeterminate writes (#4296)
    • r.union is now a top-level term (#4030)
    • condition.branch(...) now works just like r.branch(condition, ...) (#4438)
    • Improved the detection of non-atomic update and replace arguments (#4582)
  • Web UI
    • Added new dependency and namespace management system to the web UI (#3465, #3660)
    • Improved the information visible on the dashboard (#4461)
    • Improved layout of server and replica assignment lists (#4372)
    • Updated to reflect the new clustering features and changes (#4283, #4330, #4288, ...)
  • JavaScript driver
    • The version of bluebird was updated to 2.9.32 (#4178, #4475)
    • Improved compatibility with Internet Explorer 10 (#4534)
    • TCP keepalive is now enabled for all connections (#4572)
  • Python driver
    • Added a new --max-document-size option to the rethinkdb import script to handle
      very large JSON documents (#4452)
    • Added an r.__version__ property (#3100)
    • TCP keepalive is now enabled for all connections (#4572)
  • Ruby driver
    • TCP keepalive is now enabled for all connections (#4572)

Bug fixes

  • time_of_date and date now respect timezones (#4149)
  • Added code to work around a bug in some versions of GLIBC and EGLIBC (#4470)
  • Updated the OS X uninstall script to avoid spurious error messages (#3773)
  • Fixed a starvation issue with squashing changefeeds (#3903)
  • has_fields now returns a selection when called on a table (#2609)
  • Fixed a bug that caused intermittent server crashes with the message
    Guarantee failed: [fn_id != __null] in combination with the r.js command (#4611)
  • Web UI
    • Fixed an issue in the table list that caused it to get stuck showing
      "Loading tables..." if no database existed (#4464)
    • Fixed the tick marks in the shard distribution graph (#4294)
  • Python driver
    • Fixed a missing argument error (#4402)
  • JavaScript driver
    • Made the handling of the db optional argument to run consistent with the Ruby and
      Python drivers (#4347)
    • Fixed a problem that could cause connections to not be closed correctly (#4526)
  • Ruby driver
    • Made the EventMachine API raise an error when a connection is closed while handlers
      are active (#4626)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1. In no particular order:

  • Thomas Kluyver (@takluyver)
  • Jonathan Phillips (@jipperinbham)
  • Yohan Graterol (@yograterol)
  • Adam Grandquist (@grandquista)
  • Peter Hamilton (@hamiltop)
  • Marshall Cottrell (@marshall007)
  • Elias Levy (@eliaslevy)
  • Ian Beringer (@ianberinger)
  • Jason Dobry (@jmdobry)
  • Wankai Zhang (@wankai)
  • Elifarley Cruz (@elifarley)
  • Brandon Mills (@btmills)
  • Daniel Compton (@danielcompton)
  • Ed Costello (@epc)
  • Lowe Thiderman (@thiderman)
  • Andy Wilson (@wilsaj)
  • Nicolas Viennot (@nviennot)
  • bnosrat (@bnosrat)
  • Mike Mintz (@mikemintz)
  • Lahfa Ryan (@raitobezarius)
  • Sebastien Diaz (@sebadiaz)
rethinkdb - 2.1.0 beta

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:

  • Automatic failover using a Raft-based protocol
  • More flexible administration for servers and tables
  • Advanced recovery features

Read the blog post for more details.

Download

Update 07/27/2015: The server downloads have been updated to include additional bug fixes and improvements.

1. Download the server

2. Download a driver

JavaScript

$ npm install http://download.rethinkdb.com/dev/2.1.0-0BETA1/rethinkdb-2.1.0-BETA1.nodejs.tgz

Python

$ pip install http://download.rethinkdb.com/dev/2.1.0-0BETA1/rethinkdb-2.1.0beta1.python.tar.gz

Ruby

$ 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

Compatibility

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.

Changed handling of server failures

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:

  • The table has three or more replicas, and a majority of the servers that are hosting
    these replicas are connected. RethinkDB 2.1 automatically elects new primary replicas
    to replace unavailable servers and restore availability. No manual intervention is
    required, and data consistency is maintained.
  • A majority of the servers for the table are connected, regardless of the number of
    replicas. The table can be manually reconfigured using the usual commands, and data
    consistency is always maintained.
  • A majority of servers for the table are unavailable. The new emergency_repair option
    to table.reconfigure can be used to restore table availability in this case.

System table changes

To reflect changes in the underlying cluster administration logic, some of the tables in
the rethinkdb database changed.

Changes to table_config:

  • Each shard subdocument now has a new field nonvoting_replicas, that can be set to a
    subset of the servers in the replicas field.
  • write_acks must now be either "single" or "majority". Custom write ack
    specifications are no longer supported. Instead, non-voting replicas can be used to set
    up replicas that do not count towards the write ack requirements.
  • Tables that have all of their replicas disconnected are now listed as special documents
    with an "error" field.
  • Servers that are disconnected from the cluster are no longer included in the table.

Changes to table_status:

  • The primary_replica field is now called primary_replicas and has an array of
    current primary replicas as its value. While under normal circumstances only a single
    server will be serving as the primary replica for a given shard, there can temporarily
    be multiple primary replicas during handover or while data is being transferred between
    servers.
  • The possible values of the state field now are "ready", "transitioning",
    "backfilling", "disconnected", "waiting_for_primary" and "waiting_for_quorum".
  • Servers that are disconnected from the cluster are no longer included in the table.

Changes to current_issues:

  • The issue types "table_needs_primary", "data_lost", "write_acks",
    "server_ghost" and "server_disconnected" can no longer occur.
  • A new issue type "table_availability" was added and appears whenever a table is
    missing at least one server. Note that no issue is generated if a server which is not
    hosting any replicas disconnects.

Other API-breaking changes

  • .split('') now treats the input as UTF-8 instead of an array of bytes
  • null values in compound index are no longer discarded
  • The new read_mode="outdated" optional argument replaces use_outdated=True

New features

  • Server
    • Added automatic failover and semi-lossless rebalance based on Raft (#223)
    • Backfills are now interuptible and reversible (#3886, #3885)
    • table.reconfigure now works even if some servers are disconnected (#3913)
    • Replicas can now be marked as voting or non-voting (#3891)
    • Added an emergency repair feature to restore table availability if consensus is lost
      (#3893)
    • Reads can now be made against a majority of replicas (#3895)
    • Added an emergency read mode that extracts data directly from a given replica for data
      recovery purposes (#4388)
    • Servers with no responsibilities can now be removed from clusters without raising an
      issue (#1790)
  • ReQL
    • Added ceil, floor and round (#866)
  • All drivers
    • Added driver-side support for SSL connections and CA verification (#4075, #4076,
      #4080)
  • Python driver
    • Added asyncio support (#4071)
    • rethinkdb export now supports the --delimiter option for CSV files (#3916)

Improvements

  • Server
    • Improved the handling of cluster membership and removal of servers (#3262, #3897,
      #1790)
    • Changed the formatting of the table_status system table (#3882, #4196)
    • Added an indexes field to the table_config system table (#4525)
    • Improved efficiency by making datum_t movable (#4056)
    • ReQL backtraces are now faster and smaller (#2900)
    • Replaced cJSON with rapidjson (#3844)
    • Failed meta operations are now transparently retried (#4199)
    • Added more detailed logging of cluster events (#3878)
    • Improved unsaved data limit throttling (#4441)
  • ReQL
    • .split('') is now UTF-8 aware (#2518)
    • Improved the behaviour of compound index values containing null (#4146)
    • Errors now distinguish failed writes from indeterminate writes (#4296)
    • r.union is now a top-level term (#4030)
    • condition.branch(...) now works just like r.branch(condition, ...) (#4438)
  • Web UI
    • Added new dependency and namespace management system to the web UI (#3465, #3660)
    • Improved the information visible on the dashboard (#4461)
    • Improved layout of server and replica assignment lists (#4372)
    • Updated to reflect the new clustering features and changes (#4283, #4330, #4288, ...)
  • JavaScript driver
    • The version of bluebird was updated to 2.9.32 (#4178, #4475)
  • Python driver
    • Added an r.__version__ property (#3100)

Bug fixes

  • time_of_date and date now respect timezones (#4149)
  • Added code to work around a bug in some versions of GLIBC and EGLIBC (#4470)
  • Python driver
    • Fixed a missing argument error (#4402)
  • JavaScript driver
    • Made the handling of the db optional argument to run consistent with the Ruby and
      Python drivers (#4347)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.1. In no particular order:

  • Thomas Kluyver (@takluyver)
  • Jonathan Phillips (@jipperinbham)
  • Yohan Graterol (@yograterol)
  • Adam Grandquist (@grandquista)
  • Peter Hamilton (@hamiltop)
  • Marshall Cottrell (@marshall007)
  • Elias Levy (@eliaslevy)
  • Ian Beringer (@ianberinger)
  • Jason Dobry (@jmdobry)
  • Wankai Zhang (@wankai)
  • Elifarley Cruz (@elifarley)
  • Brandon Mills (@btmills)
  • Daniel Compton (@danielcompton)
  • Ed Costello (@epc)
  • Lowe Thiderman (@thiderman)
  • Andy Wilson (@wilsaj)
rethinkdb - 2.0.4 — Yojimbo

Published by danielmewes over 9 years ago

Bug fix release

  • Fixed the version number used by the JavaScript driver (#4436)
  • Fixed a bug that caused crashes with a "Guarantee failed: [stop]" error (#4430)
  • Fixed a latency issue when processing indexed distinct queries over low-cardinality data sets (#4362)
  • Changed the implementation of compile time assertions (#4346)
  • Changed the Data Explorer to render empty results more clearly (#4110)
  • Fixed a linking issue on ARM (#4064)
  • Improved the message showing the query execution time in the Data Explorer (#3454, #3927)
  • Fixed an error that happened when calling info on an ordered table stream (#4242)
  • Fixed a bug that caused an error to be thrown for certain streams in the Data Explorer (#4242)
  • Increased the coroutine stack safety buffer to detect stack overflows in optarg processing (#4473)
rethinkdb - 2.0.3 — Yojimbo

Published by AtnNn over 9 years ago

Bug fix release

  • Fixed a bug that broke autocompletion in the Data Explorer (#4261)
  • No longer crash for certain types of stack overflows during query execution (#2639)
  • No longer crash when returning a function from r.js (#4190)
  • Fixed a race condition when closing cursors in the JavaScript driver (#4240)
  • Fixed a race condition when closing connections in the JavaScript driver (#4250)
  • Added support for building with GCC 5.1 (#4264)
  • Improved handling of coroutine stack overflows on OS X (#4299)
  • Removed an invalid assertion in the server (#4313)
rethinkdb - 2.0.2 — Yojimbo

Published by AtnNn over 9 years ago

Bug fix release

  • Fixed "duplicate token" error in the web UI that happened with certain browsers (#4174)
  • Fixed a cross site request forgery vulnerability in the HTTP admin interface (#2018)
  • Fixed the EventEmitter interface in the JavaScript driver (#4192)
  • Fixed a problem with the RDBInterrupt.InsertOp unit test in some compilation modes (#4038)
  • Added packages for Ubuntu 15.04 (#4123)
  • Added a return_changes: 'always' option to restore the return_changes behavior from before 2.0.0 (#4068)
  • Fixed a bug with return_changes where it would populate changes despite an error occurring (#4208)
  • Fixed a performance regression when calling get_all with many keys (#4218)
  • Added support for using r.row with the contains command in the JavaScript driver (#4125)
rethinkdb - 2.0.1 — Yojimbo

Published by AtnNn over 9 years ago

Bug fix update

  • Fixed a regression in the backup scripts that detected the server version incorrectly (#3706)
  • Fixed a bug in the cache balancer that could degrade performance (#4066)
rethinkdb - 2.0.0 — Yojimbo

Published by AtnNn over 9 years ago

Release highlights:

  • Support for attaching a changefeed to the get_all and union commands
  • Improved support for asynchronous queries
  • The first production-ready release of RethinkDB

Read the release blog post for more details.

Compatibility

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.

Handling of negative zero in indexes

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.

API-breaking changes

  • between no longer accepts null bounds. The new r.minval and
    r.maxval can be used instead
  • The any and all commands have been removed. The or and and
    commands can be used instead
  • indexes_of has been renamed to offsets_of
  • The squash argument to changes now defaults to false
  • The type hierarchy for exception types in the Python driver changed.
    All exceptions including RqlDriverError now inherit from the
    RqlError type. RqlRuntimeError, RqlCompileError and
    RqlClientError additionally inherit from the new RqlQueryError
    type

New features

  • Overall
    • Reached a production-ready state (#1174)
  • ReQL
    • Added support for changefeeds on 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)
    • Added support for getting the state of a changefeed using the new include_states optarg to changes (#3709)
  • Drivers
    • Added support for non-blocking cursor.next (#3529)
    • Added support for executing multiple queries in parallel on a single connection (#3754)
    • Consolidated the return types and use the new ResponseNotes field to convey extra information (#3715)
  • Python driver
    • Added an optional script that warns for documents with negative zero in a primary key (#3637)
    • Added an asynchronous API based on Tornado (#2622)
  • Ruby driver
    • Added an asynchronous API based on EventMachine (#2622)

Improvements

  • Server
    • Report open cursors as a single entry in the jobs table (#3662)
    • Timestamps are no longer sent between servers in batchspec_t (#2671)
    • Some expensive changefeed checks are no longer performed in release mode (#3656)
    • Include the remote port number in the heartbeat timeout message (#2891)
    • Improved the ordering and throttling of reads and writes (#1606)
    • Limit the number of documents per write batch to reduce the impact of large writes on other queries (#3806)
    • Execute multiple queries in parallel on a single connection (#3296)
    • Improved the performance of sending responses (#3744)
    • Immediately send back an empty first batch when the result is a changefeed (#3852)
    • Simplified the multi_throttling infrastructure (#4021)
    • The server now reports handshake errors to client drivers earlier (#4011)
    • Set TCP_NODELAY in the Python and Ruby driver to avoid delays in combination with noreply (#3998)
  • Web UI
    • Added a configurable limit for the results per page in the Data Explorer (#3910)
    • Added an "add table" button to each database (#3522)
  • ReQL
    • table.rebalance with insufficient data is no longer an error (#3679)
    • Renamed indexes_of to offsets_of to avoid confusion with secondary indexes (#3265)
    • Removed any and all in favor of or and and (#1581)
    • Trivial changes are filtered out from return_changes (#3697)
    • Reduced the size of profiles (#3218)
    • Changefeeds are no longer squashed by default (#3904)
  • JavaScript driver
    • Added an upper bound to the bluebird dependency (#3823)
  • Ruby driver
    • Added a timeout option to r.connect (#1666)
    • Improved the code style (#3900, #3901, #3906)
    • Strings are now allowed as keys in the config options (#3905)
  • Build
    • Upgraded to a more recent version of V8 and dropped support for out-of-tree V8 (#3472)
    • Added support for building with Python 3 (#3731)
  • Packaging
    • Got rid of the outdated bash completion script (#719)
    • Allow installing RethinkDB in 32-bit OS X on a 64-bit processor (#1595)
  • Tests
    • Increased the number of retries in the RDBBtree tests to avoid false positives (#3805)

Bug Fixes

  • Server
    • Fixed a race condition that could be caused by concurrent queries (#3766)
    • Deleted servers and tables are no longer counted during version checks (#3692)
    • Made JSON parsing more strict (#3810)
    • Fixed a bug that could cause the server to crash when killed (#3792)
    • Databases can no longer be renamed to "rethinkdb" (#3858)
    • Return an initial value for point changefeeds on system tables (#3723)
    • Improved the handling of negative zero (#3637)
    • Correctly abort order_by.limit changefeeds when a table become unavailable (#3932)
    • Do not unlink files early to avoid crashing in virtual environments (#3791)
    • Fallback to TCP4 when binding sockets (#4000)
    • No longer crash when the data files are in a VirtualBox shared folder (#3791)
  • ReQL
    • Fixed the behavior of point changefeeds on system tables (#3944)
    • noreplyWait no longer waits for non-noreply queries (#3812)
    • Initial values for order_by changefeeds are now returned in order (#3993)
    • Reduced the size of profiles when deleting documents (#3218)
  • Web UI
    • Fixed a bug that caused the status icon to be green when a table was unavailable (#3500)
    • Fixed a bug that truncated labels in the performance graph (#3751)
    • Correctly handle the escape key in modal dialogs (#3872)
    • Fixed a bug that caused an InternalError when loading large tables (#3873)
    • Fixed a bug that caused the Data Explorer to break when reading older data from localStorage (#3935)
    • Fixed a bug that caused autocompletion to fail in certain cases (#3143)
  • Python driver
    • Fixed rethinkdb export compatibility between Python 2 and Python 3 (#3911)
    • Fixed a bug that caused rethinkdb export to hang when certain errors occur (#4005)
  • JavaScript driver
    • Fixed a bug that caused cursor.each to fail with an exception (#3826)
    • Fixed a bug that caused connection errors to be discarded (#3733)
    • Fixed a bug that could be triggered by calling close twice (#4017)
    • Fixed a bug in feed.close (#3967)
  • Ruby driver
    • Fixed a bug that caused failures when using JRuby (#3795)
    • Signals are now handled correctly (#4029)
    • Fixed a bug in the arity check (#3968)
  • Build
    • Fetching Browserify during the build process is now more reliable (#4009)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 2.0. In no particular order:

  • Andrey Deryabin (@aderyabin)
  • Krishna Narasimhan (@krishnanm86)
  • Elian Gidoni (@eliangidoni)
  • Sherzod Kuchkarov (@tundrax)
  • Jason Dobry (@jmdobry)
  • Justin Mealey (@justinmealey)
  • Jonathan Ong (@jonathanong)
  • Andrey Deryabin (@aderyabin)
  • Angelo Ashmore (@angeloashmore)
  • Bill Barsch (@billbarsch)
  • Ed Costello (@epc)
  • Ilya Radchenko (@knownasilya)
  • Kai Curry (@webmasterkai)
  • Loring Dodge (@loringdodge)
  • Mike Marcacci (@mike-marcacci)
  • Param Aggarwal (@paramaggarwal)
  • Tinco Andringa (@tinco)
  • Armen Filipetyan (@armenfilipetyan)
  • Andrei Horak (@linkyndy)
  • Shirow Miura (@sharow)
rethinkdb - 1.16.3 — Stand By Me

Published by AtnNn over 9 years ago

Bug fix update.

  • Fixed a bug that could cause a crash when reading from a secondary index in some rare circumstances (#3976)
  • Fixed a bug that could cause a connection to hang indefinitely on OS X (#3954)
  • Fixed rethinkdb export compatibility between Python 2 and Python 3 (#3911)
  • Heartbeat timeout messages now include the remote port number (#2891)
  • Python driver: patched to work in PyPy (#3969)
  • Python driver: fixed an "Unterminated string" error during rethinkdb restore (#3859)
  • JavaScript driver: fixed a bug that caused cursor.each to fail with an exception (#3826)
  • JavaScript driver: fixed a bug that caused connection errors to be discarded (#3733)
  • Ruby driver: fixed a bug that caused failures when using JRuby (#3795)

Contributors

  • Sherzod Kuchkarov (@tundrax)
  • Elian Gidoni (@eliangidoni)
rethinkdb - 2.0.0-RC1

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:

  • Support for attaching a changefeed to the get_all and union commands
  • Improved support for asynchronous queries

Read the blog post for more details.

Download

1. Download the server

2. Download a driver

Update (03/31/2015): The drivers have been updated to include EventMachine (Ruby) and Tornado (Python) integration.

JavaScript

$ npm install http://download.rethinkdb.com/dev/2.0.0-0RC1/rethinkdb-2.0.0-RC1.nodejs.tgz

Python

$ pip install http://download.rethinkdb.com/dev/2.0.0-0RC1/rethinkdb-2.0.0rc2.python.tar.gz

Ruby

$ 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

Compatibility

Data files accessed with this release candidate might be incompatible
with the final version of RethinkDB 2.0.

Handling of negative zero in indexes

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.

API-breaking changes

  • between no longer accepts null bounds. The new r.minval and r.maxval can be used instead
  • The any and all commands have been removed. The or and and commands can be used instead
  • indexes_of has been renamed to offsets_of
  • The squash argument to changes now defaults to false
  • The type hierarchy for exception types in the Python driver changed. All exceptions including RqlDriverError now inherit from the RqlError type. RqlRuntimeError, RqlCompileError and RqlClientError additionally inherit from the new RqlQueryError type

New Features

  • ReQL
    • Added support for changefeeds on 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)
    • Added support for getting the state of a changefeed using the new include_states optarg to changes (#3709)
  • Drivers
    • Added support for non-blocking cursor.next (#3529)
    • Added support for executing multiple queries in parallel on a single connection (#3754)
    • Consolidated the return types and use the new ResponseNotes field to convey extra information (#3715)
  • Python driver
    • Added an optional script that warns for documents with negative zero in a primary key (#3637)

Improvements

  • Server
    • Report open cursors as a single entry in the jobs table (#3662)
    • Timestamps are no longer sent between servers in batchspec_t (#2671)
    • Some expensive changefeed checks are no longer performed in release mode (#3656)
    • Include the remote port number in the heartbeat timeout message (#2891)
    • Improved the ordering and throttling of reads and writes (#1606)
    • Limit the number of documents per write batch to reduce the impact of large writes on other queries (#3806)
    • Execute multiple queries in parallel on a single connection (#3296)
    • Improved the performance of sending responses (#3744)
    • Immediately send back an empty first batch when the result is a changefeed (#3852)
  • Web UI
    • Added a configurable limit for the results per page in the Data Explorer (#3910)
    • Added an "add table" button to each database (#3522)
  • ReQL
    • table.rebalance with insufficient data is no longer an error (#3679)
    • Renamed indexes_of to offsets_of to avoid confusion with secondary indexes (#3265)
    • Removed any and all in favor of or and and (#1581)
    • Trivial changes are filtered out from return_changes (#3697)
    • Reduced the size of profiles (#3218)
    • Changefeeds are no longer squashed by default (#3904)
  • JavaScript driver
    • Added an upper bound to the bluebird dependency (#3823)
  • Ruby driver
    • Added a timeout option to r.connect (#1666)
    • Improved the code style (#3900, #3901, #3906)
    • Strings are now allowed as keys in the config options (#3905)
  • Build
    • Upgraded to a more recent version of V8 and dropped support for out-of-tree V8 (#3472)
    • Added support for building with Python 3 (#3731)
  • Packaging
    • Got rid of the outdated bash completion script (#719)
    • Allow installing RethinkDB in 32-bit OS X on a 64-bit processor (#1595)
  • Tests
    • Increased the number of retries in the RDBBtree tests to avoid false positives (#3805)

Bug Fixes

  • Server
    • Fixed a race condition that could be caused by concurrent queries (#3766)
    • Deleted servers and tables are no longer counted during version checks (#3692)
    • Made JSON parsing more strict (#3810)
    • Fixed a bug that could cause the server to crash when killed (#3792)
    • Databases can no longer be renamed to "rethinkdb" (#3858)
    • Return an initial value for point changefeeds on system tables (#3723)
    • Improved the handling of negative zero (#3637)
    • Correctly abort order_by.limit changefeeds when a table become unavailable (#3932)
    • Do not unlink files early to avoid crashing in virtual environments (#3791)
  • ReQL
    • Fixed the behavior of point changefeeds on system tables (#3944)
    • noreplyWait no longer waits for non-noreply queries (#3812)
  • Web UI
    • Fixed a bug that caused the status icon to be green when a table was unavailable (#3500)
    • Fixed a bug that truncated labels in the performance graph (#3751)
    • Correctly handle the escape key in modal dialogs (#3872)
    • Fixed a bug that caused an InternalError when loading large tables (#3873)
    • Fixed a bug that caused the Data Explorer to break when reading older data from localStorage (#3935)
    • Fixed a bug that caused autocompletion to fail in certain cases (#3143)
  • Python driver
    • Fixed rethinkdb export compatibility between Python 2 and Python 3 (#3911)
  • JavaScript driver
    • Fixed a bug that caused cursor.each to fail with an exception (#3826)
    • Fixed a bug that caused connection errors to be discarded (#3733)
  • Ruby driver
    • Fixed a bug that caused failures when using JRuby (#3795)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship the RethinkDB 2.0 release candidate. In no particular order:

  • Andrey Deryabin (@aderyabin)
  • Angelo Ashmore (@angeloashmore)
  • Armen Filipetyan (@armenfilipetyan)
  • Bill Barsch (@billbarsch)
  • Tinco Andringa (@d-snp)
  • Elian Gidoni (@eliangidoni)
  • Ed Costello (@epc)
  • Jonathan Ong (@jonathanong)
  • Justin Mealey (@justinmealey)
  • Krishna Narasimhan (@krishnanm86)
  • Andrei Horak (@linkyndy)
  • Loring Dodge (@loringdodge)
  • Mike Marcacci (@mike-marcacci)
  • Param Aggarwal (@paramaggarwal)
  • @sharow
  • @tundrax
  • Kai Curry (@webmasterkai)
rethinkdb - 1.16.2 — Stand By Me

Published by AtnNn over 9 years ago

Bug fix update.

  • Fixed a bug in r.range that caused query failures (#3767)
  • Fixed a race condition in the implementation of .order_by.limit.changes (#3765)
  • Fixed a build error that caused very slow r.js performance (#3757)
  • Removed spurious comma in the Data Explorer (#3730)
rethinkdb - 1.16.1 — Stand By Me

Published by AtnNn over 9 years ago

Bug fix update.

  • Write a message to the log every time a file is deleted (#1780)
  • Fixed rethinkdb dump and other backup scripts to correctly detect the server version (#3706)
  • Changed the output of rethinkdb dump to clarify that indexes are being saved (#3708)
  • Fixed unbounded memory consumption when using the official OS X package or when building with boost 1.56.0 or higher (#3712)
  • Fixed the written_docs_total field of rethinkdb.stats (#3713)
  • Fixed a bug that caused the web UI to hang when creating or deleting indexes (#3717, #3721)
  • Fixed rounding of document counts in the web UI (#3722)
  • Fixed a bug that broke the -f flag of rethinkdb import (#3728)
  • Fixed a bug that prevented the web UI from loading data properly (#3729)
  • Fixed a bug that caused RethinkDB to refuse to link with jemalloc dynamically (#3741)
  • Fixed an uncaught exception in the handling of r.js (#3745)
rethinkdb - 1.16.0 — Stand By Me

Published by AtnNn over 9 years ago

The highlights of this release are:

  • A new administration API
  • Changefeeds on complex queries
  • Numerous improvements and enhancements throughout RethinkDB

Read the release blog post for more details.

Compatibility

Backwards-compatible changes

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.

API-breaking changes

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.

New features

  • ReQL admin: a new cluster management and monitoring API (#2169)
    • Added a special system database named rethinkdb
      • The table_config table allows changing a table's configuration (#2870)
      • The server_config table allows listing and managing servers in the cluster (#2873)
      • The db_config table allows listing and renaming databases (#151, #2871)
      • The cluster_config table contains cluster-wide settings (#2924)
      • The table_status table displays each table's availability and replication status (#2983, #3269)
      • The server_status table contains information about the servers in the cluster (#2923, #3270)
      • The current_issues table lists issues affecting the cluster and suggests solutions (#2864, #3258)
      • The jobs table lists running queries and background tasks (#3115)
      • The stats table contains real-time statistics about the server (#2885)
      • The logs table provides access to the server logs (#2884)
      • The identifierFormat optional argument to table switches how databases, tables and servers are referenced in the system tables. Can be either "name" or "uuid" (#3266)
      • Added hidden debug tables (_debug_table_status, _debug_stats). These tables are subject to change and not part of the official administration interface (#2901, #3385)
    • Improved cluster management
      • Servers can now be associated with multiple tags using the --server-tag flag or by updating the server_config table (#2856)
      • Removed the datacenter abstraction and changed the arguments to tableCreate (#2876)
      • Removed the rethinkdb admin command line interface
      • Added a reconfigure command to change the replication and sharding settings of a table (#2932)
      • Added a rebalance command to even out the size of a table's shards (#2981)
      • Added a config command for tables and databases as an alias for the corresponding row in db_config or table_config
      • Added a status command for tables as an alias for the corresponding row in table_status
      • Most of the /ajax endpoints have been removed. Their functionality has been moved to the system tables (#2878, #2879)
      • The stats now contains the number of client connections (#2989)
      • Added more information to the return value of db_create, db_drop, table_create and table_drop (#3001)
      • Changed how durability and write_acks are configured (#3066)
      • The cache size can now be changed at runtime (#3166)
      • Improved the scalability for large table creation and reconfiguration in large clusters (#3198)
      • Added a new UI for table configuration (#3229)
      • Empty tables can now be sharded (#3271, #1679)
  • ReQL
    • Added r.range which generates all numbers from a given range (#875)
    • Enforce UTF-8 encoding on input strings (#1181)
    • Added a wait command which waits for a table to be ready (#2259)
    • Added toJsonString which converts a datum into a JSON string (#2513)
    • Turned map into a variadic function for mapping over multiple sequences in parallel (#2574)
    • Added a prefix version of map (#3321)
    • Added an optional 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)
    • It is now possible to get changefeeds for more types of queries. changes can now be chained onto:
      • Ranges generated with between (#3232)
      • Single documents with get
      • Subsets with filter
      • Sub-documents and modified documents with map and other commands that are stream-polymorphic such as merge
      • Certain reductions such as min and max
      • Top scoring documents with orderBy and limit
      • Combinations of the above, such as between followed by map
  • Server
    • Made buffered IO the default, added a --direct-io flag to enable direct IO and deprecated the --no-direct-io flag (#3391)
  • Python driver
    • rethinkdb export now exports secondary index information and rethinkdb import re-creates those indexes unless it is given the --no-secondary-indexes flag (#3484)

Improvements

  • Web UI
    • The web assets are now compiled into the rethinkdb executable (#1093)
    • getAll queries on secondary indexes are now shown in the performance graph (#2379)
    • Added getField to the autocompletion in the Data Explorer (#2624)
    • Added live updates for changefeeds in the Data Explorer (#2643)
    • Reduced the amount of data transferred to and processed by the browser by the dashboard (#2786)
    • The database view was removed (#3491)
    • Added a secondary index monitor to the dashboard (#3493)
  • Server
    • Removed code used to support outdated tests (#1524)
    • Improved implementation of erase range operations (#2034)
    • jemalloc is now used by default instead of tcmalloc, which solves some memory inflation (#2279)
    • Replaced vector clocks with automatic timestamp-based conflict resolution (#2784)
    • No longer complain when stderr can't be flushed (#2790)
    • Replaced uses of the word "machine" to use "server" instead. The old --machine-name flag is now --server-name (#2877, #3254)
    • The server now prints its own name on startup (#2992)
    • Adjusted the formatting of log levels, no longer print info: lines to stderr and added a notice log level (#3040)
    • Added a --no-default-bind option that prevents the server from listening on loopback addresses (#3154)
    • Lower the CPU load of an idle server (#3185)
    • The OS disk cache is now ignored when calculating available memory (#3193)
    • kqueue is now used instead of poll for events on OS X for better performance (#3403)
    • Tables now become available faster and table metadata takes less space on disk (#3463)
    • Queries that perform multiple HTTP requests now share the same cookies (#3469)
    • Made resolving of ties in secondary indexes more consistent (#3550)
    • The server now calls home to RethinkDB HQ to check for newer versions and send anonymized statistics. This can be turned off with the new --no-update-check flag (#3170)
  • Testing
    • The ReQL tests can now run in parallel (#2305, #2672)
    • The Ruby driver is now tested against different versions of Ruby (#2526)
    • Relaxing floating point comparison to account for rounding issues (#2912)
    • No longer depend on external HTTP servers (#3047)
    • Switched to using the new cluster management features in the test suite (#3398, #3401)
  • ReQL
    • Allow querying the version of the server (#2698)
    • Improved the error message when pseudo-types are used as objects (#2766)
    • The names of types returned by typeOf and info now match (#3059)
    • No longer silently ignore unknown global optional arguments (#2052)
    • Improved handling of socket, protocol and cursor errors (#3207)
    • Added an isOpen method to connections (#2113)
    • info on tables now works when useOutdated is true (#3355)
    • info on tables now includes the table id (#3358)
  • Driver protocol
    • Made internal names of commands more consistent (#3147)
    • Added the SUCCESS_ATOM_FEED return type, used when returning changes for a single document (#3389)
  • JavaScript driver
    • Upgrade to bluebird 2 (#2973)
  • Python driver
    • Added a 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)
  • Build
    • Updated code to build with post-Yosemite versions of Xcode (#3219)
    • Fetch Curl 7.40.0 when not using the system-installed one (#3540)
  • Packaging
    • Added procps as a dependency in the Debian packages (#3404)
    • Now depend on jemalloc instead of gperftools (#3419)

Bug fixes

  • Tests
    • Fixed the TimerTest test (#549)
    • Always use the in-tree driver for testing (#711)
  • Server
    • Some startup log messages are now consolidated into a single log entry (#925)
    • Fixed continuation of partially-interrupted vectored I/O (#2665)
    • Fixed an issue in the log file parser (#3694)
  • ReQL
    • Changed type of between queries to from TABLE to the more correct TABLE_SLICE (#1728)
  • Web UI
    • Use a real fixed width font for backtraces to make them align correctly (#2065)
    • No longer show empty batches when more data is available (#3432)
  • Python driver
    • Correctly handle Unicode characters in error messages (#3051)
  • JavaScript driver
    • Added support for passing batch configuration arguments to run (#3161)
  • Ruby driver
    • Optional arguments can now be passed to order_by (#3221)

Contributors

Many thanks to external contributors from the RethinkDB community for helping
us ship RethinkDB 1.16. In no particular order:

  • Adam Grandquist (@grandquista)
  • Ilya Radchenko (@knownasilya)
  • Gianluca Ciccarelli (@sturmer)
  • Alexis Okuwa (@wojons)
  • Mike Ma (@cosql)
  • Patrick Stapleton (@gdi2290)
  • Mike Marcacci (@mike-marcacci)
  • Andrei Horak (@linkyndy)
  • Param Aggarwal (@paramaggarwal)
  • Brandon Zylstra (@brandondrew)
  • Ed Costello (@epc)
  • Alessio Basso (@alexdown)
  • Benjamin Goodger (@goodgerster)
  • Vinh Quốc Nguyễn (@kureikain)
rethinkdb - 1.15.3 — Lawrence of Arabia

Published by AtnNn almost 10 years ago

Bug fix update.

  • Fixed a bug that caused the endpoints of a reversed range to not be
    correctly included or excluded (#3449)
  • Fixed the reverse_iterator implementation for leaf nodes (#3446)
  • Fixed a bug that could cause a bad ordering of secondary indexes for
    rows with different primary key sizes (#3444)
  • Fixed a bug that could cause a crash under high load when using
    changefeeds (#3393)
  • Fixed a bug that made it impossible to chain between and
    distinct (#3346)
  • Changed some calls to avoid passing NULL to memcpy (#3317)
  • Fixed the installer artwork on OS X Yosemite (#3253)
  • Changed the version scheme for the JavaScript driver to avoid
    mis-use of pre-release numbers (#3281)
  • Fixed a bug that could cause rethinkdb import and rethinkdb export to hang (#3458)
rethinkdb - 1.15.2 — Lawrence of Arabia

Published by AtnNn almost 10 years ago

Bug fix update.

  • Added packages for Ubuntu 14.10 "Utopic Unicorn" (#3237)
  • Fixed a bug with memory handling in S2 (#3201)
  • Fixed a bug handling paged results in the Data Explorer (#3111)
  • Fixed a bug that caused a crash on exit if a joined server with an open
    changefeed crashed (#3038)
  • Fixed a bug that caused a crash when unsharding discarded more rows than
    expected when batching results (#3264)
  • Fixed a bug that could lead to crashes when changefeeds were frequently
    registered and unregistered (#3205)
  • Changed the r.point constructor to be deterministic, allowing it to be used
    in secondary index functions (#3287)
  • Fixed an incompatibility problem between Python 3.4 and the import command
    (#3259)
  • Fixed a buffer alignment issue with object_buffer_t data (#3300)
Package Rankings
Top 33.45% on Pypi.org
Top 3.72% on Proxy.golang.org
Top 0.61% on Npmjs.org
Top 1.57% on Rubygems.org
Badges
Extracted from project README
CII Best Practices Codacy Badge