You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to DataStax Ruby Driver for Apache Cassandra User Mailing List
Fellow Ruby hackers,
Today we released the long-awaited GA of the Ruby driver v3.0.0! We have come a long way since the v2.1.x line. Check out our release blog post for all the details.
This release adds full support for Apache Cassandra versions 2.2.x and 3.x. Here's a consolidated list of updates gleaned from the change-log:
Features:
Increased default request timeout (the timeout option to Cassandra.cluster), from 10 seconds to 12 seconds because C* defaults to a 10 second timeout internally. The extra two seconds is buffer so that the client can report the timeout in the server. This is also consistent with the Java driver.
Expand client_timestamps cluster configuration option to allow user to specify his own generator for client timestamps.
Add protocol_version configuration option to allow the user to force the protocol version to use for communication with nodes.
Expose listen_address and broadcast_address in Cassandra::Host if available.
Add support for materialized views in the schema metadata.
Add support for Cassandra indexes in the schema metadata.
Add or expose the id, options, keyspace, partition_key, clustering_columns, and clustering_order attributes to table and view schema objects.
Add crc_check_chance and extensions attributes to ColumnContainer options.
Make cluster configuration options list publicly available. (Thanks, Evan Prothro!)
Add connections_per_local_node, connections_per_remote_node, requests_per_connection cluster configuration options to tune parallel query execution and resource usage.
Add Cassandra::Logger class to make it easy for users to enable debug logging in the client.
Added optional time out to Cassandra::Future#get
Allow skipping bound values or using Cassandra::UNSET explicitly.
Add support for smallint, tinyint, date (Cassandra::Date) and time (Cassandra::Time) data types.
Add new errors: Cassandra::Errors::ReadError, Cassandra::Errors::WriteError, and Cassandra::Errors::FunctionCallError.
Include schema metadata for User Defined Functions and User Defined Aggregates.
Include client ip addresses in request traces, only on Cassandra 3.x.
Add new retry policy decision Cassandra::Retry::Policy#try_next_host.
Support specifying statement idempotence with the new idempotent option when executing.
Support sending custom payloads when preparing or executing statements using the new payload option.
Expose custom payloads received with responses on server exceptions and Cassandra::Execution::Info instances.
Expose server warnings on server exceptions and Cassandra::Execution::Info instances.
Breaking Changes:
Cassandra::Future#join is now an alias to Cassandra::Future#get and will raise an error if the future is resolved with one.
Default consistency level is now :local_one.
Enable tcp no-delay by default.
Unavailable errors are retried on the next host in the load balancing plan by default.
Statement execution no longer retried on timeouts, unless :idempotent => true has been specified when executing.
The Datacenter-aware load balancing policy (Cassandra::LoadBalancing::Policies::DCAwareRoundRobin) defaults to using nodes in the local DC only. In prior releases, the policy would fall back to remote nodes after exhausting local nodes. Specify a positive value (or nil for unlimited) for max_remote_hosts_to_use when initializing the policy to allow remote node use.
Bug Fixes:
[RUBY-120] Tuples and UDTs can be used in sets and hash keys.
[RUBY-143] Retry querying system table for metadata of new hosts when prior attempts fail, ultimately enabling use of new hosts.
[RUBY-150] Fixed a protocol decoding error that occurred when multiple messages are available in a stream.