Features:
- [RUBY-119] Use
require 'datastax/cassandra'
to avoid namespace conflicts - [RUBY-90] Add support for disabling nagle algorithm (tcp nodelay), enabled by default.
- [RUBY-70] Add support for client-side timestamps, disabled by default.
- [RUBY-114] Add support for serial consistency in batch requests.
Bug Fixes:
- [RUBY-103] Don't regenerate schema metadata for the same replication strategies and options
- [RUBY-102] Allow custom types in schema metadata
- [RUBY-97] Allow disabling of the initial population of schema metadata
- [RUBY-95] Speed up generation of large token maps
- [RUBY-116] fix thread leak on connection error
Breaking Changes:
- Setting
:synchronize_schema
totrue
will no longer perform the initial fetching if schema metadata.
Release removing backwards incompatible changes included in 2.1.2
Release removing accidental debug code from 2.1.1.
Bug Fixes:
- [RUBY-98] Use of undefined class variable in
Table#create_partition_key
Features:
- Apache Cassandra native protocol v3
- User-defined types and tuples
- Schema metadata includes user-defined types
- Named arguments
- Public types api for type definition and introspection
Breaking Changes:
- Splat style positional arguments support, deprecated in 2.0.0, has been dropped
Bug Fixes:
- [RUBY-93] Reconnection can overflow the stack
Bug Fixes:
- [RUBY-87] Decoder corrupts incomplete response buffer
Features:
- Refactored coding layer to support native protocol v3
Breaking Changes:
- Positional arguments are passed in
:arguments
option toSession#execute
Bug Fixes:
- [RUBY-83] Timestamps loses microseconds when retrieved from database
- [RUBY-85] Driver doesn't always reconnect
Bug Fixes:
- [RUBY-75] Raise error when Batch Statement executed against Cassandra < 2.0
- [RUBY-76]
Cassandra::Future.all
doesn't return a future - [RUBY-77] Re-introduce
Cassandra::Future.promise
Features:
- Added
Cassandra::LoadBalancing::Policy#teardown
- Allow disabling of automatic schema metadata synchronization
- Allow manually refreshing schema metadata
- Schema change events processing improvement
- Added host list randomization to prevent hotspots between multiple clients
- Future listeners don't block the reactor
Bug Fixes:
- [RUBY-72] Reactor hangs when retrieving trace inside future listener
- [RUBY-73] Invalid index in load balancing plan after cluster resize
- [RUBY-74] Handle partial disconnects
Features:
- Added Cassandra.cluster_async
- Removed unused left-over code from cql-rb
- Add verification of types of parameters when binding a prepared statement
Bug Fixes:
- [RUBY-51] Clear current keyspace in all sessions upon deletion
Breaking Changes:
- Removed cql string interpolation of positional arguments for cassandra < 2.0
Features:
- Token Aware Data Center Aware Round Robin load balancing is used by default
- Automatic detection of broken connections using heartbeats
- Improved exception class hierarchy and documentation
- Configurable node address resolution with EC2 multi-region support
Bug fixes:
- [RUBY-34] handle empty values without crashing
- [RUBY-41] prevent connections to ignored hosts
- [RUBY-44] and [RUBY-43] correctly escape capitalized keyspaces
- [RUBY-48] handle control connection errors with a backoff and retry
- [RUBY-49] fix bug in Future.all
Breaking changes:
- Most of the error classes have changed,
Cassandra::Errors::QueryError
removed - Connections to hosts in remote datacenters will be disabled by default
Cassandra.connect
has been renamed toCassandra.cluster
to avoid confusionCassandra::TimeUuid::Generator
renamed toCassandra::Uuid::Generator
and api has been changed- Default consistency level has been changed from
:quorum
to:one
- Default request execution timeout of 10 seconds has been set
Bug fixes:
- [RUBY-35] handle ghost entries in system.peers table (CASSANDRA-7825)
Features:
- TokenAware load balancing policy
- Domain names
- SSL encryption
Bug fixes:
- [RUBY-8] correctly update host status when down/up events received immediately after each other
Breaking changes:
Cassandra::LoadBalancing::Policy#setup
is required to be implemented.Cassandra::Cluster#each_host
,Cassandra::Cluster#each_keyspace
,Cassandra::Keyspace#each_table
andCassandra::Table#each_column
returnArray
orself
.
Features:
- Fully asynchronous API
- Single cluster, multiple sessions
- New statements API (Simple, Prepared, Bound and Batch)
- Per-request execution information and tracing
- Base set of policies for load balancing, retry and reconnection as well as ability to write your own
- Host and Schema metadata and state listeners