Releases: datastax/ruby-driver
Releases · datastax/ruby-driver
DataStax Ruby Driver 3.0.2
Apache Cassandra 2.2 and 3.0 compatible release
Bug Fixes:
- RUBY-219 Sometimes get stack trace in metadata.rb due to failure in SortedSet initialization.
- RUBY-220 Improve support for custom types.
- RUBY-231 Driver ignores explicitly specified nil timeout (to indicate no time limit on query execution).
- RUBY-233 Client timeout errors are retried for non-idempotent statements.
DataStax Ruby Driver 3.0.0
Apache Cassandra 2.2 and 3.0 compatible release
Features:
- Increased default request timeout (the
timeout
option toCassandra.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
andCassandra::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.
- RUBY-151 Decode incomplete UDTs properly.
- RUBY-154 Improve batch request performance, which had regressed in 3.0.0 beta1.
- RUBY-155 Request timeout timer should not include request queuing time.
- RUBY-156 Do not drop response frames that follow a frame containing a warning.
- RUBY-161 Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
- RUBY-180 Column ordering is not deterministic in Table metadata.
- RUBY-185 Internal columns in static-compact and dense tables should be ignored.
- RUBY-186 Custom type column metadata should be parsed properly for C* 3.x schemas.
- RUBY-207 Get NoMethodError when handling a write-timeout error using a downgrading consistency retry policy.
- RUBY-214 Client timestamps in JRuby are not fine-grained enough, causing timestamp collisions and lost rows in C*.
DataStax Ruby Driver 2.1.6
DataStax Ruby Driver 3.0 rc2
Apache Cassandra 2.2 and 3.0 compatible release
Features:
- 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!)
Bug Fixes:
- [RUBY-161] Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
- [RUBY-180] Column ordering is not deterministic in Table metadata.
- [RUBY-185] Internal columns in static-compact and dense tables should be ignored.
- [RUBY-186] Custom type column metadata should be parsed properly for C* 3.x schemas.
DataStax Ruby Driver 3.0 rc1
Apache Cassandra 2.2 and 3.0 compatible release
Features:
- 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.
Bug Fixes:
- [RUBY-154] Improve batch request performance, which had regressed in 3.0.0 beta1.
- [RUBY-155] Request timeout timer should not include request queuing time.
- [RUBY-156] Do not drop response frames that follow a frame containing a warning.
DataStax Ruby Driver 3.0 beta 1
Apache Cassandra 2.2 and 3.0 compatible release
Features:
- 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
andCassandra::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.
Bug Fixes:
- [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.
- [RUBY-151] Decode incomplete UDTs properly.
- [RUBY-120] Tuples and UDTs can be used in sets and hash keys.
DataStax Ruby Driver 2.1.5
Apache Cassandra 2.1 compatible release
New Features:
- Add support for
type_hints
to override type-guessing for non-prepared statements.
Bug Fixes:
- [RUBY-128] Fix decoding of large values in maps, sets and lists.
DataStax Ruby Driver 2.1.4
Apache Cassandra 2.1 compatible release
New Features:
- [RUBY-90] Add tcp nodelay support, disabled by default
- [RUBY-114] Enable serial consistency for batch statements
- [RUBY-70] Add client timestamps support, disabled by default
- [RUBY-119] Allow the driver to be used with conflicting gems
Bug Fixes:
- [RUBY-95] Speed up generation of large token maps
- [RUBY-97] Prevent initial schema metadata fetch when synchronization disabled
- [RUBY-102] Fix schema metadata parsing of non-standard types
- [RUBY-103] Reuse token maps for keyspaces with same replication strategies and factors
- [RUBY-116] Fix thread leaks when cluster initialization fails
DataStax Ruby Driver 2.1.3
Apache Cassandra 2.1 compatible release
A clean release, fixing released gem versions 2.1.1 and 2.1.2:
- Gem version 2.1.1 contained debug print statements.
- Gem version 2.1.2 erroneously contained changes from master that weren't supposed to go out.
DataStax Ruby Driver 2.1.1
Apache Cassandra 2.1 compatible release
Bug Fixes:
- [RUBY-98] Use of undefined class variable in
Table#create_partition_key