[4/6] cassandra git commit: Merge branch cassandra-2.1 into cassandra-2.2
Merge branch cassandra-2.1 into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/194329d3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/194329d3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/194329d3 Branch: refs/heads/cassandra-3.0 Commit: 194329d3c3c3e70897fcfb20f81076c2c45269d8 Parents: 1e102b4 64d8a1d Author: Benjamin LererAuthored: Fri Apr 7 11:24:20 2017 +0200 Committer: Benjamin Lerer Committed: Fri Apr 7 11:32:12 2017 +0200 -- CHANGES.txt | 1 + .../restrictions/StatementRestrictions.java | 17 + .../cql3/statements/SelectStatement.java| 8 ++--- .../validation/entities/SecondaryIndexTest.java | 38 4 files changed, 60 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/194329d3/CHANGES.txt -- diff --cc CHANGES.txt index e01a63c,eacd275..6ea2d59 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,58 -1,10 +1,59 @@@ -2.1.18 +2.2.10 + * Fix JVM metric paths (CASSANDRA-13103) + * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) + * Discard in-flight shadow round responses (CASSANDRA-12653) + * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153) + * Wrong logger name in AnticompactionTask (CASSANDRA-13343) + * Fix queries updating multiple time the same list (CASSANDRA-13130) + * Fix GRANT/REVOKE when keyspace isn't specified (CASSANDRA-13053) + * Avoid race on receiver by starting streaming sender thread after sending init message (CASSANDRA-12886) + * Fix "multiple versions of ant detected..." when running ant test (CASSANDRA-13232) + * Coalescing strategy sleeps too much (CASSANDRA-13090) + * Make sure compaction stats are updated when compaction is interrupted (Backport from 3.0, CASSANDRA-12100) + * Fix flaky LongLeveledCompactionStrategyTest (CASSANDRA-12202) + * Fix failing COPY TO STDOUT (CASSANDRA-12497) + * Fix ColumnCounter::countAll behaviour for reverse queries (CASSANDRA-13222) + * Exceptions encountered calling getSeeds() breaks OTC thread (CASSANDRA-13018) + * Commitlog replay may fail if last mutation is within 4 bytes of end of segment (CASSANDRA-13282) +Merged from 2.1: + * Fix 2ndary index queries on partition keys for tables with static columns (CASSANDRA-13147) * Fix ParseError unhashable type list in cqlsh copy from (CASSANDRA-13364) - * Log stacktrace of uncaught exceptions (CASSANDRA-13108) * Remove unused repositories (CASSANDRA-13278) + * Log stacktrace of uncaught exceptions (CASSANDRA-13108) + -2.1.17 +2.2.9 + * Fix negative mean latency metric (CASSANDRA-12876) + * Use only one file pointer when creating commitlog segments (CASSANDRA-12539) + * Fix speculative retry bugs (CASSANDRA-13009) + * Fix handling of nulls and unsets in IN conditions (CASSANDRA-12981) + * Remove support for non-JavaScript UDFs (CASSANDRA-12883) + * Fix DynamicEndpointSnitch noop in multi-datacenter situations (CASSANDRA-13074) + * cqlsh copy-from: encode column names to avoid primary key parsing errors (CASSANDRA-12909) + * Temporarily fix bug that creates commit log when running offline tools (CASSANDRA-8616) + * Reduce granuality of OpOrder.Group during index build (CASSANDRA-12796) + * Test bind parameters and unset parameters in InsertUpdateIfConditionTest (CASSANDRA-12980) + * Do not specify local address on outgoing connection when listen_on_broadcast_address is set (CASSANDRA-12673) + * Use saved tokens when setting local tokens on StorageService.joinRing (CASSANDRA-12935) + * cqlsh: fix DESC TYPES errors (CASSANDRA-12914) + * Fix leak on skipped SSTables in sstableupgrade (CASSANDRA-12899) + * Avoid blocking gossip during pending range calculation (CASSANDRA-12281) + * Fix purgeability of tombstones with max timestamp (CASSANDRA-12792) + * Fail repair if participant dies during sync or anticompaction (CASSANDRA-12901) + * cqlsh COPY: unprotected pk values before converting them if not using prepared statements (CASSANDRA-12863) + * Fix Util.spinAssertEquals (CASSANDRA-12283) + * Fix potential NPE for compactionstats (CASSANDRA-12462) + * Prepare legacy authenticate statement if credentials table initialised after node startup (CASSANDRA-12813) + * Change cassandra.wait_for_tracing_events_timeout_secs default to 0 (CASSANDRA-12754) + * Clean up permissions when a UDA is dropped (CASSANDRA-12720) + * Limit colUpdateTimeDelta histogram updates to reasonable deltas (CASSANDRA-7) + * Fix leak errors and execution rejected exceptions when draining (CASSANDRA-12457) + * Fix merkle tree depth
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 * cassandra-2.1: Range tombstones that are masked by row tombstones should not be written out Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/43c741e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/43c741e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/43c741e2 Branch: refs/heads/cassandra-3.0 Commit: 43c741e251102bf5651ff8aa1b5ca078eb0ddc0b Parents: d5a15e4 98f5f77 Author: Sylvain LebresneAuthored: Wed Jul 6 14:39:13 2016 +0200 Committer: Sylvain Lebresne Committed: Wed Jul 6 14:39:13 2016 +0200 -- CHANGES.txt | 1 + .../db/compaction/LazilyCompactedRow.java | 3 +- .../apache/cassandra/db/RangeTombstoneTest.java | 40 3 files changed, 43 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/43c741e2/CHANGES.txt -- diff --cc CHANGES.txt index 65c7c1f,7fa995d..bfd8aa2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,43 -1,11 +1,44 @@@ -2.1.16 +2.2.8 + * MemoryUtil.getShort() should return an unsigned short also for architectures not supporting unaligned memory accesses (CASSANDRA-11973) +Merged from 2.1: + * Don't write shadowed range tombstone (CASSANDRA-12030) - * Fix filtering on clustering columns when 2i is used (CASSANDRA-11907) - * Reduce contention getting instances of CompositeType (CASSANDRA-10433) * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349) - -2.1.15 + * Fix filtering on clustering columns when 2i is used (CASSANDRA-11907) * Account for partition deletions in tombstone histogram (CASSANDRA-12112) + + +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) http://git-wip-us.apache.org/repos/asf/cassandra/blob/43c741e2/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/43c741e2/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java -- diff --cc
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4aa859e5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4aa859e5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4aa859e5 Branch: refs/heads/cassandra-3.0 Commit: 4aa859e51a38d0856ba4ee2d0c177d83722271dd Parents: 63efa07 b851792 Author: Yuki MorishitaAuthored: Thu May 26 09:47:04 2016 -0500 Committer: Yuki Morishita Committed: Thu May 26 09:47:04 2016 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/io/FSErrorHandler.java | 30 ++ .../org/apache/cassandra/io/util/FileUtils.java | 76 +++--- .../cassandra/service/CassandraDaemon.java | 2 + .../service/DefaultFSErrorHandler.java | 101 +++ .../apache/cassandra/db/DirectoriesTest.java| 2 + 6 files changed, 152 insertions(+), 60 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4aa859e5/CHANGES.txt -- diff --cc CHANGES.txt index 190c2fa,ad9d00c..f2276f0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,5 +1,25 @@@ -2.1.15 +2.2.7 + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Backport CASSANDRA-11578 (CASSANDRA-11750) * Clear out parent repair session if repair coordinator dies (CASSANDRA-11824) * Set default streaming_socket_timeout_in_ms to 24 hours (CASSANDRA-11840) * Do not consider local node a valid source during replace (CASSANDRA-11848) http://git-wip-us.apache.org/repos/asf/cassandra/blob/4aa859e5/src/java/org/apache/cassandra/io/util/FileUtils.java -- diff --cc src/java/org/apache/cassandra/io/util/FileUtils.java index ce45370,f69ed01..3124fcd --- a/src/java/org/apache/cassandra/io/util/FileUtils.java +++ b/src/java/org/apache/cassandra/io/util/FileUtils.java @@@ -17,14 -17,23 +17,15 @@@ */ package org.apache.cassandra.io.util; -import java.io.Closeable; -import java.io.DataInput; -import java.io.EOFException; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.RandomAccessFile; +import java.io.*; import java.nio.ByteBuffer; -import java.nio.MappedByteBuffer; -import java.nio.file.AtomicMoveNotSupportedException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; +import java.nio.channels.FileChannel; +import java.nio.file.*; import java.text.DecimalFormat; import java.util.Arrays; + import java.util.concurrent.atomic.AtomicReference; +import org.apache.cassandra.config.Config; import sun.nio.ch.DirectBuffer; import org.slf4j.Logger; @@@ -38,13 -45,9 +37,12 @@@ import org.apache.cassandra.io.FSErrorH import org.apache.cassandra.io.FSReadError; import org.apache.cassandra.io.FSWriteError; import org.apache.cassandra.io.sstable.CorruptSSTableException; - import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.JVMStabilityInspector; +import static org.apache.cassandra.utils.Throwables.maybeFail; +import static org.apache.cassandra.utils.Throwables.merge; + - public class FileUtils + public final class FileUtils { private
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/57d558fc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/57d558fc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/57d558fc Branch: refs/heads/trunk Commit: 57d558fc1ef8117c41567541b967e2b782d04a50 Parents: de55c39 124f1bd Author: Aleksey YeschenkoAuthored: Tue Dec 15 21:37:09 2015 + Committer: Aleksey Yeschenko Committed: Tue Dec 15 21:37:09 2015 + -- CHANGES.txt| 4 + bin/cqlsh.py | 329 ++- pylib/cqlshlib/copyutil.py | 912 ++-- pylib/cqlshlib/util.py | 19 + 4 files changed, 843 insertions(+), 421 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/57d558fc/CHANGES.txt -- diff --cc CHANGES.txt index c9074fc,90f1bca..c969a4d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,36 -1,15 +1,40 @@@ -2.1.13 +2.2.5 + * Add property to allow listening on broadcast interface (CASSANDRA-9748) + * Fix regression in split size on CqlInputFormat (CASSANDRA-10835) + * Better handling of SSL connection errors inter-node (CASSANDRA-10816) + * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) + * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) +Merged from 2.1: + * (cqlsh) further optimise COPY FROM (CASSANDRA-9302) * Allow CREATE TABLE WITH ID (CASSANDRA-9179) * Make Stress compiles within eclipse (CASSANDRA-10807) * Cassandra Daemon should print JVM arguments (CASSANDRA-10764) * Allow cancellation of index summary redistribution (CASSANDRA-8805) + * sstableloader will fail if there are collections in the schema tables (CASSANDRA-10700) + * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) * Fix Stress profile parsing on Windows (CASSANDRA-10808) + -2.1.12 +2.2.4 + * Show CQL help in cqlsh in web browser (CASSANDRA-7225) + * Serialize on disk the proper SSTable compression ratio (CASSANDRA-10775) + * Reject index queries while the index is building (CASSANDRA-8505) + * CQL.textile syntax incorrectly includes optional keyspace for aggregate SFUNC and FINALFUNC (CASSANDRA-10747) + * Fix JSON update with prepared statements (CASSANDRA-10631) + * Don't do anticompaction after subrange repair (CASSANDRA-10422) + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) + * Fix IllegalArgumentException in DataOutputBuffer.reallocate for large buffers (CASSANDRA-10592) +Merged from 2.1: * Fix incremental repair hang when replica is down (CASSANDRA-10288) * Avoid writing range tombstones after END_OF_ROW marker (CASSANDRA-10791) * Optimize the way we check if a token is repaired in anticompaction (CASSANDRA-10768)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a90c3b2b/bin/cqlsh.py -- diff --cc bin/cqlsh.py index ffcbcbd,000..28054ba mode 100644,00..100644 --- a/bin/cqlsh.py +++ b/bin/cqlsh.py @@@ -1,2699 -1,0 +1,2701 @@@ +#!/bin/sh +# -*- mode: Python -*- + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""":" +# bash code here; finds a suitable python interpreter and execs this file. +# prefer unqualified "python" if suitable: +python -c 'import sys; sys.exit(not (0x020500b0 < sys.hexversion < 0x0300))' 2>/dev/null \ +&& exec python "$0" "$@" +for pyver in 2.6 2.7 2.5; do +which python$pyver > /dev/null 2>&1 && exec python$pyver "$0" "$@" +done +echo "No appropriate python interpreter found." >&2 +exit 1 +":""" + +from __future__ import with_statement + +import cmd +import codecs +import ConfigParser +import csv +import getpass +import locale +import multiprocessing as mp +import optparse +import os +import platform +import sys +import time +import traceback +import warnings +from contextlib import contextmanager +from functools import partial +from glob import glob +from StringIO import StringIO +from uuid import UUID + +if sys.version_info[0] != 2 or sys.version_info[1] != 7: +sys.exit("\nCQL Shell supports only Python 2.7\n") + +description = "CQL Shell for Apache Cassandra" +version = "5.0.1" + +readline = None +try: +# check if tty first, cause readline doesn't check, and only cares +# about $TERM. we don't want the funky escape code stuff to be +# output if not a tty. +if sys.stdin.isatty(): +import readline +except ImportError: +pass + +CQL_LIB_PREFIX = 'cassandra-driver-internal-only-' + +CASSANDRA_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..') + +# use bundled libs for python-cql and thrift, if available. if there +# is a ../lib dir, use bundled libs there preferentially. +ZIPLIB_DIRS = [os.path.join(CASSANDRA_PATH, 'lib')] +myplatform = platform.system() +if myplatform == 'Linux': +ZIPLIB_DIRS.append('/usr/share/cassandra/lib') + +if os.environ.get('CQLSH_NO_BUNDLED', ''): +ZIPLIB_DIRS = () + + +def find_zip(libprefix): +for ziplibdir in ZIPLIB_DIRS: +zips = glob(os.path.join(ziplibdir, libprefix + '*.zip')) +if zips: +return max(zips) # probably the highest version, if multiple + +cql_zip = find_zip(CQL_LIB_PREFIX) +if cql_zip: +ver = os.path.splitext(os.path.basename(cql_zip))[0][len(CQL_LIB_PREFIX):] +sys.path.insert(0, os.path.join(cql_zip, 'cassandra-driver-' + ver)) + +third_parties = ('futures-', 'six-') + +for lib in third_parties: +lib_zip = find_zip(lib) +if lib_zip: +sys.path.insert(0, lib_zip) + +warnings.filterwarnings("ignore", r".*blist.*") +try: +import cassandra +except ImportError, e: +sys.exit("\nPython Cassandra driver not installed, or not on PYTHONPATH.\n" + 'You might try "pip install cassandra-driver".\n\n' + 'Python: %s\n' + 'Module load path: %r\n\n' + 'Error: %s\n' % (sys.executable, sys.path, e)) + +from cassandra.auth import PlainTextAuthProvider +from cassandra.cluster import Cluster +from cassandra.metadata import (ColumnMetadata, KeyspaceMetadata, +TableMetadata, protect_name, protect_names, +protect_value) +from cassandra.policies import WhiteListRoundRobinPolicy +from cassandra.protocol import QueryMessage, ResultMessage +from cassandra.query import SimpleStatement, ordered_dict_factory, TraceUnavailable + +# cqlsh should run correctly when run out of a Cassandra source tree, +# out of an unpacked Cassandra tarball, and after a proper package install. +cqlshlibdir = os.path.join(CASSANDRA_PATH, 'pylib') +if os.path.isdir(cqlshlibdir): +sys.path.insert(0, cqlshlibdir) + +from cqlshlib import cql3handling, cqlhandling, pylexotron, sslhandling, copy +from cqlshlib.displaying import (ANSI_RESET, BLUE, COLUMN_NAME_COLORS, CYAN, + RED,
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d2f243ee Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d2f243ee Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d2f243ee Branch: refs/heads/cassandra-3.1 Commit: d2f243ee5c656eb51053e553d7371802255dfc54 Parents: d09b6c6 1b629c1 Author: Tyler HobbsAuthored: Wed Nov 18 18:25:18 2015 -0600 Committer: Tyler Hobbs Committed: Wed Nov 18 18:25:18 2015 -0600 -- CHANGES.txt | 1 + bin/cqlsh.py | 153 +++-- pylib/cqlshlib/copy.py | 647 ++ pylib/cqlshlib/displaying.py | 10 + pylib/cqlshlib/formatting.py | 32 +- 5 files changed, 725 insertions(+), 118 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2f243ee/CHANGES.txt -- diff --cc CHANGES.txt index c3dacc2,42dcf3e..4e19b23 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ -2.1.12 - * (cqlsh) Improve COPY TO performance and error handling (CASSANDRA-9304) +2.2.4 + * Don't do anticompaction after subrange repair (CASSANDRA-10422) + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: ++ * * (cqlsh) Improve COPY TO performance and error handling (CASSANDRA-9304) * Don't remove level info when running upgradesstables (CASSANDRA-10692) * Create compression chunk for sending file only (CASSANDRA-10680) * Make buffered read size configurable (CASSANDRA-10249)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ef0e447a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef0e447a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef0e447a Branch: refs/heads/cassandra-3.1 Commit: ef0e447addccf97aadc527cea67d303523a88989 Parents: 48b685e 3674ad9 Author: Aleksey YeschenkoAuthored: Tue Nov 10 13:44:49 2015 + Committer: Aleksey Yeschenko Committed: Tue Nov 10 13:44:49 2015 + -- CHANGES.txt | 1 + .../cassandra/io/sstable/CQLSSTableWriter.java | 2 ++ .../io/sstable/CQLSSTableWriterTest.java| 22 3 files changed, 25 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef0e447a/CHANGES.txt -- diff --cc CHANGES.txt index fa868fe,fa2017a..5edad20 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,13 -1,5 +1,14 @@@ -2.1.12 +2.2.4 + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Reject counter writes in CQLSSTableWriter (CASSANDRA-10258) * Remove superfluous COUNTER_MUTATION stage mapping (CASSANDRA-10605) * Improve json2sstable error reporting on nonexistent columns (CASSANDRA-10401) * (cqlsh) fix COPY using wrong variable name for time_format (CASSANDRA-10633) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef0e447a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef0e447a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb429063 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb429063 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb429063 Branch: refs/heads/trunk Commit: cb429063c1a4ec2b8d48d6e4e6e8a2f524033df7 Parents: edca4dc 2548365 Author: Aleksey YeschenkoAuthored: Fri Nov 6 17:56:33 2015 + Committer: Aleksey Yeschenko Committed: Fri Nov 6 17:56:33 2015 + -- CHANGES.txt | 2 +- bin/cqlsh.py | 6 +++--- ...driver-internal-only-3.0.0a2.post0-95c6008.zip | Bin 233564 -> 0 bytes ...driver-internal-only-3.0.0a3.post0-c535450.zip | Bin 0 -> 233938 bytes pylib/cqlshlib/tracing.py | 8 5 files changed, 8 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb429063/CHANGES.txt -- diff --cc CHANGES.txt index c33b8c9,7771969..f47e1dd --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,12 -1,4 +1,13 @@@ -2.1.12 +2.2.4 ++ * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: * (cqlsh) fix COPY using wrong variable name for time_format (CASSANDRA-10633) * Do not run SizeEstimatesRecorder if a node is not a member of the ring (CASSANDRA-9912) * Improve handling of dead nodes in gossip (CASSANDRA-10298)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0bfa26d6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0bfa26d6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0bfa26d6 Branch: refs/heads/trunk Commit: 0bfa26d6011b6e1c79c164a1acc29884d8157ade Parents: 289b7b7 b84ed11 Author: Robert StuppAuthored: Mon Oct 19 14:56:41 2015 +0200 Committer: Robert Stupp Committed: Mon Oct 19 14:56:41 2015 +0200 -- .../apache/cassandra/net/MessagingService.java | 24 +++- 1 file changed, 18 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bfa26d6/src/java/org/apache/cassandra/net/MessagingService.java -- diff --cc src/java/org/apache/cassandra/net/MessagingService.java index 2a63553,724518c..4aafdd1 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@@ -1024,14 -1028,10 +1032,10 @@@ public final class MessagingService imp } catch (IOException e) { - // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20 // see https://issues.apache.org/jira/browse/CASSANDRA-8220 - // see https://bugs.openjdk.java.net/browse/JDK-8050499 - if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name"))) - throw e; + handleIOException(e); } - -for (Closeable connection : connections) +for (Closeable connection : connections) { connection.close(); } @@@ -1043,11 -1043,19 +1047,19 @@@ } } + private static void handleIOException(IOException e) throws IOException + { + // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20 + // see https://bugs.openjdk.java.net/browse/JDK-8050499 + if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name"))) + throw e; + } + -public Map getCommandPendingTasks() +public Map getLargeMessagePendingTasks() { -Map pendingTasks = new HashMap (); +Map pendingTasks = new HashMap (connectionManagers.size()); for (Map.Entry entry : connectionManagers.entrySet()) -pendingTasks.put(entry.getKey().getHostAddress(), entry.getValue().cmdCon.getPendingMessages()); +pendingTasks.put(entry.getKey().getHostAddress(), entry.getValue().largeMessages.getPendingMessages()); return pendingTasks; }
[4/6] cassandra git commit: Merge branch cassandra-2.1 into cassandra-2.2
Merge branch cassandra-2.1 into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eecfb07d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eecfb07d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eecfb07d Branch: refs/heads/trunk Commit: eecfb07d46f4bd2e89e6fff748519413e286a1fe Parents: 6dcc89f 4e3555c Author: blererAuthored: Thu Sep 17 22:12:50 2015 +0200 Committer: blerer Committed: Thu Sep 17 22:13:49 2015 +0200 -- NEWS.txt| 9 +++- bin/cqlsh.py| 2 +- doc/cql3/CQL.textile| 10 +++- pylib/cqlshlib/cql3handling.py | 2 +- src/java/org/apache/cassandra/cql3/Cql.g| 2 +- .../apache/cassandra/cql3/QueryProcessor.java | 2 +- .../validation/operations/TruncateTest.java | 48 7 files changed, 68 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/eecfb07d/NEWS.txt -- diff --cc NEWS.txt index 49744cf,6ec24ef..78d90f6 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,137 -13,14 +13,144 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. - +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. + +New features + + - Custom QueryHandlers can retrieve the column specifications for the bound + variables from QueryOptions by using the hasColumnSpecifications() + and getColumnSpecifications() methods. + + +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 +=== + +New features + + - 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)
[4/6] cassandra git commit: Merge branch cassandra-2.1 into cassandra-2.2
Merge branch cassandra-2.1 into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e7c2952d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e7c2952d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e7c2952d Branch: refs/heads/trunk Commit: e7c2952d31e8b6ddfef220942ba8306beabb Parents: 8cad732 b8b4eb7 Author: blererAuthored: Wed Sep 16 10:21:44 2015 +0200 Committer: blerer Committed: Wed Sep 16 10:21:58 2015 +0200 -- build.xml| 1 + doc/cql3/CQL.textile | 20 ++-- 2 files changed, 15 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e7c2952d/build.xml -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e7c2952d/doc/cql3/CQL.textile --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cad7329 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cad7329 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cad7329 Branch: refs/heads/cassandra-3.0 Commit: 8cad73290c9eed1d6f1a714359c6dbae8d6d5f92 Parents: 3b126fd 2cd59b8 Author: Brandon WilliamsAuthored: Tue Sep 15 20:21:20 2015 -0500 Committer: Brandon Williams Committed: Tue Sep 15 20:21:20 2015 -0500 -- .../cassandra/hadoop/cql3/CqlInputFormat.java| 19 +++ 1 file changed, 11 insertions(+), 8 deletions(-) --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1dc19a66 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1dc19a66 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1dc19a66 Branch: refs/heads/trunk Commit: 1dc19a666d1da7efd4f017e70bc275ca2897a711 Parents: 3238906 15293a7 Author: Tyler Hobbs tylerlho...@gmail.com Authored: Tue Aug 25 12:47:32 2015 -0500 Committer: Tyler Hobbs tylerlho...@gmail.com Committed: Tue Aug 25 12:47:32 2015 -0500 -- --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/da3a5a7f/bin/cqlsh.py -- diff --cc bin/cqlsh.py index 11f110d,000..9a348bc mode 100644,00..100644 --- a/bin/cqlsh.py +++ b/bin/cqlsh.py @@@ -1,2675 -1,0 +1,2679 @@@ +#!/bin/sh +# -*- mode: Python -*- + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# License); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +: +# bash code here; finds a suitable python interpreter and execs this file. +# prefer unqualified python if suitable: +python -c 'import sys; sys.exit(not (0x020500b0 sys.hexversion 0x0300))' 2/dev/null \ + exec python $0 $@ +for pyver in 2.6 2.7 2.5; do +which python$pyver /dev/null 21 exec python$pyver $0 $@ +done +echo No appropriate python interpreter found. 2 +exit 1 +: + +from __future__ import with_statement +from uuid import UUID + +description = CQL Shell for Apache Cassandra +version = 5.0.1 + +from StringIO import StringIO +from contextlib import contextmanager +from glob import glob + +import cmd +import sys +import os +import time +import optparse +import ConfigParser +import codecs +import locale +import platform +import warnings +import csv +import getpass +from functools import partial +import traceback + + +readline = None +try: +# check if tty first, cause readline doesn't check, and only cares +# about $TERM. we don't want the funky escape code stuff to be +# output if not a tty. +if sys.stdin.isatty(): +import readline +except ImportError: +pass + +CQL_LIB_PREFIX = 'cassandra-driver-internal-only-' + +CASSANDRA_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..') + +# use bundled libs for python-cql and thrift, if available. if there +# is a ../lib dir, use bundled libs there preferentially. +ZIPLIB_DIRS = [os.path.join(CASSANDRA_PATH, 'lib')] +myplatform = platform.system() +if myplatform == 'Linux': +ZIPLIB_DIRS.append('/usr/share/cassandra/lib') + +if os.environ.get('CQLSH_NO_BUNDLED', ''): +ZIPLIB_DIRS = () + + +def find_zip(libprefix): +for ziplibdir in ZIPLIB_DIRS: +zips = glob(os.path.join(ziplibdir, libprefix + '*.zip')) +if zips: +return max(zips) # probably the highest version, if multiple + +cql_zip = find_zip(CQL_LIB_PREFIX) +if cql_zip: +ver = os.path.splitext(os.path.basename(cql_zip))[0][len(CQL_LIB_PREFIX):] +sys.path.insert(0, os.path.join(cql_zip, 'cassandra-driver-' + ver)) + +third_parties = ('futures-', 'six-') + +for lib in third_parties: +lib_zip = find_zip(lib) +if lib_zip: +sys.path.insert(0, lib_zip) + +warnings.filterwarnings(ignore, r.*blist.*) +try: +import cassandra +except ImportError, e: +sys.exit(\nPython Cassandra driver not installed, or not on PYTHONPATH.\n + 'You might try pip install cassandra-driver.\n\n' + 'Python: %s\n' + 'Module load path: %r\n\n' + 'Error: %s\n' % (sys.executable, sys.path, e)) + +from cassandra.cluster import Cluster, PagedResult +from cassandra.query import SimpleStatement, ordered_dict_factory +from cassandra.policies import WhiteListRoundRobinPolicy +from cassandra.protocol import QueryMessage, ResultMessage +from cassandra.metadata import protect_name, protect_names, protect_value, KeyspaceMetadata, TableMetadata, ColumnMetadata +from cassandra.auth import PlainTextAuthProvider + +# cqlsh should run correctly when run out of a Cassandra source tree, +# out of an unpacked Cassandra tarball, and after a proper package install. +cqlshlibdir = os.path.join(CASSANDRA_PATH, 'pylib') +if os.path.isdir(cqlshlibdir): +sys.path.insert(0, cqlshlibdir) + +from cqlshlib import cqlhandling, cql3handling, pylexotron, sslhandling +from cqlshlib.displaying import (RED, BLUE, CYAN, ANSI_RESET, COLUMN_NAME_COLORS, + FormattedValue, colorme) +from cqlshlib.formatting import format_by_type, formatter_for, format_value_utype +from cqlshlib.util import trim_if_present, get_file_encoding_bomsize +from cqlshlib.formatting import DateTimeFormat +from cqlshlib.formatting import
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6d0cf7db Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6d0cf7db Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6d0cf7db Branch: refs/heads/trunk Commit: 6d0cf7dbd2221c13434958e9e0d5e418f58fe23f Parents: 0b99d33 c8d163f Author: blerer benjamin.le...@datastax.com Authored: Sun Aug 9 22:11:14 2015 +0200 Committer: blerer benjamin.le...@datastax.com Committed: Sun Aug 9 22:12:16 2015 +0200 -- .../restrictions/MultiColumnRestriction.java| 37 +++ .../restrictions/SingleColumnRestriction.java | 68 ++-- .../SelectMultiColumnRelationTest.java | 45 + .../SelectSingleColumnRelationTest.java | 28 4 files changed, 149 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6d0cf7db/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java -- diff --cc src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java index c4bce4c,000..84a3952 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java +++ b/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java @@@ -1,448 -1,0 +1,461 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.cql3.restrictions; + +import java.nio.ByteBuffer; +import java.util.*; + ++import org.apache.cassandra.cql3.Term.Terminal; ++ ++import org.apache.cassandra.cql3.Term; +import org.apache.cassandra.config.ColumnDefinition; +import org.apache.cassandra.cql3.*; +import org.apache.cassandra.cql3.functions.Function; +import org.apache.cassandra.cql3.statements.Bound; +import org.apache.cassandra.db.IndexExpression; +import org.apache.cassandra.db.composites.CompositesBuilder; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.index.SecondaryIndexManager; +import org.apache.cassandra.exceptions.InvalidRequestException; - +import static org.apache.cassandra.cql3.statements.RequestValidations.checkFalse; +import static org.apache.cassandra.cql3.statements.RequestValidations.checkNotNull; +import static org.apache.cassandra.cql3.statements.RequestValidations.checkTrue; +import static org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest; + +public abstract class MultiColumnRestriction extends AbstractRestriction +{ +/** + * The columns to which the restriction apply. + */ +protected final ListColumnDefinition columnDefs; + +public MultiColumnRestriction(ListColumnDefinition columnDefs) +{ +this.columnDefs = columnDefs; +} + +@Override +public boolean isMultiColumn() +{ +return true; +} + +@Override +public ColumnDefinition getFirstColumn() +{ +return columnDefs.get(0); +} + +@Override +public ColumnDefinition getLastColumn() +{ +return columnDefs.get(columnDefs.size() - 1); +} + +@Override +public CollectionColumnDefinition getColumnDefs() +{ +return columnDefs; +} + +@Override +public final Restriction mergeWith(Restriction otherRestriction) throws InvalidRequestException +{ - checkTrue(otherRestriction.isMultiColumn(), - Mixing single column relations and multi column relations on clustering columns is not allowed); - return doMergeWith(otherRestriction); ++// We want to allow query like: (b,c) (?, ?) AND b ? ++if (!otherRestriction.isMultiColumn() ++ ((SingleColumnRestriction) otherRestriction).canBeConvertedToMultiColumnRestriction()) ++{ ++return doMergeWith(((SingleColumnRestriction)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: conf/cassandra.yaml src/java/org/apache/cassandra/config/Config.java src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManager.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/767cb9a6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/767cb9a6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/767cb9a6 Branch: refs/heads/trunk Commit: 767cb9a66be2ec8c55ff880890f49c3dbf69dbfa Parents: ae179e4 8f70bb2 Author: Benedict Elliott Smith bened...@apache.org Authored: Tue Jul 28 17:36:25 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Tue Jul 28 17:36:25 2015 +0100 -- --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt NEWS.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0ba915d9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ba915d9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ba915d9 Branch: refs/heads/trunk Commit: 0ba915d930255ddf430785c0b3deee80d86dba39 Parents: 767cb9a 94c826e Author: Benedict Elliott Smith bened...@apache.org Authored: Tue Jul 28 18:05:51 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Tue Jul 28 18:05:51 2015 +0100 -- --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fcb5bd67 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fcb5bd67 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fcb5bd67 Branch: refs/heads/trunk Commit: fcb5bd67d2d2287560306756d3e624195eebecce Parents: 6f0c7d9 9dbf32c Author: Robert Stupp sn...@snazy.de Authored: Mon Jul 27 22:38:39 2015 +0200 Committer: Robert Stupp sn...@snazy.de Committed: Mon Jul 27 22:38:39 2015 +0200 -- CHANGES.txt | 2 ++ .../apache/cassandra/thrift/CassandraServer.java | 18 -- .../transport/messages/BatchMessage.java | 11 +-- .../transport/messages/ExecuteMessage.java| 4 .../transport/messages/QueryMessage.java | 4 5 files changed, 31 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fcb5bd67/CHANGES.txt -- diff --cc CHANGES.txt index 17ec705,5aee7ba..36d0485 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,5 +1,18 @@@ -2.1.9 +2.2.1 + * UDF / UDA execution time in trace (CASSANDRA-9723) + * Remove repair snapshot leftover on startup (CASSANDRA-7357) + * Use random nodes for batch log when only 2 racks (CASSANDRA-8735) ++Merged from 2.1: + * Add consistency level to tracing ouput (CASSANDRA-9827) +Merged from 2.0: + * Log when messages are dropped due to cross_node_timeout (CASSANDRA-9793) + +2.2.0 + * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795) + * Don't wrap byte arrays in SequentialWriter (CASSANDRA-9797) + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: * Fix MarshalException when upgrading superColumn family (CASSANDRA-9582) * Fix broken logging for empty flushes in Memtable (CASSANDRA-9837) * Handle corrupt files on startup (CASSANDRA-9686) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fcb5bd67/src/java/org/apache/cassandra/thrift/CassandraServer.java -- diff --cc src/java/org/apache/cassandra/thrift/CassandraServer.java index 04d3d13,fd87b57..64662bf --- a/src/java/org/apache/cassandra/thrift/CassandraServer.java +++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java @@@ -1932,22 -2022,16 +1938,22 @@@ public class CassandraServer implement } } -public CqlPreparedResult prepare_cql3_query(ByteBuffer query, Compression compression) -throws InvalidRequestException, TException +public CqlResult execute_prepared_cql_query(int itemId, ListByteBuffer bindVariables) throws TException { -if (logger.isDebugEnabled()) -logger.debug(prepare_cql3_query); - -validateCQLVersion(3); +throw new InvalidRequestException(CQL2 has been removed in Cassandra 2.2. Please use CQL3 instead); +} -String queryString = uncompress(query, compression); -ThriftClientState cState = state(); +public CqlResult execute_prepared_cql3_query(int itemId, ListByteBuffer bindVariables, ConsistencyLevel cLevel) throws TException +{ +if (startSessionIfRequested()) +{ +// TODO we don't have [typed] access to CQL bind variables here. CASSANDRA-4560 is open to add support. - Tracing.instance.begin(execute_prepared_cql3_query, Collections.String, StringemptyMap()); ++Tracing.instance.begin(execute_prepared_cql3_query, ImmutableMap.of(consistency_level, cLevel.name())); +} +else +{ +logger.debug(execute_prepared_cql3_query); +} try { http://git-wip-us.apache.org/repos/asf/cassandra/blob/fcb5bd67/src/java/org/apache/cassandra/transport/messages/BatchMessage.java -- diff --cc src/java/org/apache/cassandra/transport/messages/BatchMessage.java index 4755ad3,b34b156..2db380b --- a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java @@@ -166,8 -166,15 +166,15 @@@ public class BatchMessage extends Messa if (state.traceNextQuery()) { state.createTracingSession(); + + ImmutableMap.BuilderString, String builder = ImmutableMap.builder(); + if(options.getConsistency() != null) + builder.put(consistency_level, options.getConsistency().name()); +
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51ff4997 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51ff4997 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51ff4997 Branch: refs/heads/trunk Commit: 51ff499754b2668ee2425ca72733506f875b2c64 Parents: 1657639 1c80b04 Author: Yuki Morishita yu...@apache.org Authored: Thu Jul 23 10:25:48 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jul 23 10:25:48 2015 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/BatchlogManager.java | 4 +++- .../cassandra/service/BatchlogEndpointFilterTest.java | 9 + 3 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51ff4997/CHANGES.txt -- diff --cc CHANGES.txt index 0fb392a,69a7b31..b8593c0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,13 -1,4 +1,14 @@@ -2.1.9 +2.2.1 + * UDF / UDA execution time in trace (CASSANDRA-9723) + * Remove repair snapshot leftover on startup (CASSANDRA-7357) ++ * Use random nodes for batch log when only 2 racks (CASSANDRA-8735) + +2.2.0 + * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795) + * Don't wrap byte arrays in SequentialWriter (CASSANDRA-9797) + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: * Fix MarshalException when upgrading superColumn family (CASSANDRA-9582) * Fix broken logging for empty flushes in Memtable (CASSANDRA-9837) * Handle corrupt files on startup (CASSANDRA-9686) http://git-wip-us.apache.org/repos/asf/cassandra/blob/51ff4997/src/java/org/apache/cassandra/db/BatchlogManager.java --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb4656f6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb4656f6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb4656f6 Branch: refs/heads/trunk Commit: fb4656f6155113839ef8612aca578c3bdec96958 Parents: 4601abb b70f7ea Author: Yuki Morishita yu...@apache.org Authored: Tue Jul 21 22:56:28 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Tue Jul 21 22:57:35 2015 -0500 -- CHANGES.txt | 1 + .../apache/cassandra/db/ColumnFamilyStore.java | 55 -- .../org/apache/cassandra/db/Directories.java| 61 +++- .../repair/RepairMessageVerbHandler.java| 3 +- .../cassandra/service/CassandraDaemon.java | 1 - .../cassandra/db/ColumnFamilyStoreTest.java | 35 +++ 6 files changed, 133 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb4656f6/CHANGES.txt -- diff --cc CHANGES.txt index bd70d19,26ee348..e1d1fba --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,12 -1,4 +1,13 @@@ -2.1.9 +2.2.1 + * UDF / UDA execution time in trace (CASSANDRA-9723) ++ * Remove repair snapshot leftover on startup (CASSANDRA-7357) + +2.2.0 + * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795) + * Don't wrap byte arrays in SequentialWriter (CASSANDRA-9797) + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: * Fix broken logging for empty flushes in Memtable (CASSANDRA-9837) * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb4656f6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 1166266,20e74dc..7d52a94 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@@ -34,12 -35,7 +35,11 @@@ import com.google.common.base.Throwable import com.google.common.collect.*; import com.google.common.util.concurrent.*; +import org.apache.cassandra.db.lifecycle.SSTableIntervalTree; +import org.apache.cassandra.db.lifecycle.View; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.db.lifecycle.LifecycleTransaction; import org.apache.cassandra.io.FSWriteError; - import org.apache.cassandra.utils.memory.MemtablePool; import org.json.simple.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@@ -2253,12 -2252,14 +2256,15 @@@ public class ColumnFamilyStore implemen public void snapshotWithoutFlush(String snapshotName) { - snapshotWithoutFlush(snapshotName, null); + snapshotWithoutFlush(snapshotName, null, false); } - public SetSSTableReader snapshotWithoutFlush(String snapshotName, PredicateSSTableReader predicate) + /** + * @param ephemeral If this flag is set to true, the snapshot will be cleaned during next startup + */ -public void snapshotWithoutFlush(String snapshotName, PredicateSSTableReader predicate, boolean ephemeral) ++public SetSSTableReader snapshotWithoutFlush(String snapshotName, PredicateSSTableReader predicate, boolean ephemeral) { +SetSSTableReader snapshottedSSTables = new HashSet(); for (ColumnFamilyStore cfs : concatWithIndexes()) { final JSONArray filesJSONArr = new JSONArray(); @@@ -2272,15 -2273,16 +2278,18 @@@ File snapshotDirectory = Directories.getSnapshotDirectory(ssTable.descriptor, snapshotName); ssTable.createLinks(snapshotDirectory.getPath()); // hard links filesJSONArr.add(ssTable.descriptor.relativeFilenameFor(Component.DATA)); + if (logger.isDebugEnabled()) logger.debug(Snapshot for {} keyspace data file {} created in {}, keyspace, ssTable.getFilename(), snapshotDirectory); +snapshottedSSTables.add(ssTable); } writeSnapshotManifest(filesJSONArr, snapshotName); } } + if (ephemeral) + createEphemeralSnapshotMarkerFile(snapshotName); +return snapshottedSSTables; } private void writeSnapshotManifest(final JSONArray filesJSONArr, final String snapshotName) @@@ -2348,15 -2378,18 +2387,19
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8d87c282 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8d87c282 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8d87c282 Branch: refs/heads/trunk Commit: 8d87c28223b92ead4758c40c3f51771cdf586d97 Parents: e651fdd b87103b Author: Benedict Elliott Smith bened...@apache.org Authored: Mon Jul 20 12:52:26 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Mon Jul 20 12:52:26 2015 +0100 -- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d87c282/src/java/org/apache/cassandra/db/ColumnFamilyStore.java --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/22c97bc5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/22c97bc5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/22c97bc5 Branch: refs/heads/trunk Commit: 22c97bc5ef5017663a40d25bd5b7283c09e25dd5 Parents: f74419c 2d462c0 Author: Sylvain Lebresne sylv...@datastax.com Authored: Fri Jul 17 15:36:49 2015 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Fri Jul 17 15:36:49 2015 +0200 -- CHANGES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/22c97bc5/CHANGES.txt -- diff --cc CHANGES.txt index e6c093d,c6774c2..9a262dc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,14 +1,17 @@@ -2.1.9 +2.2.0-rc3 + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: * Fix broken logging for empty flushes in Memtable (CASSANDRA-9837) - * Complete CASSANDRA-8448 fix (CASSANDRA-9519) * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) Merged from 2.0: + * Complete CASSANDRA-8448 fix (CASSANDRA-9519) * Don't include auth credentials in debug log (CASSANDRA-9682) * Can't transition from write survey to normal mode (CASSANDRA-9740) - * Scrub (recover) sstables even when -Index.db is missing, (CASSANDRA-9591) + * Scrub (recover) sstables even when -Index.db is missing (CASSANDRA-9591) * Fix growing pending background compaction (CASSANDRA-9662)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f74419cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f74419cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f74419cd Branch: refs/heads/trunk Commit: f74419cd2b13c3c8fe01d09df16f7edae583fe35 Parents: 2b99b5d 1eda7cb Author: Robert Stupp sn...@snazy.de Authored: Fri Jul 17 08:37:37 2015 +0200 Committer: Robert Stupp sn...@snazy.de Committed: Fri Jul 17 08:37:37 2015 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/Memtable.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f74419cd/CHANGES.txt -- diff --cc CHANGES.txt index b4ea4b4,49cc850..e6c093d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,7 -1,5 +1,8 @@@ -2.1.9 +2.2.0-rc3 + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: + * Fix broken logging for empty flushes in Memtable (CASSANDRA-9837) * Complete CASSANDRA-8448 fix (CASSANDRA-9519) * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f74419cd/src/java/org/apache/cassandra/db/Memtable.java --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/77a666c6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/77a666c6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/77a666c6 Branch: refs/heads/trunk Commit: 77a666c69eb947a5c94bf46ab5c7f639ef2e6391 Parents: 1f430c5 aa8a7b5 Author: Benedict Elliott Smith bened...@apache.org Authored: Mon Jul 6 12:49:55 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Mon Jul 6 12:49:55 2015 +0100 -- .../org/apache/cassandra/io/sstable/SSTableRewriterTest.java | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/77a666c6/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: src/java/org/apache/cassandra/db/DataTracker.java src/java/org/apache/cassandra/db/compaction/CompactionTask.java src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1f430c53 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1f430c53 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1f430c53 Branch: refs/heads/trunk Commit: 1f430c5392ec2bee5d13fb56f6de8260f35e72cc Parents: b7ae07e ec320e8 Author: Benedict Elliott Smith bened...@apache.org Authored: Mon Jul 6 12:14:07 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Mon Jul 6 12:14:07 2015 +0100 -- .../cassandra/db/compaction/CompactionTask.java | 5 + .../apache/cassandra/db/lifecycle/Helpers.java | 10 ++ .../db/lifecycle/LifecycleTransaction.java | 8 +++- .../apache/cassandra/db/lifecycle/Tracker.java | 16 .../cassandra/io/sstable/SSTableRewriter.java | 9 +++-- .../io/sstable/SSTableRewriterTest.java | 20 6 files changed, 45 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f430c53/src/java/org/apache/cassandra/db/compaction/CompactionTask.java -- diff --cc src/java/org/apache/cassandra/db/compaction/CompactionTask.java index 6aa59e4,c6e3d2f..ea64fb2 --- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java @@@ -220,17 -255,26 +220,14 @@@ public class CompactionTask extends Abs double mbps = dTime 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0; long totalSourceRows = 0; -long[] counts = ci.getMergedRowCounts(); -StringBuilder mergeSummary = new StringBuilder(counts.length * 10); -MapInteger, Long mergedRows = new HashMap(); -for (int i = 0; i counts.length; i++) -{ -long count = counts[i]; -if (count == 0) -continue; - -int rows = i + 1; -totalSourceRows += rows * count; -mergeSummary.append(String.format(%d:%d, , rows, count)); -mergedRows.put(rows, count); -} - -SystemKeyspace.updateCompactionHistory(cfs.keyspace.getName(), cfs.name, System.currentTimeMillis(), startsize, endsize, mergedRows); -logger.info(String.format(Compacted %d sstables to [%s]. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}, - oldSStables.size(), newSSTableNames.toString(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary.toString())); +String mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), ci, startsize, endsize); +logger.info(String.format(Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}, + taskIdLoggerMsg, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary)); logger.debug(String.format(CF Total Bytes Compacted: %,d, CompactionTask.addToTotalBytesCompacted(endsize))); -logger.debug(Actual #keys: {}, Estimated #keys:{}, Err%: {}, totalKeysWritten, estimatedTotalKeys, ((double)(totalKeysWritten - estimatedTotalKeys)/totalKeysWritten)); +logger.debug(Actual #keys: {}, Estimated #keys:{}, Err%: {}, totalKeysWritten, estimatedKeys, ((double)(totalKeysWritten - estimatedKeys)/totalKeysWritten)); + +if (offline) - { - for (SSTableReader reader : newSStables) - reader.selfRef().release(); - } ++Refs.release(Refs.selfRefs(newSStables)); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f430c53/src/java/org/apache/cassandra/db/lifecycle/Helpers.java -- diff --cc src/java/org/apache/cassandra/db/lifecycle/Helpers.java index
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt src/java/org/apache/cassandra/db/Memtable.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/99f7ce9b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99f7ce9b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99f7ce9b Branch: refs/heads/trunk Commit: 99f7ce9bfb03ad5eda21d3604b3844fc193d0f6f Parents: 92e2e4e b757db1 Author: Benedict Elliott Smith bened...@apache.org Authored: Thu Jul 2 10:33:51 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Thu Jul 2 10:33:51 2015 +0100 -- CHANGES.txt | 1 + .../apache/cassandra/db/AtomicBTreeColumns.java | 2 +- .../apache/cassandra/db/ColumnFamilyStore.java | 22 +- src/java/org/apache/cassandra/db/Memtable.java | 15 ++-- .../org/apache/cassandra/utils/FBUtilities.java | 10 +++ .../apache/cassandra/utils/memory/HeapPool.java | 4 +- .../utils/memory/MemtableAllocator.java | 39 +++ .../cassandra/utils/memory/MemtablePool.java| 73 .../utils/memory/NativeAllocatorTest.java | 18 - 9 files changed, 133 insertions(+), 51 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99f7ce9b/CHANGES.txt -- diff --cc CHANGES.txt index 720133a,25f7c1d..a282fd7 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,23 -1,5 +1,24 @@@ -2.1.8 +2.2.0-rc2 + * (cqlsh) Allow setting the initial connection timeout (CASSANDRA-9601) + * BulkLoader has --transport-factory option but does not use it (CASSANDRA-9675) + * Allow JMX over SSL directly from nodetool (CASSANDRA-9090) + * Update cqlsh for UDFs (CASSANDRA-7556) + * Change Windows kernel default timer resolution (CASSANDRA-9634) + * Deprected sstable2json and json2sstable (CASSANDRA-9618) + * Allow native functions in user-defined aggregates (CASSANDRA-9542) + * Don't repair system_distributed by default (CASSANDRA-9621) + * Fix mixing min, max, and count aggregates for blob type (CASSANRA-9622) + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) + * Update and refactor ant test/test-compression to run the tests in parallel (CASSANDRA-9583) +Merged from 2.1: + * Ensure memtable book keeping is not corrupted in the event we shrink usage (CASSANDRA-9681) * Update internal python driver for cqlsh (CASSANDRA-9064) * Fix IndexOutOfBoundsException when inserting tuple with too many elements using the string literal notation (CASSANDRA-9559) http://git-wip-us.apache.org/repos/asf/cassandra/blob/99f7ce9b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99f7ce9b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 926cba2,8e67cdc..1374071 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@@ -34,11 -34,8 +34,12 @@@ import com.google.common.base.Throwable import com.google.common.collect.*; import com.google.common.util.concurrent.*; +import org.apache.cassandra.db.lifecycle.SSTableIntervalTree; +import org.apache.cassandra.db.lifecycle.View; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.db.lifecycle.LifecycleTransaction; import org.apache.cassandra.io.FSWriteError; + import org.apache.cassandra.utils.memory.MemtablePool; import org.json.simple.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; http://git-wip-us.apache.org/repos/asf/cassandra/blob/99f7ce9b/src/java/org/apache/cassandra/db/Memtable.java -- diff --cc src/java/org/apache/cassandra/db/Memtable.java index ccf92be,9f6cf9b..6e4802f --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@@ -393,10 -379,14 +394,13 @@@ public class Memtable implements Compar if
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/02a7c342 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/02a7c342 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/02a7c342 Branch: refs/heads/trunk Commit: 02a7c342922a209ac7374f2f425c783a5faf8538 Parents: 14d7a63 bd4a9d1 Author: Benedict Elliott Smith bened...@apache.org Authored: Sun Jun 28 11:39:53 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Sun Jun 28 11:39:53 2015 +0100 -- --
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8b9c91eb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8b9c91eb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8b9c91eb Branch: refs/heads/trunk Commit: 8b9c91ebabc3d43cec6c7a6b0f04c0c4158fca8f Parents: a384faa d6c37bd Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 25 09:59:45 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 25 09:59:45 2015 +0100 -- CHANGES.txt | 1 + .../format/big/SSTableNamesIterator.java| 3 -- .../cassandra/cql3/LargeCompactValueTest.java | 50 3 files changed, 51 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b9c91eb/CHANGES.txt -- diff --cc CHANGES.txt index 7a32693,e8ac3e7..59f1c18 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,20 -1,5 +1,21 @@@ -2.1.7 +2.2 + * Update cqlsh for UDFs (CASSANDRA-7556) + * Change Windows kernel default timer resolution (CASSANDRA-9634) + * Deprected sstable2json and json2sstable (CASSANDRA-9618) + * Allow native functions in user-defined aggregates (CASSANDRA-9542) + * Don't repair system_distributed by default (CASSANDRA-9621) + * Fix mixing min, max, and count aggregates for blob type (CASSANRA-9622) + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) + * Update and refactor ant test/test-compression to run the tests in parallel (CASSANDRA-9583) +Merged from 2.1: + * Fix incorrect result for IN queries where column not found (CASSANDRA-9540) * ColumnFamilyStore.selectAndReference may block during compaction (CASSANDRA-9637) * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b9c91eb/src/java/org/apache/cassandra/io/sstable/format/big/SSTableNamesIterator.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/big/SSTableNamesIterator.java index 7c9a344,000..b8910c7 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/big/SSTableNamesIterator.java +++ b/src/java/org/apache/cassandra/io/sstable/format/big/SSTableNamesIterator.java @@@ -1,267 -1,0 +1,264 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format.big; + +import java.io.IOException; +import java.util.*; + +import com.google.common.collect.AbstractIterator; + +import org.apache.cassandra.config.CFMetaData; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.composites.CellNameType; +import org.apache.cassandra.io.sstable.CorruptSSTableException; +import org.apache.cassandra.io.sstable.IndexHelper; +import org.apache.cassandra.io.sstable.format.SSTableReader; +import org.apache.cassandra.io.util.FileDataInput; +import org.apache.cassandra.io.util.FileMark; +import org.apache.cassandra.io.util.FileUtils; +import org.apache.cassandra.utils.ByteBufferUtil; + +class SSTableNamesIterator extends AbstractIteratorOnDiskAtom implements
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt src/java/org/apache/cassandra/db/compaction/CompactionTask.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0d4065e5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0d4065e5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0d4065e5 Branch: refs/heads/trunk Commit: 0d4065e58ad34a5c6ef525aa72cb1cfe859a5b0a Parents: c889bab 3caf0e0 Author: Benedict Elliott Smith bened...@apache.org Authored: Wed Jun 24 00:14:36 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Wed Jun 24 00:14:36 2015 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 15 +++ .../cassandra/db/compaction/CompactionTask.java | 4 +++- 3 files changed, 19 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0d4065e5/CHANGES.txt -- diff --cc CHANGES.txt index c0480d7,b3c76ed..7a32693 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,23 -1,7 +1,24 @@@ -2.1.7 +2.2 + * Update cqlsh for UDFs (CASSANDRA-7556) + * Change Windows kernel default timer resolution (CASSANDRA-9634) + * Deprected sstable2json and json2sstable (CASSANDRA-9618) + * Allow native functions in user-defined aggregates (CASSANDRA-9542) + * Don't repair system_distributed by default (CASSANDRA-9621) + * Fix mixing min, max, and count aggregates for blob type (CASSANRA-9622) + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) + * Update and refactor ant test/test-compression to run the tests in parallel (CASSANDRA-9583) +Merged from 2.1: + * ColumnFamilyStore.selectAndReference may block during compaction (CASSANDRA-9637) * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) + * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 * 'WITH WITH' in alter keyspace statements causes NPE (CASSANDRA-9565) * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0d4065e5/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java index e9512f5,a01bb49..cd4b831 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@@ -1823,9 -1849,9 +1823,10 @@@ public class ColumnFamilyStore implemen return repairedSSTables; } -public RefViewFragment selectAndReference(FunctionDataTracker.View, ListSSTableReader filter) +@SuppressWarnings(resource) +public RefViewFragment selectAndReference(FunctionView, ListSSTableReader filter) { + long failingSince = -1L; while (true) { ViewFragment view = select(filter); http://git-wip-us.apache.org/repos/asf/cassandra/blob/0d4065e5/src/java/org/apache/cassandra/db/compaction/CompactionTask.java -- diff --cc src/java/org/apache/cassandra/db/compaction/CompactionTask.java index 7089016,751f8f3..6aa59e4 --- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java @@@ -42,10 -39,13 +42,11 @@@ import org.apache.cassandra.config.Data import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.SystemKeyspace; import org.apache.cassandra.db.compaction.CompactionManager.CompactionExecutorStatsCollector; -import org.apache.cassandra.io.sstable.SSTableReader; -import org.apache.cassandra.io.sstable.SSTableRewriter; -import org.apache.cassandra.io.sstable.SSTableWriter; -import org.apache.cassandra.io.sstable.metadata.MetadataCollector; +import org.apache.cassandra.db.lifecycle.LifecycleTransaction; import org.apache.cassandra.service.ActiveRepairService; import org.apache.cassandra.utils.CloseableIterator; +import
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/70d0d5f2/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index f4a59a2,000..1458461 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2175 -1,0 +1,2178 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From: NORMAL = Reader is being compacted. This compaction has not finished, but the compaction result + *
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dee675f1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dee675f1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dee675f1 Branch: refs/heads/trunk Commit: dee675f1ef148b40351c365b6d42c39f081cb706 Parents: 8b021db 9966419 Author: Yuki Morishita yu...@apache.org Authored: Wed Jun 17 20:48:40 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Wed Jun 17 20:48:40 2015 -0500 -- CHANGES.txt | 3 +- .../cassandra/service/StorageService.java | 48 +--- 2 files changed, 34 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dee675f1/CHANGES.txt -- diff --cc CHANGES.txt index c32596c,1d72c9a..3b16b6f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,41 -1,13 +1,42 @@@ -2.1.7 +2.2 + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) ++ * Add logback metrics (CASSANDRA-9378) +Merged from 2.1: * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) ++ * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) - * Add logback metrics (CASSANDRA-9378) - * Make rebuild only run one at a time (CASSANDRA-9119) -2.1.6 +2.2.0-rc1 + * Compressed commit log should measure compressed space used (CASSANDRA-9095) + * Fix comparison bug in CassandraRoleManager#collectRoles (CASSANDRA-9551) + * Add tinyint,smallint,time,date support for UDFs (CASSANDRA-9400) + * Deprecates SSTableSimpleWriter and SSTableSimpleUnsortedWriter (CASSANDRA-9546) + * Empty INITCOND treated as null in aggregate (CASSANDRA-9457) + * Remove use of Cell in Thrift MapReduce classes (CASSANDRA-8609) + * Integrate pre-release Java Driver 2.2-rc1, custom build (CASSANDRA-9493) + * Clean up gossiper logic for old versions (CASSANDRA-9370) + * Fix custom payload coding/decoding to match the spec (CASSANDRA-9515) + * ant test-all results incomplete when parsed (CASSANDRA-9463) + * Disallow frozen types in function arguments and return types for + clarity (CASSANDRA-9411) + * Static Analysis to warn on unsafe use of Autocloseable instances (CASSANDRA-9431) + * Update commitlog archiving examples now that commitlog segments are + not recycled (CASSANDRA-9350) + * Extend Transactional API to sstable lifecycle management (CASSANDRA-8568) + * (cqlsh) Add support for native protocol 4 (CASSANDRA-9399) + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409) + * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) + * Add ability to stop compaction by ID (CASSANDRA-7207) + * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438) +Merged from 2.1: * (cqlsh) Fix using COPY through SOURCE or -f (CASSANDRA-9083) * Fix occasional lack of `system` keyspace in schema tables (CASSANDRA-8487) * Use ProtocolError code instead of ServerError code for native protocol http://git-wip-us.apache.org/repos/asf/cassandra/blob/dee675f1/src/java/org/apache/cassandra/service/StorageService.java -- diff --cc src/java/org/apache/cassandra/service/StorageService.java index 2dd56b5,e063c63..3edbe22 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -50,7 -50,9 +50,8 @@@ import java.util.concurrent.Future import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; + import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; import javax.management.JMX; import javax.management.MBeanServer; @@@ -239,11 -235,15 +240,13 @@@ public class StorageService extends Not private InetAddress removingNode; /* Are we starting this node in bootstrap mode? */ -private boolean isBootstrapMode; +private volatile boolean isBootstrapMode; /* we bootstrap but do NOT
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6c4c146e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6c4c146e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6c4c146e Branch: refs/heads/trunk Commit: 6c4c146ea7b3fd469990bf65521bff1bc58b80d2 Parents: 84136ce 46cc577 Author: Sam Tunnicliffe s...@beobal.com Authored: Tue Jun 16 21:39:23 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Tue Jun 16 21:39:23 2015 +0100 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6c4c146e/CHANGES.txt -- diff --cc CHANGES.txt index 6e87beb,5f9187c..1138fc2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -8,29 -3,8 +8,30 @@@ Merged from 2.0 * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) + -2.1.6 +2.2.0-rc1 + * Compressed commit log should measure compressed space used (CASSANDRA-9095) + * Fix comparison bug in CassandraRoleManager#collectRoles (CASSANDRA-9551) + * Add tinyint,smallint,time,date support for UDFs (CASSANDRA-9400) + * Deprecates SSTableSimpleWriter and SSTableSimpleUnsortedWriter (CASSANDRA-9546) + * Empty INITCOND treated as null in aggregate (CASSANDRA-9457) + * Remove use of Cell in Thrift MapReduce classes (CASSANDRA-8609) + * Integrate pre-release Java Driver 2.2-rc1, custom build (CASSANDRA-9493) + * Clean up gossiper logic for old versions (CASSANDRA-9370) + * Fix custom payload coding/decoding to match the spec (CASSANDRA-9515) + * ant test-all results incomplete when parsed (CASSANDRA-9463) + * Disallow frozen types in function arguments and return types for + clarity (CASSANDRA-9411) + * Static Analysis to warn on unsafe use of Autocloseable instances (CASSANDRA-9431) + * Update commitlog archiving examples now that commitlog segments are + not recycled (CASSANDRA-9350) + * Extend Transactional API to sstable lifecycle management (CASSANDRA-8568) + * (cqlsh) Add support for native protocol 4 (CASSANDRA-9399) + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409) + * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) + * Add ability to stop compaction by ID (CASSANDRA-7207) + * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438) +Merged from 2.1: * (cqlsh) Fix using COPY through SOURCE or -f (CASSANDRA-9083) * Fix occasional lack of `system` keyspace in schema tables (CASSANDRA-8487) * Use ProtocolError code instead of ServerError code for native protocol
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/49cb12ad Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/49cb12ad Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/49cb12ad Branch: refs/heads/trunk Commit: 49cb12ad138a9bc33eba3df16b1bfd70f451f248 Parents: 4cc5fd1 be3e389 Author: Benedict Elliott Smith bened...@apache.org Authored: Wed Jun 3 22:55:32 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Wed Jun 3 22:55:32 2015 +0100 -- .../cassandra/db/lifecycle/TrackerTest.java | 1 + .../io/sstable/IndexSummaryManagerTest.java | 72 2 files changed, 1 insertion(+), 72 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49cb12ad/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java -- diff --cc test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java index 0d46153,000..505a4d1 mode 100644,00..100644 --- a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java +++ b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java @@@ -1,366 -1,0 +1,367 @@@ +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* License); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +*http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ +package org.apache.cassandra.db.lifecycle; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +import javax.annotation.Nullable; + +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import org.junit.BeforeClass; +import org.junit.Test; + +import junit.framework.Assert; +import org.apache.cassandra.MockSchema; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.db.ColumnFamilyStore; +import org.apache.cassandra.db.Memtable; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.compaction.OperationType; +import org.apache.cassandra.io.sstable.SSTableDeletingTask; +import org.apache.cassandra.io.sstable.format.SSTableReader; +import org.apache.cassandra.notifications.*; +import org.apache.cassandra.utils.concurrent.OpOrder; + +import static com.google.common.collect.ImmutableSet.copyOf; +import static java.util.Collections.singleton; + +public class TrackerTest +{ + +private static final class MockListener implements INotificationConsumer +{ +final boolean throwException; +final ListINotification received = new ArrayList(); +final ListObject senders = new ArrayList(); + +private MockListener(boolean throwException) +{ +this.throwException = throwException; +} + +public void handleNotification(INotification notification, Object sender) +{ +if (throwException) +throw new RuntimeException(); +received.add(notification); +senders.add(sender); +} +} + +@BeforeClass +public static void setUp() +{ +MockSchema.cleanup(); +} + +@Test +public void testTryModify() +{ +ColumnFamilyStore cfs = MockSchema.newCFS(); +Tracker tracker = new Tracker(cfs, false); +ListSSTableReader readers = ImmutableList.of(MockSchema.sstable(0, cfs), MockSchema.sstable(1, cfs), MockSchema.sstable(2, cfs)); +tracker.addInitialSSTables(copyOf(readers)); ++ Assert.assertNull(tracker.tryModify(ImmutableList.of(MockSchema.sstable(0, cfs)), OperationType.COMPACTION)); +try (LifecycleTransaction txn = tracker.tryModify(readers.get(0), OperationType.COMPACTION);) +{ +Assert.assertNotNull(txn); +
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d5947ee0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d5947ee0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d5947ee0 Branch: refs/heads/trunk Commit: d5947ee07041a7af3ce84945036e760e0ba463bf Parents: 99da210 b9a89a3 Author: Benedict Elliott Smith bened...@apache.org Authored: Wed Jun 3 13:11:41 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Wed Jun 3 13:11:41 2015 +0100 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5947ee0/CHANGES.txt -- diff --cc CHANGES.txt index 6f2c0ee,57bbfcc..f2c7ba0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,19 -1,4 +1,20 @@@ +2.2 + * Clean up gossiper logic for old versions (CASSANDRA-9370) + * Fix custom payload coding/decoding to match the spec (CASSANDRA-9515) + * ant test-all results incomplete when parsed (CASSANDRA-9463) + * Disallow frozen types in function arguments and return types for + clarity (CASSANDRA-9411) + * Static Analysis to warn on unsafe use of Autocloseable instances (CASSANDRA-9431) + * Update commitlog archiving examples now that commitlog segments are + not recycled (CASSANDRA-9350) + * Extend Transactional API to sstable lifecycle management (CASSANDRA-8568) + * (cqlsh) Add support for native protocol 4 (CASSANDRA-9399) + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409) + * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) + * Add ability to stop compaction by ID (CASSANDRA-7207) + * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438) +Merged from 2.1: + 2.1.6 * Ensure truncate without snapshot cannot produce corrupt responses (CASSANDRA-9388) * Consistent error message when a table mixes counter and non-counter columns (CASSANDRA-9492)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/46ea0402 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/46ea0402 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/46ea0402 Branch: refs/heads/trunk Commit: 46ea0402f760ed99a93fa463688a59e26a1c543a Parents: 2a9fc0e 66a48e7 Author: Benedict Elliott Smith bened...@apache.org Authored: Wed Jun 3 17:01:59 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Wed Jun 3 17:01:59 2015 +0100 -- CHANGES.txt | 1 + .../io/sstable/SSTableSimpleUnsortedWriter.java | 19 + .../io/sstable/CQLSSTableWriterTest.java| 29 3 files changed, 44 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/46ea0402/CHANGES.txt -- diff --cc CHANGES.txt index b4364ba,4d38e1e..aeae5e8 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,20 -1,5 +1,21 @@@ +2.2 + * Clean up gossiper logic for old versions (CASSANDRA-9370) + * Fix custom payload coding/decoding to match the spec (CASSANDRA-9515) + * ant test-all results incomplete when parsed (CASSANDRA-9463) + * Disallow frozen types in function arguments and return types for + clarity (CASSANDRA-9411) + * Static Analysis to warn on unsafe use of Autocloseable instances (CASSANDRA-9431) + * Update commitlog archiving examples now that commitlog segments are + not recycled (CASSANDRA-9350) + * Extend Transactional API to sstable lifecycle management (CASSANDRA-8568) + * (cqlsh) Add support for native protocol 4 (CASSANDRA-9399) + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409) + * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) + * Add ability to stop compaction by ID (CASSANDRA-7207) + * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438) +Merged from 2.1: 2.1.6 + * Fix empty partition assertion in unsorted sstable writing tools (CASSANDRA-9071) * Ensure truncate without snapshot cannot produce corrupt responses (CASSANDRA-9388) * Consistent error message when a table mixes counter and non-counter columns (CASSANDRA-9492) http://git-wip-us.apache.org/repos/asf/cassandra/blob/46ea0402/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java -- diff --cc src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java index d6ab940,9ee9ea1..cc47845 --- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java @@@ -219,36 -229,29 +230,34 @@@ public class SSTableSimpleUnsortedWrite { while (true) { -Buffer b = writeQueue.take(); -if (b == SENTINEL) -return; +try +{ +Buffer b = writeQueue.take(); +if (b == SENTINEL) +return; -writer = getWriter(); -for (Map.EntryDecoratedKey, ColumnFamily entry : b.entrySet()) +try (SSTableWriter writer = getWriter();) +{ - boolean first = true; +for (Map.EntryDecoratedKey, ColumnFamily entry : b.entrySet()) +{ +if (entry.getValue().getColumnCount() 0) +writer.append(entry.getKey(), entry.getValue()); - else if (!first) ++else if (!entry.getKey().equals(b.getFirstInsertedKey())) +throw new AssertionError(Empty partition); - first = false; +} - ++ +writer.finish(false); +} +} +catch (Throwable e) { -if (entry.getValue().getColumnCount() 0) -writer.append(entry.getKey(), entry.getValue()); -else if (!entry.getKey().equals(b.getFirstInsertedKey())) -throw new AssertionError(Empty partition); +JVMStabilityInspector.inspectThrowable(e); +
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a30d8bd2/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index ba634b6,000..f4a59a2 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2142 -1,0 +1,2175 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From: NORMAL = Reader is being compacted. This compaction has not finished, but the compaction result + *
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java src/java/org/apache/cassandra/tools/NodeTool.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/868e7209 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/868e7209 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/868e7209 Branch: refs/heads/trunk Commit: 868e7209d8aed969fa62e1813ad99dec70e4b527 Parents: b540c5d ae04861 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu May 21 13:42:56 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu May 21 13:42:56 2015 +0100 -- CHANGES.txt | 1 + .../apache/cassandra/db/ColumnFamilyStore.java | 1 - src/java/org/apache/cassandra/db/Memtable.java | 5 + .../cassandra/metrics/ColumnFamilyMetrics.java | 20 +--- .../org/apache/cassandra/tools/NodeProbe.java | 1 + .../cassandra/tools/nodetool/TableStats.java| 7 ++- 6 files changed, 26 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/868e7209/CHANGES.txt -- diff --cc CHANGES.txt index 281d10b,ca12522..a97cf2f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,129 -1,7 +1,130 @@@ +2.2 + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409) + * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) + * Add ability to stop compaction by ID (CASSANDRA-7207) +Merged from 2.1: 2.1.6 + * Improve estimated row count (CASSANDRA-9107) * Optimize range tombstone memory footprint (CASSANDRA-8603) * Use configured gcgs in anticompaction (CASSANDRA-9397) + + +2.2.0-beta1 + * Introduce Transactional API for internal state changes (CASSANDRA-8984) + * Add a flag in cassandra.yaml to enable UDFs (CASSANDRA-9404) + * Better support of null for UDF (CASSANDRA-8374) + * Use ecj instead of javassist for UDFs (CASSANDRA-8241) + * faster async logback configuration for tests (CASSANDRA-9376) + * Add `smallint` and `tinyint` data types (CASSANDRA-8951) + * Avoid thrift schema creation when native driver is used in stress tool (CASSANDRA-9374) + * Populate TokenMetadata early during startup (CASSANDRA-9317) + * Make Functions.declared thread-safe + * Add client warnings to native protocol v4 (CASSANDRA-8930) + * Allow roles cache to be invalidated (CASSANDRA-8967) + * Upgrade Snappy (CASSANDRA-9063) + * Don't start Thrift rpc by default (CASSANDRA-9319) + * Only stream from unrepaired sstables with incremental repair (CASSANDRA-8267) + * Aggregate UDFs allow SFUNC return type to differ from STYPE if FFUNC specified (CASSANDRA-9321) + * Remove Thrift dependencies in bundled tools (CASSANDRA-8358) + * Disable memory mapping of hsperfdata file for JVM statistics (CASSANDRA-9242) + * Add pre-startup checks to detect potential incompatibilities (CASSANDRA-8049) + * Distinguish between null and unset in protocol v4 (CASSANDRA-7304) + * Add user/role permissions for user-defined functions (CASSANDRA-7557) + * Allow cassandra config to be updated to restart daemon without unloading classes (CASSANDRA-9046) + * Don't initialize compaction writer before checking if iter is empty (CASSANDRA-9117) + * Don't execute any functions at prepare-time (CASSANDRA-9037) + * Share file handles between all instances of a SegmentedFile (CASSANDRA-8893) + * Make it possible to major compact LCS (CASSANDRA-7272) + * Make FunctionExecutionException extend RequestExecutionException + (CASSANDRA-9055) + * Add support for SELECT JSON, INSERT JSON syntax and new toJson(), fromJson() + functions (CASSANDRA-7970) + * Optimise max purgeable timestamp calculation in compaction (CASSANDRA-8920) + * Constrain internode message buffer sizes, and improve IO class hierarchy (CASSANDRA-8670) + * New tool added to validate all sstables in a node (CASSANDRA-5791) + * Push notification when tracing completes for an operation (CASSANDRA-7807) + * Delay node up and node added notifications until native protocol server is started (CASSANDRA-8236) + * Compressed Commit Log (CASSANDRA-6809) + * Optimise IntervalTree (CASSANDRA-8988) + * Add a key-value payload for third party usage (CASSANDRA-8553, 9212) + * Bump metrics-reporter-config dependency for metrics 3.0 (CASSANDRA-8149) + * Partition intra-cluster message streams by size, not type (CASSANDRA-8789) + * Add WriteFailureException to native protocol, notify coordinator of + write failures (CASSANDRA-8592) + * Convert SequentialWriter to nio (CASSANDRA-8709) + * Add role based access control (CASSANDRA-7653, 8650, 7216, 8760, 8849, 8761, 8850) + * Record
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ff10d636 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ff10d636 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ff10d636 Branch: refs/heads/trunk Commit: ff10d636c7f379d2882b7f863eadbdd0ffacdc6c Parents: f76bfd4 8ad70cf Author: Benedict Elliott Smith bened...@apache.org Authored: Sat May 16 11:01:57 2015 +0100 Committer: Benedict Elliott Smith bened...@apache.org Committed: Sat May 16 11:01:57 2015 +0100 -- --