Skip to content
This repository has been archived by the owner on Sep 25, 2020. It is now read-only.

Latest commit

 

History

History
102 lines (69 loc) · 6.5 KB

CHANGES.md

File metadata and controls

102 lines (69 loc) · 6.5 KB

ringpop-node release notes

10.21.0

  • Fix: Update hammock for node4+ support #328

10.20.0

  • Feature: Allow ringpop to reject pings if the ringpop app name differs #323

10.19.0

  • Feature: Allow overriding the stats-prefix used byt ringpop #320

10.18.0

  • Fix: Start state-transition timers on bootstrap #313
  • Fix: Make hash ring lookups consistent in case of hash collisions #315, #316, #317
  • Feature: Support retrying the discover provider #314

10.17.0

Release notes

  • Self eviction

    If a member disappears, it will become a suspect for a period (defaults to 5 seconds) before it's marked as faulty and removed from the ring.

    In the case of an expected shutdown, this causes a time window where a member is still considered part of the ring but not responding to (forwarded) requests anymore; causing unnecessary impact on SLA's.

    By exposing a selfEvict-function, ringpop allows a member to update its own state to faulty and gossip this update around as part of a graceful shutdown.

  • Key consistent forwarding

    When receiving a forwarded request from another member, the full ring checksum of sender and receiver will be compared, to confirm consistency. This is the default behavior.

    "Key consistent forwarding" adds support for a looser consistency check; instead of comparing the full ring checksum, ringpop only checks whether if the receiving member owns the key(s) of the forwarded request.

    The idea behind this approach is that if both members agree that the receiving member is the owner, it doesn't really matter if other parts of the hash ring are not in sync.

    Note: the default behaviour did not change! Key consistent forwarding can be enabled by disabling enforceConsistency and enabling enforceKeyConsistency when initializing ringpop.

10.16.2

  • Fix a bug in the serialization of forwarded requests when data is a Buffer #308

10.16.1

  • Performance improvements in forwarding path by upgrading hammock #306

10.16.0

  • Support node4 #304
  • Emit stats for LookupN comparable to Lookup #283
  • Optimize reincarnation for faster convergence #284 #282
  • Refactored internal representation of member state for more flexible reincarnation and state change of a member #291 #292 #293 #294 #296
  • Remove tick-cluster.js, the version from ringpop-common should be used #278
  • Emit stats from testpop for test validation purposes #271
  • Make state transition timers configurable in testpop #280
  • Remove unused tests #286

10.15.0

  • Feature: Automatic partition detection and recovery #272
  • Feature: Bidirectional full syncs for more robust gossip #251
  • Feature: Automatic cleanup of faulty nodes from membership #257
  • Deprecated: "admin/reload"-endpoint #255
  • Refactor: DiscoverProvider abstraction to discover bootstrap hosts #253
  • Various fixes and improvements for test suite #263 #262 #254 #245

Release notes

  • Automatic reaping of faulty nodes

    Previously nodes marked as faulty would stay in the memberlist indefinitely. Since, 10.15.0 these nodes will be automatically removed after 24 hours by default.

    You can customize the reaping delay using the stateTimeouts.faulty (default 86400000ms = 24h) option.

    If you are upgrading please try to upgrade the entire cluster before the reaping kicks in (24 hours). When ran together with an older version for a prolonged period of time an increase in cpu and bandwidth utilization is expected.

  • Automatic partition healing

    Ringpop now automatically heals partitions by querying the bootstrap provider (e.g. reading file from disk) and reaching out to the nodes that could live in another partition. This causes reads/queries to the bootstrap provider after the initial bootstrap.

    The algorithm attempts to heal 3 times per 30s on average, over the entire cluster. You can customize this using the discoverProviderHealerBaseProbability (default 3), discoverProviderHealerPeriod (default 30000ms = 30s) options.

Both Reaping faulty nodes and Partition healing can be triggered manually in as well with ringpop-admin v0.13.0 via ringpop-admin heal ip:port and ringpop-admin reap ip:port. This version is backwards compatible and therefore should be a drop in replacement.

10.14.0

  • Feature: Partition detection by adding ring and membership checksum stats #247
  • Update TChannel to latest #243
  • Improve README #240