github rethinkdb/rethinkdb v1.13.0
1.13.0 — My Name is Nobody

latest releases: v2.4.4, v2.4.3, v2.4.2...
9 years ago

The highlights of this release are the r.http command for external
data access, change feed support via the new changes command, and
full support for Node.js promises in the JavaScript driver.

http://rethinkdb.com/blog/1.13-release/

Compatibility

This release is not compatible with data files from earlier
releases. If you have data you want to migrate from an older version
of RethinkDB, please follow the migration instructions before
upgrading:

http://rethinkdb.com/docs/migration/

There are also some backwards incompatible changes in the JavaScript driver.

  • The hasNext command for cursors has been removed. next can be used instead.

New features

  • ReQL
    • Added r.random for generating random numbers (#865)
    • Made the second argument to slice optional (#2048)
    • eq_join now accepts a function as its first argument, and does not fail if the field doesn't exist (#1764)
    • nth can now return a selection, just like get (#348)
    • Improved the master not available error message (#1811)
    • Switched to the JSON protocol in the Ruby, JavaScript and Python drivers (#2224, #2390)
    • Added the changes command for creating live change feeds (#997)
    • Added r.args to allow specifying a dynamic number of arguments to commands such as get_all (#1854)
    • Added r.http for interfacing with external APIs (#1383)
  • Server
    • Added a JSON protocol to replace the protobuf protocol, which is now deprecated (#1868)
    • Added a README describing the structure of the src/ folder (#2301)
    • Switched to manual versioning of the intra-cluster protocol (#2295)
    • Made the serialization format version-aware (#2308, #2353)
    • Improved the error message when running out of disk space (#1945)
  • JavaScript driver
    • Added support for promises (using bluebird) (#1395)
    • Removed the hasNext command (#2497)
    • Added the on, once, removeListener and removeAllListeners methods to cursors (#2223)
    • The first argument to r.connect has been made optional (#2273)
  • Tests
    • Improved the run-test script and ported it to Python (#2235)
    • Improved the ReQL tests (#1402)
  • Build
    • Symbol files are now generated (#2330)
    • Build with debugging symbols by default (#2323)
    • Added a signature to the OS X package (#1565)
    • Dropped support for GCC 4.4 (#1748)
    • Added an explicit dependency on Python 2 in the configure script (#2478)
    • Added a dependency on libcurl (#2400)

Improved performance

  • Server
    • Allocate smaller pages in the cache (#2130)
    • Reduce overhead by handling requests locally on the primary if possible (#2083)
    • Adjusted the value of chunk_processing_semaphore (#2392)
    • Improved backfilling on rotational drives (#2393)
    • Metadata is no longer copied when evaluating r.db (#1907)
    • No longer update the stat block when updating secondary indexes (#2431)
    • Block writes are better combined in the cache (#2127)
    • Concurrent garbage collection to improve disk space efficiency (#2457)
  • Testing
    • Added automated performance regression tests (#1963)

Fixed bugs

  • Server
    • Fixed the threaded coroutine implementation (#2168, #2332)
    • HTTP 500 errors are now accompanied by an error message (#511)
    • Got rid of vestigial memcache support (#803)
    • Made order_by and other sortings be stable (#2155)
    • Cleaned up blob_t code to make it more reliable (#2227)
    • Fixed a bug that caused crashes when dropping secondary indexes under load (#2251)
    • Fixed a bug in the JSON parsing code that caused a crash (#2489)
    • Fixed a bug that could cause segfaults (#2491)
    • Avoid high memory consumption on startup (#2329)
    • Disabled Nagle algorithm for outgoing TCP connections (#2529)
    • Remove some potentially objectionable server names (#2468)
    • Fixed a bug that caused Callstack overflow in a coroutine errors (#2357)
    • Merged upstream fixes to cJSON (#2496)
    • Fixed a bug that could cause a segmentation fault (#2500)
    • Fixed a bug in the serializer garbage byte calculation (#2541)
  • ReQL
    • Added the database name to error messages (#2280)
    • No longer report run-time errors as client errors (#1908)
    • Arguments to r.expr are now properly validated (#2384)
    • No longer crash when r.js returns a bad datum (#2409)
    • Fixed handling of global optargs (#2525)
  • Ruby driver
    • Ignore close errors when reconnecting (#2276)
    • Fixed conflicts with active support (#2284)
    • Added a missing nesting_depth argument to r.expr (#2408)
    • Modified the driver to work with JRuby (#2296)
    • The driver now prefetches cursor data (#2373)
  • JavaScript driver
    • Improved the variable names in error messages (#2461)
  • Web UI
    • Fixed a bug that caused JavaScript exceptions (#2503)
    • Fixed the per-server document count (#1836)
    • The database name is now shown on the table page (#2366)
    • Removed the inconsistent green tick next to the secondary index status (#2084)
    • Fixed email highlighting (#2378)
    • Large responses no longer cause the Data Explorer to become unresponsive (#2481)
    • Fixed a bug triggered by clearing the Data Explorer history (#2389)
  • Tests
    • Converted the memcache tests to use ReQL (#803)

Contributors

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

Don't miss a new rethinkdb release

NewReleases is sending notifications on new releases.