You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+53-26Lines changed: 53 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,40 @@
1
1
# master
2
2
Features:
3
+
4
+
Bug Fixes:
5
+
6
+
7
+
# 3.0.0 GA
8
+
Features:
9
+
* Increased default request timeout (the `timeout` option to `Cassandra.cluster`), from 10 seconds to 12 seconds
10
+
because C* defaults to a 10 second timeout internally. The extra two seconds is buffer so that the client can
11
+
report the timeout in the server. This is also consistent with the Java driver.
12
+
* Expand :client_timestamps cluster configuration option to allow user to specify his own generator for client timestamps.
13
+
14
+
Bug Fixes:
15
+
*[RUBY-207](https://datastax-oss.atlassian.net/browse/RUBY-207) Get NoMethodError when handling a write-timeout error using a downgrading consistency retry policy.
16
+
*[RUBY-214](https://datastax-oss.atlassian.net/browse/RUBY-214) Client timestamps in JRuby are not fine-grained enough, causing timestamp collisions and lost rows in C*.
17
+
18
+
Breaking Changes:
19
+
* The Datacenter-aware load balancing policy (Cassandra::LoadBalancing::Policies::DCAwareRoundRobin) defaults to using
20
+
nodes in the local DC only. In prior releases, the policy would fall back to remote nodes after exhausting local nodes.
21
+
Specify a positive value (or nil for unlimited) for `max_remote_hosts_to_use` when initializing the policy to allow remote node use.
22
+
23
+
# 3.0.0 rc2
24
+
Features:
3
25
* Add protocol_version configuration option to allow the user to force the protocol version to use for communication with nodes.
4
26
* Expose listen_address and broadcast_address in `Cassandra::Host` if available.
5
27
* Add support for materialized views in the schema metadata.
6
28
* Add support for Cassandra indexes in the schema metadata.
7
29
* Add or expose the id, options, keyspace, partition_key, clustering_columns, and clustering_order attributes to table and view schema objects.
8
30
* Add crc_check_chance and extensions attributes to ColumnContainer options.
31
+
* Make cluster configuration options list publicly available. (Thanks, Evan Prothro!)
9
32
10
33
Bug Fixes:
11
-
*[RUBY-161] Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
12
-
*[RUBY-180] Column ordering is not deterministic in Table metadata.
13
-
*[RUBY-185] Internal columns in static-compact and dense tables should be ignored.
14
-
*[RUBY-186] Custom type column metadata should be parsed properly for C* 3.x schemas.
15
-
16
-
Breaking Changes:
34
+
*[RUBY-161](https://datastax-oss.atlassian.net/browse/RUBY-161) Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
35
+
*[RUBY-180](https://datastax-oss.atlassian.net/browse/RUBY-180) Column ordering is not deterministic in Table metadata.
36
+
*[RUBY-185](https://datastax-oss.atlassian.net/browse/RUBY-185) Internal columns in static-compact and dense tables should be ignored.
37
+
*[RUBY-186](https://datastax-oss.atlassian.net/browse/RUBY-186) Custom type column metadata should be parsed properly for C* 3.x schemas.
17
38
18
39
# 3.0.0 rc1
19
40
@@ -22,9 +43,9 @@ Features:
22
43
* Add Cassandra::Logger class to make it easy for users to enable debug logging in the client.
23
44
24
45
Bug Fixes:
25
-
*[RUBY-154] Improve batch request performance, which had regressed in 3.0.0 beta1.
26
-
*[RUBY-155] Request timeout timer should not include request queuing time.
27
-
*[RUBY-156] Do not drop response frames that follow a frame containing a warning.
46
+
*[RUBY-154](https://datastax-oss.atlassian.net/browse/RUBY-154) Improve batch request performance, which had regressed in 3.0.0 beta1.
47
+
*[RUBY-155](https://datastax-oss.atlassian.net/browse/RUBY-155) Request timeout timer should not include request queuing time.
48
+
*[RUBY-156](https://datastax-oss.atlassian.net/browse/RUBY-156) Do not drop response frames that follow a frame containing a warning.
28
49
29
50
# 3.0.0 beta1
30
51
@@ -44,10 +65,10 @@ Features:
44
65
45
66
Bug Fixes:
46
67
47
-
*[RUBY-143] Retry querying system table for metadata of new hosts when prior attempts fail, ultimately enabling use of new hosts.
48
-
*[RUBY-150] Fixed a protocol decoding error that occurred when multiple messages are available in a stream.
49
-
*[RUBY-151] Decode incomplete UDTs properly.
50
-
*[RUBY-120] Tuples and UDTs can be used in sets and hash keys.
68
+
*[RUBY-143](https://datastax-oss.atlassian.net/browse/RUBY-143) Retry querying system table for metadata of new hosts when prior attempts fail, ultimately enabling use of new hosts.
69
+
*[RUBY-150](https://datastax-oss.atlassian.net/browse/RUBY-150) Fixed a protocol decoding error that occurred when multiple messages are available in a stream.
*[RUBY-120](https://datastax-oss.atlassian.net/browse/RUBY-120) Tuples and UDTs can be used in sets and hash keys.
51
72
52
73
Breaking Changes:
53
74
@@ -57,6 +78,12 @@ Breaking Changes:
57
78
* Unavailable errors are retried on the next host in the load balancing plan by default.
58
79
* Statement execution no longer retried on timeouts, unless `:idempotent => true` has been specified when executing.
59
80
81
+
# 2.1.6
82
+
Bug Fixes:
83
+
84
+
*[RUBY-202](https://datastax-oss.atlassian.net/browse/RUBY-202) Allow password authenticator to be used for LDAP authentication. This is actually a backport of
85
+
RUBY-169 for the 3.0.0 release.
86
+
60
87
# 2.1.5
61
88
62
89
Features:
@@ -65,25 +92,25 @@ Features:
65
92
66
93
Bug Fixes:
67
94
68
-
*[RUBY-128] Fix decoding of large values in maps, sets and lists.
95
+
*[RUBY-128](https://datastax-oss.atlassian.net/browse/RUBY-128) Fix decoding of large values in maps, sets and lists.
69
96
70
97
# 2.1.4
71
98
72
99
Features:
73
100
74
-
*[RUBY-119] Use `require 'datastax/cassandra'` to avoid namespace conflicts
75
-
*[RUBY-90] Add support for disabling nagle algorithm (tcp nodelay), enabled by default.
76
-
*[RUBY-70] Add support for client-side timestamps, disabled by default.
77
-
*[RUBY-114] Add support for serial consistency in batch requests.
101
+
*[RUBY-119](https://datastax-oss.atlassian.net/browse/RUBY-119) Use `require 'datastax/cassandra'` to avoid namespace conflicts
102
+
*[RUBY-90](https://datastax-oss.atlassian.net/browse/RUBY-90) Add support for disabling nagle algorithm (tcp nodelay), enabled by default.
103
+
*[RUBY-70](https://datastax-oss.atlassian.net/browse/RUBY-70) Add support for client-side timestamps, disabled by default.
104
+
*[RUBY-114](https://datastax-oss.atlassian.net/browse/RUBY-114) Add support for serial consistency in batch requests.
78
105
79
106
Bug Fixes:
80
107
81
-
*[RUBY-103] Don't regenerate schema metadata for the same replication
108
+
*[RUBY-103](https://datastax-oss.atlassian.net/browse/RUBY-103) Don't regenerate schema metadata for the same replication
82
109
strategies and options
83
-
*[RUBY-102] Allow custom types in schema metadata
84
-
*[RUBY-97] Allow disabling of the initial population of schema metadata
85
-
*[RUBY-95] Speed up generation of large token maps
86
-
*[RUBY-116] fix thread leak on connection error
110
+
*[RUBY-102](https://datastax-oss.atlassian.net/browse/RUBY-102) Allow custom types in schema metadata
111
+
*[RUBY-97](https://datastax-oss.atlassian.net/browse/RUBY-97) Allow disabling of the initial population of schema metadata
112
+
*[RUBY-95](https://datastax-oss.atlassian.net/browse/RUBY-95) Speed up generation of large token maps
113
+
*[RUBY-116](https://datastax-oss.atlassian.net/browse/RUBY-116) fix thread leak on connection error
Copy file name to clipboardExpand all lines: README.md
+33-23Lines changed: 33 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Datastax Ruby Driver for Apache Cassandra
2
2
3
-
*If you're reading this on GitHub, please note that this is the readme for the development version and that some features described here might not yet have been released. You can [find the documentation for latest version through ruby driver docs](http://datastax.github.io/ruby-driver/) or via the release tags, [e.g. v1.0.0-beta.3](https://github.com/datastax/ruby-driver/tree/v1.0.0-beta.3).*
3
+
*If you're reading this on GitHub, please note that this is the readme for the development version and that some features described here might not yet have been released. You can [find the documentation for latest version through ruby driver docs](http://datastax.github.io/ruby-driver/) or via the release tags, [e.g. v3.0.0](https://github.com/datastax/ruby-driver/tree/v3.0.0).*
@@ -31,8 +31,8 @@ This driver is based on [the cql-rb gem](https://github.com/iconara/cql-rb) by [
31
31
32
32
This driver works exclusively with the Cassandra Query Language v3 (CQL3) and Cassandra's native protocol. The current version works with:
33
33
34
-
* Apache Cassandra versions 1.2, 2.0, 2.1, and 3.x
35
-
* DataStax Enterprise 4.0, 4.5, 4.6, 4.7, and 4.8
34
+
* Apache Cassandra versions 1.2, 2.0, 2.1, 2.2, and 3.x
35
+
* DataStax Enterprise 4.0and above.
36
36
* Ruby (MRI) 2.2, 2.3
37
37
* JRuby 1.7
38
38
@@ -96,28 +96,33 @@ Some of the new features added to the driver have unfortunately led to changes i
96
96
97
97
### Features:
98
98
99
-
* Apache Cassandra native protocol v4
100
-
* Add support for smallint, tinyint, date (Cassandra::Date) and time (Cassandra::Time) data types.
99
+
*Add support for Apache Cassandra native protocol v4
100
+
* Add support for smallint, tinyint, date (`Cassandra::Date`) and time (`Cassandra::Time`) data types.
101
101
* Include schema metadata for User Defined Functions and User Defined Aggregates.
102
+
* Augment the `Cassandra::Table` object to expose many more attributes: `id`, `options`, `keyspace`, `partition_key`, `clustering_columns`, and `clustering_order`. This makes it significantly easier to write administration scripts that report various attributes of your schema, which may help to highlight areas for improvement.
102
103
* Include client ip addresses in request traces, only on Cassandra 3.x.
103
-
* Add new retry policy decision Cassandra::Retry::Policy#try_next_host.
104
-
* Support specifying statement idempotence with the new :idempotent option when executing.
105
-
* Support sending custom payloads when preparing or executing statements using the new :payload option.
106
-
* Expose custom payloads received with responses on server exceptions and Cassandra::Execution::Info instances.
107
-
* Expose server warnings on server exceptions and Cassandra::Execution::Info instances.
108
-
* Add connections_per_local_node, connections_per_remote_node, requests_per_connection cluster configuration options to tune parallel query execution and resource usage.
109
-
* Add Cassandra::Logger class to make it easy for users to enable debug logging in the client.
110
-
* Add protocol_version configuration option to allow the user to force the protocol version to use for communication with nodes.
111
-
* Add support for materialized views in the schema metadata.
112
-
113
-
### Breaking Changes:
114
-
115
-
* Cassandra::Future#join is now an alias to Cassandra::Future#get and will raise an error if the future is resolved with one.
104
+
* Add new retry policy decision `Cassandra::Retry::Policy#try_next_host`.
105
+
* Support specifying statement idempotence with the new `idempotent` option when executing.
106
+
* Support sending custom payloads when preparing or executing statements using the new `payload` option.
107
+
* Expose custom payloads received with responses on server exceptions and `Cassandra::Execution::Info` instances.
108
+
* Expose server warnings on server exceptions and `Cassandra::Execution::Info` instances.
109
+
* Add `connections_per_local_node`, `connections_per_remote_node`, `requests_per_connection` cluster configuration options to tune parallel query execution and resource usage.
110
+
* Add `Cassandra::Logger` class to make it easy for users to enable debug logging in the client.
111
+
* Add `protocol_version` configuration option to allow the user to force the protocol version to use for communication with nodes.
112
+
* Add support for materialized views and indexes in the schema metadata.
113
+
* Support the `ReadError`, `WriteError`, and `FunctionCallError` Cassandra error responses introduced in Cassandra 2.2.
114
+
* Add support for unset variables in bound statements.
115
+
* Support DSE security (`DseAuthenticator`, configured for LDAP).
116
+
* Add a timeout option to `Cassandra::Future#get`.
117
+
118
+
### Breaking Changes from 2.x:
119
+
120
+
*`Cassandra::Future#join` is now an alias to Cassandra::Future#get and will raise an error if the future is resolved with one.
116
121
* Default consistency level is now LOCAL_ONE.
117
122
* Enable tcp no-delay by default.
118
123
* Unavailable errors are retried on the next host in the load balancing plan by default.
119
-
* Statement execution no longer retried on timeouts, unless :idempotent=> true has been specified when executing.
120
-
* Cassandra::Statements::Batch#add signature has changed in how one specifies query parameters. Specify the query parameters array as the value of the arguments key:
124
+
* Statement execution no longer retried on timeouts, unless the statement is marked as idempotent in the call to `Cassandra::Session#execute*` or when creating a `Cassandra::Statement` object.
125
+
*`Cassandra::Statements::Batch#add` and `Cassandra::Session#execute*` signatures have changed in how one specifies query parameters. Specify the query parameters array as the value of the arguments key:
* The Datacenter-aware load balancing policy (`Cassandra::LoadBalancing::Policies::DCAwareRoundRobin`) defaults to using
137
+
nodes in the local DC only. In prior releases, the policy would fall back to remote nodes after exhausting local nodes.
138
+
Specify a positive value (or nil for unlimited) for `max_remote_hosts_to_use` when initializing the policy to allow remote node use.
139
+
* Unspecified variables in statements previously resulted in an exception. Now they are essentially ignored or treated as null.
131
140
132
141
### Bug Fixes:
133
142
134
143
*[[RUBY-120](https://datastax-oss.atlassian.net/browse/RUBY-120)] Tuples and UDTs can be used in sets and hash keys.
135
144
*[[RUBY-143](https://datastax-oss.atlassian.net/browse/RUBY-143)] Retry querying system table for metadata of new hosts when prior attempts fail, ultimately enabling use of new hosts.
136
145
*[[RUBY-150](https://datastax-oss.atlassian.net/browse/RUBY-150)] Fixed a protocol decoding error that occurred when multiple messages are available in a stream.
*[[RUBY-161](https://datastax-oss.atlassian.net/browse/RUBY-161)] Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
147
+
*[[RUBY-155](https://datastax-oss.atlassian.net/browse/RUBY-155)] Request timeout timer should not include request queuing time.
148
+
*[[RUBY-161](https://datastax-oss.atlassian.net/browse/RUBY-161)] Protocol version negotiation in mixed version clusters should not fall back to v1 unless it is truly warranted.
149
+
*[[RUBY-214](https://datastax-oss.atlassian.net/browse/RUBY-214)] Ensure client timestamps have microsecond precision in JRuby. Previously, some row updates would get lost in high transaction environments.
139
150
140
151
## Feedback Requested
141
152
142
-
*Help us focus our efforts!*[Provide your input](http://goo.gl/forms/pCs8PTpHLf)
143
-
on the Ruby Driver Platform and Runtime Survey (we kept it short).
153
+
*Help us focus our efforts!*[Provide your input](http://goo.gl/forms/pCs8PTpHLf) on the Ruby Driver Platform and Runtime Survey (we kept it short).
0 commit comments