Changelog for cql-io-2.0.0
2.0.0
-----
- Support multiple control connections with an upper limit and policy-controlled
priority.
- Cabal file improvements: bounds, version, etc.
- Switch from unmaintained cryptonite to crypton
- Add sufficient API tools for token-routing aware policy:
- Accessors to lookup the replication for a keyspace, and to get the replicas
for a given prepared query and its query values.
- Pass prepared query and values to policy when selecting host
- Track replication information for keyspaces and nodes
- Better handling of prepared queries: Prevent re-prepare if the user has
eagerly prepared a query.
- Better code sharing between default policies.
- Host events to pass Hosts, not addresses. This allows policies to better
handle ups and downs, as well as re-numbering. It makes it easier to write a
policy that prefers a given DC.
- Track peers more carefully, and track them via UUID, not address.
- Allow connection upgrading via min-max protocol version. Instead of setting a
fixed protocol version, allow setting a min and max, and upgrade when
possible.
Breaking Changes:
- Policy has a new `priority` function
- Policy Events now have `Host`s instead of addresses, except for the new
`AddrDown` for the case of a `HostDown` CQL event where the `Host` in question
can't be found.
- Policy `select` function accepts an additional argument with token-based
routing information if it is available.
- Settings has `_minProtoVer` and `_maxProtoVer` instead of `_protoVersion`
- Settings has an additional field `_maxControlConnections`
Porting Guide:
If using one of the included policies, the only necessary change should be to
set a minimum and maximum protocol versions instead of a single version.
If not using an included policy, an existing policy can be ported by ignoring
the additional argument to select, and by adjusting the event handler to handle
`Host`s rather than addresses. Hosts have an address field, so porting should be
straightforward. However, the changed policy API makes it possible to have a
token aware routing policy. It's worth taking a look at that while porting. The
improved `HostEvent` API should make it easier to handle host renumbering more
gracefully as well.
1.1.1
-----
- Compatibility with `network >= 3`.
1.1.0
-----
- Improve configuration of retry settings and refactor exceptions
(https://gitlab.com/twittner/cql-io/issues/13).
- Document and export the 'getResult' function alongside the low-level
query API.
- Replace monad-control with unliftio.
- Remove dependency on tinylog, introducing a minimal logging interface that can
be hooked up to any logging library. Tinylog integration has moved to
the new cql-io-tinylog library.
1.0.1.1
-------
- Add more documentation on queries.
1.0.1
------
- Address an issue whereby Cassandra 'Error' responses might be mistakenly
thrown by the (internal) withRetries function, possibly leading to
problems with the automatic (re-)preparation of prepared queries upon
'Unprepared' server responses.
1.0.0
------
- Add support for CQL V4 binary protocol.
- Remove support for CQL V2 binary protocol.
- Add support for SASL-based authentication handlers.
- Bugfix: Retries for error responses were not handled correctly.
- Update and extend test suite.
- Require `cql >= 4.0`
0.16.0
------
- Update Cabal settings to allow `cql` >= 3.1
0.15.2
------
- Update `async` dependency
0.15.1
------
- Use `retry >= 0.7` instead of internal module
0.15.0
------
- Add experimental TLS support
0.14.5
------
- Add `trans` to execute "lightweight transactions"
0.14.4
------
- Update dependencies
0.14.3
------
- Bugfixes
0.14.2
------
- Export `PrepareStrategy` from `Database.CQL.IO`
0.14.1
------
- Support for prepared queries
- Bugfixes
- `Control.Retry` module update to match version 0.6
0.13.2
------
- Retry on `IOException`
- Update dependencies
0.13.1
------
- Support `monad-control` 1.*
0.13.0
------
- Add `setMaxRecvBuffer` option
0.12.2
------
- Update dependencies
0.12.1
------
- Update dependencies
0.12.0
------
- Remove wait-queue
- Add more type-class instances
0.10.0
------
- Add `MonadClient` type-class
- Add retry settings
0.9.7
-----
- Bugfix release
0.9.6
-----
- Initial release