[1/2] git commit: merge from 1.0

2012-08-23 Thread dbrosius
Updated Branches:
  refs/heads/cassandra-1.1 dbf99d674 -> fa8fc22fc


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fa8fc22f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fa8fc22f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fa8fc22f

Branch: refs/heads/cassandra-1.1
Commit: fa8fc22fca240e1f016bbfd5ff9c54b57c0bb777
Parents: dbf99d6 ec76baf
Author: Dave Brosius 
Authored: Fri Aug 24 00:00:59 2012 -0400
Committer: Dave Brosius 
Committed: Fri Aug 24 00:00:59 2012 -0400

--
 .../cassandra/service/AntiEntropyService.java  |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa8fc22f/src/java/org/apache/cassandra/service/AntiEntropyService.java
--
diff --cc src/java/org/apache/cassandra/service/AntiEntropyService.java
index d76d26f,7bdeb20..0d7c1b4
--- a/src/java/org/apache/cassandra/service/AntiEntropyService.java
+++ b/src/java/org/apache/cassandra/service/AntiEntropyService.java
@@@ -418,7 -412,7 +418,7 @@@ public class AntiEntropyServic
  {
  try
  {
--  FastByteArrayOutputStream bos = new FastByteArrayOutputStream();
++FastByteArrayOutputStream bos = new 
FastByteArrayOutputStream();
  DataOutputStream dos = new DataOutputStream(bos);
  SERIALIZER.serialize(request, dos, version);
  return new Message(FBUtilities.getBroadcastAddress(), 
StorageService.Verb.TREE_REQUEST, bos.toByteArray(), version);
@@@ -490,7 -484,7 +490,7 @@@
  {
  try
  {
--  FastByteArrayOutputStream bos = new FastByteArrayOutputStream();
++FastByteArrayOutputStream bos = new 
FastByteArrayOutputStream();
  DataOutputStream dos = new DataOutputStream(bos);
  SERIALIZER.serialize(validator, dos, 
Gossiper.instance.getVersion(validator.request.endpoint));
  return new Message(local,



[1/2] git commit: merge from 1.0

2012-07-11 Thread xedin
Updated Branches:
  refs/heads/cassandra-1.1 3e4858271 -> 97620fef3


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/97620fef
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/97620fef
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/97620fef

Branch: refs/heads/cassandra-1.1
Commit: 97620fef3fcf208d9044a95cc8ffe86ccb1e4556
Parents: 3e48582 51a9fd1
Author: Pavel Yaskevich 
Authored: Thu Jul 12 01:04:12 2012 +0300
Committer: Pavel Yaskevich 
Committed: Thu Jul 12 01:04:12 2012 +0300

--
 CHANGES.txt |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/97620fef/CHANGES.txt
--
diff --cc CHANGES.txt
index cb85459,d3cca6c..01a3af1
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,139 -1,6 +1,140 @@@
 -1.0.11
 +1.1.3
 + * update default commitlog segment size to 32MB and total commitlog
 +   size to 32/1024 MB for 32/64 bit JVMs, respectively (CASSANDRA-4422)
 + * avoid using global partitioner to estimate ranges in index sstables
 +   (CASSANDRA-4403)
 + * restore pre-CASSANDRA-3862 approach to removing expired tombstones
 +   from row cache during compaction (CASSANDRA-4364)
 + * (stress) support for CQL prepared statements (CASSANDRA-3633)
 + * Correctly catch exception when Snappy cannot be loaded (CASSANDRA-4400)
 + * (cql3) Support ORDER BY when IN condition is given in WHERE clause 
(CASSANDRA-4327)
 + * (cql3) delete "component_index" column on DROP TABLE call (CASSANDRA-4420)
 + * change nanoTime() to currentTimeInMillis() in schema related code 
(CASSANDRA-4432)
 +Merged from 1.0:
   * allow dropping columns shadowed by not-yet-expired supercolumn or row
 tombstones in PrecompactedRow (CASSANDRA-4396)
++ * fix 1.0.x node join to mixed version cluster, other nodes >= 1.1 
(CASSANDRA-4195)
 +
 +
 +1.1.2
 + * Fix cleanup not deleting index entries (CASSANDRA-4379)
 + * Use correct partitioner when saving + loading caches (CASSANDRA-4331)
 + * Check schema before trying to export sstable (CASSANDRA-2760)
 + * Raise a meaningful exception instead of NPE when PFS encounters
 +   an unconfigured node + no default (CASSANDRA-4349)
 + * fix bug in sstable blacklisting with LCS (CASSANDRA-4343)
 + * LCS no longer promotes tiny sstables out of L0 (CASSANDRA-4341)
 + * skip tombstones during hint replay (CASSANDRA-4320)
 + * fix NPE in compactionstats (CASSANDRA-4318)
 + * enforce 1m min keycache for auto (CASSANDRA-4306)
 + * Have DeletedColumn.isMFD always return true (CASSANDRA-4307)
 + * (cql3) exeption message for ORDER BY constraints said primary filter can be
 +an IN clause, which is misleading (CASSANDRA-4319)
 + * (cql3) Reject (not yet supported) creation of 2ndardy indexes on tables 
with
 +   composite primary keys (CASSANDRA-4328)
 + * Set JVM stack size to 160k for java 7 (CASSANDRA-4275)
 + * cqlsh: add COPY command to load data from CSV flat files (CASSANDRA-4012)
 + * CFMetaData.fromThrift to throw ConfigurationException upon error 
(CASSANDRA-4353)
 + * Use CF comparator to sort indexed columns in SecondaryIndexManager
 +   (CASSANDRA-4365)
 + * add strategy_options to the KSMetaData.toString() output (CASSANDRA-4248)
 + * (cql3) fix range queries containing unqueried results (CASSANDRA-4372)
 + * (cql3) allow updating column_alias types (CASSANDRA-4041)
 + * (cql3) Fix deletion bug (CASSANDRA-4193)
 + * Fix computation of overlapping sstable for leveled compaction 
(CASSANDRA-4321)
 + * Improve scrub and allow to run it offline (CASSANDRA-4321)
 + * Fix assertionError in StorageService.bulkLoad (CASSANDRA-4368)
 + * (cqlsh) add option to authenticate to a keyspace at startup 
(CASSANDRA-4108)
 + * (cqlsh) fix ASSUME functionality (CASSANDRA-4352)
 + * Fix ColumnFamilyRecordReader to not return progress > 100% (CASSANDRA-3942)
 +Merged from 1.0:
 + * Set gc_grace on index CF to 0 (CASSANDRA-4314)
 +
 +
 +1.1.1
 + * allow larger cache capacities than 2GB (CASSANDRA-4150)
 + * add getsstables command to nodetool (CASSANDRA-4199)
 + * apply parent CF compaction settings to secondary index CFs (CASSANDRA-4280)
 + * preserve commitlog size cap when recycling segments at startup
 +   (CASSANDRA-4201)
 + * (Hadoop) fix split generation regression (CASSANDRA-4259)
 + * ignore min/max compactions settings in LCS, while preserving
 +   behavior that min=max=0 disables autocompaction (CASSANDRA-4233)
 + * log number of rows read from saved cache (CASSANDRA-4249)
 + * calculate exact size required for cleanup operations (CASSANDRA-1404)
 + * avoid blocking additional writes during flush when the commitlog
 +   gets behind temporarily (CASSANDRA-1991)
 + * enable caching on index CFs based on data CF cache setting (CASSANDRA-419

[1/2] git commit: merge from 1.0

2012-05-02 Thread xedin
Updated Branches:
  refs/heads/cassandra-1.1 bf9a72265 -> 5c3db0d10


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5c3db0d1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5c3db0d1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5c3db0d1

Branch: refs/heads/cassandra-1.1
Commit: 5c3db0d1016962bfa11257bc1318d77d693609b1
Parents: bf9a722 f20badb
Author: Pavel Yaskevich 
Authored: Thu May 3 03:52:14 2012 +0300
Committer: Pavel Yaskevich 
Committed: Thu May 3 03:52:14 2012 +0300

--
 CHANGES.txt|5 ++
 .../src/org/apache/cassandra/stress/Stress.java|7 ++-
 .../org/apache/cassandra/stress/StressAction.java  |   34 ++-
 3 files changed, 42 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5c3db0d1/CHANGES.txt
--
diff --cc CHANGES.txt
index 83c171b,ad301db..a1eef54
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,70 -1,7 +1,75 @@@
 -1.0.10
 +1.1.1-dev
 + * Open 1 sstableScanner per level for leveled compaction (CASSANDRA-4142)
 + * Optimize reads when row deletion timestamps allow us to restrict
 +   the set of sstables we check (CASSANDRA-4116)
 + * incremental repair by token range (CASSANDRA-3912)
 + * streaming commitlog backup + pitr (CASSANDRA-3690)
 + * avoid generating redundant compaction tasks during streaming
 +   (CASSANDRA-4174)
 + * add -cf option to nodetool snapshot, and takeColumnFamilySnapshot to
 +   StorageService mbean (CASSANDRA-556)
 + * optimize cleanup to drop entire sstables where possible (CASSANDRA-4079)
 + * optimize truncate when autosnapshot is disabled (CASSANDRA-4153)
 + * add support for commitlog archiving and point-in-time recovery
 +   (CASSANDRA-3647)
 + * update caches to use byte[] keys to reduce memory overhead (CASSANDRA-3966)
 + * add column limit to cli (CASSANDRA-3012, 4098)
 + * clean up and optimize DataOutputBuffer, used by CQL compression and
 +   CompositeType (CASSANDRA-4072)
 + * optimize commitlog checksumming (CASSANDRA-3610)
 + * identify and blacklist corrupted SSTables from future compactions 
 +   (CASSANDRA-2261)
 + * Move CfDef and KsDef validation out of thrift (CASSANDRA-4037)
 + * Expose repairing by a user provided range (CASSANDRA-3912)
 + * Add way to force the cassandra-cli to refresh it's schema (CASSANDRA-4052)
 + * Avoids having replicate on write tasks stacking up at CL.ONE 
(CASSANDRA-2889)
 + * (cql) Fix order by for reversed queries (CASSANDRA-4160)
 +Merged from 1.0:
 + * Fix super columns bug where cache is not updated (CASSANDRA-4190)
   * fix maxTimestamp to include row tombstones (CASSANDRA-4116)
++ * (CLI) properly handle quotes in create/update keyspace commands 
(CASSANDRA-4129)
++ * Avoids possible deadlock during bootstrap (CASSANDRA-4159)
++ * fix stress tool that hangs forever on timeout or error (CASSANDRA-4128)
++ * Fix super columns bug where cache is not updated (CASSANDRA-4190)
++ * stress tool to return appropriate exit code on failure (CASSANDRA-4188)
 +
 +
 +1.1.0-final
 + * average a reduced liveRatio estimate with the previous one (CASSANDRA-4065)
 + * Allow KS and CF names up to 48 characters (CASSANDRA-4157)
 + * fix stress build (CASSANDRA-4140)
 + * add time remaining estimate to nodetool compactionstats (CASSANDRA-4167)
 + * (cql) fix NPE in cql3 ALTER TABLE (CASSANDRA-4163)
 + * (cql) Add support for CL.TWO and CL.THREE in CQL (CASSANDRA-4156)
 + * (cql) Fix type in CQL3 ALTER TABLE preventing update (CASSANDRA-4170)
 + * (cql) Throw invalid exception from CQL3 on obsolete options 
(CASSANDRA-4171)
 + * (cqlsh) fix recognizing uppercase SELECT keyword (CASSANDRA-4161)
 + * Pig: wide row support (CASSANDRA-3909)
 +Merged from 1.0:
   * avoid streaming empty files with bulk loader if sstablewriter errors out
 (CASSANDRA-3946)
 +
 +
 +1.1-rc1
 + * Include stress tool in binary builds (CASSANDRA-4103)
 + * (Hadoop) fix wide row iteration when last row read was deleted
 +   (CASSANDRA-4154)
 + * fix read_repair_chance to really default to 0.1 in the cli (CASSANDRA-4114)
 + * Adds caching and bloomFilterFpChange to CQL options (CASSANDRA-4042)
 + * Adds posibility to autoconfigure size of the KeyCache (CASSANDRA-4087)
 + * fix KEYS index from skipping results (CASSANDRA-3996)
 + * Remove sliced_buffer_size_in_kb dead option (CASSANDRA-4076)
 + * make loadNewSStable preserve sstable version (CASSANDRA-4077)
 + * Respect 1.0 cache settings as much as possible when upgrading 
 +   (CASSANDRA-4088)
 + * relax path length requirement for sstable files when upgrading on 
 +   non-Windows platforms (CASSANDRA-4110)
 + * fix terminination of the stress.java when errors were encountered
 +   (CASSANDRA-4128)

[1/2] git commit: merge from 1.0

2012-03-22 Thread xedin
Updated Branches:
  refs/heads/cassandra-1.1.0 3136c2092 -> b12c34f30


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b12c34f3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b12c34f3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b12c34f3

Branch: refs/heads/cassandra-1.1.0
Commit: b12c34f309cba15fb0d4187461a7065121f38e7b
Parents: 3136c20 fbdf7b0
Author: Pavel Yaskevich 
Authored: Thu Mar 22 16:26:11 2012 +0300
Committer: Pavel Yaskevich 
Committed: Thu Mar 22 16:45:57 2012 +0300

--
 CHANGES.txt|1 +
 src/java/org/apache/cassandra/db/Directories.java  |   32 ---
 .../cassandra/db/compaction/CompactionTask.java|   32 ---
 3 files changed, 44 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b12c34f3/CHANGES.txt
--
diff --cc CHANGES.txt
index 70db8e5,c1e1cfe..c770868
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -38,96 -10,9 +38,97 @@@ Merged from 1.0
   * don't change manifest level for cleanup, scrub, and upgradesstables
 operations under LeveledCompactionStrategy (CASSANDRA-3989)
   * fix race leading to super columns assertion failure (CASSANDRA-3957)
+  * ensure that directory is selected for compaction (CASSANDRA-3985)
  
  
 +1.1-beta1
 + * (cqlsh)
 +   + add SOURCE and CAPTURE commands, and --file option (CASSANDRA-3479)
 +   + add ALTER COLUMNFAMILY WITH (CASSANDRA-3523)
 +   + bundle Python dependencies with Cassandra (CASSANDRA-3507)
 +   + added to Debian package (CASSANDRA-3458)
 +   + display byte data instead of erroring out on decode failure 
 + (CASSANDRA-3874)
 + * add nodetool rebuild_index (CASSANDRA-3583)
 + * add nodetool rangekeysample (CASSANDRA-2917)
 + * Fix streaming too much data during move operations (CASSANDRA-3639)
 + * Nodetool and CLI connect to localhost by default (CASSANDRA-3568)
 + * Reduce memory used by primary index sample (CASSANDRA-3743)
 + * (Hadoop) separate input/output configurations (CASSANDRA-3197, 3765)
 + * avoid returning internal Cassandra classes over JMX (CASSANDRA-2805)
 + * add row-level isolation via SnapTree (CASSANDRA-2893)
 + * Optimize key count estimation when opening sstable on startup
 +   (CASSANDRA-2988)
 + * multi-dc replication optimization supporting CL > ONE (CASSANDRA-3577)
 + * add command to stop compactions (CASSANDRA-1740, 3566, 3582)
 + * multithreaded streaming (CASSANDRA-3494)
 + * removed in-tree redhat spec (CASSANDRA-3567)
 + * "defragment" rows for name-based queries under STCS, again (CASSANDRA-2503)
 + * Recycle commitlog segments for improved performance 
 +   (CASSANDRA-3411, 3543, 3557, 3615)
 + * update size-tiered compaction to prioritize small tiers (CASSANDRA-2407)
 + * add message expiration logic to OutboundTcpConnection (CASSANDRA-3005)
 + * off-heap cache to use sun.misc.Unsafe instead of JNA (CASSANDRA-3271)
 + * EACH_QUORUM is only supported for writes (CASSANDRA-3272)
 + * replace compactionlock use in schema migration by checking CFS.isValid
 +   (CASSANDRA-3116)
 + * recognize that "SELECT first ... *" isn't really "SELECT *" 
(CASSANDRA-3445)
 + * Use faster bytes comparison (CASSANDRA-3434)
 + * Bulk loader is no longer a fat client, (HADOOP) bulk load output format
 +   (CASSANDRA-3045)
 + * (Hadoop) add support for KeyRange.filter
 + * remove assumption that keys and token are in bijection
 +   (CASSANDRA-1034, 3574, 3604)
 + * always remove endpoints from delevery queue in HH (CASSANDRA-3546)
 + * fix race between cf flush and its 2ndary indexes flush (CASSANDRA-3547)
 + * fix potential race in AES when a repair fails (CASSANDRA-3548)
 + * Remove columns shadowed by a deleted container even when we cannot purge
 +   (CASSANDRA-3538)
 + * Improve memtable slice iteration performance (CASSANDRA-3545)
 + * more efficient allocation of small bloom filters (CASSANDRA-3618)
 + * Use separate writer thread in SSTableSimpleUnsortedWriter (CASSANDRA-3619)
 + * fsync the directory after new sstable or commitlog segment are created 
(CASSANDRA-3250)
 + * fix minor issues reported by FindBugs (CASSANDRA-3658)
 + * global key/row caches (CASSANDRA-3143, 3849)
 + * optimize memtable iteration during range scan (CASSANDRA-3638)
 + * introduce 'crc_check_chance' in CompressionParameters to support
 +   a checksum percentage checking chance similarly to read-repair 
(CASSANDRA-3611)
 + * a way to deactivate global key/row cache on per-CF basis (CASSANDRA-3667)
 + * fix LeveledCompactionStrategy broken because of generation pre-allocation
 +   in LeveledManifest (CASSANDRA-3691)
 + * finer-grained control over data directories (CASSANDRA-2749)
 + * Fix ClassCastException during hinted han

[1/2] git commit: Merge from 1.0

2012-03-19 Thread brandonwilliams
Updated Branches:
  refs/heads/cassandra-1.1.0 cd806ddd2 -> c5aa781e8


Merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c5aa781e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c5aa781e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c5aa781e

Branch: refs/heads/cassandra-1.1.0
Commit: c5aa781e8568bf8b93244412d69ab68578610627
Parents: cd806dd c573c46
Author: Brandon Williams 
Authored: Mon Mar 19 21:42:21 2012 -0500
Committer: Brandon Williams 
Committed: Mon Mar 19 21:42:21 2012 -0500

--
 src/java/org/apache/cassandra/tools/NodeProbe.java |   19 +-
 1 files changed, 12 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c5aa781e/src/java/org/apache/cassandra/tools/NodeProbe.java
--



[1/2] git commit: merge from 1.0

2012-02-29 Thread xedin
Updated Branches:
  refs/heads/cassandra-1.1.0 ba7b0bddf -> 0447837b2


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0447837b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0447837b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0447837b

Branch: refs/heads/cassandra-1.1.0
Commit: 0447837b28603f3bd33c198c763987d84b387014
Parents: ba7b0bd ebafaeb
Author: Pavel Yaskevich 
Authored: Wed Feb 29 21:21:49 2012 +0300
Committer: Pavel Yaskevich 
Committed: Wed Feb 29 21:21:53 2012 +0300

--
 CHANGES.txt|1 +
 .../org/apache/cassandra/cli/CliHelp.yaml  |   12 
 2 files changed, 13 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0447837b/CHANGES.txt
--
diff --cc CHANGES.txt
index 47a004c,442674e..8350252
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -25,89 -2,9 +25,90 @@@ Merged from 1.0
   * always compact away deleted hints immediately after handoff 
(CASSANDRA-3955)
   * delete hints from dropped ColumnFamilies on handoff instead of
 erroring out (CASSANDRA-3975)
+  * add CompositeType ref to the CLI doc for create/update column family 
(CASSANDRA-3980)
  
  
 +1.1-beta1
 + * add nodetool rebuild_index (CASSANDRA-3583)
 + * add nodetool rangekeysample (CASSANDRA-2917)
 + * Fix streaming too much data during move operations (CASSANDRA-3639)
 + * Nodetool and CLI connect to localhost by default (CASSANDRA-3568)
 + * Reduce memory used by primary index sample (CASSANDRA-3743)
 + * (Hadoop) separate input/output configurations (CASSANDRA-3197, 3765)
 + * avoid returning internal Cassandra classes over JMX (CASSANDRA-2805)
 + * add row-level isolation via SnapTree (CASSANDRA-2893)
 + * Optimize key count estimation when opening sstable on startup
 +   (CASSANDRA-2988)
 + * multi-dc replication optimization supporting CL > ONE (CASSANDRA-3577)
 + * add command to stop compactions (CASSANDRA-1740, 3566, 3582)
 + * multithreaded streaming (CASSANDRA-3494)
 + * removed in-tree redhat spec (CASSANDRA-3567)
 + * "defragment" rows for name-based queries under STCS, again (CASSANDRA-2503)
 + * Recycle commitlog segments for improved performance 
 +   (CASSANDRA-3411, 3543, 3557, 3615)
 + * update size-tiered compaction to prioritize small tiers (CASSANDRA-2407)
 + * add message expiration logic to OutboundTcpConnection (CASSANDRA-3005)
 + * off-heap cache to use sun.misc.Unsafe instead of JNA (CASSANDRA-3271)
 + * EACH_QUORUM is only supported for writes (CASSANDRA-3272)
 + * replace compactionlock use in schema migration by checking CFS.isValid
 +   (CASSANDRA-3116)
 + * recognize that "SELECT first ... *" isn't really "SELECT *" 
(CASSANDRA-3445)
 + * Use faster bytes comparison (CASSANDRA-3434)
 + * Bulk loader is no longer a fat client, (HADOOP) bulk load output format
 +   (CASSANDRA-3045)
 + * (Hadoop) add support for KeyRange.filter
 + * remove assumption that keys and token are in bijection
 +   (CASSANDRA-1034, 3574, 3604)
 + * always remove endpoints from delevery queue in HH (CASSANDRA-3546)
 + * fix race between cf flush and its 2ndary indexes flush (CASSANDRA-3547)
 + * fix potential race in AES when a repair fails (CASSANDRA-3548)
 + * Remove columns shadowed by a deleted container even when we cannot purge
 +   (CASSANDRA-3538)
 + * Improve memtable slice iteration performance (CASSANDRA-3545)
 + * more efficient allocation of small bloom filters (CASSANDRA-3618)
 + * Use separate writer thread in SSTableSimpleUnsortedWriter (CASSANDRA-3619)
 + * fsync the directory after new sstable or commitlog segment are created 
(CASSANDRA-3250)
 + * fix minor issues reported by FindBugs (CASSANDRA-3658)
 + * global key/row caches (CASSANDRA-3143, 3849)
 + * optimize memtable iteration during range scan (CASSANDRA-3638)
 + * introduce 'crc_check_chance' in CompressionParameters to support
 +   a checksum percentage checking chance similarly to read-repair 
(CASSANDRA-3611)
 + * a way to deactivate global key/row cache on per-CF basis (CASSANDRA-3667)
 + * fix LeveledCompactionStrategy broken because of generation pre-allocation
 +   in LeveledManifest (CASSANDRA-3691)
 + * finer-grained control over data directories (CASSANDRA-2749)
 + * Fix ClassCastException during hinted handoff (CASSANDRA-3694)
 + * Upgrade Thrift to 0.7 (CASSANDRA-3213)
 + * Make stress.java insert operation to use microseconds (CASSANDRA-3725)
 + * Allows (internally) doing a range query with a limit of columns instead of
 +   rows (CASSANDRA-3742)
 + * Allow rangeSlice queries to be start/end inclusive/exclusive 
(CASSANDRA-3749)
 + * Fix BulkLoader to support new SSTable layout and add stream
 +   throttling to prevent an NPE

[1/2] git commit: Merge from 1.0

2012-02-14 Thread brandonwilliams
Updated Branches:
  refs/heads/cassandra-1.1 5dac2086d -> 3a4459f0a


Merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a4459f0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a4459f0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a4459f0

Branch: refs/heads/cassandra-1.1
Commit: 3a4459f0a69d361c3c3480d7cb8b0188aef7700f
Parents: 5dac208 f2a4309
Author: Brandon Williams 
Authored: Tue Feb 14 14:19:47 2012 -0600
Committer: Brandon Williams 
Committed: Tue Feb 14 14:19:47 2012 -0600

--
 examples/pig/README.txt |6 --
 examples/pig/example-script.pig |4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a4459f0/examples/pig/README.txt
--
diff --cc examples/pig/README.txt
index aea0a77,000..3bdbf10
mode 100644,00..100644
--- a/examples/pig/README.txt
+++ b/examples/pig/README.txt
@@@ -1,70 -1,0 +1,72 @@@
 +A Pig storage class that reads all columns from a given ColumnFamily, or 
writes
 +properly formatted results into a ColumnFamily.
 +
 +Setup:
 +
 +First build and start a Cassandra server with the default
 +configuration and set the PIG_HOME and JAVA_HOME environment
 +variables to the location of a Pig >= 0.7.0 install and your Java
 +install. 
 +
 +If you would like to run using the Hadoop backend, you should
 +also set PIG_CONF_DIR to the location of your Hadoop config.
 +
 +Finally, set the following as environment variables (uppercase,
 +underscored), or as Hadoop configuration variables (lowercase, dotted):
 +* PIG_INITIAL_ADDRESS or cassandra.thrift.address : initial address to 
connect to
 +* PIG_RPC_PORT or cassandra.thrift.port : the port thrift is listening on
 +* PIG_PARTITIONER or cassandra.partitioner.class : cluster partitioner
 +
 +For example, against a local node with the default settings, you'd use:
 +export PIG_INITIAL_ADDRESS=localhost
 +export PIG_RPC_PORT=9160
 +export PIG_PARTITIONER=org.apache.cassandra.dht.RandomPartitioner
 +
 +These properties can be overridden with the following if you use different 
clusters
 +for input and output:
 +* PIG_INPUT_INITIAL_ADDRESS : initial address to connect to for reading
 +* PIG_INPUT_RPC_PORT : the port thrift is listening on for reading
 +* PIG_INPUT_PARTITIONER : cluster partitioner for reading
 +* PIG_OUTPUT_INITIAL_ADDRESS : initial address to connect to for writing
 +* PIG_OUTPUT_RPC_PORT : the port thrift is listening on for writing
 +* PIG_OUTPUT_PARTITIONER : cluster partitioner for writing
 +
 +
 +Then you can run it like this:
 +
 +examples/pig$ bin/pig_cassandra -x local example-script.pig
 +
 +This will run the test script against your Cassandra instance
 +and will assume that there is a MyKeyspace/MyColumnFamily with some
 +data in it. It will run in local mode (see pig docs for more info).
 +
 +If you'd like to get to a 'grunt>' shell prompt, run:
 +
 +examples/pig$ bin/pig_cassandra -x local
 +
 +Once the 'grunt>' shell has loaded, try a simple program like the
 +following, which will determine the top 50 column names:
 +
- grunt> rows = LOAD 'cassandra://MyKeyspace/MyColumnFamily' USING 
CassandraStorage() AS (key, columns: bag {T: tuple(name, value)});
++grunt> rows = LOAD 'cassandra://MyKeyspace/MyColumnFamily' USING 
CassandraStorage();
 +grunt> cols = FOREACH rows GENERATE flatten(columns);
 +grunt> colnames = FOREACH cols GENERATE $0;
 +grunt> namegroups = GROUP colnames BY (chararray) $0;
 +grunt> namecounts = FOREACH namegroups GENERATE COUNT($1), group;
 +grunt> orderednames = ORDER namecounts BY $0;
 +grunt> topnames = LIMIT orderednames 50;
 +grunt> dump topnames;
 +
 +Slices on columns can also be specified:
- grunt> rows = LOAD 
'cassandra://MyKeyspace/MyColumnFamily&slice_start=C2&slice_end=C4&limit=1&reversed=true'
 USING CassandraStorage() AS (key, columns: bag {T: tuple(name, value)});
++grunt> rows = LOAD 
'cassandra://MyKeyspace/MyColumnFamily&slice_start=C2&slice_end=C4&limit=1&reversed=true'
 USING CassandraStorage();
 +
 +Binary values for slice_start and slice_end can be escaped such as '\u0255'
 +
 +Outputting to Cassandra requires the same format from input, so the simplest 
example is:
 +
 +grunt> rows = LOAD 'cassandra://MyKeyspace/MyColumnFamily' USING 
CassandraStorage();
 +grunt> STORE rows into 'cassandra://MyKeyspace/MyColumnFamily' USING 
CassandraStorage();
 +
 +Which will copy the ColumnFamily.  Note that the destination ColumnFamily must
 +already exist for this to work.
++
++See the example in test/ to see how schema is inferred.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a4459f0/examples/pig/example-script.pig

[1/2] git commit: Merge from 1.0

2012-02-13 Thread brandonwilliams
Updated Branches:
  refs/heads/cassandra-1.1 c98edc3e8 -> 1d435db70


Merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1d435db7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1d435db7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1d435db7

Branch: refs/heads/cassandra-1.1
Commit: 1d435db703d0736a90f6fb0032556eb59771
Parents: c98edc3 e48b29a
Author: Brandon Williams 
Authored: Mon Feb 13 17:34:34 2012 -0600
Committer: Brandon Williams 
Committed: Mon Feb 13 17:34:34 2012 -0600

--
 examples/pig/test/populate-cli.txt |   67 
 examples/pig/test/test_storage.pig |   22 +
 .../cassandra/hadoop/pig/CassandraStorage.java |  298 ++-
 3 files changed, 282 insertions(+), 105 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d435db7/examples/pig/test/populate-cli.txt
--
diff --cc examples/pig/test/populate-cli.txt
index 000,000..665fba4
new file mode 100644
--- /dev/null
+++ b/examples/pig/test/populate-cli.txt
@@@ -1,0 -1,0 +1,67 @@@
++create keyspace PigTest;
++use PigTest;
++create column family SomeApp with
++key_validation_class = UTF8Type and
++default_validation_class = LexicalUUIDType and
++comparator = UTF8Type and
++column_metadata =
++[
++{column_name: name, validation_class: UTF8Type, index_type: KEYS},
++{column_name: vote_type, validation_class: UTF8Type},
++{column_name: rating, validation_class: IntegerType},
++{column_name: score, validation_class: LongType},
++{column_name: percent, validation_class: FloatType},
++{column_name: atomic_weight, validation_class: DoubleType},
++];
++
++create column family CopyOfSomeApp with
++key_validation_class = UTF8Type and
++default_validation_class = LexicalUUIDType and
++comparator = UTF8Type and
++column_metadata =
++[
++{column_name: name, validation_class: UTF8Type, index_type: KEYS},
++{column_name: vote_type, validation_class: UTF8Type},
++{column_name: rating, validation_class: IntegerType},
++{column_name: score, validation_class: LongType},
++{column_name: percent, validation_class: FloatType},
++{column_name: atomic_weight, validation_class: DoubleType},
++];
++
++set SomeApp['foo']['name'] = 'User Foo';
++set SomeApp['foo']['vote_type'] = 'like';
++set SomeApp['foo']['rating'] = 8;
++set SomeApp['foo']['score'] = 125000;
++set SomeApp['foo']['percent'] = '85.0';
++set SomeApp['foo']['atomic_weight'] = '2.7182818284590451';
++
++set SomeApp['bar']['name'] = 'User Bar';
++set SomeApp['bar']['vote_type'] = 'like';
++set SomeApp['bar']['rating'] = 9;
++set SomeApp['bar']['score'] = 15000;
++set SomeApp['bar']['percent'] = '35.0';
++set SomeApp['bar']['atomic_weight'] = '3.1415926535897931';
++
++set SomeApp['baz']['name'] = 'User Baz';
++set SomeApp['baz']['vote_type'] = 'dislike';
++set SomeApp['baz']['rating'] = 3;
++set SomeApp['baz']['score'] = 512000;
++set SomeApp['baz']['percent'] = '95.3';
++set SomeApp['baz']['atomic_weight'] = '1.61803399';
++set SomeApp['baz']['extra1'] = lexicaluuid();
++set SomeApp['baz']['extra2'] = lexicaluuid();
++set SomeApp['baz']['extra3'] = lexicaluuid();
++
++set SomeApp['qux']['name'] = 'User Qux';
++set SomeApp['qux']['vote_type'] = 'dislike';
++set SomeApp['qux']['rating'] = 2;
++set SomeApp['qux']['score'] = 12000;
++set SomeApp['qux']['percent'] = '64.7';
++set SomeApp['qux']['atomic_weight'] = '0.660161815846869';
++set SomeApp['qux']['extra1'] = lexicaluuid();
++set SomeApp['qux']['extra2'] = lexicaluuid();
++set SomeApp['qux']['extra3'] = lexicaluuid();
++set SomeApp['qux']['extra4'] = lexicaluuid();
++set SomeApp['qux']['extra5'] = lexicaluuid();
++set SomeApp['qux']['extra6'] = lexicaluuid();
++set SomeApp['qux']['extra7'] = lexicaluuid();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d435db7/examples/pig/test/test_storage.pig
--
diff --cc examples/pig/test/test_storage.pig
index 000,000..22143dc
new file mode 100644
--- /dev/null
+++ b/examples/pig/test/test_storage.pig
@@@ -1,0 -1,0 +1,22 @@@
++rows = LOAD 'cassandra://PigTest/SomeApp' USING CassandraStorage();
++-- full copy
++STORE rows INTO 'cassandra://PigTest/CopyOfSomeApp' USING CassandraStorage();
++-- single tuple
++onecol = FOREACH rows GENERATE key, percent;
++STORE onecol INTO 'cassandra://PigTest/CopyOfSomeApp' USING 
CassandraStorage();
++-- bag only
++other = FOREACH rows GENERATE key, columns;
++STORE other INTO 'cassandra://PigTest/CopyOfSomeApp' USING CassandraStorage();
++
++
++-- filter
++likes = FILTER rows by vote_type.value eq 'like' and rating.value > 5;
++dislikes_extras = FILTER rows by vote_typ

[1/2] git commit: merge from 1.0

2012-02-07 Thread xedin
Updated Branches:
  refs/heads/cassandra-1.1 3459c38d7 -> e04e7698a


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e04e7698
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e04e7698
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e04e7698

Branch: refs/heads/cassandra-1.1
Commit: e04e7698a317215d6e6a2902a2456c572c0e100c
Parents: 3459c38 5452883
Author: Pavel Yaskevich 
Authored: Tue Feb 7 18:13:43 2012 +0300
Committer: Pavel Yaskevich 
Committed: Tue Feb 7 18:13:43 2012 +0300

--
 CHANGES.txt|2 +
 .../org/apache/cassandra/db/ColumnFamilyStore.java |   20 +++
 .../cassandra/db/compaction/CompactionManager.java |   19 +-
 .../apache/cassandra/db/index/SecondaryIndex.java  |8 +-
 .../cassandra/db/index/SecondaryIndexManager.java  |   16 +++-
 .../apache/cassandra/db/index/keys/KeysIndex.java  |5 +++
 6 files changed, 56 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/CHANGES.txt
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
--
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index c5073aa,0952ffd..afe695a
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -1850,10 -1940,23 +1850,30 @@@ public class ColumnFamilyStore implemen
  return view.sstables.isEmpty() && view.memtable.getOperations() == 0 
&& view.memtablesPendingFlush.isEmpty();
  }
  
 +private boolean isRowCacheEnabled()
 +{
 +return !(metadata.getCaching() == CFMetaData.Caching.NONE
 +  || metadata.getCaching() == CFMetaData.Caching.KEYS_ONLY
 +  || CacheService.instance.rowCache.getCapacity() == 0);
 +}
++
+ /**
+  * Discard all SSTables that were created before given timestamp. Caller 
is responsible to obtain compactionLock.
+  *
+  * @param truncatedAt The timestamp of the truncation
+  *(all SSTables before that timestamp are going be 
marked as compacted)
+  */
+ public void discardSSTables(long truncatedAt)
+ {
+ List truncatedSSTables = new 
ArrayList();
+ 
+ for (SSTableReader sstable : getSSTables())
+ {
+ if (!sstable.newSince(truncatedAt))
+ truncatedSSTables.add(sstable);
+ }
+ 
+ if (!truncatedSSTables.isEmpty())
+ markCompacted(truncatedSSTables);
+ }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index c109b18,caaf6d2..c02aed2
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@@ -37,10 -37,9 +37,11 @@@ import org.apache.cassandra.concurrent.
  import org.apache.cassandra.config.DatabaseDescriptor;
  import org.apache.cassandra.config.Schema;
  import org.apache.cassandra.db.*;
 +import org.apache.cassandra.db.compaction.CompactionInfo.Holder;
+ import org.apache.cassandra.db.index.SecondaryIndex;
  import org.apache.cassandra.db.index.SecondaryIndexBuilder;
  import org.apache.cassandra.dht.Range;
 +import org.apache.cassandra.dht.Token;
  import org.apache.cassandra.io.sstable.*;
  import org.apache.cassandra.io.util.FileUtils;
  import org.apache.cassandra.io.util.RandomAccessReader;
@@@ -1173,14 -1155,4 +1168,14 @@@ public class CompactionManager implemen
  }
  }
  }
 -}
 +
 +public void stopCompaction(String type)
 +{
 +OperationType operation = OperationType.valueOf(type);
 +for (Holder holder : CompactionExecutor.getCompactions())
 +{
 +if (holder.getCompactionInfo().getTaskType() == operation)
 +holder.stop();
 +}
 +}
- }
++}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e04e7698/src/java/org/apache/cassandra/db/index/keys/KeysInde

