[RELEASE] DataStax Java Driver 2.0.7

68 views
Skip to first unread message

Olivier Michallat

unread,
Oct 28, 2014, 12:55:44 PM10/28/14
to java-dri...@lists.datastax.com
The Java driver team is pleased to announce the release of version 2.0.7 of our driver.

It comes with the following fixes and improvements:

- [bug] Handle null pool in PooledConnection.release (JAVA-449)
- [improvement] Defunct connection on request timeout (JAVA-425)
- [improvement] Try next host when we get a SERVER_ERROR (JAVA-426)
- [bug] Handle race between query timeout and completion (JAVA-449, JAVA-460, JAVA-471)
- [bug] Fix DCAwareRoundRobinPolicy datacenter auto-discovery (JAVA-496)
- [bug] Ensure control connection does not trigger concurrent reconnects (JAVA-497)
- [improvement] Keep trying to reconnect on authentication errors (JAVA-472)
- [improvement] Expose close method on load balancing policy (JAVA-463)
- [improvement] Allow load balancing policy to trigger refresh for a single host (JAVA-459)
- [bug] Expose an API to cancel reconnection attempts (JAVA-493)
- [bug] Fix NPE when a connection fails during pool construction (JAVA-503)
- [improvement] Log datacenter name in DCAware policy's init when it is explicitly provided
  (JAVA-423)
- [improvement] Shuffle the replicas in TokenAwarePolicy.newQueryPlan (JAVA-504)
- [improvement] Make schema agreement wait tuneable (JAVA-507)
- [improvement] Document how to inject the driver metrics into another registry (JAVA-494)
- [improvement] Add idle timeout to the connection pool (JAVA-419)
- [bug] LatencyAwarePolicy does not shutdown executor on invocation of close (JAVA-516)
- [improvement] Throw an exception when DCAwareRoundRobinPolicy is built with
  an explicit but null or empty local datacenter (JAVA-451).
- [bug] Fix check for local contact points in DCAware policy's init (JAVA-511)
- [improvement] Make timeout on saturated pool customizable (JAVA-457)
- [improvement] Downgrade Guava to 14.0.1 (JAVA-521)

We'd like to highlight a few items in this list:

JAVA-419: The connection pool now uses an idle timeout before removing connections. This prevents a bug that would lead the driver to rapidly create and destroy a large number of connections when the number of inflight requests oscillated around the core capacity. This timeout is configured through PoolingOptions#setIdleTimeoutSeconds, the default value is 120 seconds.

JAVA-457: When the driver tries to acquire a connection to a host and all connections are busy, it waits for a while for a connection to become available, before switching to the next host. This wait time is now configurable through PoolingOptions#setPoolTimeoutMillis. The default value is 5000 ms (what it used to be in previous versions). You can lower it all the way to 0, so that the driver doesn't wait and moves to the next host immediately. View this as a "fail-fast" setting: it will improve latency but increase the chance of getting a request error if all pools are busy.

JAVA-521: We had to downgrade the Guava dependency to 14.0.1 to solve compatibility issues in the Spark Cassandra connector. If you need a more recent version, you can override the dependency in your project. The driver's full test suite was run successfully against Guava 18.0, so you shouldn't run into any issue with more recent versions (if you do, please report it on this mailing list).


The driver is now available on Maven central, so consider updating your dependencies:

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-core</artifactId>
  <version>2.0.7</version>
</dependency>

The binary tarball will be uploaded shortly to our downloads site[1].

Check out the online documentation[2] and Javadocs[3] for more details.

--
The Java driver team


Reply all
Reply to author
Forward
0 new messages