<commit_before># 3.2 (unreleased master branch)

### Notes

* The deprecated `-S` and `-m` options were removed.  Use the
  `statistics` configuration file construct instead.
* The `-i` option was removed.  Use tue `listen` configuration file
  construct instead.

### New Features

* **relay** the flag `-tt` can now be used to test the configuration and
  exit immediately.  In this mode, any standard output is suppressed as
  well.
  [Issue #247](https://github.com/grobian/carbon-c-relay/issues/247)
* **relay** the `listen` construct was added to precisely control listen
  ports and protocols.
* **server** unresolvable hosts are now treated as failed servers, this
  means the relay will only warn about unresolvable hosts, but not error
  out.  If a host becomes unresolvable this server is transitioned to
  failed state until it is resolvable again.
  [Issue #293](https://github.com/grobian/carbon-c-relay/issues/293)
* **relay** compression and encryption support was added to listeners
  and servers.
  [Issue #212](https://github.com/grobian/carbon-c-relay/issues/212)
  [Issue #75](https://github.com/grobian/carbon-c-relay/issues/75)

### Bugfixes

* [Issue #265](https://github.com/grobian/carbon-c-relay/issues/265)
  exit code is sucess on error when daemonised
* [Issue #266](https://github.com/grobian/carbon-c-relay/issues/266)
  incorrect hash when using aggregate function
* [Issue #267](https://github.com/grobian/carbon-c-relay/issues/267)
  segmentation fault when trying to use a file cluster
* [PR #273](https://github.com/grobian/carbon-c-relay/pull/273)
  regex matching slow on glibc due to lock contention
* [Issue #287](https://github.com/grobian/carbon-c-relay/issues/287)
  unexpected warning about rejected socket bufsize
* [PR #282](https://github.com/grobian/carbon-c-relay/pull/282)
  route using should not change the metric key sent
* [PR #274](https://github.com/grobian/carbon-c-relay/pull/274)
  aggregator expiry deadlocks under pressure


# 3.1 (29-04-2017)

### New Features

* **router** a new `route using` clause was added to `match` rules to
  set the string to be used as key for consistent-hash based clusters.
  [Pull Request #235](https://github.com/grobian/carbon-c-relay/pull/235)
* **consistent-hash** node traversal is now done through a binary search
  instead of forward pointer chasing.

### Bugfixes

* [Issue #261](https://github.com/grobian/carbon-c-relay/issues/261)
  unable to use numeric instance name
* [Issue #262](https://github.com/grobian/carbon-c-relay/issues/262)
  DNS round-robin on any\_of cluster doesn't rotate and causes lots of
  hung connections
* [Issue #263](https://github.com/grobian/carbon-c-relay/issues/263)
  parser fails on `%` in regular expressions, and exits with a crash
* [Issue #264](https://github.com/grobian/carbon-c-relay/issues/264)
  carbon\_ch hash algorithm change between 2.6 and 3.0


# 3.0 (2017-04-07)
<commit_msg>ChangeLog: add entry for consistant-hash fix<commit_after># 3.2 (unreleased master branch)

### Notes

* The deprecated `-S` and `-m` options were removed.  Use the
  `statistics` configuration file construct instead.
* The `-i` option was removed.  Use tue `listen` configuration file
  construct instead.

### New Features

* **relay** the flag `-tt` can now be used to test the configuration and
  exit immediately.  In this mode, any standard output is suppressed as
  well.
  [Issue #247](https://github.com/grobian/carbon-c-relay/issues/247)
* **relay** the `listen` construct was added to precisely control listen
  ports and protocols.
* **server** unresolvable hosts are now treated as failed servers, this
  means the relay will only warn about unresolvable hosts, but not error
  out.  If a host becomes unresolvable this server is transitioned to
  failed state until it is resolvable again.
  [Issue #293](https://github.com/grobian/carbon-c-relay/issues/293)
* **relay** compression and encryption support was added to listeners
  and servers.
  [Issue #212](https://github.com/grobian/carbon-c-relay/issues/212)
  [Issue #75](https://github.com/grobian/carbon-c-relay/issues/75)

### Bugfixes

* [Issue #265](https://github.com/grobian/carbon-c-relay/issues/265)
  exit code is sucess on error when daemonised
* [Issue #266](https://github.com/grobian/carbon-c-relay/issues/266)
  incorrect hash when using aggregate function
* [Issue #267](https://github.com/grobian/carbon-c-relay/issues/267)
  segmentation fault when trying to use a file cluster
* [PR #273](https://github.com/grobian/carbon-c-relay/pull/273)
  regex matching slow on glibc due to lock contention
* [Issue #287](https://github.com/grobian/carbon-c-relay/issues/287)
  unexpected warning about rejected socket bufsize
* [PR #282](https://github.com/grobian/carbon-c-relay/pull/282)
  route using should not change the metric key sent
* [PR #274](https://github.com/grobian/carbon-c-relay/pull/274)
  aggregator expiry deadlocks under pressure
* [buckytools Issue #17](https://github.com/jjneely/buckytools/issues/17)
  consistent-hash implementation returns a different distribution with
  the binary search approach


# 3.1 (29-04-2017)

### New Features

* **router** a new `route using` clause was added to `match` rules to
  set the string to be used as key for consistent-hash based clusters.
  [Pull Request #235](https://github.com/grobian/carbon-c-relay/pull/235)
* **consistent-hash** node traversal is now done through a binary search
  instead of forward pointer chasing.

### Bugfixes

* [Issue #261](https://github.com/grobian/carbon-c-relay/issues/261)
  unable to use numeric instance name
* [Issue #262](https://github.com/grobian/carbon-c-relay/issues/262)
  DNS round-robin on any\_of cluster doesn't rotate and causes lots of
  hung connections
* [Issue #263](https://github.com/grobian/carbon-c-relay/issues/263)
  parser fails on `%` in regular expressions, and exits with a crash
* [Issue #264](https://github.com/grobian/carbon-c-relay/issues/264)
  carbon\_ch hash algorithm change between 2.6 and 3.0


# 3.0 (2017-04-07)

{'fraction_non_alphanumeric': 0.12361775870605711, 'fraction_numerical': 0.04027067172800792, 'mean_word_length': 4.170648464163823, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 33, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2425740', 'n_tokens_mistral': 2168, 'n_tokens_neox': 1897, 'n_words': 607}