All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be only fetched
conditionally):
./databases/cstore/distinfo D6.data.ros.gz
./databases/cstore/distinfo cstore0.2.tar.gz
./databases/cstore/distinfo data4.tar.gz
2.2.12
======
Upgrading
---------
- See MAXIMUM TTL EXPIRATION DATE NOTICE above.
- Cassandra is now relying on the JVM options to properly shutdown on OutOfMemoryError. By default it will
rely on the OnOutOfMemoryError option as the ExitOnOutOfMemoryError and CrashOnOutOfMemoryError options
are not supported by the older 1.7 and 1.8 JVMs. A warning will be logged at startup if none of those JVM
options are used. See CASSANDRA-13006 for more details.
- Cassandra is not logging anymore by default an Heap histogram on OutOfMemoryError. To enable that behavior
set the 'cassandra.printHeapHistogramOnOutOfMemoryError' System property to 'true'. See CASSANDRA-13006
for more details.
2.2.11
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.10
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.9
=====
Upgrading
---------
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
Deprecation
-----------
Since the security manager added in 3.0 only allows Java and JavaScript
UDFs to be run, UDFs for other languages are deprecated and support for
non-Java and non-JavaScript UDFs is deprecated in 2.2 and has been removed
in version 3.0.11.
2.2.8
=====
Upgrading
---------
- The ReversedType behaviour has been corrected for clustering columns of
BYTES type containing empty value. Scrub should be run on the existing
SSTables containing a descending clustering column of BYTES type to correct
their ordering. See CASSANDRA-12127 for more details.
2.2.7
=====
New features
------------
- JSON timestamps are now in UTC and contain the timezone information, see
CASSANDRA-11137 for more details.
Upgrading
---------
- Ec2MultiRegionSnitch will no longer automatically set broadcast_rpc_address
to the public instance IP if this property is defined on cassandra.yaml.
2.2.6
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.5
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.4
=====
Deprecation
-----------
- Pig support has been deprecated, and will be removed in 3.0.
Please see CASSANDRA-10542 for more details.
- Configuration parameter memory_allocator in cassandra.yaml has been deprecated
and will be removed in 3.0.0. As mentioned below for 2.2.0, jemalloc is
automatically preloaded on Unix platforms.
Operations
----------
- Switching data center or racks is no longer an allowed operation on a node
which has data. Instead, the node will need to be decommissioned and
rebootstrapped. If moving from the SimpleSnitch, make sure that the data
center and rack containing all current nodes is named "datacenter1" and
"rack1". To override this behaviour use -Dcassandra.ignore_rack=true and/or
-Dcassandra.ignore_dc=true.
- Reloading the configuration file of GossipingPropertyFileSnitch has been disabled.
- GC logging is now enabled by default (but you can disable it if you want by
commenting the relevant lines of the cassandra-env file).
Upgrading
---------
- The default for the inter-DC stream throughput setting
(inter_dc_stream_throughput_outbound_megabits_per_sec in cassandra.yaml) is
the same than the one for intra-DC one (200Mbps) instead of being unlimited.
Having it unlimited was never intended and was a bug.
New features
------------
- Time windows in DTCS are now limited to 1 day by default to be able to
handle bootstrap and repair in a better way. To get the old behaviour,
increase max_window_size_seconds.
- DTCS option max_sstable_age_days is now deprecated and defaults to 1000 days.
- Native protocol server now allows both SSL and non-SSL connections on
the same port.
2.2.3
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.2
=====
Upgrading
---------
- Version 1 and 2 of the native protocol are now deprecated and support
will be removed in Cassandra 3.0. You are encouraged to upgrade to a
client driver using version 3 of the native protocol.
Changed Defaults
----------------
- commitlog_total_space_in_mb will use the smaller of 8192, and 1/4
of the total space of the commitlog volume. (Before: always used
8192)
- Incremental repair is on by default since 2.2.0, run full repairs by
providing the '-full' parameter to nodetool repair.
- Parallel repairs are the default since 2.2.0, run sequential repairs
by providing the '-seq' parameter to nodetool repair.
- The following INFO logs were reduced to DEBUG level and will now show
on debug.log instead of system.log:
- Memtable flushing actions
- Commit log replayed files
- Compacted sstables
- SStable opening (SSTableReader)
New features
------------
- Custom QueryHandlers can retrieve the column specifications for the bound
variables from QueryOptions by using the hasColumnSpecifications()
and getColumnSpecifications() methods.
- A new default assynchronous log appender debug.log was created in addition
to the system.log appender in order to provide more detailed log debugging.
In order to disable debug logging, you must comment-out the ASYNCDEBUGLOG
appender on conf/logback.xml. See CASSANDRA-10241 for more information.
2.2.1
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
New features
------------
- COUNT(*) and COUNT(1) can be selected with other columns or functions
2.2
===
Upgrading
---------
- The authentication & authorization subsystems have been redesigned to
support role based access control (RBAC), resulting in a change to the
schema of the system_auth keyspace. See below for more detail.
For systems already using the internal auth implementations, the process
for converting existing data during a rolling upgrade is straightforward.
As each node is restarted, it will attempt to convert any data in the
legacy tables into the new schema. Until enough nodes to satisfy the
replication strategy for the system_auth keyspace are upgraded and so have
the new schema, this conversion will fail with the failure being reported
in the system log.
During the upgrade, Cassandra's internal auth classes will continue to use
the legacy tables, so clients experience no disruption. Issuing DCL
statements during an upgrade is not supported.
Once all nodes are upgraded, an operator with superuser privileges should
drop the legacy tables, system_auth.users, system_auth.credentials and
system_auth.permissions. Doing so will prompt Cassandra to switch over to
the new tables without requiring any further intervention.
While the legacy tables are present a restarted node will re-run the data
conversion and report the outcome so that operators can verify that it is
safe to drop them.
New features
------------
- The LIMIT clause applies now only to the number of rows returned to the user,
not to the number of row queried. By consequence, queries using aggregates will not
be impacted by the LIMIT clause anymore.
- Very large batches will now be rejected (defaults to 50kb). This
can be customized by modifying batch_size_fail_threshold_in_kb.
- Selecting columns,scalar functions, UDT fields, writetime or ttl together
with aggregated is now possible. The value returned for the columns,
scalar functions, UDT fields, writetime and ttl will be the ones for
the first row matching the query.
- Windows is now a supported platform. Powershell execution for startup scripts
is highly recommended and can be enabled via an administrator command-prompt
with: 'powershell set-executionpolicy unrestricted'
- It is now possible to do major compactions when using leveled compaction.
Doing that will take all sstables and compact them out in levels. The
levels will be non overlapping so doing this will still not be something
you want to do very often since it might cause more compactions for a while.
It is also possible to split output when doing a major compaction with
STCS - files will be split in sizes 50%, 25%, 12.5% etc of the total size.
This might be a bit better than old major compactions which created one big
file on disk.
- A new tool has been added bin/sstableverify that checks for errors/bitrot
in all sstables. Unlike scrub, this is a non-invasive tool.
- Authentication & Authorization APIs have been updated to introduce
roles. Roles and Permissions granted to them are inherited, supporting
role based access control. The role concept supercedes that of users
and CQL constructs such as CREATE USER are deprecated but retained for
compatibility. The requirement to explicitly create Roles in Cassandra
even when auth is handled by an external system has been removed, so
authentication & authorization can be delegated to such systems in their
entirety.
- In addition to the above, Roles are also first class resources and can be the
subject of permissions. Users (roles) can now be granted permissions on other
roles, including CREATE, ALTER, DROP & AUTHORIZE, which removesthe need for
superuser privileges in order to perform user/role management operations.
- Creators of database resources (Keyspaces, Tables, Roles) are now automatically
granted all permissions on them (if the IAuthorizer implementation supports
this).
- SSTable file name is changed. Now you don't have Keyspace/CF name
in file name. Also, secondary index has its own directory under parent's
directory.
- Support for user-defined functions and user-defined aggregates have
been added to CQL.
************************************************************************
IMPORTANT NOTE: user-defined functions can be used to execute
arbitrary and possibly evil code in Cassandra 2.2, and are
therefore disabled by default. To enable UDFs edit
cassandra.yaml and set enable_user_defined_functions to true.
CASSANDRA-9402 will add a security manager for UDFs in Cassandra
3.0. This will inherently be backwards-incompatible with any 2.2
UDF that perform insecure operations such as opening a socket or
writing to the filesystem.
Per the previous note about adding a security manager in 3.0, this security manager
means that non JavaScipt UDF's won't run, there for their use is deprecated.
************************************************************************
- Row-cache is now fully off-heap.
- jemalloc is now automatically preloaded and used on Linux and OS-X if
installed.
- Please ensure on Unix platforms that there is no libjnadispath.so
installed which is accessible by Cassandra. Old versions of
libjna packages (< 4.0.0) will cause problems - e.g. Debian Wheezy
contains libjna versin 3.2.x.
- The node now keeps up when streaming is failed during bootstrapping. You can
use new `nodetool bootstrap resume` command to continue streaming after resolving
an issue.
- Protocol version 4 specifies that bind variables do not require having a
value when executing a statement. Bind variables without a value are
called 'unset'. The 'unset' bind variable is serialized as the int
value '-2' without following bytes.
In an EXECUTE or BATCH request an unset bind value does not modify the value and
does not create a tombstone, an unset bind ttl is treated as 'unlimited',
an unset bind timestamp is treated as 'now', an unset bind counter operation
does not change the counter value.
Unset tuple field, UDT field and map key are not allowed.
In a QUERY request an unset limit is treated as 'unlimited'.
Unset WHERE clauses with unset partition column, clustering column
or index column are not allowed.
- New `ByteType` (cql tinyint). 1-byte signed integer
- New `ShortType` (cql smallint). 2-byte signed integer
- New `SimpleDateType` (cql date). 4-byte unsigned integer
- New `TimeType` (cql time). 8-byte long
- The toDate(timeuuid), toTimestamp(timeuuid) and toUnixTimestamp(timeuuid) functions have been added to allow
to convert from timeuuid into date type, timestamp type and bigint raw value.
The functions unixTimestampOf(timeuuid) and dateOf(timeuuid) have been deprecated.
- The toDate(timestamp) and toUnixTimestamp(timestamp) functions have been added to allow
to convert from timestamp into date type and bigint raw value.
- The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow
to convert from date into timestamp type and bigint raw value.
- SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed.
- The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM
to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia.
If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1}
Upgrading
---------
- Thrift rpc is no longer being started by default.
Set `start_rpc` parameter to `true` to enable it.
- Pig's CqlStorage has been removed, use CqlNativeStorage instead
- Pig's CassandraStorage has been deprecated. CassandraStorage
should only be used against tables created via thrift.
Use CqlNativeStorage for all other tables.
- IAuthenticator been updated to remove responsibility for user/role
maintenance and is now solely responsible for validating credentials,
This is primarily done via SASL, though an optional method exists for
systems which need support for the Thrift login() method.
- IRoleManager interface has been added which takes over the maintenance
functions from IAuthenticator. IAuthorizer is mainly unchanged. Auth data
in systems using the stock internal implementations PasswordAuthenticator
& CassandraAuthorizer will be automatically converted during upgrade,
with minimal operator intervention required. Custom implementations will
require modification, though these can be used in conjunction with the
stock CassandraRoleManager so providing an IRoleManager implementation
should not usually be necessary.
- Fat client support has been removed since we have push notifications to clients
- cassandra-cli has been removed. Please use cqlsh instead.
- YamlFileNetworkTopologySnitch has been removed; switch to
GossipingPropertyFileSnitch instead.
- CQL2 has been removed entirely in this release (previously deprecated
in 2.0.0). Please switch to CQL3 if you haven't already done so.
- The results of CQL3 queries containing an IN restriction will be ordered
2.1.16
- Avoid infinitely looping result set when paging SELECT queries with
an IN clause with duplicate keys by treating the IN values as a set
instead of a list
- Add system property to set the max number of native transport requests
in queue
- Include column family parameter when -st and -et are provided
- Fix queries with empty ByteBuffer values in clustering column
restrictions
- Disable passing control to post-flush after flush failure to prevent
data loss
- Allow STCS-in-L0 compactions to reduce scope with LCS
- cannot use cql since upgrading python to 2.7.11+
- Fix filtering on clustering columns when 2i is used
- Improve digest calculation in the presence of overlapping tombstones
2.1.15
- Account for partition deletions in tombstone histogram
- Avoid stalling paxos when the paxos state expires
- Remove finished incoming streaming connections from MessagingService
- Don't try to get sstables for non-repairing column families
- Prevent select statements with clustering key > 64k
- Avoid marking too many sstables as repaired
- Fix clock skew corrupting other nodes with paxos
- Remove distinction between non-existing static columns and existing
but null in LWTs
- Support mlockall on IBM POWER arch
- Cache local ranges when calculating repair neighbors
- Allow LWT operation on static column with only partition keys
- Create interval tree over canonical sstables to avoid missing sstables
during streaming
- cqlsh COPY FROM: shutdown parent cluster after forking, to avoid
corrupting SSL connections
- Updated cqlsh Python driver to fix DESCRIBE problem for legacy tables
- cqlsh: apply current keyspace to source command
- Backport CASSANDRA-11578
- Clear out parent repair session if repair coordinator dies
- Set default streaming_socket_timeout_in_ms to 24 hours
- Do not consider local node a valid source during replace
- Avoid holding SSTableReaders for duration of incremental repair
- Add message dropped tasks to nodetool netstats
- Don't compute expensive MaxPurgeableTimestamp until we've verified
there's an expired tombstone
- Fix paging on DISTINCT queries repeats result when first row in
partition changes
- Add option to disable use of severity in DynamicEndpointSnitch
- cqlsh COPY FROM fails for null values with non-prepared statements
- Make cython optional in pylib/setup.py
- Change order of directory searching for cassandra.in.sh to favor local
one
- cqlsh COPY FROM fails with []{} chars in UDT/tuple fields/values
- clqsh: COPY FROM throws TypeError with Cython extensions enabled
- cqlsh: COPY FROM ignores NULL values in conversion
- Validate levels when building LeveledScanner to avoid overlaps with
orphaned sstables
2.1.14
- Start L0 STCS-compactions even if there is a L0 -> L1 compaction going
- (cqlsh) Fix potential COPY deadlock when parent process is terminating
child processes
- Replace sstables on DataTracker before marking them as non-compacting
during anti-compaction
- Checking if an unlogged batch is local is inefficient
- Fix paging for COMPACT tables without clustering columns
- Fix out-of-space error treatment in memtable flushing
- Backport CASSANDRA-10859
- COPY FROM fails when importing blob
- Backport CASSANDRA-10679
- Don't do defragmentation if reading from repaired sstables
- Fix streaming_socket_timeout_in_ms not enforced
- Avoid dropping message too quickly due to missing unit conversion
- COPY FROM on large datasets: fix progress report and debug performance
- InvalidateKeys should have a weak ref to key cache
- Don't remove FailureDetector history on removeEndpoint
- Only notify if repair status changed
- Add partition key to TombstoneOverwhelmingException error message
- Use logback setting for 'cassandra -v' command
- Fix sstableloader to unthrottle streaming by default
- Fix incorrect warning in 'nodetool status'
- Properly release sstable ref when doing offline scrub
- Improve nodetool status performance for large cluster
- Make it clear what DTCS timestamp_resolution is used for
- Gossiper#isEnabled is not thread safe
- Avoid major compaction mixing repaired and unrepaired sstables in DTCS
- test_bulk_round_trip_blogposts is failing occasionally
- Add a -j parameter to scrub/cleanup/upgradesstables to state how
many threads to use
2.1.13
- Fix isJoined return true only after becoming cluster member
(CASANDRA-11007)
- Fix bad gossip generation seen in long-running clusters
- Avoid NPE when incremental repair fails
- Unmark sstables compacting once they are done in
cleanup/scrub/upgradesstables
- Revert CASSANDRA-10012 and add more logging
- Allow simultaneous bootstrapping with strict consistency when no
vnodes are used
- Log a message when major compaction does not result in a single file
- (cqlsh) fix cqlsh_copy_tests when vnodes are disabled
- (cqlsh) fix formatting bytearray values
- (cqlsh) Add request timeout option to cqlsh
- Avoid AssertionError while submitting hint with LWT
- If CompactionMetadata is not in stats file, use index summary instead
- Retry sending gossip syn multiple times during shadow round
- Fix pending range calculation during moves
- Sane default (200Mbps) for inter-DC streaming througput
- Match cassandra-loader options in COPY FROM
- Fix binding to any address in CqlBulkRecordWriter
- Fix the way we replace sstables after anticompaction
- cqlsh fails to decode utf-8 characters for text typed columns
- Log error when stream session fails
- Fix bugs in commit log archiving startup behavior
- (cqlsh) further optimise COPY FROM
- Allow CREATE TABLE WITH ID
- Make Stress compiles within eclipse
- Cassandra Daemon should print JVM arguments
- Allow cancellation of index summary redistribution
- sstableloader will fail if there are collections in the schema tables
- Disable reloading of GossipingPropertyFileSnitch
- Fix Stress profile parsing on Windows
2.1.12
- Fix incremental repair hang when replica is down
- Avoid writing range tombstones after END_OF_ROW marker
- Optimize the way we check if a token is repaired in anticompaction
- Add proper error handling to stream receiver
- Warn or fail when changing cluster topology live
- Status command in debian/ubuntu init script doesn't work
- Some DROP ... IF EXISTS incorrectly result in exceptions on
non-existing KS
- DeletionTime.compareTo wrong in rare cases
- Force encoding when computing statement ids
- Properly reject counters as map keys
- Fix the sstable-needs-cleanup check
- (cqlsh) Print column names before COPY operation
- Add Native-Transport-Requests back to tpstats
- Make paging logic consistent between searcher impls
- Fix CompressedInputStream for proper cleanup
- (cqlsh) Support counters in COPY commands
- Try next replica if not possible to connect to primary replica on
ColumnFamilyRecordReader
- Limit window size in DTCS
- sstableloader does not use MAX_HEAP_SIZE env parameter
- (cqlsh) Improve COPY TO performance and error handling
- Don't remove level info when running upgradesstables
- Create compression chunk for sending file only
- Make buffered read size configurable
- Forbid compact clustering column type changes in ALTER TABLE
- Reject incremental repair with subrange repair
- Add a nodetool command to refresh size_estimates
- Shutdown compaction in drain to prevent leak
- Invalidate cache after stream receive task is completed
- Reject counter writes in CQLSSTableWriter
- Remove superfluous COUNTER_MUTATION stage mapping
- Improve json2sstable error reporting on nonexistent columns
- (cqlsh) fix COPY using wrong variable name for time_format
- Do not run SizeEstimatesRecorder if a node is not a member of the ring
- Improve handling of dead nodes in gossip
- Fix logback-tools.xml incorrectly configured for outputing to
System.err
- Fix streaming to catch exception so retry not fail
- Add validation method to PerRowSecondaryIndex
- Support encrypted and plain traffic on the same port
- Do STCS in DTCS windows
- Don't try to get ancestors from half-renamed sstables
- Avoid repetition of JVM_OPTS in debian package
- Fix potential NPE from handling result of SIM.highestSelectivityIndex
- Fix paging issues with partitions containing only static columns data
- Fix conditions on static columns
- AssertionError: attempted to delete non-existing file CommitLog
- Merge range tombstones during compaction
- (cqlsh) Distinguish negative and positive infinity in output
- (cqlsh) allow custom time_format for COPY TO
- Don't allow startup if the node's rack has changed
- Fix sorting for queries with an IN condition on partition key columns
Problems found with existing distfiles:
distfiles/D6.data.ros.gz
distfiles/cstore0.2.tar.gz
distfiles/data4.tar.gz
distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
The Apache Cassandra Project develops a highly scalable second-generation
distributed database, bringing together Dynamo's fully distributed design
and Bigtable's ColumnFamily-based data model.