Forward Incompatibility of app.config
Info | Value |
---|---|
Date issued | April 15, 2015 |
Product | Riak |
Affected Riak versions | 2.0.0+, 2.1.0+ |
Overview
A forward incompatibility of app.config between 1.x and 2.x has been identified.
Description
There is a forward compatibility issue when upgrading from the 1.x series to the
2.x series and continuing to use an app.config instead of migrating to the new
riak.conf introduced in 2.0. This issue results in different default bucket
properties being applied to un-typed buckets in 2.x, specifically for the
allow_mult
and dvv_enabled
parameters. In 1.x allow_mult
defaulted to
false
but defaults to true
in 2.x. The dvv_enabled
parameter did not exist
in 1.x, and defaults to true
in 2.x.
Impact
A switch from {allow_mult, false}
to {allow_mult, true}
can cause
unbounded growth of objects as siblings are added each time the object is updated
unless the client application is explicitly resolving siblings.
Mitigation Strategy
This issue can be mitigated by adding {allow_mult, false}
to
default_bucket_props
in the riak_core
section of the app.config.
{dvv_enabled, false}
can also be added, however enabling Dotted Version Vectors
should have no negative impact on the cluster.
{riak_core, [
. . .
{default_bucket_props, [
{allow_mult, false},
{dvv_enabled, false}]},
. . .