[1/2] git commit: merge from 1.0

2012-01-30 Thread xedin
Updated Branches:
  refs/heads/trunk 2deee7a4e -> f0c0224da


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f0c0224d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f0c0224d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f0c0224d

Branch: refs/heads/trunk
Commit: f0c0224dac44946c6b2f12425ba9df20fccc
Parents: 2deee7a f4064b5
Author: Pavel Yaskevich 
Authored: Mon Jan 30 19:20:39 2012 +0200
Committer: Pavel Yaskevich 
Committed: Mon Jan 30 19:20:39 2012 +0200

--
 src/java/org/apache/cassandra/cql/CFPropDefs.java  |   13 +
 .../cassandra/cql/CreateColumnFamilyStatement.java |5 +
 2 files changed, 14 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f0c0224d/src/java/org/apache/cassandra/cql/CFPropDefs.java
--
diff --cc src/java/org/apache/cassandra/cql/CFPropDefs.java
index 5103b24,000..930494a
mode 100644,00..100644
--- a/src/java/org/apache/cassandra/cql/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql/CFPropDefs.java
@@@ -1,268 -1,0 +1,281 @@@
 +/*
 + *
 + * 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.cql;
 +
 +import com.google.common.collect.Sets;
 +import org.apache.cassandra.config.CFMetaData;
 +import org.apache.cassandra.config.ConfigurationException;
++import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
 +import org.apache.cassandra.db.marshal.AbstractType;
 +import org.apache.cassandra.db.marshal.TypeParser;
 +import org.apache.cassandra.thrift.InvalidRequestException;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +import java.util.HashMap;
 +import java.util.HashSet;
 +import java.util.Map;
 +import java.util.Set;
 +
 +public class CFPropDefs {
 +private static Logger logger = LoggerFactory.getLogger(CFPropDefs.class);
 +
 +public static final String KW_COMPARATOR = "comparator";
 +public static final String KW_COMMENT = "comment";
 +public static final String KW_READREPAIRCHANCE = "read_repair_chance";
 +public static final String KW_GCGRACESECONDS = "gc_grace_seconds";
 +public static final String KW_DEFAULTVALIDATION = "default_validation";
 +public static final String KW_MINCOMPACTIONTHRESHOLD = 
"min_compaction_threshold";
 +public static final String KW_MAXCOMPACTIONTHRESHOLD = 
"max_compaction_threshold";
 +public static final String KW_REPLICATEONWRITE = "replicate_on_write";
 +
 +public static final String KW_COMPACTION_STRATEGY_CLASS = 
"compaction_strategy_class";
 +
 +// Maps CQL short names to the respective Cassandra comparator/validator 
class names
 +public static final Map comparators = new HashMap();
 +public static final Set keywords = new HashSet();
 +public static final Set obsoleteKeywords = new HashSet();
 +public static final Set allowedKeywords = new HashSet();
 +
 +public static final String COMPACTION_OPTIONS_PREFIX = 
"compaction_strategy_options";
 +public static final String COMPRESSION_PARAMETERS_PREFIX = 
"compression_parameters";
 +
 +static
 +{
 +comparators.put("ascii", "AsciiType");
 +comparators.put("bigint", "LongType");
 +comparators.put("blob", "BytesType");
 +comparators.put("boolean", "BooleanType");
 +comparators.put("counter", "CounterColumnType");
 +comparators.put("decimal", "DecimalType");
 +comparators.put("double", "DoubleType");
 +comparators.put("float", "FloatType");
 +comparators.put("int", "Int32Type");
 +comparators.put("text", "UTF8Type");
 +comparators.put("timestamp", "DateType");
 +comparators.put("uuid", "UUIDType");
 +comparators.put("varchar", "UTF8Type");
 +comparators.put("varint", "IntegerType");
 +
 +keywords.add(KW_COMPARATOR);
 +keywords.add(KW_COMMENT);
 +keywords.add(KW_REA

[1/2] git commit: merge from 1.0

2011-12-28 Thread jbellis
Updated Branches:
  refs/heads/trunk 488129d95 -> e1b199c05


merge from 1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e1b199c0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1b199c0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1b199c0

Branch: refs/heads/trunk
Commit: e1b199c054c51fa73b1d73cc4171c3e663d61dec
Parents: 488129d 02346a1
Author: Jonathan Ellis 
Authored: Wed Dec 28 09:52:48 2011 -0600
Committer: Jonathan Ellis 
Committed: Wed Dec 28 09:52:48 2011 -0600

--
 .../org/apache/cassandra/net/MessagingService.java |1 +
 .../apache/cassandra/service/StorageService.java   |7 ++-
 2 files changed, 7 insertions(+), 1 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1b199c0/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 2d393d6,1526fa3..7511293
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -513,44 -463,15 +513,45 @@@ public final class MessagingService imp
  subscribers.add(subcriber);
  }
  
 -public void waitForStreaming() throws InterruptedException
 +public void clearCallbacksUnsafe()
  {
 -streamExecutor_.shutdown();
 -streamExecutor_.awaitTermination(24, TimeUnit.HOURS);
 +callbacks.clear();
  }
  
 -public void clearCallbacksUnsafe()
 +public void waitForStreaming() throws InterruptedException
  {
 -callbacks.clear();
 +while (true)
 +{
 +boolean stillWaiting = false;
 +
 +streamExecutorsLock.lock();
 +try
 +{
 +for (DebuggableThreadPoolExecutor e : 
streamExecutors.values())
 +{
++e.shutdown()
 +if (!e.isTerminated())
 +{
 +stillWaiting = true;
 +break;
 +}
 +}
 +}
 +finally
 +{
 +streamExecutorsLock.unlock();
 +}
 +if (stillWaiting)
 +{
 +// Up to a second of unneeded delay is acceptable, relative 
to the amount of time a typical stream
 +// takes.
 +Thread.sleep(1000);
 +}
 +else
 +{
 +break;
 +}
 +}
  }
  
  /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1b199c0/src/java/org/apache/cassandra/service/StorageService.java
--