ringpop-go v0.4.0 Release Notes
-
- ๐ Feature: Faulty nodes are now automatically reaped from nodes' membership lists after (24 hours by default). #123
- ๐ New options for controlling suspect and reaping times. #123
- โ Add new
Ready
andDestroyed
events to ringpop. #125 - โ Add additional logging to bring ringpop-go on par with ringpop-node log messages. #116
- ๐ Fix bug where Ringpop automatically added itself to the bootstrap hosts for host-based bootstrapping, but not other bootstrapping methods. #120
- ๐ Fix race condition where membership and hashring could be inconsistent with each other. #112
- โ Remove
File
andHost
options from bootstrap options in favor ofDiscoverProvider
interface. #120 - โ Add Go 1.6 to testing on CI
๐ Release notes
๐ Version incompatibility in protocol
Since 0.4.0 introduces a new node/member state, 0.4.0 is not backwards-compatible with previous versions.
โฌ๏ธ Note rolling upgrades with older versions do work, but undefined behaviour will occur if two versions run in parallel for longer than the
FaultyPeriod
(default 24 hours).๐ Changes to Bootstrap
๐ This release contains a breaking change to the options provided to the
ringpop.Bootstrap
call.BootstrapOptions.File
andBootstrapOptions.Hosts
have been replaced withBootstrapOptions.DiscoverProvider
.DiscoverProvider
is an interface which requires a single method:type DiscoverProvider interface { Hosts() ([]string, error) }
Ringpop comes with DiscoverProviders for the previous
File
andHosts
options out of the box.โฌ๏ธ To upgrade if you were previously using
File
:+ "github.com/uber/ringpop-go/discovery/jsonfile" ... - bootstrapOpts.File = *hostfile + bootstrapOpts.DiscoverProvider = jsonfile.New(*hostfile)
For static
Hosts
:+ "github.com/uber/ringpop-go/discovery/statichosts" ... - bootstrapOpts.Hosts = []string{"127.0.0.1:3000", "127.0.0.1:3001"} + bootstrapOpts.DiscoverProvider = statichosts.New("127.0.0.1:3000", "127.0.0.1:3001")