Find file
Fetching contributors…
Cannot retrieve contributors at this time
101 lines (87 sloc) 4.84 KB
Riak 0.13.0 Release Notes
Map/Reduce performance has been substantially improved:
* Improved Javascript call scheduling
Previous versions of Riak MapReduce didn't handle over load situations well
especially when the number of available Javascript VMs was low. Riak does a
better job of tracking which Javascript VMs are busy and attempts to spread the
load more evenly over all VMs.
* Improved Javascript call caching
The caching layer for Javascript MapReduce calls has been completely
re-implemented. This should result in better performance when MapReduce jobs
are run repeatedly. This work includes a new in-memory vnode LRU cache just for
map operations. The size of the cache, as in the number of entries, can be
controlled via the 'vnode_cache_entries' entry in the riak_kv section of
app.config. The cache size defaults to 100. Setting the entry to 0 will
disable the cache entirely.
* Fixed MapReduce job input handling
This operation was non-blocking in prior versions of Riak. The lack of
backpressure caused excessive memory bloat and poor performance when the input
producer overran the cluster's ability to process new MapReduce inputs. This
has been fixed in the current release and should result in lower resource
consumption and more stable run times.
The riak-admin script now has two new commands, "ringready" and
"wait-for-service". These enable the administrator to script detection of
cluster convergence on a given ring and wait for KV to come up,
Bitcask now uses 40% less memory per key entry and starts up significantly
faster when the dataset is large. It also reclaims memory of expired key
entries. Key listing when using Bitcask as a backend is substantially faster.
The structure of the Riak source repos has been changed to have a single Erlang
app per repo. This permits 3rd parties to use riak_core (the abstracted Dynamo
logic) in other applications.
The consistent hash ring balancing logic has been improved to enable large
clusters (>32 nodes) to converge quickly on a common ring.
Further work has been done to improve Riak's performance and robustness when
dealing with large datasets and failure scenarios.
140 - bin/riak now warns if ulimit -n is < 1024
168 - Performance of list_keys and mapred_bucket has been improved
213 - Default number of async threads has been increased to 64
446 - Each Erlang app has a dedicated repo
514 - dialyzer make target
578 - Re-examine garbage collection management of vnodes
651 - Merge should exit cleanly instead of with throw if files do not exist
696 - Garbage collection in Erlang J/S occurs more frequently
748 - Hint file reading is now buffered
081 - Support large uploads (chunk or stream automagically)
Bugs Fixed
26 - The 'devrel' target now builds on CentOS.
201 - RpbPutResp has a typo: "contents" instead of "content"
217 - bin/riak stop doesn't seem to be working on Solaris
270 - Content-type set using riak_object:new/4 doesn't saved in db.
507 - Bitcask leaks file-handles when reading lock data for merge
510 - Riak 0.12 cannot be started after restarting the server
512 - Riak EE RPM removes bitcask directory when uninstalled
523 - M/R job timeout not propagating in all cases
544 - PBC interface starts listening before socket supervisor is started
552 - Bitcask expiry does not reclaim keydir memory usage at merge
559 - riak_object:new auto-update only when initial metadata
570 - Errors in console for javascript client tests, post-M/R speedup
589 - Typo in bin/riak stop
619 - Listing keys triggers enormous memory consumption
621 - Starting Riak with largish dataset causes riak_core_ring_handler to crash
656 - Protobuffs erlang client returns "function_clause" error when listing buckets
658 - riak_client:list_buckets returns no results
706 - erlang_js segfaults under load with large JSON objects
708 - Running multiple MapReduce jobs causes errors
719 - Vnode exits during/after? handoff
723 - ets backend throws exception in stop/1
728 - "riak-admin test" exits with status 0 on timeout
731 - ebloom:clear() fails on Solaris platforms
735 - riak_kv_bitcask_backend:is_empty can leak file descriptors
737 - Debian init script reload doesn't work
742 - Packaging Changes for 0.13.0rc2
746 - riak build fails on R14
757 - Bitcask should properly count dead bytes when writing in same file
773 - "Not Found" tokens not correctly handled in streaming M/R results
774 - riak-admin wait-for-service riak responds "riak is up"
776 - Update and riak*-admin man files to include new commands
784 - Solaris packages shouldn't delete modified config files on removal
Riak has been updated with the necessary changes to compile
on Erlang R14, but has not been thoroughly tested on R14.
Please continue to run Riak on R13B04 in production.
All bug and issue numbers reference