Skip to content
This repository
Newer
Older
100644 173 lines (134 sloc) 10.116 kb
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
1 # Riak 1.2 Release Notes
2
3 ## Features and Improvements for Riak
4
5 * Aggregation of non-streamed MapReduce results was
6 improved. Previous versions used an O(n^2) process, where n is
7 the number of outputs for a phase. The aggregation in Riak 1.2 is
8 O(n). (riak_kv#331,333, riak-erlang-client#58,59).
9
10 * Timeouts of MapReduce jobs now produce less error log spam. The
11 safe-to-ignore-but-confusing `{sink_died, normal}` messages have
12 been removed. (riak_pipe#45)
13
14 * The `riak-admin transfers` command now reports the
15 [status of active transfers] [xfer_status]. This gives more insight
16 into what transfers are occurring, their type, their running time,
17 and the rate at which data is being transferred. Calling this
18 command will no longer stall handoff.
19
20 * The memory storage backend for Riak KV now supports secondary indexes and has a "test" mode that lets developers quickly clear all local storage (useful in the context of an external test suite).
21
22 ### Protocol Buffers Enhancements
23
24 * The design of the Protocol Buffers on the server-side has been significantly refactored, allowing sub-applications other than Riak KV to supply services to clients.
25 * Secondary indexes can be natively queried from Protocol Buffers clients, They no longer need to emulate them with MapReduce.
26 * Riak Search indexes can be natively queried from Protocol Buffers clients. They no longer need to emulate them with MapReduce.
27
28 ### Stats improvements
29
30 * Riak now uses the open source [Folsom](https://github.com/boundary/folsom) library for stats
31 * Riak_search now has stats
32 * Getting stats from riak_kv should no longer timeout under very heavy load as there is no longer a gen_server
33 process for stats.
43d51f6b » jaredmorrow
2012-07-13 Fix typo in release notes
34 * Stats can still be retrieved as before, with the addition that one can now attach to a node and
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
35 query stats directly through folsom. Use `folsom_metrics:get_metrics()` to see a list of available stats.
36 * Configurable sample types for histogram metrics in riak_kv and riak_search. Defaults to a one minute sliding window, with random uniform reservoir size of 1028 readings per second. This means that the following statistics *may* show slightly different results from pre1.2 nodes as there may be fewer readings than the total number or events.
37 * riak_kv_node_get_fsm_siblings
38 * riak_kv_node_get_fsm_time,
39 * riak_kv_node_put_fsm_time
40 * riak_kv_node_get_fsm_objsize
43d51f6b » jaredmorrow
2012-07-13 Fix typo in release notes
41 * You can configure the sample type by adding
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
42 `{stat_sample_type, {slide, Window::int()}}` or `{stat_sample_type, {slide_uniform, {Window::int(), Size::int()}}}` to your `app.config` under the section for riak_kv and/or riak_search. Further you may change the sample type for a named stat only, like this `{{riak_kv, node_get_fsm_time}, {slide_uniform, {60, 10000}}}`
43
44 ### Packaging Improvements
45
46 * A binary package for FreeBSD 9 is now provided
47 * A binary package for SmartOS is now provided
48 * Ubuntu packages for 10.04 (Lucid), 11.04 (Natty), and 12.04 (Precise) are now provided as separate packages
49 * See "Bugs Fixed" for packaging related bug fixes
50
51 ### Leveldb tuning
1a7bf781 » dreverri
2012-07-13 Minor corrections to the 1.2 release notes
52 * Bloom filter code from google added. This greatly reduces the search time for keys that do not exist.
53 * File sizes increased 10x or more. This reduces the amount of disk activity, increasing performance.
54 * Memory usage changed. Please see XXX, need link, on how to best provision app.config based upon your physical server memory.
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
55
56 ### Capability Negotiation
57
1a7bf781 » dreverri
2012-07-13 Minor corrections to the 1.2 release notes
58 * Riak nodes now negotiate with each other to determine supported operating modes,
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
59 allowing clusters containing mixed-versions of Riak to work properly without special
60 configuration.
61
62 * This simplifies rolling upgrades. In the past, users needed to disable new features
63 during the rolling upgrade, and then enable them after all nodes were upgraded. This
64 is now handled automatically by Riak.
65
66 * This change replaces several existing configuration parameters, with the old settings
67 being ignored entirely in Riak 1.2. The following values are the ones that are no longer
68 used in Riak 1.2, along with the new behavior:
69 * `riak_core/legacy_vnode_routing`: Uses the newer vnode routing layer (introduced in Riak 1.1) when supported; otherwise, defaults to the legacy routing protocol.
70 * `riak_kv/legacy_keylisting`: Uses coverage based keylisting (introduced in Riak 1.0) when supported; otherwise,
71 defaults to the legacy keylisting behavior.
72 * `riak_kv/listkeys_backpressure`: Enables listkeys backpressure (introduced in Riak 1.1) when supported.
73 * `riak_kv/mapred_2i_pipe`: Use parallel secondary-index input to map/reduce jobs (introduced in Riak 1.1) when supported.
74 * `riak_kv/mapred_system`: Use `riak_pipe` for map/reduce (introduced in Riak 1.0) when supported; otherwise, default to legacy `luke` system.
75
76 * To override capability negotiation (which is discouraged), there is now a per-component override setting
77 that can be set in `app.config`. For example, the following could be added to the `riak_kv` section of
78 `app.config` to alter negotiation of the `listkeys_backpressure` and `mapred_system` settings:
79
80 ```erlang
81 %% Override listkeys_backpressure setting to always be set to 'false'.
82 %%
83 %% Override mapred_system setting to use 'legacy' if all nodes in the cluster
84 %% support 'legacy', otherwise use the built-in default setting.
85 [{override_capability,
86 [{listkeys_backpressure, [{use, false}]},
87 {mapred_system, [{prefer, legacy}]}]
88 }]
89 ```
90
91 ### Overhauled Cluster Adminstration
92
93 * Riak now provides a multi-phase approach to cluster administration
94 that allows changes to be staged and reviewed before being committed.
95
96 * This change allows multiple changes to be grouped together, such as
97 adding multiple nodes at once, or adding some nodes while removing
98 others.
99
100 * This new approach also provides details about how a set of staged
101 changes will impact the cluster, listing the future ring ownership
102 as well as the number of transfers necessary to implement the planned
103 changes.
104
105 * This new approach is currently implemented only by `riak-admin`, and
106 is not yet part of Riak Control. The older `riak-admin` commands such
107 as `join, leave, force-remove` have been deprecated, although they can
108 still be used by appending `-f`, eg. `riak-admin join -f`.
109
110 * The new cluster admin interface is accessed through `riak-admin cluster`:
111
112 ```text
113 Usage: riak-admin cluster <command>
114
115 The following commands stage changes to cluster membership. These commands
116 do not take effect immediately. After staging a set of changes, the staged
117 plan must be committed to take effect:
118
119 join <node> Join node to the cluster containing <node>
120 leave Have this node leave the cluster and shutdown
121 leave <node> Have <node> leave the cluster and shutdown
122
123 force-remove <node> Remove <node> from the cluster without
124 first handing off data. Designed for
125 crashed, unrecoverable nodes
126
127 replace <node1> <node2> Have <node1> transfer all data to <node2>,
128 and then leave the cluster and shutdown
129
130 force-replace <node1> <node2> Reassign all partitions owned by <node1> to
131 <node2> without first handing off data, and
132 remove <node1> from the cluster.
133
134 Staging commands:
135 plan Display the staged changes to the cluster
136 commit Commit the staged changes
137 clear Clear the staged changes
138 ```
139
140 ## Enhancements
141
142 * [Search - micro-optimization](https://github.com/basho/riak_search/pull/101)
143 * [Search - add repair cmd](https://github.com/basho/riak_search/pull/107)
144
145 ## Known Issues
146
147 ## Bugs Fixed
148
149 * [Add CSRF protection to Riak Control resources](https://github.com/basho/riak_control/pull/28).
150 * Riak Control now returns the proper [content-types](https://github.com/basho/riak_control/pull/18) and [doctype](https://github.com/basho/riak_control/pull/16).
43d51f6b » jaredmorrow
2012-07-13 Fix typo in release notes
151 * [Updates to Riak Control to resolve issues when viewing
f12596c2 » jaredmorrow
2012-07-13 Add updated release notes for 1.2
152 Control on iOS devices and over connections with high latency.](https://github.com/basho/riak_control/pull/21)
153 * [Riak Control now reports pre-1.1 nodes in a mixed version cluster as incompatible instead of unreachable.] (https://github.com/basho/riak_control/pull/24)
154 * [Allow commented out -name lines in `vm.args`](https://github.com/basho/riak/issues/175)
155 * [Riak RPM package needs dep on `sudo`](https://github.com/basho/riak/issues/163)
156 * [Change ownership of `/etc/riak` for RPM packages](https://github.com/basho/riak/issues/165)
157 * [`/var/run/riak` is not recreated on demand at startup](https://github.com/basho/riak/issues/130)
158 * [Ensure `ring_creation_size` setting is in all packaged app.config files](https://github.com/basho/riak/issues/139)
159 * [Move the `pipe_dir` on fedora/centos to the `/tmp/riak` directory](https://github.com/basho/riak/issues/150)
160 * [Remove bashisms from shell scripts which use /bin/sh](https://github.com/basho/riak/issues/141)
161 * Stalls: 2i and leveldb each had scenarios where data operations would stall 7 to 120 seconds.
162 * "block_size" parameter within app.config for leveldb was ignored. This parameter is now properly passed to leveldb.
163 * [Search - clear schema cache on update](https://github.com/basho/riak_search/pull/110)
164 * [Search - remove solr supervisor](https://github.com/basho/riak_search/pull/113)
165 * [Search - honor the '?' wildcard](https://github.com/basho/riak_search/pull/114)
166 * [Search - flatten 'MaxScore'](https://github.com/basho/riak_search/pull/119)
167
168 ## Notes
169
170 * The Luke application, and with it the "legacy" MapReduce system should be considered deprecated. All systems should be configured to use Riak Pipe as their MapReduce system (the default since 1.0). The Luke application may be removed as soon as the next release.
171 * The Innostore storage backend is deprecated and will not be supported in the 1.2 release.
172
173 [xfer_status]: http://basho.com/blog/technical/2012/06/25/Riak-Admin-Transfers-in-1-2-Release/
174
Something went wrong with that request. Please try again.