May 15, 2015
- Removed logging thread.
cass_log_set_queue_size()are now deprecated. A logging callback registered with
cass_log_set_callback()will now be called on mulitple threads concurrently.
- Fixed an issue where the driver might crash/hang when
system.localcontains no entries
- Fixed an issue where the driver might hang under high-load due to missing
memory fence before
- Fixed an issue where time-based UUIDs (CassUuid v4) had the incorrect time on 32-bit systems
- Fixed an issue where a
cass::Poolobject might be double freed if a connection timed out while connecting
Mar 2, 2015
- Added testing documentation
- Added docmentation for the
- Added a contributing document
- Added version defines to
- Fixed an issue where connections were attempted against decommissioned nodes
- Fixed an issue where an invalid key index was used for a single entry token-aware routing key
- Improved build error output when an incompatabile version of Boost is used to build the driver
Feb 2, 2015
- Libuv 1.x supported
cass_cluster_set_num_threads_io()now returns an error code
- Fixed an issue where a node in a remote DC could reconnect even if it was supposed to be ignored.
- Reduced the defaults for IO worker threads (1), core connections (1), and max connections (2).
- Fixed crash caused by a null token-aware key value.
Dec 22, 2014
- Added global logging. Logging is no longer configured per session.
- DC-aware load balancing policy is now the default and uses the DC of the first connected contact point. The DC-aware policy now has settings to control the number of remote hosts used in each DC (after exhausting the hosts in the local DC) and whether to ignore local consistency levels.
- Added socket options for TCP nodelay and keepalive:
CassSessionobjects must now be explictly allocated/freed using
cass_cluster_connect()has been removed and replaced by
- SIGPIPE is ignored on driver threads
- Connection timeout now covers the entire connection handshake instead of just the socket connection.
- UUID API has been updated to use explict state via
CassUuidGeninstead of using internal global state. See
cass_uuid_gen_new()and corresponding functions.
Nov 20, 2014
- Added SSL support
- Added token-aware load balancing. It’s enable by default. It can
be disable using
- Added functions to get schema metadata,
cass_session_get_schema()can be use to get a snapshot of the schema metadata and
cass_meta_*()functions can be used to retrieve detailed information about keyspaces, tables, and columns.
- Significantly improved request throughput by batching socket writes.
Batch sizes can be configured using the function
cass_cluster_set_max_requests_per_flush(). The default is 128 because the maximum write size is bounded by the number of pipelined requests per connection (for version 1 and 2 of the native protocol).
- Added backpressure mechanism that can be configured for by the
number of outstanding bytes and the number of requests on a connection. These can
be configured using
- Fixed a crash caused by a request timing out followed by a call to the conneciton read callback then the write callback.
- Fixed an issue that prevented the driver from recovering from a full cluster outage.
- Fixed an issue that allowed
uv_queue_work()to be called from an application thread.
- Added logic to prevent redundant node refreshes when estabilishing a new connection from multiple IO workers.
- Fixed a crash caused by Cassandra 2.1.0 not returning metadata on execute requests.
- Fixed a memory leak that could leak request handlers if the control connection ran out of stream ids.
- Fixed a crash caused by calling an invalid timeout callback when waiting for connection to become available in a pool.
- Build will use an external version of Boost if present.
Sep 11, 2014
- Added node discovery and now handle topology/status change events
- Queries that modify schema wait for cluster schema agreement
- Added DC aware load balancing policy. The default policy is set to round robin.
- Added new methods to configure the load balancing policy,
- It is now possible for a session future to return an error when connecting to a cluster. This can occur when the driver is unable to connect to any contact points or the provided authentication credentials are invalid.
Aug 13, 2014
- Added callbacks to futures,
- Added plaintext authentication support,
- Added map iterator,
cass_iterator_from_map(), key and value pairs can be retreived using
- Values can be bound by name (statements created from prepared statments only)
- Values can be retreived by name from result sets
- Reduced overhead of prepared statements
- Small performance improvement for all queries via reduced allocations
Jul 17, 2014
- Removed C++1x dependency
- Support for Cassandra 1.2 (native protocol version 1)
- Support for automatic paging
- Added method to set serial consistency on statement
- Added batch type to batches
- Exposed options
cass_result_column_name()to get column name from a result set
StreamManagerso it no longer causes stack corruption
- Fixed issue where connections would log “‘Timed out during startup’ error on startup for …” when a Session was closed while a connection was during its startup process
- Fixed Row and collections iterator so they return the first and last item properly
- Improved logic for creating new connections so it’s based request throughput
- Removed the
setoptmethod added set methods for all options
- Removed the
cass_collection_new()no longer take a consistency parameter
cass_collection_new()now requires a colleciton type parameter
is_mapparameter removed from
Jun 16, 2014
- Support for Cassandra 2.0 (native protocol version 2)
- Support for prepared and batch statements
- Support for collections