git commit: back up new sstables before creating a new View (which makes the new one eligible for compaction)

2013-04-04 Thread marcuse
Updated Branches:
  refs/heads/cassandra-1.2 698fc4427 - 8a422179c


back up new sstables before creating a new View (which makes the new one 
eligible for compaction)

patch by jbellis, reviewed by marcuse for CASSANDRA-5410


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

Branch: refs/heads/cassandra-1.2
Commit: 8a422179c0a0a50e4d4b2e9274cbaf7259e90b2a
Parents: 698fc44
Author: Marcus Eriksson marc...@spotify.com
Authored: Thu Apr 4 23:38:00 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Thu Apr 4 23:38:00 2013 +0200

--
 CHANGES.txt   |1 +
 src/java/org/apache/cassandra/db/DataTracker.java |   21 ++--
 2 files changed, 9 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a422179/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 047bf93..8bcde57 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -29,6 +29,7 @@
  * cqlsh: Print maps ordered by key, sort sets (CASSANDRA-5413)
  * Add null syntax support in CQL3 for inserts (CASSANDRA-3783)
  * Allow unauthenticated set_keyspace() calls (CASSANDRA-5423)
+ * Fix potential incremental backups race (CASSANDRA-5410)
 Merged from 1.1:
  * cli: Quote ks and cf names in schema output when needed (CASSANDRA-5052)
  * Fix bad default for min/max timestamp in SSTableMetadata (CASSANDRA-5372)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a422179/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index b6bcebd..adbe037 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -35,7 +35,6 @@ import org.apache.cassandra.notifications.INotification;
 import org.apache.cassandra.notifications.INotificationConsumer;
 import org.apache.cassandra.notifications.SSTableAddedNotification;
 import org.apache.cassandra.notifications.SSTableListChangedNotification;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.Interval;
 import org.apache.cassandra.utils.IntervalTree;
 
@@ -139,6 +138,10 @@ public class DataTracker
 return;
 }
 
+// back up before creating a new View (which makes the new one 
eligible for compaction)
+if (sstable != null)
+maybeIncrementallyBackup(sstable);
+
 View currentView, newView;
 do
 {
@@ -151,24 +154,16 @@ public class DataTracker
 {
 addNewSSTablesSize(Arrays.asList(sstable));
 notifyAdded(sstable);
-incrementallyBackup(sstable);
 }
 }
 
-public void incrementallyBackup(final SSTableReader sstable)
+public void maybeIncrementallyBackup(final SSTableReader sstable)
 {
 if (!DatabaseDescriptor.isIncrementalBackupsEnabled())
 return;
 
-Runnable runnable = new Runnable()
-{
-public void run()
-{
-File backupsDir = 
Directories.getBackupsDirectory(sstable.descriptor);
-sstable.createLinks(FileUtils.getCanonicalPath(backupsDir));
-}
-};
-StorageService.tasks.execute(runnable);
+File backupsDir = Directories.getBackupsDirectory(sstable.descriptor);
+sstable.createLinks(FileUtils.getCanonicalPath(backupsDir));
 }
 
 /**
@@ -239,7 +234,7 @@ public class DataTracker
 replace(Collections.SSTableReaderemptyList(), sstables);
 for (SSTableReader sstable : sstables)
 {
-incrementallyBackup(sstable);
+maybeIncrementallyBackup(sstable);
 notifyAdded(sstable);
 }
 }



[2/2] git commit: Merge branch 'cassandra-1.2' into trunk

2013-04-04 Thread marcuse
Merge branch 'cassandra-1.2' into trunk


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

Branch: refs/heads/trunk
Commit: e37ca25cf18489ee087965b3b388ad9332bf60c8
Parents: 3bef1cc 8a42217
Author: Marcus Eriksson marc...@spotify.com
Authored: Thu Apr 4 23:39:38 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Thu Apr 4 23:39:38 2013 +0200

--
 CHANGES.txt   |1 +
 src/java/org/apache/cassandra/db/DataTracker.java |   21 ++--
 2 files changed, 9 insertions(+), 13 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e37ca25c/src/java/org/apache/cassandra/db/DataTracker.java
--



[1/2] git commit: back up new sstables before creating a new View (which makes the new one eligible for compaction)

2013-04-04 Thread marcuse
Updated Branches:
  refs/heads/trunk 3bef1ccac - e37ca25cf


back up new sstables before creating a new View (which makes the new one 
eligible for compaction)

patch by jbellis, reviewed by marcuse for CASSANDRA-5410


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

Branch: refs/heads/trunk
Commit: 8a422179c0a0a50e4d4b2e9274cbaf7259e90b2a
Parents: 698fc44
Author: Marcus Eriksson marc...@spotify.com
Authored: Thu Apr 4 23:38:00 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Thu Apr 4 23:38:00 2013 +0200

--
 CHANGES.txt   |1 +
 src/java/org/apache/cassandra/db/DataTracker.java |   21 ++--
 2 files changed, 9 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a422179/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 047bf93..8bcde57 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -29,6 +29,7 @@
  * cqlsh: Print maps ordered by key, sort sets (CASSANDRA-5413)
  * Add null syntax support in CQL3 for inserts (CASSANDRA-3783)
  * Allow unauthenticated set_keyspace() calls (CASSANDRA-5423)
+ * Fix potential incremental backups race (CASSANDRA-5410)
 Merged from 1.1:
  * cli: Quote ks and cf names in schema output when needed (CASSANDRA-5052)
  * Fix bad default for min/max timestamp in SSTableMetadata (CASSANDRA-5372)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a422179/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index b6bcebd..adbe037 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -35,7 +35,6 @@ import org.apache.cassandra.notifications.INotification;
 import org.apache.cassandra.notifications.INotificationConsumer;
 import org.apache.cassandra.notifications.SSTableAddedNotification;
 import org.apache.cassandra.notifications.SSTableListChangedNotification;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.Interval;
 import org.apache.cassandra.utils.IntervalTree;
 
@@ -139,6 +138,10 @@ public class DataTracker
 return;
 }
 
+// back up before creating a new View (which makes the new one 
eligible for compaction)
+if (sstable != null)
+maybeIncrementallyBackup(sstable);
+
 View currentView, newView;
 do
 {
@@ -151,24 +154,16 @@ public class DataTracker
 {
 addNewSSTablesSize(Arrays.asList(sstable));
 notifyAdded(sstable);
-incrementallyBackup(sstable);
 }
 }
 
-public void incrementallyBackup(final SSTableReader sstable)
+public void maybeIncrementallyBackup(final SSTableReader sstable)
 {
 if (!DatabaseDescriptor.isIncrementalBackupsEnabled())
 return;
 
-Runnable runnable = new Runnable()
-{
-public void run()
-{
-File backupsDir = 
Directories.getBackupsDirectory(sstable.descriptor);
-sstable.createLinks(FileUtils.getCanonicalPath(backupsDir));
-}
-};
-StorageService.tasks.execute(runnable);
+File backupsDir = Directories.getBackupsDirectory(sstable.descriptor);
+sstable.createLinks(FileUtils.getCanonicalPath(backupsDir));
 }
 
 /**
@@ -239,7 +234,7 @@ public class DataTracker
 replace(Collections.SSTableReaderemptyList(), sstables);
 for (SSTableReader sstable : sstables)
 {
-incrementallyBackup(sstable);
+maybeIncrementallyBackup(sstable);
 notifyAdded(sstable);
 }
 }



git commit: fix build and test error, should not use QueryPath

2013-04-05 Thread marcuse
Updated Branches:
  refs/heads/trunk e37ca25cf - 6afbed371


fix build and test error, should not use QueryPath


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

Branch: refs/heads/trunk
Commit: 6afbed371c0d12a15a969e4f52ba670998bab282
Parents: e37ca25
Author: Marcus Eriksson marc...@spotify.com
Authored: Fri Apr 5 10:40:50 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Fri Apr 5 10:40:50 2013 +0200

--
 .../apache/cassandra/config/ColumnDefinition.java  |4 +++-
 test/unit/org/apache/cassandra/SchemaLoader.java   |2 +-
 .../db/index/PerRowSecondaryIndexTest.java |8 
 3 files changed, 8 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6afbed37/src/java/org/apache/cassandra/config/ColumnDefinition.java
--
diff --git a/src/java/org/apache/cassandra/config/ColumnDefinition.java 
b/src/java/org/apache/cassandra/config/ColumnDefinition.java
index fed095d..a777d1a 100644
--- a/src/java/org/apache/cassandra/config/ColumnDefinition.java
+++ b/src/java/org/apache/cassandra/config/ColumnDefinition.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.config;
 import java.nio.ByteBuffer;
 import java.util.*;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
 import com.google.common.collect.Maps;
 
@@ -97,7 +98,8 @@ public class ColumnDefinition
 this(name, validator, null, null, null, componentIndex, type);
 }
 
-private ColumnDefinition(ByteBuffer name, AbstractType? validator, 
IndexType index_type, MapString, String index_options, String index_name, 
Integer componentIndex, Type type)
+@VisibleForTesting
+public ColumnDefinition(ByteBuffer name, AbstractType? validator, 
IndexType index_type, MapString, String index_options, String index_name, 
Integer componentIndex, Type type)
 {
 assert name != null  validator != null;
 this.name = name;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6afbed37/test/unit/org/apache/cassandra/SchemaLoader.java
--
diff --git a/test/unit/org/apache/cassandra/SchemaLoader.java 
b/test/unit/org/apache/cassandra/SchemaLoader.java
index 55e5591..0035b1e 100644
--- a/test/unit/org/apache/cassandra/SchemaLoader.java
+++ b/test/unit/org/apache/cassandra/SchemaLoader.java
@@ -310,7 +310,7 @@ public class SchemaLoader
 IndexType.CUSTOM,
 indexOptions,
 ByteBufferUtil.bytesToHex(cName),
-null));
+null, ColumnDefinition.Type.REGULAR));
 }});
 }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6afbed37/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java 
b/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
index 3a4f947..4ca84cb 100644
--- a/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
+++ b/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
@@ -50,7 +50,7 @@ public class PerRowSecondaryIndexTest extends SchemaLoader
 // create a row then test that the configured index instance was able 
to read the row
 RowMutation rm;
 rm = new RowMutation(PerRowSecondaryIndex, 
ByteBufferUtil.bytes(k1));
-rm.add(new QueryPath(Indexed1, null, 
ByteBufferUtil.bytes(indexed)), ByteBufferUtil.bytes(foo), 1);
+rm.add(Indexed1, ByteBufferUtil.bytes(indexed), 
ByteBufferUtil.bytes(foo), 1);
 rm.apply();
 
 ColumnFamily indexedRow = TestIndex.LAST_INDEXED_ROW;
@@ -59,7 +59,7 @@ public class PerRowSecondaryIndexTest extends SchemaLoader
 
 // update the row and verify what was indexed
 rm = new RowMutation(PerRowSecondaryIndex, 
ByteBufferUtil.bytes(k1));
-rm.add(new QueryPath(Indexed1, null, 
ByteBufferUtil.bytes(indexed)), ByteBufferUtil.bytes(bar), 2);
+rm.add(Indexed1, ByteBufferUtil.bytes(indexed), 
ByteBufferUtil.bytes(bar), 2);
 rm.apply();
 
 indexedRow = TestIndex.LAST_INDEXED_ROW;
@@ -80,7 +80,7 @@ public class PerRowSecondaryIndexTest extends SchemaLoader
 public void index(ByteBuffer rowKey)
 {
 QueryFilter filter = 

git commit: Decide on a gcBefore before sending out TreeRequests

2013-04-09 Thread marcuse
Updated Branches:
  refs/heads/trunk 3e0b21c45 - efbdee237


Decide on a gcBefore before sending out TreeRequests

patch by marcuse, reviewed by yukim, for CASSANDRA-4932


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

Branch: refs/heads/trunk
Commit: efbdee23705fed6be49a2fb20a79f18c98ff
Parents: 3e0b21c
Author: Marcus Eriksson marc...@spotify.com
Authored: Tue Apr 9 08:08:32 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Tue Apr 9 08:08:32 2013 +0200

--
 CHANGES.txt|3 +-
 .../cassandra/db/compaction/CompactionManager.java |5 ++-
 .../cassandra/service/ActiveRepairService.java |   27 ++
 .../data/serialization/2.0/service.TreeRequest.bin |  Bin 121 - 129 bytes
 .../serialization/2.0/service.TreeResponse.bin |  Bin 930 - 946 bytes
 .../compaction/LeveledCompactionStrategyTest.java  |3 +-
 .../service/AntiEntropyServiceTestAbstract.java|3 +-
 .../cassandra/service/SerializationsTest.java  |2 +-
 8 files changed, 30 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/efbdee23/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index bb00642..b322425 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -28,7 +28,8 @@
  * remove row-level bloom filters (CASSANDRA-4885)
  * Change Kernel Page Cache skipping into row preheating (disabled by default)
(CASSANDRA-4937)
-
+ * Improve repair by deciding on a gcBefore before sending
+   out TreeRequests (CASSANDRA-4932)
 
 1.2.4
  * Ensure that PerRowSecondaryIndex updates see the most recent values

http://git-wip-us.apache.org/repos/asf/cassandra/blob/efbdee23/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 64cf253..b5aefee 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -618,7 +618,10 @@ public class CompactionManager implements 
CompactionManagerMBean
 // we don't mark validating sstables as compacting in DataTracker, 
so we have to mark them referenced
 // instead so they won't be cleaned up if they do get compacted 
during the validation
 sstables = cfs.markCurrentSSTablesReferenced();
-gcBefore = getDefaultGcBefore(cfs);
+if (validator.request.gcBefore  0)
+gcBefore = validator.request.gcBefore;
+else
+gcBefore = getDefaultGcBefore(cfs);
 }
 
 CompactionIterable ci = new ValidationCompactionIterable(cfs, 
sstables, validator.request.range, gcBefore);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/efbdee23/src/java/org/apache/cassandra/service/ActiveRepairService.java
--
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java 
b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index f103771..f7a5fa4 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -442,7 +442,7 @@ public class ActiveRepairService
 public void doVerb(MessageInTreeRequest message, int id)
 {
 TreeRequest remotereq = message.payload;
-TreeRequest request = new TreeRequest(remotereq.sessionid, 
message.from, remotereq.range, remotereq.cf);
+TreeRequest request = new TreeRequest(remotereq.sessionid, 
message.from, remotereq.range, remotereq.gcBefore, remotereq.cf);
 
 // trigger read-only compaction
 ColumnFamilyStore store = 
Table.open(request.cf.left).getColumnFamilyStore(request.cf.right);
@@ -462,7 +462,7 @@ public class ActiveRepairService
 {
 // deserialize the remote tree, and register it
 Validator response = message.payload;
-TreeRequest request = new TreeRequest(response.request.sessionid, 
message.from, response.request.range, response.request.cf);
+TreeRequest request = new TreeRequest(response.request.sessionid, 
message.from, response.request.range, response.request.gcBefore, 
response.request.cf);
 ActiveRepairService.instance.rendezvous(request, response.tree);
 }
 }
@@ -489,20 +489,22

git commit: Add an official way to disable autocompaction.

2013-04-09 Thread marcuse
Updated Branches:
  refs/heads/trunk efbdee237 - ebefb77c6


Add an official way to disable autocompaction.

patch by marcuse, reviewed by pcmanus for CASSANDRA-5074


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

Branch: refs/heads/trunk
Commit: ebefb77c6e8a5046a8c1b1bb0edd258aaf0ad8b7
Parents: efbdee2
Author: Marcus Eriksson marc...@spotify.com
Authored: Tue Apr 9 18:28:11 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Tue Apr 9 18:28:11 2013 +0200

--
 CHANGES.txt|1 +
 NEWS.txt   |3 +
 src/java/org/apache/cassandra/cli/CliClient.java   |8 +++-
 .../org/apache/cassandra/config/CFMetaData.java|6 ++-
 .../apache/cassandra/cql/AlterTableStatement.java  |8 ++-
 .../cassandra/cql/CreateColumnFamilyStatement.java |   10 +++-
 src/java/org/apache/cassandra/cql3/CFPropDefs.java |8 ++-
 .../apache/cassandra/db/CollationController.java   |2 +-
 .../org/apache/cassandra/db/ColumnFamilyStore.java |   40 +++---
 .../cassandra/db/ColumnFamilyStoreMBean.java   |5 +--
 .../db/compaction/AbstractCompactionStrategy.java  |   34 
 .../cassandra/db/compaction/CompactionManager.java |6 ++
 .../db/compaction/LeveledCompactionStrategy.java   |2 +-
 .../compaction/SizeTieredCompactionStrategy.java   |   11 ++---
 .../apache/cassandra/service/StorageService.java   |   18 +++
 .../cassandra/service/StorageServiceMBean.java |4 ++
 src/java/org/apache/cassandra/tools/NodeCmd.java   |   11 -
 src/java/org/apache/cassandra/tools/NodeProbe.java |   10 
 .../org/apache/cassandra/tools/NodeToolHelp.yaml   |6 ++
 .../cassandra/db/compaction/TTLExpiryTest.java |6 +--
 20 files changed, 163 insertions(+), 36 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ebefb77c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b322425..18c267a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -30,6 +30,7 @@
(CASSANDRA-4937)
  * Improve repair by deciding on a gcBefore before sending
out TreeRequests (CASSANDRA-4932)
+ * Add an official way to disable compactions (CASSANDRA-5074)
 
 1.2.4
  * Ensure that PerRowSecondaryIndex updates see the most recent values

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ebefb77c/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 3c5e07b..1c68de6 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -30,6 +30,9 @@ Operations
 --
 - Major compactions, cleanup, scrub, and upgradesstables will interrupt 
   any in-progress compactions (but not repair validations) when invoked.
+- Disabling autocompactions by setting min/max compaction threshold to 0
+  has been deprecated, instead, use the nodetool commands 
'disableautocompaction'
+  and 'enableautocompaction' or set the compaction strategy option enabled 
= false
 
 
 1.2.4

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ebefb77c/src/java/org/apache/cassandra/cli/CliClient.java
--
diff --git a/src/java/org/apache/cassandra/cli/CliClient.java 
b/src/java/org/apache/cassandra/cli/CliClient.java
index 9347b59..7ff9048 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -1311,9 +1311,15 @@ public class CliClient
 
cfDef.setDefault_validation_class(CliUtils.unescapeSQLString(mValue));
 break;
 case MIN_COMPACTION_THRESHOLD:
-cfDef.setMin_compaction_threshold(Integer.parseInt(mValue));
+int threshold = Integer.parseInt(mValue);
+if (threshold = 0)
+throw new RuntimeException(Disabling compaction by 
setting min/max compaction thresholds to 0 has been deprecated, set 
compaction_strategy_options={'enabled':false} instead);
+cfDef.setMin_compaction_threshold(threshold);
 break;
 case MAX_COMPACTION_THRESHOLD:
+threshold = Integer.parseInt(mValue);
+if (threshold = 0)
+throw new RuntimeException(Disabling compaction by 
setting min/max compaction thresholds to 0 has been deprecated, set 
compaction_strategy_options={'enabled':false} instead);
 cfDef.setMax_compaction_threshold(Integer.parseInt(mValue));
 break;
 case REPLICATE_ON_WRITE:

http

[1/3] git commit: Avoid NPE when listing saved caches directory

2014-07-31 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 40d7bdf80 - 63407db7e


Avoid NPE when listing saved caches directory

Patch by marcuse; reviewed by yukim for CASSANDRA-7632


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

Branch: refs/heads/cassandra-2.1
Commit: 1a0aaf04986155eae45b2685d234b928866b681c
Parents: 892bf55
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 07:53:33 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 07:53:33 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index a6fc837..1fcb556 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
  * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
  * Backport CASSANDRA-6747 (CASSANDRA-7560)
  * Track max/min timestamps for range tombstones (CASSANDRA-7647)
+ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 Merged from 1.2:
  * Set correct stream ID on responses when non-Exception Throwables
are thrown while handling native protocol messages (CASSANDRA-7470)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 6554eb3..64234e2 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -261,19 +261,24 @@ public class AutoSavingCacheK extends CacheKey, V 
extends InstrumentingCacheK
 {
 File savedCachesDir = new 
File(DatabaseDescriptor.getSavedCachesLocation());
 assert savedCachesDir.exists()  savedCachesDir.isDirectory();
-
-for (File file : savedCachesDir.listFiles())
+File[] files = savedCachesDir.listFiles();
+if (files != null)
 {
-if (!file.isFile())
-continue; // someone's been messing with our directory.  
naughty!
-
-if (file.getName().endsWith(cacheType.toString())
-|| file.getName().endsWith(String.format(%s-%s.db, 
cacheType.toString(), CURRENT_VERSION)))
+for (File file : files)
 {
-if (!file.delete())
-logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+if (!file.isFile())
+continue; // someone's been messing with our 
directory.  naughty!
+
+if (file.getName().endsWith(cacheType.toString())
+|| 
file.getName().endsWith(String.format(%s-%s.db, cacheType.toString(), 
CURRENT_VERSION)))
+{
+if (!file.delete())
+logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+}
 }
 }
+else
+logger.warn(Could not list files in {}, savedCachesDir);
 }
 }
 



[1/2] git commit: Avoid NPE when listing saved caches directory

2014-07-31 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 cde566629 - ef099c317


Avoid NPE when listing saved caches directory

Patch by marcuse; reviewed by yukim for CASSANDRA-7632


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

Branch: refs/heads/cassandra-2.1.0
Commit: 1a0aaf04986155eae45b2685d234b928866b681c
Parents: 892bf55
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 07:53:33 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 07:53:33 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index a6fc837..1fcb556 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
  * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
  * Backport CASSANDRA-6747 (CASSANDRA-7560)
  * Track max/min timestamps for range tombstones (CASSANDRA-7647)
+ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 Merged from 1.2:
  * Set correct stream ID on responses when non-Exception Throwables
are thrown while handling native protocol messages (CASSANDRA-7470)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 6554eb3..64234e2 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -261,19 +261,24 @@ public class AutoSavingCacheK extends CacheKey, V 
extends InstrumentingCacheK
 {
 File savedCachesDir = new 
File(DatabaseDescriptor.getSavedCachesLocation());
 assert savedCachesDir.exists()  savedCachesDir.isDirectory();
-
-for (File file : savedCachesDir.listFiles())
+File[] files = savedCachesDir.listFiles();
+if (files != null)
 {
-if (!file.isFile())
-continue; // someone's been messing with our directory.  
naughty!
-
-if (file.getName().endsWith(cacheType.toString())
-|| file.getName().endsWith(String.format(%s-%s.db, 
cacheType.toString(), CURRENT_VERSION)))
+for (File file : files)
 {
-if (!file.delete())
-logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+if (!file.isFile())
+continue; // someone's been messing with our 
directory.  naughty!
+
+if (file.getName().endsWith(cacheType.toString())
+|| 
file.getName().endsWith(String.format(%s-%s.db, cacheType.toString(), 
CURRENT_VERSION)))
+{
+if (!file.delete())
+logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+}
 }
 }
+else
+logger.warn(Could not list files in {}, savedCachesDir);
 }
 }
 



[2/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/ef099c31
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef099c31
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef099c31

Branch: refs/heads/cassandra-2.1
Commit: ef099c317a59ac3161713d1cf6f2b113129bba09
Parents: cde5666 1a0aaf0
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:03 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:03 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/CHANGES.txt
--
diff --cc CHANGES.txt
index 3b2f35c,1fcb556..0ce0eaa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,44 -1,10 +1,45 @@@
 -2.0.10
 +2.1.0-final
   * Remove shuffle and taketoken (CASSANDRA-7601)
 - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 - * Always merge ranges owned by a single node (CASSANDRA-6930)
 - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Clean up Windows batch scripts (CASSANDRA-7619)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 + * Give read access to system.schema_usertypes to all authenticated users
 +   (CASSANDRA-7578)
 + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580)
 + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572)
 + * Fix NPE when dropping index from non-existent keyspace, AssertionError when
 +   dropping non-existent index with IF EXISTS (CASSANDRA-7590)
 + * Fix sstablelevelresetter hang (CASSANDRA-7614)
 + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603)
 + * Use keyspace updated schema change message for UDT changes in v1 and
 +   v2 protocols (CASSANDRA-7617)
 + * Fix tracing of range slices and secondary index lookups that are local
 +   to the coordinator (CASSANDRA-7599)
 + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587)
 + * Don't swap max/min col names when mutating sstable metadata 
(CASSANDRA-7596)
 + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625)
 + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626)
 + * Fix tracing of concurrent range slices and 2ary index queries 
(CASSANDRA-7626)
 +Merged from 2.0:
   * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Track max/min timestamps for range tombstones (CASSANDRA-7647)
++ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 +
 +
 +2.1.0-rc4
 + * Fix word count hadoop example (CASSANDRA-7200)
 + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 +   (CASSANDRA-7551)
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 + * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 + * Fix configuration error message when running nodetool ring (CASSANDRA-7508)
 + * Support conditional updates, tuple type, and the v3 protocol in cqlsh 
(CASSANDRA-7509)
 + * Handle queries on multiple secondary index types (CASSANDRA-7525)
 + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 +Merged from 2.0:
   * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--



[3/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 63407db7e946bbf5aa796367375fd9cb46ba36c4
Parents: 40d7bdf ef099c3
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:30 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:30 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


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



[2/2] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/ef099c31
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef099c31
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef099c31

Branch: refs/heads/cassandra-2.1.0
Commit: ef099c317a59ac3161713d1cf6f2b113129bba09
Parents: cde5666 1a0aaf0
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:03 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:03 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/CHANGES.txt
--
diff --cc CHANGES.txt
index 3b2f35c,1fcb556..0ce0eaa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,44 -1,10 +1,45 @@@
 -2.0.10
 +2.1.0-final
   * Remove shuffle and taketoken (CASSANDRA-7601)
 - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 - * Always merge ranges owned by a single node (CASSANDRA-6930)
 - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Clean up Windows batch scripts (CASSANDRA-7619)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 + * Give read access to system.schema_usertypes to all authenticated users
 +   (CASSANDRA-7578)
 + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580)
 + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572)
 + * Fix NPE when dropping index from non-existent keyspace, AssertionError when
 +   dropping non-existent index with IF EXISTS (CASSANDRA-7590)
 + * Fix sstablelevelresetter hang (CASSANDRA-7614)
 + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603)
 + * Use keyspace updated schema change message for UDT changes in v1 and
 +   v2 protocols (CASSANDRA-7617)
 + * Fix tracing of range slices and secondary index lookups that are local
 +   to the coordinator (CASSANDRA-7599)
 + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587)
 + * Don't swap max/min col names when mutating sstable metadata 
(CASSANDRA-7596)
 + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625)
 + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626)
 + * Fix tracing of concurrent range slices and 2ary index queries 
(CASSANDRA-7626)
 +Merged from 2.0:
   * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Track max/min timestamps for range tombstones (CASSANDRA-7647)
++ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 +
 +
 +2.1.0-rc4
 + * Fix word count hadoop example (CASSANDRA-7200)
 + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 +   (CASSANDRA-7551)
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 + * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 + * Fix configuration error message when running nodetool ring (CASSANDRA-7508)
 + * Support conditional updates, tuple type, and the v3 protocol in cqlsh 
(CASSANDRA-7509)
 + * Handle queries on multiple secondary index types (CASSANDRA-7525)
 + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 +Merged from 2.0:
   * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--



[4/4] git commit: Merge branch 'cassandra-2.1' into trunk

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 90ade6b45921c1a102cf97fa3fea7fca8462a085
Parents: a88c7e1 63407db
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:42 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:42 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


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



[1/4] git commit: Avoid NPE when listing saved caches directory

2014-07-31 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk a88c7e10f - 90ade6b45


Avoid NPE when listing saved caches directory

Patch by marcuse; reviewed by yukim for CASSANDRA-7632


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

Branch: refs/heads/trunk
Commit: 1a0aaf04986155eae45b2685d234b928866b681c
Parents: 892bf55
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 07:53:33 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 07:53:33 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index a6fc837..1fcb556 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
  * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
  * Backport CASSANDRA-6747 (CASSANDRA-7560)
  * Track max/min timestamps for range tombstones (CASSANDRA-7647)
+ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 Merged from 1.2:
  * Set correct stream ID on responses when non-Exception Throwables
are thrown while handling native protocol messages (CASSANDRA-7470)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a0aaf04/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 6554eb3..64234e2 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -261,19 +261,24 @@ public class AutoSavingCacheK extends CacheKey, V 
extends InstrumentingCacheK
 {
 File savedCachesDir = new 
File(DatabaseDescriptor.getSavedCachesLocation());
 assert savedCachesDir.exists()  savedCachesDir.isDirectory();
-
-for (File file : savedCachesDir.listFiles())
+File[] files = savedCachesDir.listFiles();
+if (files != null)
 {
-if (!file.isFile())
-continue; // someone's been messing with our directory.  
naughty!
-
-if (file.getName().endsWith(cacheType.toString())
-|| file.getName().endsWith(String.format(%s-%s.db, 
cacheType.toString(), CURRENT_VERSION)))
+for (File file : files)
 {
-if (!file.delete())
-logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+if (!file.isFile())
+continue; // someone's been messing with our 
directory.  naughty!
+
+if (file.getName().endsWith(cacheType.toString())
+|| 
file.getName().endsWith(String.format(%s-%s.db, cacheType.toString(), 
CURRENT_VERSION)))
+{
+if (!file.delete())
+logger.warn(Failed to delete {}, 
file.getAbsolutePath());
+}
 }
 }
+else
+logger.warn(Could not list files in {}, savedCachesDir);
 }
 }
 



[3/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 63407db7e946bbf5aa796367375fd9cb46ba36c4
Parents: 40d7bdf ef099c3
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:30 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:30 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


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



[2/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-31 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/ef099c31
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef099c31
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef099c31

Branch: refs/heads/trunk
Commit: ef099c317a59ac3161713d1cf6f2b113129bba09
Parents: cde5666 1a0aaf0
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Jul 31 08:00:03 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Jul 31 08:00:03 2014 +0200

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 23 
 2 files changed, 15 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/CHANGES.txt
--
diff --cc CHANGES.txt
index 3b2f35c,1fcb556..0ce0eaa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,44 -1,10 +1,45 @@@
 -2.0.10
 +2.1.0-final
   * Remove shuffle and taketoken (CASSANDRA-7601)
 - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 - * Always merge ranges owned by a single node (CASSANDRA-6930)
 - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Clean up Windows batch scripts (CASSANDRA-7619)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 + * Give read access to system.schema_usertypes to all authenticated users
 +   (CASSANDRA-7578)
 + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580)
 + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572)
 + * Fix NPE when dropping index from non-existent keyspace, AssertionError when
 +   dropping non-existent index with IF EXISTS (CASSANDRA-7590)
 + * Fix sstablelevelresetter hang (CASSANDRA-7614)
 + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603)
 + * Use keyspace updated schema change message for UDT changes in v1 and
 +   v2 protocols (CASSANDRA-7617)
 + * Fix tracing of range slices and secondary index lookups that are local
 +   to the coordinator (CASSANDRA-7599)
 + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587)
 + * Don't swap max/min col names when mutating sstable metadata 
(CASSANDRA-7596)
 + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625)
 + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626)
 + * Fix tracing of concurrent range slices and 2ary index queries 
(CASSANDRA-7626)
 +Merged from 2.0:
   * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Track max/min timestamps for range tombstones (CASSANDRA-7647)
++ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
 +
 +
 +2.1.0-rc4
 + * Fix word count hadoop example (CASSANDRA-7200)
 + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 +   (CASSANDRA-7551)
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 + * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 + * Fix configuration error message when running nodetool ring (CASSANDRA-7508)
 + * Support conditional updates, tuple type, and the v3 protocol in cqlsh 
(CASSANDRA-7509)
 + * Handle queries on multiple secondary index types (CASSANDRA-7525)
 + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 +Merged from 2.0:
   * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef099c31/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--



[1/2] git commit: Throw EOFException if we run out of chunks in compressed file

2014-08-20 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 af188ed36 - 39b81967f


Throw EOFException if we run out of chunks in compressed file

Patch by marcuse; reviewed by yukim for CASSANDRA-7664.


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

Branch: refs/heads/cassandra-2.1.0
Commit: 76adf0e12ed91ee7c75164872202bff29a2ad7f4
Parents: ecf1bae
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 19 11:45:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:21:43 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 304d9bf..c8f7591 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.10
+ * Throw EOFException if we run out of chunks in compressed datafile
+   (CASSANDRA-7664)
  * Throw InvalidRequestException when queries contain relations on entire
collection columns (CASSANDRA-7506)
  * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
--
diff --git 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index 698c2fe..ef019c2 100644
--- 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -58,6 +58,8 @@ public class CompressedInputStream extends InputStream
 // raw checksum bytes
 private final byte[] checksumBytes = new byte[4];
 
+private static final byte[] POISON_PILL = new byte[0];
+
 private long totalCompressedBytesRead;
 private final boolean hasPostCompressionAdlerChecksums;
 
@@ -83,7 +85,10 @@ public class CompressedInputStream extends InputStream
 {
 try
 {
-decompress(dataBuffer.take());
+byte[] compressedWithCRC = dataBuffer.take();
+if (compressedWithCRC == POISON_PILL)
+throw new EOFException(No chunk available);
+decompress(compressedWithCRC);
 }
 catch (InterruptedException e)
 {
@@ -162,7 +167,15 @@ public class CompressedInputStream extends InputStream
 
 int bufferRead = 0;
 while (bufferRead  readLength)
-bufferRead += source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+{
+int r = source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+if (r  0)
+{
+dataBuffer.put(POISON_PILL);
+return; // throw exception where we consume dataBuffer
+}
+bufferRead += r;
+}
 dataBuffer.put(compressedWithCRC);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
index 027c84c..532b506 100644
--- 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
+++ 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.streaming.compress;
 
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
+import java.io.EOFException;
 import java.io.File;
 import java.io.RandomAccessFile;
 import java.util.*;
@@ -42,18 +43,23 @@ public class CompressedInputStreamTest
 @Test
 public void testCompressedRead() throws Exception
 {
-testCompressedReadWith(new long[]{0L});
-testCompressedReadWith(new long[]{1L});
-testCompressedReadWith(new long[]{100L});
+testCompressedReadWith(new long[]{0L

[1/4] git commit: Throw EOFException if we run out of chunks in compressed file

2014-08-20 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 504d3c515 - 060c7961d


Throw EOFException if we run out of chunks in compressed file

Patch by marcuse; reviewed by yukim for CASSANDRA-7664.


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

Branch: refs/heads/trunk
Commit: 76adf0e12ed91ee7c75164872202bff29a2ad7f4
Parents: ecf1bae
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 19 11:45:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:21:43 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 304d9bf..c8f7591 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.10
+ * Throw EOFException if we run out of chunks in compressed datafile
+   (CASSANDRA-7664)
  * Throw InvalidRequestException when queries contain relations on entire
collection columns (CASSANDRA-7506)
  * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
--
diff --git 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index 698c2fe..ef019c2 100644
--- 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -58,6 +58,8 @@ public class CompressedInputStream extends InputStream
 // raw checksum bytes
 private final byte[] checksumBytes = new byte[4];
 
+private static final byte[] POISON_PILL = new byte[0];
+
 private long totalCompressedBytesRead;
 private final boolean hasPostCompressionAdlerChecksums;
 
@@ -83,7 +85,10 @@ public class CompressedInputStream extends InputStream
 {
 try
 {
-decompress(dataBuffer.take());
+byte[] compressedWithCRC = dataBuffer.take();
+if (compressedWithCRC == POISON_PILL)
+throw new EOFException(No chunk available);
+decompress(compressedWithCRC);
 }
 catch (InterruptedException e)
 {
@@ -162,7 +167,15 @@ public class CompressedInputStream extends InputStream
 
 int bufferRead = 0;
 while (bufferRead  readLength)
-bufferRead += source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+{
+int r = source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+if (r  0)
+{
+dataBuffer.put(POISON_PILL);
+return; // throw exception where we consume dataBuffer
+}
+bufferRead += r;
+}
 dataBuffer.put(compressedWithCRC);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
index 027c84c..532b506 100644
--- 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
+++ 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.streaming.compress;
 
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
+import java.io.EOFException;
 import java.io.File;
 import java.io.RandomAccessFile;
 import java.util.*;
@@ -42,18 +43,23 @@ public class CompressedInputStreamTest
 @Test
 public void testCompressedRead() throws Exception
 {
-testCompressedReadWith(new long[]{0L});
-testCompressedReadWith(new long[]{1L});
-testCompressedReadWith(new long[]{100L});
+testCompressedReadWith(new long[]{0L}, false

[4/4] git commit: Merge branch 'cassandra-2.1' into trunk

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 060c7961d0a8374f53312a1cf9ea4b78a0e47b9c
Parents: 504d3c5 bd692ba
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:59 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:59 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


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



[1/3] git commit: Throw EOFException if we run out of chunks in compressed file

2014-08-20 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 558bb7246 - bd692ba74


Throw EOFException if we run out of chunks in compressed file

Patch by marcuse; reviewed by yukim for CASSANDRA-7664.


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

Branch: refs/heads/cassandra-2.1
Commit: 76adf0e12ed91ee7c75164872202bff29a2ad7f4
Parents: ecf1bae
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 19 11:45:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:21:43 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 304d9bf..c8f7591 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.10
+ * Throw EOFException if we run out of chunks in compressed datafile
+   (CASSANDRA-7664)
  * Throw InvalidRequestException when queries contain relations on entire
collection columns (CASSANDRA-7506)
  * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
--
diff --git 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index 698c2fe..ef019c2 100644
--- 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -58,6 +58,8 @@ public class CompressedInputStream extends InputStream
 // raw checksum bytes
 private final byte[] checksumBytes = new byte[4];
 
+private static final byte[] POISON_PILL = new byte[0];
+
 private long totalCompressedBytesRead;
 private final boolean hasPostCompressionAdlerChecksums;
 
@@ -83,7 +85,10 @@ public class CompressedInputStream extends InputStream
 {
 try
 {
-decompress(dataBuffer.take());
+byte[] compressedWithCRC = dataBuffer.take();
+if (compressedWithCRC == POISON_PILL)
+throw new EOFException(No chunk available);
+decompress(compressedWithCRC);
 }
 catch (InterruptedException e)
 {
@@ -162,7 +167,15 @@ public class CompressedInputStream extends InputStream
 
 int bufferRead = 0;
 while (bufferRead  readLength)
-bufferRead += source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+{
+int r = source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+if (r  0)
+{
+dataBuffer.put(POISON_PILL);
+return; // throw exception where we consume dataBuffer
+}
+bufferRead += r;
+}
 dataBuffer.put(compressedWithCRC);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
index 027c84c..532b506 100644
--- 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
+++ 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.streaming.compress;
 
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
+import java.io.EOFException;
 import java.io.File;
 import java.io.RandomAccessFile;
 import java.util.*;
@@ -42,18 +43,23 @@ public class CompressedInputStreamTest
 @Test
 public void testCompressedRead() throws Exception
 {
-testCompressedReadWith(new long[]{0L});
-testCompressedReadWith(new long[]{1L});
-testCompressedReadWith(new long[]{100L});
+testCompressedReadWith(new long[]{0L

[2/2] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/39b81967
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39b81967
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39b81967

Branch: refs/heads/cassandra-2.1.0
Commit: 39b81967f18e1210a64fa98a1b84037235a09b9c
Parents: af188ed 76adf0e
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:16 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:16 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/CHANGES.txt
--
diff --cc CHANGES.txt
index 183d849,c8f7591..873eb78
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,20 +1,39 @@@
 -2.0.10
 +2.1.0
 + * (cqlsh) Fix COPY FROM handling of null/empty primary key
 +   values (CASSANDRA-7792)
 + * Fix ordering of static cells (CASSANDRA-7763)
 +Merged from 2.0:
+  * Throw EOFException if we run out of chunks in compressed datafile
+(CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 +Merged from 1.2:
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--



[3/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: bd692ba74499428b0ee5c6defbb86966f3b30c12
Parents: 558bb72 39b8196
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:28 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


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



[2/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/39b81967
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39b81967
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39b81967

Branch: refs/heads/cassandra-2.1
Commit: 39b81967f18e1210a64fa98a1b84037235a09b9c
Parents: af188ed 76adf0e
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:16 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:16 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/CHANGES.txt
--
diff --cc CHANGES.txt
index 183d849,c8f7591..873eb78
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,20 +1,39 @@@
 -2.0.10
 +2.1.0
 + * (cqlsh) Fix COPY FROM handling of null/empty primary key
 +   values (CASSANDRA-7792)
 + * Fix ordering of static cells (CASSANDRA-7763)
 +Merged from 2.0:
+  * Throw EOFException if we run out of chunks in compressed datafile
+(CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 +Merged from 1.2:
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--



[3/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: bd692ba74499428b0ee5c6defbb86966f3b30c12
Parents: 558bb72 39b8196
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:28 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


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



git commit: Throw EOFException if we run out of chunks in compressed file

2014-08-20 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 ecf1baebb - 76adf0e12


Throw EOFException if we run out of chunks in compressed file

Patch by marcuse; reviewed by yukim for CASSANDRA-7664.


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

Branch: refs/heads/cassandra-2.0
Commit: 76adf0e12ed91ee7c75164872202bff29a2ad7f4
Parents: ecf1bae
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 19 11:45:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:21:43 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 304d9bf..c8f7591 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.10
+ * Throw EOFException if we run out of chunks in compressed datafile
+   (CASSANDRA-7664)
  * Throw InvalidRequestException when queries contain relations on entire
collection columns (CASSANDRA-7506)
  * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
--
diff --git 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index 698c2fe..ef019c2 100644
--- 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -58,6 +58,8 @@ public class CompressedInputStream extends InputStream
 // raw checksum bytes
 private final byte[] checksumBytes = new byte[4];
 
+private static final byte[] POISON_PILL = new byte[0];
+
 private long totalCompressedBytesRead;
 private final boolean hasPostCompressionAdlerChecksums;
 
@@ -83,7 +85,10 @@ public class CompressedInputStream extends InputStream
 {
 try
 {
-decompress(dataBuffer.take());
+byte[] compressedWithCRC = dataBuffer.take();
+if (compressedWithCRC == POISON_PILL)
+throw new EOFException(No chunk available);
+decompress(compressedWithCRC);
 }
 catch (InterruptedException e)
 {
@@ -162,7 +167,15 @@ public class CompressedInputStream extends InputStream
 
 int bufferRead = 0;
 while (bufferRead  readLength)
-bufferRead += source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+{
+int r = source.read(compressedWithCRC, bufferRead, 
readLength - bufferRead);
+if (r  0)
+{
+dataBuffer.put(POISON_PILL);
+return; // throw exception where we consume dataBuffer
+}
+bufferRead += r;
+}
 dataBuffer.put(compressedWithCRC);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/76adf0e1/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
index 027c84c..532b506 100644
--- 
a/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
+++ 
b/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.streaming.compress;
 
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
+import java.io.EOFException;
 import java.io.File;
 import java.io.RandomAccessFile;
 import java.util.*;
@@ -42,18 +43,23 @@ public class CompressedInputStreamTest
 @Test
 public void testCompressedRead() throws Exception
 {
-testCompressedReadWith(new long[]{0L});
-testCompressedReadWith(new long[]{1L});
-testCompressedReadWith(new long[]{100L});
+testCompressedReadWith(new long[]{0L

[2/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-20 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/39b81967
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39b81967
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39b81967

Branch: refs/heads/trunk
Commit: 39b81967f18e1210a64fa98a1b84037235a09b9c
Parents: af188ed 76adf0e
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 20 08:25:16 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 08:25:16 2014 +0200

--
 CHANGES.txt |  2 ++
 .../compress/CompressedInputStream.java | 17 +--
 .../compress/CompressedInputStreamTest.java | 23 +++-
 3 files changed, 35 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/CHANGES.txt
--
diff --cc CHANGES.txt
index 183d849,c8f7591..873eb78
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,20 +1,39 @@@
 -2.0.10
 +2.1.0
 + * (cqlsh) Fix COPY FROM handling of null/empty primary key
 +   values (CASSANDRA-7792)
 + * Fix ordering of static cells (CASSANDRA-7763)
 +Merged from 2.0:
+  * Throw EOFException if we run out of chunks in compressed datafile
+(CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 +Merged from 1.2:
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/39b81967/test/unit/org/apache/cassandra/streaming/compress/CompressedInputStreamTest.java
--



git commit: Anticompact sstables as groups

2014-08-20 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 060c7961d - 37f517593


Anticompact sstables as groups

Patch by Russell Spitzer; reviewed by marcuse for CASSANDRA-6851


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

Branch: refs/heads/trunk
Commit: 37f5175935a37ce2c005335c2f486efb827b6eba
Parents: 060c796
Author: Russell Spitzer russell.spit...@gmail.com
Authored: Wed Aug 20 13:27:52 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 20 13:27:52 2014 +0200

--
 CHANGES.txt |   1 +
 .../compaction/AbstractCompactionStrategy.java  |  31 
 .../db/compaction/CompactionManager.java| 174 +--
 .../compaction/LeveledCompactionStrategy.java   |  57 +-
 .../db/compaction/AntiCompactionTest.java   |  96 +-
 .../LeveledCompactionStrategyTest.java  |  61 ++-
 6 files changed, 358 insertions(+), 62 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/37f51759/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d1dedbf..80c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0
+ * Do anticompaction in groups (CASSANDRA-6851)
  * Verify that UDF class methods are static (CASSANDRA-7781)
  * Support pure user-defined functions (CASSANDRA-7395)
  * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/37f51759/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java 
b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
index 1b7786e..28ab84e 100644
--- 
a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
+++ 
b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
@@ -399,4 +399,35 @@ public abstract class AbstractCompactionStrategy
 
 return optionValue == null || Boolean.parseBoolean(optionValue);
 }
+
+
+/**
+ * Method for grouping similar SSTables together, This will be used by
+ * anti-compaction to determine which SSTables should be anitcompacted
+ * as a group. If a given compaction strategy creates sstables which
+ * cannot be merged due to some constraint it must override this method.
+ */
+public CollectionCollectionSSTableReader 
groupSSTablesForAntiCompaction(CollectionSSTableReader sstablesToGroup)
+{
+int groupSize = 2;
+ListSSTableReader sortedSSTablesToGroup = new 
ArrayList(sstablesToGroup);
+Collections.sort(sortedSSTablesToGroup, 
SSTableReader.sstableComparator);
+
+CollectionCollectionSSTableReader groupedSSTables = new 
ArrayList();
+CollectionSSTableReader currGroup = new ArrayList();
+
+for (SSTableReader sstable : sortedSSTablesToGroup)
+{
+currGroup.add(sstable);
+if (currGroup.size() == groupSize)
+{
+groupedSSTables.add(currGroup);
+currGroup = new ArrayList();
+}
+}
+
+if (currGroup.size() != 0)
+groupedSSTables.add(currGroup);
+return groupedSSTables;
+}
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/37f51759/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index e578ddf..5af7139 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -52,6 +52,7 @@ import com.google.common.collect.Multimap;
 import com.google.common.collect.Multiset;
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.RateLimiter;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -397,7 +398,7 @@ public class CompactionManager implements 
CompactionManagerMBean
   CollectionSSTableReader 
validatedForRepair,
   long repairedAt) throws 
InterruptedException, ExecutionException, IOException
 {
-logger.info(Starting anticompaction);
+logger.info(Starting anticompaction for {}/{}, 
cfs.keyspace.getName

[1/3] git commit: Correctly remove tmplink files

2014-08-21 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 8bd1bf664 - 5ec10197f


Correctly remove tmplink files

Patch by marcuse; reviewed by benedict for CASSANDRA-7803


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

Branch: refs/heads/trunk
Commit: a41d5270fb39a5aaddf72a015aab44eb7e2db4a1
Parents: af646fb
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:34:58 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:36:45 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 92a177d..d7c3dea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Correctly remove tmplink files (CASSANDRA-7803)
  * (cqlsh) Fix column name formatting for functions, CAS operations,
and UDT field selections (CASSANDRA-7806)
  * (cqlsh) Fix COPY FROM handling of null/empty primary key

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
index bdc6c65..e4559d3 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
@@ -51,8 +51,16 @@ public class SSTableDeletingTask implements Runnable
 public SSTableDeletingTask(SSTableReader referent)
 {
 this.referent = referent;
-this.desc = referent.descriptor;
-this.components = referent.components;
+if (referent.isOpenEarly)
+{
+this.desc = referent.descriptor.asType(Descriptor.Type.TEMPLINK);
+this.components = Sets.newHashSet(Component.DATA, 
Component.PRIMARY_INDEX);
+}
+else
+{
+this.desc = referent.descriptor;
+this.components = referent.components;
+}
 this.size = referent.bytesOnDisk();
 }
 



git commit: Correctly remove tmplink files

2014-08-21 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 af646fb75 - a41d5270f


Correctly remove tmplink files

Patch by marcuse; reviewed by benedict for CASSANDRA-7803


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

Branch: refs/heads/cassandra-2.1.0
Commit: a41d5270fb39a5aaddf72a015aab44eb7e2db4a1
Parents: af646fb
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:34:58 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:36:45 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 92a177d..d7c3dea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Correctly remove tmplink files (CASSANDRA-7803)
  * (cqlsh) Fix column name formatting for functions, CAS operations,
and UDT field selections (CASSANDRA-7806)
  * (cqlsh) Fix COPY FROM handling of null/empty primary key

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
index bdc6c65..e4559d3 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
@@ -51,8 +51,16 @@ public class SSTableDeletingTask implements Runnable
 public SSTableDeletingTask(SSTableReader referent)
 {
 this.referent = referent;
-this.desc = referent.descriptor;
-this.components = referent.components;
+if (referent.isOpenEarly)
+{
+this.desc = referent.descriptor.asType(Descriptor.Type.TEMPLINK);
+this.components = Sets.newHashSet(Component.DATA, 
Component.PRIMARY_INDEX);
+}
+else
+{
+this.desc = referent.descriptor;
+this.components = referent.components;
+}
 this.size = referent.bytesOnDisk();
 }
 



[2/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-21 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: f36d1b51b7c467ee6e54096328ebc28ba1bbf67b
Parents: 5aee128 a41d527
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:37:36 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:37:36 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f36d1b51/CHANGES.txt
--
diff --cc CHANGES.txt
index f466b72,d7c3dea..2320653
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,42 -1,5 +1,43 @@@
 +2.1.1
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
  2.1.0
+  * Correctly remove tmplink files (CASSANDRA-7803)
   * (cqlsh) Fix column name formatting for functions, CAS operations,
 and UDT field selections (CASSANDRA-7806)
   * (cqlsh) Fix COPY FROM handling of null/empty primary key



[1/2] git commit: Correctly remove tmplink files

2014-08-21 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 5aee12883 - f36d1b51b


Correctly remove tmplink files

Patch by marcuse; reviewed by benedict for CASSANDRA-7803


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

Branch: refs/heads/cassandra-2.1
Commit: a41d5270fb39a5aaddf72a015aab44eb7e2db4a1
Parents: af646fb
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:34:58 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:36:45 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 92a177d..d7c3dea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Correctly remove tmplink files (CASSANDRA-7803)
  * (cqlsh) Fix column name formatting for functions, CAS operations,
and UDT field selections (CASSANDRA-7806)
  * (cqlsh) Fix COPY FROM handling of null/empty primary key

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a41d5270/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
index bdc6c65..e4559d3 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
@@ -51,8 +51,16 @@ public class SSTableDeletingTask implements Runnable
 public SSTableDeletingTask(SSTableReader referent)
 {
 this.referent = referent;
-this.desc = referent.descriptor;
-this.components = referent.components;
+if (referent.isOpenEarly)
+{
+this.desc = referent.descriptor.asType(Descriptor.Type.TEMPLINK);
+this.components = Sets.newHashSet(Component.DATA, 
Component.PRIMARY_INDEX);
+}
+else
+{
+this.desc = referent.descriptor;
+this.components = referent.components;
+}
 this.size = referent.bytesOnDisk();
 }
 



[2/2] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-21 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: f36d1b51b7c467ee6e54096328ebc28ba1bbf67b
Parents: 5aee128 a41d527
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:37:36 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:37:36 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f36d1b51/CHANGES.txt
--
diff --cc CHANGES.txt
index f466b72,d7c3dea..2320653
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,42 -1,5 +1,43 @@@
 +2.1.1
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
  2.1.0
+  * Correctly remove tmplink files (CASSANDRA-7803)
   * (cqlsh) Fix column name formatting for functions, CAS operations,
 and UDT field selections (CASSANDRA-7806)
   * (cqlsh) Fix COPY FROM handling of null/empty primary key



[3/3] git commit: Merge branch 'cassandra-2.1' into trunk

2014-08-21 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 5ec10197f970ab5753a111947cf2a94b1ea287d9
Parents: 8bd1bf6 f36d1b5
Author: Marcus Eriksson marc...@apache.org
Authored: Thu Aug 21 10:38:01 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Thu Aug 21 10:38:01 2014 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableDeletingTask.java   | 12 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)
--


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



git commit: Don't clear out range tombstones during compaction.

2014-08-26 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 62642fa97 - 1cf986301


Don't clear out range tombstones during compaction.

Patch by rlow; reviewed by marcuse for CASSANDRA-7808


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

Branch: refs/heads/cassandra-1.2
Commit: 1cf986301b6109b5744b52b80dcdb1640be2b247
Parents: 62642fa
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 11:33:24 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:23:43 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  8 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 60 
 3 files changed, 66 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fb6de9..badb45e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
are thrown while handling native protocol messages (CASSANDRA-7470)
  * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
  * Fix race in background compaction check (CASSANDRA-7745)
+ * Don't clear out range tombstones during compaction (CASSANDRA-7808)
 
 
 1.2.18

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index d9f753c..4360b0b 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -167,8 +167,9 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 
 public boolean isEmpty()
 {
+// need to clone emptyColumnFamily to avoid resetting the deletion 
time. See CASSANDRA-7808.
 boolean cfIrrelevant = shouldPurge
- ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily, controller.gcBefore) == 
null
+ ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily.cloneMeShallow(), 
controller.gcBefore) == null
  : !emptyColumnFamily.isMarkedForDelete(); // 
tombstones are relevant
 return cfIrrelevant  columnStats.columnCount == 0;
 }
@@ -285,11 +286,12 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 ColumnFamily purged = 
PrecompactedRow.removeDeletedAndOldShards(key, shouldPurge, controller, 
container);
 if (purged == null || !purged.iterator().hasNext())
 {
-container.clear();
+// don't call clear() because that resets the deletion 
time. See CASSANDRA-7808.
+container = emptyColumnFamily.cloneMeShallow();
 return null;
 }
 IColumn reduced = purged.iterator().next();
-container.clear();
+container = emptyColumnFamily.cloneMeShallow();
 
 // PrecompactedRow.removeDeletedAndOldShards have only checked 
the top-level CF deletion times,
 // not the range tombstone. For that we use the columnIndexer 
tombstone tracker.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java 
b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index c2f8b83..59be938 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -18,17 +18,22 @@
 */
 package org.apache.cassandra.db;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
 
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.apache.cassandra.Util.dk;
+import static org.junit.Assert.assertEquals;
 
 public class

[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/cassandra-2.0
Commit: 61543b4c0080e1c2048ff43ae33d4cfc240accbb
Parents: 2015072 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:28:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:30:34 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 58 
 3 files changed, 63 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/CHANGES.txt
--
diff --cc CHANGES.txt
index e716cb5,badb45e..7a59744
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -85,37 -11,15 +85,38 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -1.2.18
 - * Support Thrift tables clustering columns on CqlPagingInputFormat 
(CASSANDRA-7445)
 - * Fix compilation with java 6 broke by CASSANDRA-7147
 -
 -
 -1.2.17
 +2.0.9
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 + * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 + * Fix native protocol CAS batches (CASSANDRA-7337)
 + * Add per-CF range read request latency metrics (CASSANDRA-7338)
 + * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 + * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 + * Swap local and global default read repair chances (CASSANDRA-7320)
 + * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 + * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 + * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 + * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
 + * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
 + * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288)
 + * Add authentication support to shuffle (CASSANDRA-6484)
 + * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325)
 + * Make StreamSession#closeSession() idempotent (CASSANDRA-7262)
 + * Fix infinite loop on exception while streaming (CASSANDRA-7330)
 + * Reference sstables before populating key cache (CASSANDRA-7234)
 + * Account for range tombstones in min/max column names (CASSANDRA-7235)
 + * Improve sub range repair validation (CASSANDRA-7317)
 + * Accept subtypes for function results, type casts (CASSANDRA-6766)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
 + * Refuse range queries with strict bounds on compact tables since they
 +   are broken (CASSANDRA-7059)
 +Merged from 1.2:
 + * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * cqlsh: Fix CompositeType columns in DESCRIBE TABLE output (CASSANDRA-7399)
   * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * Handle possible integer overflow in FastByteArrayOutputStream 
(CASSANDRA-7373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 1da1757,4360b0b..e3f18bd
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -192,14 -220,26 +192,14 @@@ public class LazilyCompactedRow extend
  private class Reducer extends MergeIterator.ReducerOnDiskAtom, 
OnDiskAtom
  {
  // all columns reduced together will have the same name, so there 
will only be one column
 -// in the container; we just want to leverage the conflict resolution 
code from CF
 -ColumnFamily container = emptyColumnFamily.cloneMeShallow();
 +// in the container; we just want to leverage the conflict resolution 
code from CF.
 +// (Note that we add the row tombstone in getReduced.)
-  

[1/2] git commit: Don't clear out range tombstones during compaction.

2014-08-26 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 20150727b - 61543b4c0


Don't clear out range tombstones during compaction.

Patch by rlow; reviewed by marcuse for CASSANDRA-7808


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

Branch: refs/heads/cassandra-2.0
Commit: 1cf986301b6109b5744b52b80dcdb1640be2b247
Parents: 62642fa
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 11:33:24 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:23:43 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  8 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 60 
 3 files changed, 66 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fb6de9..badb45e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
are thrown while handling native protocol messages (CASSANDRA-7470)
  * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
  * Fix race in background compaction check (CASSANDRA-7745)
+ * Don't clear out range tombstones during compaction (CASSANDRA-7808)
 
 
 1.2.18

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index d9f753c..4360b0b 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -167,8 +167,9 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 
 public boolean isEmpty()
 {
+// need to clone emptyColumnFamily to avoid resetting the deletion 
time. See CASSANDRA-7808.
 boolean cfIrrelevant = shouldPurge
- ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily, controller.gcBefore) == 
null
+ ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily.cloneMeShallow(), 
controller.gcBefore) == null
  : !emptyColumnFamily.isMarkedForDelete(); // 
tombstones are relevant
 return cfIrrelevant  columnStats.columnCount == 0;
 }
@@ -285,11 +286,12 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 ColumnFamily purged = 
PrecompactedRow.removeDeletedAndOldShards(key, shouldPurge, controller, 
container);
 if (purged == null || !purged.iterator().hasNext())
 {
-container.clear();
+// don't call clear() because that resets the deletion 
time. See CASSANDRA-7808.
+container = emptyColumnFamily.cloneMeShallow();
 return null;
 }
 IColumn reduced = purged.iterator().next();
-container.clear();
+container = emptyColumnFamily.cloneMeShallow();
 
 // PrecompactedRow.removeDeletedAndOldShards have only checked 
the top-level CF deletion times,
 // not the range tombstone. For that we use the columnIndexer 
tombstone tracker.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java 
b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index c2f8b83..59be938 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -18,17 +18,22 @@
 */
 package org.apache.cassandra.db;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
 
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.apache.cassandra.Util.dk;
+import static org.junit.Assert.assertEquals;
 
 public class

[2/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/cassandra-2.1
Commit: 61543b4c0080e1c2048ff43ae33d4cfc240accbb
Parents: 2015072 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:28:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:30:34 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 58 
 3 files changed, 63 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/CHANGES.txt
--
diff --cc CHANGES.txt
index e716cb5,badb45e..7a59744
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -85,37 -11,15 +85,38 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -1.2.18
 - * Support Thrift tables clustering columns on CqlPagingInputFormat 
(CASSANDRA-7445)
 - * Fix compilation with java 6 broke by CASSANDRA-7147
 -
 -
 -1.2.17
 +2.0.9
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 + * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 + * Fix native protocol CAS batches (CASSANDRA-7337)
 + * Add per-CF range read request latency metrics (CASSANDRA-7338)
 + * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 + * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 + * Swap local and global default read repair chances (CASSANDRA-7320)
 + * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 + * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 + * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 + * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
 + * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
 + * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288)
 + * Add authentication support to shuffle (CASSANDRA-6484)
 + * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325)
 + * Make StreamSession#closeSession() idempotent (CASSANDRA-7262)
 + * Fix infinite loop on exception while streaming (CASSANDRA-7330)
 + * Reference sstables before populating key cache (CASSANDRA-7234)
 + * Account for range tombstones in min/max column names (CASSANDRA-7235)
 + * Improve sub range repair validation (CASSANDRA-7317)
 + * Accept subtypes for function results, type casts (CASSANDRA-6766)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
 + * Refuse range queries with strict bounds on compact tables since they
 +   are broken (CASSANDRA-7059)
 +Merged from 1.2:
 + * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * cqlsh: Fix CompositeType columns in DESCRIBE TABLE output (CASSANDRA-7399)
   * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * Handle possible integer overflow in FastByteArrayOutputStream 
(CASSANDRA-7373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 1da1757,4360b0b..e3f18bd
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -192,14 -220,26 +192,14 @@@ public class LazilyCompactedRow extend
  private class Reducer extends MergeIterator.ReducerOnDiskAtom, 
OnDiskAtom
  {
  // all columns reduced together will have the same name, so there 
will only be one column
 -// in the container; we just want to leverage the conflict resolution 
code from CF
 -ColumnFamily container = emptyColumnFamily.cloneMeShallow();
 +// in the container; we just want to leverage the conflict resolution 
code from CF.
 +// (Note that we add the row tombstone in getReduced.)
-  

[3/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/cassandra-2.1.0
Commit: d1f38cd27fc4c2ec7e74c70d174ca5a021f660bd
Parents: 889f3ac 61543b4
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:35:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:36:42 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 3 files changed, 61 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d1f38cd2/CHANGES.txt
--
diff --cc CHANGES.txt
index 80747dc,7a59744..a9ab462
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -183,46 -85,21 +183,47 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -2.0.9
 - * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 - * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 - * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 - * Fix native protocol CAS batches (CASSANDRA-7337)
 - * Add per-CF range read request latency metrics (CASSANDRA-7338)
 - * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 - * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 - * Swap local and global default read repair chances (CASSANDRA-7320)
 - * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 - * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 - * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 +2.1.0-rc1
 + * Revert flush directory (CASSANDRA-6357)
 + * More efficient executor service for fast operations (CASSANDRA-4718)
 + * Move less common tools into a new cassandra-tools package (CASSANDRA-7160)
 + * Support more concurrent requests in native protocol (CASSANDRA-7231)
 + * Add tab-completion to debian nodetool packaging (CASSANDRA-6421)
 + * Change concurrent_compactors defaults (CASSANDRA-7139)
 + * Add PowerShell Windows launch scripts (CASSANDRA-7001)
 + * Make commitlog archive+restore more robust (CASSANDRA-6974)
 + * Fix marking commitlogsegments clean (CASSANDRA-6959)
 + * Add snapshot manifest describing files included (CASSANDRA-6326)
 + * Parallel streaming for sstableloader (CASSANDRA-3668)
 + * Fix bugs in supercolumns handling (CASSANDRA-7138)
 + * Fix ClassClassException on composite dense tables (CASSANDRA-7112)
 + * Cleanup and optimize collation and slice iterators (CASSANDRA-7107)
 + * Upgrade NBHM lib (CASSANDRA-7128)
 + * Optimize netty server (CASSANDRA-6861)
 + * Fix repair hang when given CF does not exist (CASSANDRA-7189)
 + * Allow c* to be shutdown in an embedded mode (CASSANDRA-5635)
 + * Add server side batching to native transport (CASSANDRA-5663)
 + * Make batchlog replay asynchronous (CASSANDRA-6134)
 + * remove unused classes (CASSANDRA-7197)
 + * Limit user types to the keyspace they are defined in (CASSANDRA-6643)
 + * Add validate method to CollectionType (CASSANDRA-7208)
 + * New serialization format for UDT values (CASSANDRA-7209, CASSANDRA-7261)
 + * Fix nodetool netstats (CASSANDRA-7270)
 + * Fix potential ClassCastException in HintedHandoffManager (CASSANDRA-7284)
 + * Use prepared statements internally (CASSANDRA-6975)
 + * Fix broken paging state with prepared statement (CASSANDRA-7120)
 + * Fix IllegalArgumentException in CqlStorage (CASSANDRA-7287)
 + * Allow nulls/non-existant fields in UDT (CASSANDRA-7206)
 + * Backport Thrift MultiSliceRequest (CASSANDRA-7027)
 + * Handle overlapping MultiSlices (CASSANDRA-7279)
 + * Fix DataOutputTest on Windows (CASSANDRA-7265)
 + * Embedded sets in user defined data-types are not updating (CASSANDRA-7267)
 + * Add tuple type to CQL/native protocol (CASSANDRA-7248)
 + * Fix CqlPagingRecordReader on tables with few rows (CASSANDRA-7322)
 +Merged from 2.0:
   * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
   * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
   * Don't try to compact already-compacting files 

[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/cassandra-2.1.0
Commit: 61543b4c0080e1c2048ff43ae33d4cfc240accbb
Parents: 2015072 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:28:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:30:34 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 58 
 3 files changed, 63 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/CHANGES.txt
--
diff --cc CHANGES.txt
index e716cb5,badb45e..7a59744
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -85,37 -11,15 +85,38 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -1.2.18
 - * Support Thrift tables clustering columns on CqlPagingInputFormat 
(CASSANDRA-7445)
 - * Fix compilation with java 6 broke by CASSANDRA-7147
 -
 -
 -1.2.17
 +2.0.9
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 + * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 + * Fix native protocol CAS batches (CASSANDRA-7337)
 + * Add per-CF range read request latency metrics (CASSANDRA-7338)
 + * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 + * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 + * Swap local and global default read repair chances (CASSANDRA-7320)
 + * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 + * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 + * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 + * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
 + * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
 + * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288)
 + * Add authentication support to shuffle (CASSANDRA-6484)
 + * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325)
 + * Make StreamSession#closeSession() idempotent (CASSANDRA-7262)
 + * Fix infinite loop on exception while streaming (CASSANDRA-7330)
 + * Reference sstables before populating key cache (CASSANDRA-7234)
 + * Account for range tombstones in min/max column names (CASSANDRA-7235)
 + * Improve sub range repair validation (CASSANDRA-7317)
 + * Accept subtypes for function results, type casts (CASSANDRA-6766)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
 + * Refuse range queries with strict bounds on compact tables since they
 +   are broken (CASSANDRA-7059)
 +Merged from 1.2:
 + * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * cqlsh: Fix CompositeType columns in DESCRIBE TABLE output (CASSANDRA-7399)
   * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * Handle possible integer overflow in FastByteArrayOutputStream 
(CASSANDRA-7373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 1da1757,4360b0b..e3f18bd
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -192,14 -220,26 +192,14 @@@ public class LazilyCompactedRow extend
  private class Reducer extends MergeIterator.ReducerOnDiskAtom, 
OnDiskAtom
  {
  // all columns reduced together will have the same name, so there 
will only be one column
 -// in the container; we just want to leverage the conflict resolution 
code from CF
 -ColumnFamily container = emptyColumnFamily.cloneMeShallow();
 +// in the container; we just want to leverage the conflict resolution 
code from CF.
 +// (Note that we add the row tombstone in getReduced.)

[6/8] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/trunk
Commit: d1f38cd27fc4c2ec7e74c70d174ca5a021f660bd
Parents: 889f3ac 61543b4
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:35:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:36:42 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 3 files changed, 61 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d1f38cd2/CHANGES.txt
--
diff --cc CHANGES.txt
index 80747dc,7a59744..a9ab462
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -183,46 -85,21 +183,47 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -2.0.9
 - * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 - * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 - * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 - * Fix native protocol CAS batches (CASSANDRA-7337)
 - * Add per-CF range read request latency metrics (CASSANDRA-7338)
 - * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 - * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 - * Swap local and global default read repair chances (CASSANDRA-7320)
 - * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 - * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 - * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 +2.1.0-rc1
 + * Revert flush directory (CASSANDRA-6357)
 + * More efficient executor service for fast operations (CASSANDRA-4718)
 + * Move less common tools into a new cassandra-tools package (CASSANDRA-7160)
 + * Support more concurrent requests in native protocol (CASSANDRA-7231)
 + * Add tab-completion to debian nodetool packaging (CASSANDRA-6421)
 + * Change concurrent_compactors defaults (CASSANDRA-7139)
 + * Add PowerShell Windows launch scripts (CASSANDRA-7001)
 + * Make commitlog archive+restore more robust (CASSANDRA-6974)
 + * Fix marking commitlogsegments clean (CASSANDRA-6959)
 + * Add snapshot manifest describing files included (CASSANDRA-6326)
 + * Parallel streaming for sstableloader (CASSANDRA-3668)
 + * Fix bugs in supercolumns handling (CASSANDRA-7138)
 + * Fix ClassClassException on composite dense tables (CASSANDRA-7112)
 + * Cleanup and optimize collation and slice iterators (CASSANDRA-7107)
 + * Upgrade NBHM lib (CASSANDRA-7128)
 + * Optimize netty server (CASSANDRA-6861)
 + * Fix repair hang when given CF does not exist (CASSANDRA-7189)
 + * Allow c* to be shutdown in an embedded mode (CASSANDRA-5635)
 + * Add server side batching to native transport (CASSANDRA-5663)
 + * Make batchlog replay asynchronous (CASSANDRA-6134)
 + * remove unused classes (CASSANDRA-7197)
 + * Limit user types to the keyspace they are defined in (CASSANDRA-6643)
 + * Add validate method to CollectionType (CASSANDRA-7208)
 + * New serialization format for UDT values (CASSANDRA-7209, CASSANDRA-7261)
 + * Fix nodetool netstats (CASSANDRA-7270)
 + * Fix potential ClassCastException in HintedHandoffManager (CASSANDRA-7284)
 + * Use prepared statements internally (CASSANDRA-6975)
 + * Fix broken paging state with prepared statement (CASSANDRA-7120)
 + * Fix IllegalArgumentException in CqlStorage (CASSANDRA-7287)
 + * Allow nulls/non-existant fields in UDT (CASSANDRA-7206)
 + * Backport Thrift MultiSliceRequest (CASSANDRA-7027)
 + * Handle overlapping MultiSlices (CASSANDRA-7279)
 + * Fix DataOutputTest on Windows (CASSANDRA-7265)
 + * Embedded sets in user defined data-types are not updating (CASSANDRA-7267)
 + * Add tuple type to CQL/native protocol (CASSANDRA-7248)
 + * Fix CqlPagingRecordReader on tables with few rows (CASSANDRA-7322)
 +Merged from 2.0:
   * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
   * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
   * Don't try to compact already-compacting files in HHOM 

[2/8] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/cql3/statements/SelectStatement.java


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

Branch: refs/heads/trunk
Commit: 889f3ac5548b89c17bade2f39781067db95a0c27
Parents: 63c21a3 2015072
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Mon Aug 25 16:41:08 2014 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Mon Aug 25 16:41:08 2014 +0200

--
 CHANGES.txt | 2 ++
 .../org/apache/cassandra/cql3/statements/SelectStatement.java   | 5 +
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/889f3ac5/CHANGES.txt
--
diff --cc CHANGES.txt
index 15e41da,e716cb5..80747dc
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,12 -1,9 +1,14 @@@
 -2.0.11:
 +2.1.0
 + * Correctly remove tmplink files (CASSANDRA-7803)
 + * (cqlsh) Fix column name formatting for functions, CAS operations,
 +   and UDT field selections (CASSANDRA-7806)
 + * (cqlsh) Fix COPY FROM handling of null/empty primary key
 +   values (CASSANDRA-7792)
 + * Fix ordering of static cells (CASSANDRA-7763)
 +Merged from 2.0:
+  * Always reject inequality on the partition key without token()
+(CASSANDRA-7722)
   * Always send Paxos commit to all replicas (CASSANDRA-7479)
 -
 -2.0.10
   * Don't send schema change responses and events for no-op DDL
 statements (CASSANDRA-7600)
   * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/889f3ac5/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
--
diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index e4ef0a8,a360d49..20b5f57
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@@ -1675,38 -1704,23 +1675,43 @@@ public class SelectStatement implement
  case GTE:
  case LT:
  case LTE:
 +{
 +if (existingRestriction == null)
 +existingRestriction = new 
SingleColumnRestriction.Slice(newRel.onToken);
 +else if (!existingRestriction.isSlice())
 +throw new 
InvalidRequestException(String.format(Column \%s\ cannot be restricted by 
both an equality and an inequality relation, def.name));
 +else if (existingRestriction.isMultiColumn())
 +throw new 
InvalidRequestException(String.format(Column \%s\ cannot be restricted by 
both a tuple notation inequality and a single column inequality (%s), 
def.name, newRel));
++else if (existingRestriction.isOnToken() != 
newRel.onToken)
++// For partition keys, we shouldn't have slice 
restrictions without token(). And while this is rejected later by
++// processPartitionKeysRestrictions, we shouldn't 
update the existing restriction by the new one if the old one was using token()
++// and the new one isn't since that would bypass 
that later test.
++throw new InvalidRequestException(Only EQ and IN 
relation are supported on the partition key (unless you use the token() 
function));
 +
 +Term t = newRel.getValue().prepare(keyspace(), 
receiver);
 +t.collectMarkerSpecification(boundNames);
 +
((SingleColumnRestriction.Slice)existingRestriction).setBound(def.name, 
newRel.operator(), t);
 +}
 +break;
 +case CONTAINS_KEY:
 +if (!(receiver.type instanceof MapType))
 +throw new 
InvalidRequestException(String.format(Cannot use CONTAINS_KEY on non-map 
column %s, def.name));
 +// Fallthrough on purpose
 +case CONTAINS:
  {
 +if (!receiver.type.isCollection())
 +throw new 
InvalidRequestException(String.format(Cannot use %s relation on non collection 
column %s, newRel.operator(), def.name));
 +
  if (existingRestriction == null)
 -existingRestriction = new 

[4/8] git commit: Don't clear out range tombstones during compaction.

2014-08-26 Thread marcuse
Don't clear out range tombstones during compaction.

Patch by rlow; reviewed by marcuse for CASSANDRA-7808


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

Branch: refs/heads/trunk
Commit: 1cf986301b6109b5744b52b80dcdb1640be2b247
Parents: 62642fa
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 11:33:24 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:23:43 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  8 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 60 
 3 files changed, 66 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fb6de9..badb45e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
are thrown while handling native protocol messages (CASSANDRA-7470)
  * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
  * Fix race in background compaction check (CASSANDRA-7745)
+ * Don't clear out range tombstones during compaction (CASSANDRA-7808)
 
 
 1.2.18

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index d9f753c..4360b0b 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -167,8 +167,9 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 
 public boolean isEmpty()
 {
+// need to clone emptyColumnFamily to avoid resetting the deletion 
time. See CASSANDRA-7808.
 boolean cfIrrelevant = shouldPurge
- ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily, controller.gcBefore) == 
null
+ ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily.cloneMeShallow(), 
controller.gcBefore) == null
  : !emptyColumnFamily.isMarkedForDelete(); // 
tombstones are relevant
 return cfIrrelevant  columnStats.columnCount == 0;
 }
@@ -285,11 +286,12 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 ColumnFamily purged = 
PrecompactedRow.removeDeletedAndOldShards(key, shouldPurge, controller, 
container);
 if (purged == null || !purged.iterator().hasNext())
 {
-container.clear();
+// don't call clear() because that resets the deletion 
time. See CASSANDRA-7808.
+container = emptyColumnFamily.cloneMeShallow();
 return null;
 }
 IColumn reduced = purged.iterator().next();
-container.clear();
+container = emptyColumnFamily.cloneMeShallow();
 
 // PrecompactedRow.removeDeletedAndOldShards have only checked 
the top-level CF deletion times,
 // not the range tombstone. For that we use the columnIndexer 
tombstone tracker.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java 
b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index c2f8b83..59be938 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -18,17 +18,22 @@
 */
 package org.apache.cassandra.db;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
 
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.apache.cassandra.Util.dk;
+import static org.junit.Assert.assertEquals;
 
 public class RangeTombstoneTest extends SchemaLoader
 {
@@ -97,6 +102,61 @@ public class RangeTombstoneTest extends SchemaLoader

[1/8] git commit: Always reject inequality on the partition key without token()

2014-08-26 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 125f19a88 - 846233526


Always reject inequality on the partition key without token()

patch by blerer; reviewed by slebresne for CASSANDRA-7722


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

Branch: refs/heads/trunk
Commit: 20150727b49b5c4f2c5b35fd17b908054a5fd2d5
Parents: 5d4740c
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Mon Aug 25 16:34:01 2014 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Mon Aug 25 16:34:01 2014 +0200

--
 CHANGES.txt | 2 ++
 .../org/apache/cassandra/cql3/statements/SelectStatement.java   | 5 +
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/20150727/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 4d5d851..e716cb5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.11:
+ * Always reject inequality on the partition key without token()
+   (CASSANDRA-7722)
  * Always send Paxos commit to all replicas (CASSANDRA-7479)
 
 2.0.10

http://git-wip-us.apache.org/repos/asf/cassandra/blob/20150727/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
--
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 8145722..a360d49 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -1709,6 +1709,11 @@ public class SelectStatement implements CQLStatement, 
MeasurableForPreparedCache
 existingRestriction = new 
SingleColumnRestriction.Slice(newRel.onToken);
 else if (!existingRestriction.isSlice())
 throw new 
InvalidRequestException(String.format(Column \%s\ cannot be restricted by 
both an equality and an inequality relation, name));
+else if (existingRestriction.isOnToken() != newRel.onToken)
+// For partition keys, we shouldn't have slice 
restrictions without token(). And while this is rejected later by
+// processPartitionKeysRestrictions, we shouldn't 
update the existing restriction by the new one if the old one was using token()
+// and the new one isn't since that would bypass that 
later test.
+throw new InvalidRequestException(Only EQ and IN 
relation are supported on the partition key (unless you use the token() 
function));
 else if (existingRestriction.isMultiColumn())
 throw new 
InvalidRequestException(String.format(Column \%s\ cannot be restricted by 
both a tuple notation inequality and a single column inequality (%s), name, 
newRel));
 Term t = newRel.getValue().prepare(receiver);



[5/8] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/trunk
Commit: 61543b4c0080e1c2048ff43ae33d4cfc240accbb
Parents: 2015072 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:28:28 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:30:34 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 58 
 3 files changed, 63 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/CHANGES.txt
--
diff --cc CHANGES.txt
index e716cb5,badb45e..7a59744
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -85,37 -11,15 +85,38 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -1.2.18
 - * Support Thrift tables clustering columns on CqlPagingInputFormat 
(CASSANDRA-7445)
 - * Fix compilation with java 6 broke by CASSANDRA-7147
 -
 -
 -1.2.17
 +2.0.9
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 + * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 + * Fix native protocol CAS batches (CASSANDRA-7337)
 + * Add per-CF range read request latency metrics (CASSANDRA-7338)
 + * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 + * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 + * Swap local and global default read repair chances (CASSANDRA-7320)
 + * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 + * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 + * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 + * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
 + * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
 + * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288)
 + * Add authentication support to shuffle (CASSANDRA-6484)
 + * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325)
 + * Make StreamSession#closeSession() idempotent (CASSANDRA-7262)
 + * Fix infinite loop on exception while streaming (CASSANDRA-7330)
 + * Reference sstables before populating key cache (CASSANDRA-7234)
 + * Account for range tombstones in min/max column names (CASSANDRA-7235)
 + * Improve sub range repair validation (CASSANDRA-7317)
 + * Accept subtypes for function results, type casts (CASSANDRA-6766)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
 + * Refuse range queries with strict bounds on compact tables since they
 +   are broken (CASSANDRA-7059)
 +Merged from 1.2:
 + * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * cqlsh: Fix CompositeType columns in DESCRIBE TABLE output (CASSANDRA-7399)
   * Expose global ColumnFamily metrics (CASSANDRA-7273)
   * Handle possible integer overflow in FastByteArrayOutputStream 
(CASSANDRA-7373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/61543b4c/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 1da1757,4360b0b..e3f18bd
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -192,14 -220,26 +192,14 @@@ public class LazilyCompactedRow extend
  private class Reducer extends MergeIterator.ReducerOnDiskAtom, 
OnDiskAtom
  {
  // all columns reduced together will have the same name, so there 
will only be one column
 -// in the container; we just want to leverage the conflict resolution 
code from CF
 -ColumnFamily container = emptyColumnFamily.cloneMeShallow();
 +// in the container; we just want to leverage the conflict resolution 
code from CF.
 +// (Note that we add the row tombstone in getReduced.)
- 

[7/8] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: fdf293dc1547112dc43752676635895b481288cb
Parents: 11d1edc d1f38cd
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:37:10 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:37:10 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 3 files changed, 61 insertions(+), 3 deletions(-)
--


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



[3/8] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 11d1edcc1b2a112c3bdaff7f4293224a68a2c46c
Parents: 191cedf 889f3ac
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Mon Aug 25 16:42:40 2014 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Mon Aug 25 16:42:40 2014 +0200

--
 CHANGES.txt | 2 ++
 .../org/apache/cassandra/cql3/statements/SelectStatement.java   | 5 +
 2 files changed, 7 insertions(+)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/11d1edcc/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
--



[3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/cassandra-2.1
Commit: d1f38cd27fc4c2ec7e74c70d174ca5a021f660bd
Parents: 889f3ac 61543b4
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:35:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:36:42 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 3 files changed, 61 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d1f38cd2/CHANGES.txt
--
diff --cc CHANGES.txt
index 80747dc,7a59744..a9ab462
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -183,46 -85,21 +183,47 @@@ Merged from 1.2
 are thrown while handling native protocol messages (CASSANDRA-7470)
   * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
   * Fix race in background compaction check (CASSANDRA-7745)
+  * Don't clear out range tombstones during compaction (CASSANDRA-7808)
  
  
 -2.0.9
 - * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 - * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
 - * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
 - * Fix native protocol CAS batches (CASSANDRA-7337)
 - * Add per-CF range read request latency metrics (CASSANDRA-7338)
 - * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
 - * Add conditional CREATE/DROP USER support (CASSANDRA-7264)
 - * Swap local and global default read repair chances (CASSANDRA-7320)
 - * Add missing iso8601 patterns for date strings (CASSANDRA-6973)
 - * Support selecting multiple rows in a partition using IN (CASSANDRA-6875)
 - * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274)
 +2.1.0-rc1
 + * Revert flush directory (CASSANDRA-6357)
 + * More efficient executor service for fast operations (CASSANDRA-4718)
 + * Move less common tools into a new cassandra-tools package (CASSANDRA-7160)
 + * Support more concurrent requests in native protocol (CASSANDRA-7231)
 + * Add tab-completion to debian nodetool packaging (CASSANDRA-6421)
 + * Change concurrent_compactors defaults (CASSANDRA-7139)
 + * Add PowerShell Windows launch scripts (CASSANDRA-7001)
 + * Make commitlog archive+restore more robust (CASSANDRA-6974)
 + * Fix marking commitlogsegments clean (CASSANDRA-6959)
 + * Add snapshot manifest describing files included (CASSANDRA-6326)
 + * Parallel streaming for sstableloader (CASSANDRA-3668)
 + * Fix bugs in supercolumns handling (CASSANDRA-7138)
 + * Fix ClassClassException on composite dense tables (CASSANDRA-7112)
 + * Cleanup and optimize collation and slice iterators (CASSANDRA-7107)
 + * Upgrade NBHM lib (CASSANDRA-7128)
 + * Optimize netty server (CASSANDRA-6861)
 + * Fix repair hang when given CF does not exist (CASSANDRA-7189)
 + * Allow c* to be shutdown in an embedded mode (CASSANDRA-5635)
 + * Add server side batching to native transport (CASSANDRA-5663)
 + * Make batchlog replay asynchronous (CASSANDRA-6134)
 + * remove unused classes (CASSANDRA-7197)
 + * Limit user types to the keyspace they are defined in (CASSANDRA-6643)
 + * Add validate method to CollectionType (CASSANDRA-7208)
 + * New serialization format for UDT values (CASSANDRA-7209, CASSANDRA-7261)
 + * Fix nodetool netstats (CASSANDRA-7270)
 + * Fix potential ClassCastException in HintedHandoffManager (CASSANDRA-7284)
 + * Use prepared statements internally (CASSANDRA-6975)
 + * Fix broken paging state with prepared statement (CASSANDRA-7120)
 + * Fix IllegalArgumentException in CqlStorage (CASSANDRA-7287)
 + * Allow nulls/non-existant fields in UDT (CASSANDRA-7206)
 + * Backport Thrift MultiSliceRequest (CASSANDRA-7027)
 + * Handle overlapping MultiSlices (CASSANDRA-7279)
 + * Fix DataOutputTest on Windows (CASSANDRA-7265)
 + * Embedded sets in user defined data-types are not updating (CASSANDRA-7267)
 + * Add tuple type to CQL/native protocol (CASSANDRA-7248)
 + * Fix CqlPagingRecordReader on tables with few rows (CASSANDRA-7322)
 +Merged from 2.0:
   * Copy compaction options to make sure they are reloaded (CASSANDRA-7290)
   * Add option to do more aggressive tombstone compactions (CASSANDRA-6563)
   * Don't try to compact already-compacting files 

[1/4] git commit: Don't clear out range tombstones during compaction.

2014-08-26 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 11d1edcc1 - fdf293dc1


Don't clear out range tombstones during compaction.

Patch by rlow; reviewed by marcuse for CASSANDRA-7808


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

Branch: refs/heads/cassandra-2.1
Commit: 1cf986301b6109b5744b52b80dcdb1640be2b247
Parents: 62642fa
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 11:33:24 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:23:43 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  8 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 60 
 3 files changed, 66 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fb6de9..badb45e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
are thrown while handling native protocol messages (CASSANDRA-7470)
  * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
  * Fix race in background compaction check (CASSANDRA-7745)
+ * Don't clear out range tombstones during compaction (CASSANDRA-7808)
 
 
 1.2.18

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index d9f753c..4360b0b 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -167,8 +167,9 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 
 public boolean isEmpty()
 {
+// need to clone emptyColumnFamily to avoid resetting the deletion 
time. See CASSANDRA-7808.
 boolean cfIrrelevant = shouldPurge
- ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily, controller.gcBefore) == 
null
+ ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily.cloneMeShallow(), 
controller.gcBefore) == null
  : !emptyColumnFamily.isMarkedForDelete(); // 
tombstones are relevant
 return cfIrrelevant  columnStats.columnCount == 0;
 }
@@ -285,11 +286,12 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 ColumnFamily purged = 
PrecompactedRow.removeDeletedAndOldShards(key, shouldPurge, controller, 
container);
 if (purged == null || !purged.iterator().hasNext())
 {
-container.clear();
+// don't call clear() because that resets the deletion 
time. See CASSANDRA-7808.
+container = emptyColumnFamily.cloneMeShallow();
 return null;
 }
 IColumn reduced = purged.iterator().next();
-container.clear();
+container = emptyColumnFamily.cloneMeShallow();
 
 // PrecompactedRow.removeDeletedAndOldShards have only checked 
the top-level CF deletion times,
 // not the range tombstone. For that we use the columnIndexer 
tombstone tracker.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java 
b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index c2f8b83..59be938 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -18,17 +18,22 @@
 */
 package org.apache.cassandra.db;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
 
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.apache.cassandra.Util.dk;
+import static org.junit.Assert.assertEquals;
 
 public class

[8/8] git commit: Merge branch 'cassandra-2.1' into trunk

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.1' into trunk

Conflicts:
test/unit/org/apache/cassandra/db/RangeTombstoneTest.java


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

Branch: refs/heads/trunk
Commit: 8462335262f92ce824e77eda292692567158ed5e
Parents: 125f19a fdf293d
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:39:20 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:39:20 2014 +0200

--
 CHANGES.txt |  3 ++
 .../cql3/statements/SelectStatement.java|  5 ++
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 4 files changed, 68 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/84623352/CHANGES.txt
--
diff --cc CHANGES.txt
index a0ff1d1,fd73626..425d72a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -72,7 -52,12 +72,9 @@@ Merged from 1.2
 values (CASSANDRA-7792)
   * Fix ordering of static cells (CASSANDRA-7763)
  Merged from 2.0:
+  * Always reject inequality on the partition key without token()
+(CASSANDRA-7722)
   * Always send Paxos commit to all replicas (CASSANDRA-7479)
 - * Don't send schema change responses and events for no-op DDL
 -   statements (CASSANDRA-7600)
 - * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/84623352/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/84623352/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --cc test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index d1d3c46,ecf06d3..9dddf31
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@@ -32,7 -33,10 +34,8 @@@ import org.junit.BeforeClass
  import org.junit.Test;
  
  import org.apache.cassandra.SchemaLoader;
 +import org.apache.cassandra.config.*;
+ import org.apache.cassandra.Util;
 -import org.apache.cassandra.config.ColumnDefinition;
 -import org.apache.cassandra.config.DatabaseDescriptor;
 -import org.apache.cassandra.config.IndexType;
  import org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
  import org.apache.cassandra.db.compaction.CompactionManager;
  import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;



[4/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-26 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: fdf293dc1547112dc43752676635895b481288cb
Parents: 11d1edc d1f38cd
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 15:37:10 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:37:10 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  7 +--
 .../apache/cassandra/db/RangeTombstoneTest.java | 56 
 3 files changed, 61 insertions(+), 3 deletions(-)
--


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



[1/3] git commit: Don't clear out range tombstones during compaction.

2014-08-26 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 889f3ac55 - d1f38cd27


Don't clear out range tombstones during compaction.

Patch by rlow; reviewed by marcuse for CASSANDRA-7808


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

Branch: refs/heads/cassandra-2.1.0
Commit: 1cf986301b6109b5744b52b80dcdb1640be2b247
Parents: 62642fa
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 11:33:24 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Aug 26 15:23:43 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/LazilyCompactedRow.java   |  8 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 60 
 3 files changed, 66 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fb6de9..badb45e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
are thrown while handling native protocol messages (CASSANDRA-7470)
  * Fix row size miscalculation in LazilyCompactedRow (CASSANDRA-7543)
  * Fix race in background compaction check (CASSANDRA-7745)
+ * Don't clear out range tombstones during compaction (CASSANDRA-7808)
 
 
 1.2.18

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index d9f753c..4360b0b 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -167,8 +167,9 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 
 public boolean isEmpty()
 {
+// need to clone emptyColumnFamily to avoid resetting the deletion 
time. See CASSANDRA-7808.
 boolean cfIrrelevant = shouldPurge
- ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily, controller.gcBefore) == 
null
+ ? 
ColumnFamilyStore.removeDeletedCF(emptyColumnFamily.cloneMeShallow(), 
controller.gcBefore) == null
  : !emptyColumnFamily.isMarkedForDelete(); // 
tombstones are relevant
 return cfIrrelevant  columnStats.columnCount == 0;
 }
@@ -285,11 +286,12 @@ public class LazilyCompactedRow extends 
AbstractCompactedRow implements Iterable
 ColumnFamily purged = 
PrecompactedRow.removeDeletedAndOldShards(key, shouldPurge, controller, 
container);
 if (purged == null || !purged.iterator().hasNext())
 {
-container.clear();
+// don't call clear() because that resets the deletion 
time. See CASSANDRA-7808.
+container = emptyColumnFamily.cloneMeShallow();
 return null;
 }
 IColumn reduced = purged.iterator().next();
-container.clear();
+container = emptyColumnFamily.cloneMeShallow();
 
 // PrecompactedRow.removeDeletedAndOldShards have only checked 
the top-level CF deletion times,
 // not the range tombstone. For that we use the columnIndexer 
tombstone tracker.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cf98630/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java 
b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index c2f8b83..59be938 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -18,17 +18,22 @@
 */
 package org.apache.cassandra.db;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.*;
+import java.util.concurrent.ExecutionException;
 
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.apache.cassandra.Util.dk;
+import static org.junit.Assert.assertEquals;
 
 public class

[1/2] git commit: Track expired tombstones

2014-08-27 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 9219361b6 - 29befa180


Track expired tombstones

Patch by marcuse; reviewed by slebresne for CASSANDRA-7810


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

Branch: refs/heads/cassandra-2.0
Commit: 7f9e9a87188ccbc16bbb1630fe0720d6b366569d
Parents: 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 14:16:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 12:55:17 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index badb45e..d27be1f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/ColumnIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java 
b/src/java/org/apache/cassandra/db/ColumnIndex.java
index b152f30..284def5 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -187,7 +187,7 @@ public class ColumnIndex
 
 // TODO: Should deal with removing unneeded tombstones
 if (tombstoneTracker != null)
-tombstoneTracker.update(column);
+tombstoneTracker.update(column, false);
 
 lastColumn = column;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java 
b/src/java/org/apache/cassandra/db/RangeTombstone.java
index 5e87847..90b72b7 100644
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@ -127,6 +127,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 return comparator.compare(t1.max, t2.max);
 }
 });
+public final SetRangeTombstone expired = new 
HashSetRangeTombstone();
 private int atomCount;
 
 public Tracker(ComparatorByteBuffer comparator)
@@ -160,6 +161,9 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 if (comparator.compare(firstColumn.name(), tombstone.max)  0)
 continue;
 
+if (expired.contains(tombstone))
+continue;
+
 RangeTombstone updated = new 
RangeTombstone(firstColumn.name(), tombstone.max, tombstone.data);
 
 IteratorRangeTombstone iter = toWrite.iterator();
@@ -194,7 +198,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
  * If column is a IColumn, check if any tracked range is useless and
  * can be removed. If it is a RangeTombstone, add it to this tracker.
  */
-public void update(OnDiskAtom atom)
+public void update(OnDiskAtom atom, boolean isExpired)
 {
 if (atom instanceof RangeTombstone)
 {
@@ -215,6 +219,8 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 }
 ranges.addLast(t);
 maxOrderingSet.add(t);
+if (isExpired)
+expired.add(t);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4360b0b..433794a 100644
--- a/src/java/org/apache

git commit: Track expired tombstones

2014-08-27 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 1cf986301 - 7f9e9a871


Track expired tombstones

Patch by marcuse; reviewed by slebresne for CASSANDRA-7810


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

Branch: refs/heads/cassandra-1.2
Commit: 7f9e9a87188ccbc16bbb1630fe0720d6b366569d
Parents: 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 14:16:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 12:55:17 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index badb45e..d27be1f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/ColumnIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java 
b/src/java/org/apache/cassandra/db/ColumnIndex.java
index b152f30..284def5 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -187,7 +187,7 @@ public class ColumnIndex
 
 // TODO: Should deal with removing unneeded tombstones
 if (tombstoneTracker != null)
-tombstoneTracker.update(column);
+tombstoneTracker.update(column, false);
 
 lastColumn = column;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java 
b/src/java/org/apache/cassandra/db/RangeTombstone.java
index 5e87847..90b72b7 100644
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@ -127,6 +127,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 return comparator.compare(t1.max, t2.max);
 }
 });
+public final SetRangeTombstone expired = new 
HashSetRangeTombstone();
 private int atomCount;
 
 public Tracker(ComparatorByteBuffer comparator)
@@ -160,6 +161,9 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 if (comparator.compare(firstColumn.name(), tombstone.max)  0)
 continue;
 
+if (expired.contains(tombstone))
+continue;
+
 RangeTombstone updated = new 
RangeTombstone(firstColumn.name(), tombstone.max, tombstone.data);
 
 IteratorRangeTombstone iter = toWrite.iterator();
@@ -194,7 +198,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
  * If column is a IColumn, check if any tracked range is useless and
  * can be removed. If it is a RangeTombstone, add it to this tracker.
  */
-public void update(OnDiskAtom atom)
+public void update(OnDiskAtom atom, boolean isExpired)
 {
 if (atom instanceof RangeTombstone)
 {
@@ -215,6 +219,8 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 }
 ranges.addLast(t);
 maxOrderingSet.add(t);
+if (isExpired)
+expired.add(t);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4360b0b..433794a 100644
--- a/src/java/org/apache

[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/ColumnIndex.java


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

Branch: refs/heads/cassandra-2.0
Commit: 29befa180be1b20ff404c29108f9bf3385f51855
Parents: 9219361 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:00:55 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:00:55 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/CHANGES.txt
--
diff --cc CHANGES.txt
index 9c6bd61,d27be1f..abdd561
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,80 -1,5 +1,81 @@@
 -1.2.19
 +2.0.11:
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * 

[1/3] git commit: Track expired tombstones

2014-08-27 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 cb4bc2764 - 049762b3e


Track expired tombstones

Patch by marcuse; reviewed by slebresne for CASSANDRA-7810


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

Branch: refs/heads/cassandra-2.1.0
Commit: 7f9e9a87188ccbc16bbb1630fe0720d6b366569d
Parents: 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 14:16:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 12:55:17 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index badb45e..d27be1f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/ColumnIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java 
b/src/java/org/apache/cassandra/db/ColumnIndex.java
index b152f30..284def5 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -187,7 +187,7 @@ public class ColumnIndex
 
 // TODO: Should deal with removing unneeded tombstones
 if (tombstoneTracker != null)
-tombstoneTracker.update(column);
+tombstoneTracker.update(column, false);
 
 lastColumn = column;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java 
b/src/java/org/apache/cassandra/db/RangeTombstone.java
index 5e87847..90b72b7 100644
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@ -127,6 +127,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 return comparator.compare(t1.max, t2.max);
 }
 });
+public final SetRangeTombstone expired = new 
HashSetRangeTombstone();
 private int atomCount;
 
 public Tracker(ComparatorByteBuffer comparator)
@@ -160,6 +161,9 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 if (comparator.compare(firstColumn.name(), tombstone.max)  0)
 continue;
 
+if (expired.contains(tombstone))
+continue;
+
 RangeTombstone updated = new 
RangeTombstone(firstColumn.name(), tombstone.max, tombstone.data);
 
 IteratorRangeTombstone iter = toWrite.iterator();
@@ -194,7 +198,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
  * If column is a IColumn, check if any tracked range is useless and
  * can be removed. If it is a RangeTombstone, add it to this tracker.
  */
-public void update(OnDiskAtom atom)
+public void update(OnDiskAtom atom, boolean isExpired)
 {
 if (atom instanceof RangeTombstone)
 {
@@ -215,6 +219,8 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 }
 ranges.addLast(t);
 maxOrderingSet.add(t);
+if (isExpired)
+expired.add(t);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4360b0b..433794a 100644
--- a/src/java/org/apache

[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/ColumnIndex.java


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

Branch: refs/heads/cassandra-2.1.0
Commit: 29befa180be1b20ff404c29108f9bf3385f51855
Parents: 9219361 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:00:55 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:00:55 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/CHANGES.txt
--
diff --cc CHANGES.txt
index 9c6bd61,d27be1f..abdd561
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,80 -1,5 +1,81 @@@
 -1.2.19
 +2.0.11:
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * 

[3/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/049762b3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/049762b3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/049762b3

Branch: refs/heads/cassandra-2.1.0
Commit: 049762b3e49ec54cadc0a353520487ea6c2d
Parents: cb4bc27 29befa1
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:06:54 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:06:54 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/CHANGES.txt
--
diff --cc CHANGES.txt
index 32c46bf,abdd561..9c75426
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -16,37 -12,24 +16,39 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
++Merged from 1.2:
++ * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/ColumnIndex.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --cc src/java/org/apache/cassandra/db/RangeTombstone.java
index ffae7ba,16fc27a..3f3d675
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ 

[1/4] git commit: Track expired tombstones

2014-08-27 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 1be0bbf71 - 5abd129fd


Track expired tombstones

Patch by marcuse; reviewed by slebresne for CASSANDRA-7810


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

Branch: refs/heads/cassandra-2.1
Commit: 7f9e9a87188ccbc16bbb1630fe0720d6b366569d
Parents: 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 14:16:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 12:55:17 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index badb45e..d27be1f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/ColumnIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java 
b/src/java/org/apache/cassandra/db/ColumnIndex.java
index b152f30..284def5 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -187,7 +187,7 @@ public class ColumnIndex
 
 // TODO: Should deal with removing unneeded tombstones
 if (tombstoneTracker != null)
-tombstoneTracker.update(column);
+tombstoneTracker.update(column, false);
 
 lastColumn = column;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java 
b/src/java/org/apache/cassandra/db/RangeTombstone.java
index 5e87847..90b72b7 100644
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@ -127,6 +127,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 return comparator.compare(t1.max, t2.max);
 }
 });
+public final SetRangeTombstone expired = new 
HashSetRangeTombstone();
 private int atomCount;
 
 public Tracker(ComparatorByteBuffer comparator)
@@ -160,6 +161,9 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 if (comparator.compare(firstColumn.name(), tombstone.max)  0)
 continue;
 
+if (expired.contains(tombstone))
+continue;
+
 RangeTombstone updated = new 
RangeTombstone(firstColumn.name(), tombstone.max, tombstone.data);
 
 IteratorRangeTombstone iter = toWrite.iterator();
@@ -194,7 +198,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
  * If column is a IColumn, check if any tracked range is useless and
  * can be removed. If it is a RangeTombstone, add it to this tracker.
  */
-public void update(OnDiskAtom atom)
+public void update(OnDiskAtom atom, boolean isExpired)
 {
 if (atom instanceof RangeTombstone)
 {
@@ -215,6 +219,8 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 }
 ranges.addLast(t);
 maxOrderingSet.add(t);
+if (isExpired)
+expired.add(t);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4360b0b..433794a 100644
--- a/src/java/org/apache

[4/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 5abd129fd9ff80aa689b830452b528f04d45eb82
Parents: 1be0bbf 049762b
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:07:16 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:07:16 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


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



[4/5] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 5abd129fd9ff80aa689b830452b528f04d45eb82
Parents: 1be0bbf 049762b
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:07:16 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:07:16 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


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



[2/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/ColumnIndex.java


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

Branch: refs/heads/trunk
Commit: 29befa180be1b20ff404c29108f9bf3385f51855
Parents: 9219361 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:00:55 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:00:55 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/CHANGES.txt
--
diff --cc CHANGES.txt
index 9c6bd61,d27be1f..abdd561
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,80 -1,5 +1,81 @@@
 -1.2.19
 +2.0.11:
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * Workaround JVM 

[3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/049762b3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/049762b3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/049762b3

Branch: refs/heads/cassandra-2.1
Commit: 049762b3e49ec54cadc0a353520487ea6c2d
Parents: cb4bc27 29befa1
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:06:54 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:06:54 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/CHANGES.txt
--
diff --cc CHANGES.txt
index 32c46bf,abdd561..9c75426
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -16,37 -12,24 +16,39 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
++Merged from 1.2:
++ * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/ColumnIndex.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --cc src/java/org/apache/cassandra/db/RangeTombstone.java
index ffae7ba,16fc27a..3f3d675
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ 

[3/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

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/049762b3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/049762b3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/049762b3

Branch: refs/heads/trunk
Commit: 049762b3e49ec54cadc0a353520487ea6c2d
Parents: cb4bc27 29befa1
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:06:54 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:06:54 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/CHANGES.txt
--
diff --cc CHANGES.txt
index 32c46bf,abdd561..9c75426
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -16,37 -12,24 +16,39 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
++Merged from 1.2:
++ * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/ColumnIndex.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/049762b3/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --cc src/java/org/apache/cassandra/db/RangeTombstone.java
index ffae7ba,16fc27a..3f3d675
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ 

[5/5] git commit: Merge branch 'cassandra-2.1' into trunk

2014-08-27 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: f18108d812bb90d03a4bff5172cd0a428b7cae80
Parents: 14dbba9 5abd129
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:09:18 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:09:18 2014 +0200

--
 CHANGES.txt |  2 ++
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 26 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f18108d8/src/java/org/apache/cassandra/db/RangeTombstone.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f18108d8/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
--



[1/5] git commit: Track expired tombstones

2014-08-27 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 14dbba9d1 - f18108d81


Track expired tombstones

Patch by marcuse; reviewed by slebresne for CASSANDRA-7810


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

Branch: refs/heads/trunk
Commit: 7f9e9a87188ccbc16bbb1630fe0720d6b366569d
Parents: 1cf9863
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Aug 26 14:16:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 12:55:17 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index badb45e..d27be1f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/ColumnIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java 
b/src/java/org/apache/cassandra/db/ColumnIndex.java
index b152f30..284def5 100644
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@ -187,7 +187,7 @@ public class ColumnIndex
 
 // TODO: Should deal with removing unneeded tombstones
 if (tombstoneTracker != null)
-tombstoneTracker.update(column);
+tombstoneTracker.update(column, false);
 
 lastColumn = column;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/RangeTombstone.java
--
diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java 
b/src/java/org/apache/cassandra/db/RangeTombstone.java
index 5e87847..90b72b7 100644
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@ -127,6 +127,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 return comparator.compare(t1.max, t2.max);
 }
 });
+public final SetRangeTombstone expired = new 
HashSetRangeTombstone();
 private int atomCount;
 
 public Tracker(ComparatorByteBuffer comparator)
@@ -160,6 +161,9 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 if (comparator.compare(firstColumn.name(), tombstone.max)  0)
 continue;
 
+if (expired.contains(tombstone))
+continue;
+
 RangeTombstone updated = new 
RangeTombstone(firstColumn.name(), tombstone.max, tombstone.data);
 
 IteratorRangeTombstone iter = toWrite.iterator();
@@ -194,7 +198,7 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
  * If column is a IColumn, check if any tracked range is useless and
  * can be removed. If it is a RangeTombstone, add it to this tracker.
  */
-public void update(OnDiskAtom atom)
+public void update(OnDiskAtom atom, boolean isExpired)
 {
 if (atom instanceof RangeTombstone)
 {
@@ -215,6 +219,8 @@ public class RangeTombstone extends IntervalByteBuffer, 
DeletionTime implement
 }
 ranges.addLast(t);
 maxOrderingSet.add(t);
+if (isExpired)
+expired.add(t);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7f9e9a87/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java 
b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4360b0b..433794a 100644
--- a/src/java/org/apache/cassandra/db

[2/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-08-27 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/ColumnIndex.java


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

Branch: refs/heads/cassandra-2.1
Commit: 29befa180be1b20ff404c29108f9bf3385f51855
Parents: 9219361 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Wed Aug 27 13:00:55 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Wed Aug 27 13:00:55 2014 +0200

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java|  2 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  8 +-
 .../db/compaction/LazilyCompactedRow.java   |  3 ++-
 .../apache/cassandra/db/RangeTombstoneTest.java | 27 
 5 files changed, 38 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/CHANGES.txt
--
diff --cc CHANGES.txt
index 9c6bd61,d27be1f..abdd561
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,80 -1,5 +1,81 @@@
 -1.2.19
 +2.0.11:
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * 

git commit: Track added sstable size correctly

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 b8be49b5e - de62175f2


Track added sstable size correctly

Patch by marcuse; reviewed by jbellis for CASSANDRA-7239


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

Branch: refs/heads/cassandra-2.1.0
Commit: de62175f27e3c06951dbf073c6092e7f15f216ca
Parents: b8be49b
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:09:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:09:53 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 5eb5fd8..c202586 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0-rc7
+ * Track added sstable size correctly (CASSANDRA-7239)
  * (cqlsh) Fix case insensitivity (CASSANDRA-7834)
  * Fix failure to stream ranges when moving (CASSANDRA-7836)
  * Correctly remove tmplink files (CASSANDRA-7803)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index e574143..097d8cc 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -252,6 +252,12 @@ public class DataTracker
 {
 replace(sstables, Collections.SSTableReaderemptyList());
 notifySSTablesChanged(sstables, allReplacements, compactionType);
+for (SSTableReader sstable : sstables)
+{
+long bytesOnDisk = sstable.bytesOnDisk();
+cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk);
+cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk);
+}
 }
 
 public void addInitialSSTables(CollectionSSTableReader sstables)



[1/2] git commit: Track added sstable size correctly

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 ed630e30e - bff7572ca


Track added sstable size correctly

Patch by marcuse; reviewed by jbellis for CASSANDRA-7239


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

Branch: refs/heads/cassandra-2.1
Commit: de62175f27e3c06951dbf073c6092e7f15f216ca
Parents: b8be49b
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:09:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:09:53 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 5eb5fd8..c202586 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0-rc7
+ * Track added sstable size correctly (CASSANDRA-7239)
  * (cqlsh) Fix case insensitivity (CASSANDRA-7834)
  * Fix failure to stream ranges when moving (CASSANDRA-7836)
  * Correctly remove tmplink files (CASSANDRA-7803)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index e574143..097d8cc 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -252,6 +252,12 @@ public class DataTracker
 {
 replace(sstables, Collections.SSTableReaderemptyList());
 notifySSTablesChanged(sstables, allReplacements, compactionType);
+for (SSTableReader sstable : sstables)
+{
+long bytesOnDisk = sstable.bytesOnDisk();
+cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk);
+cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk);
+}
 }
 
 public void addInitialSSTables(CollectionSSTableReader sstables)



[2/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/bff7572c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bff7572c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bff7572c

Branch: refs/heads/trunk
Commit: bff7572ca70455fcb2cf21880a2864a1d0030047
Parents: ed630e3 de62175
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:11:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:11:48 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bff7572c/CHANGES.txt
--
diff --cc CHANGES.txt
index 30fcf27,c202586..ccce6f7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,54 -1,5 +1,55 @@@
 -2.1.0-rc7
 +2.1.1
 + * (cqlsh): Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to remove multiple elements from a map (CASSANDRA-6599)
 + * Support non-equals conditions in lightweight transactions (CASSANDRA-6839)
 + * Add IF [NOT] EXISTS to create/drop triggers (CASSANDRA-7606)
 + * (cqlsh) Display the current logged-in user (CASSANDRA-7785)
 + * (cqlsh) Don't ignore CTRL-C during COPY FROM execution (CASSANDRA-7815)
 + * (cqlsh) Order UDTs according to cross-type dependencies in DESCRIBE
 +   output (CASSANDRA-7659)
 + * (cqlsh) Fix handling of CAS statement results (CASSANDRA-7671)
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
 +2.1.0
+  * Track added sstable size correctly (CASSANDRA-7239)
   * (cqlsh) Fix case insensitivity (CASSANDRA-7834)
   * Fix failure to stream ranges when moving (CASSANDRA-7836)
   * Correctly remove tmplink files (CASSANDRA-7803)



[1/3] git commit: Track added sstable size correctly

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk f92d00cc7 - 1bc8ffdae


Track added sstable size correctly

Patch by marcuse; reviewed by jbellis for CASSANDRA-7239


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

Branch: refs/heads/trunk
Commit: de62175f27e3c06951dbf073c6092e7f15f216ca
Parents: b8be49b
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:09:53 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:09:53 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 5eb5fd8..c202586 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0-rc7
+ * Track added sstable size correctly (CASSANDRA-7239)
  * (cqlsh) Fix case insensitivity (CASSANDRA-7834)
  * Fix failure to stream ranges when moving (CASSANDRA-7836)
  * Correctly remove tmplink files (CASSANDRA-7803)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de62175f/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index e574143..097d8cc 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -252,6 +252,12 @@ public class DataTracker
 {
 replace(sstables, Collections.SSTableReaderemptyList());
 notifySSTablesChanged(sstables, allReplacements, compactionType);
+for (SSTableReader sstable : sstables)
+{
+long bytesOnDisk = sstable.bytesOnDisk();
+cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk);
+cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk);
+}
 }
 
 public void addInitialSSTables(CollectionSSTableReader sstables)



[3/3] git commit: Merge branch 'cassandra-2.1' into trunk

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 1bc8ffdae24f1362aa04088991ad44b84e194d13
Parents: f92d00c bff7572
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:13:32 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:13:32 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


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



[2/2] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/bff7572c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bff7572c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bff7572c

Branch: refs/heads/cassandra-2.1
Commit: bff7572ca70455fcb2cf21880a2864a1d0030047
Parents: ed630e3 de62175
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 09:11:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 09:11:48 2014 +0200

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/db/DataTracker.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bff7572c/CHANGES.txt
--
diff --cc CHANGES.txt
index 30fcf27,c202586..ccce6f7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,54 -1,5 +1,55 @@@
 -2.1.0-rc7
 +2.1.1
 + * (cqlsh): Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to remove multiple elements from a map (CASSANDRA-6599)
 + * Support non-equals conditions in lightweight transactions (CASSANDRA-6839)
 + * Add IF [NOT] EXISTS to create/drop triggers (CASSANDRA-7606)
 + * (cqlsh) Display the current logged-in user (CASSANDRA-7785)
 + * (cqlsh) Don't ignore CTRL-C during COPY FROM execution (CASSANDRA-7815)
 + * (cqlsh) Order UDTs according to cross-type dependencies in DESCRIBE
 +   output (CASSANDRA-7659)
 + * (cqlsh) Fix handling of CAS statement results (CASSANDRA-7671)
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
 +2.1.0
+  * Track added sstable size correctly (CASSANDRA-7239)
   * (cqlsh) Fix case insensitivity (CASSANDRA-7834)
   * Fix failure to stream ranges when moving (CASSANDRA-7836)
   * Correctly remove tmplink files (CASSANDRA-7803)



[3/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/DataTracker.java
src/java/org/apache/cassandra/db/compaction/LeveledManifest.java


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

Branch: refs/heads/cassandra-2.1.0
Commit: ef890455061dcbbda5d9d1cad187fc43a664f4d4
Parents: de62175 968ffd8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:41:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:41:57 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/CHANGES.txt
--
diff --cc CHANGES.txt
index c202586,6d77f3c..477a332
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -20,39 -14,24 +20,40 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +Merged from 1.2:
++ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
 + * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --cc src/java/org/apache/cassandra/db/DataTracker.java
index 097d8cc,d41181b..857e8bd
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ 

[1/2] git commit: Don't allow marking already compacted sstables as compacting.

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 e48e6f33a - 968ffd8dd


Don't allow marking already compacted sstables as compacting.

Patch by marcuse; reviewed by yukim for CASSANDRA-7145


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

Branch: refs/heads/cassandra-2.0
Commit: 8bef2609abf32e9524c3aa6c89e5f2d5b381efb6
Parents: 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:11:38 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:11:38 2014 +0200

--
 CHANGES.txt|  1 +
 src/java/org/apache/cassandra/db/DataTracker.java  | 13 +
 .../cassandra/db/compaction/LeveledManifest.java   |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java |  5 +
 4 files changed, 23 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d27be1f..6c601e5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
  * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 3e271d3..a1092fa 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -22,6 +22,7 @@ import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -183,6 +184,18 @@ public class DataTracker
 if (inactive.size()  sstables.size())
 return false;
 
+if (Iterables.any(sstables, new PredicateSSTableReader()
+{
+@Override
+public boolean apply(SSTableReader sstable)
+{
+return sstable.isMarkedCompacted();
+}
+}))
+{
+return false;
+}
+
 View newView = currentView.markCompacting(inactive);
 return view.compareAndSet(currentView, newView);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java 
b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
index fc10883..796eb90 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
@@ -529,7 +529,10 @@ public class LeveledManifest
 // add sstables from L1 that overlap candidates
 // if the overlapping ones are already busy in a compaction, 
leave it out.
 // TODO try to find a set of L0 sstables that only overlaps 
with non-busy L1 sstables
-candidates = Sets.union(candidates, overlapping(candidates, 
generations[1]));
+SetSSTableReader l1overlapping = overlapping(candidates, 
generations[1]);
+if (Sets.intersection(l1overlapping, compacting).size()  0)
+return Collections.emptyList();
+candidates = Sets.union(candidates, l1overlapping);
 }
 // check overlap with L0 compacting sstables to make sure we are 
not generating overlap in L1.
 IterableSSTableReader compactingL0 = 
Iterables.filter(generations[0], Predicates.in(compacting));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 4af1cdc..ba7093c 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java

[1/3] git commit: Don't allow marking already compacted sstables as compacting.

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 de62175f2 - ef8904550


Don't allow marking already compacted sstables as compacting.

Patch by marcuse; reviewed by yukim for CASSANDRA-7145


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

Branch: refs/heads/cassandra-2.1.0
Commit: 8bef2609abf32e9524c3aa6c89e5f2d5b381efb6
Parents: 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:11:38 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:11:38 2014 +0200

--
 CHANGES.txt|  1 +
 src/java/org/apache/cassandra/db/DataTracker.java  | 13 +
 .../cassandra/db/compaction/LeveledManifest.java   |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java |  5 +
 4 files changed, 23 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d27be1f..6c601e5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
  * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 3e271d3..a1092fa 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -22,6 +22,7 @@ import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -183,6 +184,18 @@ public class DataTracker
 if (inactive.size()  sstables.size())
 return false;
 
+if (Iterables.any(sstables, new PredicateSSTableReader()
+{
+@Override
+public boolean apply(SSTableReader sstable)
+{
+return sstable.isMarkedCompacted();
+}
+}))
+{
+return false;
+}
+
 View newView = currentView.markCompacting(inactive);
 return view.compareAndSet(currentView, newView);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java 
b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
index fc10883..796eb90 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
@@ -529,7 +529,10 @@ public class LeveledManifest
 // add sstables from L1 that overlap candidates
 // if the overlapping ones are already busy in a compaction, 
leave it out.
 // TODO try to find a set of L0 sstables that only overlaps 
with non-busy L1 sstables
-candidates = Sets.union(candidates, overlapping(candidates, 
generations[1]));
+SetSSTableReader l1overlapping = overlapping(candidates, 
generations[1]);
+if (Sets.intersection(l1overlapping, compacting).size()  0)
+return Collections.emptyList();
+candidates = Sets.union(candidates, l1overlapping);
 }
 // check overlap with L0 compacting sstables to make sure we are 
not generating overlap in L1.
 IterableSSTableReader compactingL0 = 
Iterables.filter(generations[0], Predicates.in(compacting));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 4af1cdc..ba7093c 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java

git commit: Don't allow marking already compacted sstables as compacting.

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 7f9e9a871 - 8bef2609a


Don't allow marking already compacted sstables as compacting.

Patch by marcuse; reviewed by yukim for CASSANDRA-7145


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

Branch: refs/heads/cassandra-1.2
Commit: 8bef2609abf32e9524c3aa6c89e5f2d5b381efb6
Parents: 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:11:38 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:11:38 2014 +0200

--
 CHANGES.txt|  1 +
 src/java/org/apache/cassandra/db/DataTracker.java  | 13 +
 .../cassandra/db/compaction/LeveledManifest.java   |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java |  5 +
 4 files changed, 23 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d27be1f..6c601e5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
  * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 3e271d3..a1092fa 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -22,6 +22,7 @@ import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -183,6 +184,18 @@ public class DataTracker
 if (inactive.size()  sstables.size())
 return false;
 
+if (Iterables.any(sstables, new PredicateSSTableReader()
+{
+@Override
+public boolean apply(SSTableReader sstable)
+{
+return sstable.isMarkedCompacted();
+}
+}))
+{
+return false;
+}
+
 View newView = currentView.markCompacting(inactive);
 return view.compareAndSet(currentView, newView);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java 
b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
index fc10883..796eb90 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
@@ -529,7 +529,10 @@ public class LeveledManifest
 // add sstables from L1 that overlap candidates
 // if the overlapping ones are already busy in a compaction, 
leave it out.
 // TODO try to find a set of L0 sstables that only overlaps 
with non-busy L1 sstables
-candidates = Sets.union(candidates, overlapping(candidates, 
generations[1]));
+SetSSTableReader l1overlapping = overlapping(candidates, 
generations[1]);
+if (Sets.intersection(l1overlapping, compacting).size()  0)
+return Collections.emptyList();
+candidates = Sets.union(candidates, l1overlapping);
 }
 // check overlap with L0 compacting sstables to make sure we are 
not generating overlap in L1.
 IterableSSTableReader compactingL0 = 
Iterables.filter(generations[0], Predicates.in(compacting));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 4af1cdc..ba7093c 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java

[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

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/968ffd8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/968ffd8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/968ffd8d

Branch: refs/heads/cassandra-2.0
Commit: 968ffd8dd33a315e687208a6ab8e0d8b83e68603
Parents: e48e6f3 8bef260
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:37:23 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:37:23 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/968ffd8d/CHANGES.txt
--
diff --cc CHANGES.txt
index 5b52471,6c601e5..6d77f3c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,82 -1,5 +1,83 @@@
 -1.2.19
 +2.0.11:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Forbid re-adding dropped counter columns (CASSANDRA-7831)
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL 

[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

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/968ffd8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/968ffd8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/968ffd8d

Branch: refs/heads/cassandra-2.1.0
Commit: 968ffd8dd33a315e687208a6ab8e0d8b83e68603
Parents: e48e6f3 8bef260
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:37:23 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:37:23 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/968ffd8d/CHANGES.txt
--
diff --cc CHANGES.txt
index 5b52471,6c601e5..6d77f3c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,82 -1,5 +1,83 @@@
 -1.2.19
 +2.0.11:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Forbid re-adding dropped counter columns (CASSANDRA-7831)
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL 

[1/4] git commit: Don't allow marking already compacted sstables as compacting.

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 bff7572ca - 40182323f


Don't allow marking already compacted sstables as compacting.

Patch by marcuse; reviewed by yukim for CASSANDRA-7145


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

Branch: refs/heads/cassandra-2.1
Commit: 8bef2609abf32e9524c3aa6c89e5f2d5b381efb6
Parents: 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:11:38 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:11:38 2014 +0200

--
 CHANGES.txt|  1 +
 src/java/org/apache/cassandra/db/DataTracker.java  | 13 +
 .../cassandra/db/compaction/LeveledManifest.java   |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java |  5 +
 4 files changed, 23 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d27be1f..6c601e5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
  * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 3e271d3..a1092fa 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -22,6 +22,7 @@ import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -183,6 +184,18 @@ public class DataTracker
 if (inactive.size()  sstables.size())
 return false;
 
+if (Iterables.any(sstables, new PredicateSSTableReader()
+{
+@Override
+public boolean apply(SSTableReader sstable)
+{
+return sstable.isMarkedCompacted();
+}
+}))
+{
+return false;
+}
+
 View newView = currentView.markCompacting(inactive);
 return view.compareAndSet(currentView, newView);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java 
b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
index fc10883..796eb90 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
@@ -529,7 +529,10 @@ public class LeveledManifest
 // add sstables from L1 that overlap candidates
 // if the overlapping ones are already busy in a compaction, 
leave it out.
 // TODO try to find a set of L0 sstables that only overlaps 
with non-busy L1 sstables
-candidates = Sets.union(candidates, overlapping(candidates, 
generations[1]));
+SetSSTableReader l1overlapping = overlapping(candidates, 
generations[1]);
+if (Sets.intersection(l1overlapping, compacting).size()  0)
+return Collections.emptyList();
+candidates = Sets.union(candidates, l1overlapping);
 }
 // check overlap with L0 compacting sstables to make sure we are 
not generating overlap in L1.
 IterableSSTableReader compactingL0 = 
Iterables.filter(generations[0], Predicates.in(compacting));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 4af1cdc..ba7093c 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java

[2/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

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/968ffd8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/968ffd8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/968ffd8d

Branch: refs/heads/cassandra-2.1
Commit: 968ffd8dd33a315e687208a6ab8e0d8b83e68603
Parents: e48e6f3 8bef260
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:37:23 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:37:23 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/968ffd8d/CHANGES.txt
--
diff --cc CHANGES.txt
index 5b52471,6c601e5..6d77f3c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,82 -1,5 +1,83 @@@
 -1.2.19
 +2.0.11:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Forbid re-adding dropped counter columns (CASSANDRA-7831)
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL 

[5/5] git commit: Merge branch 'cassandra-2.1' into trunk

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: eeb150e9e318460e906ffc1a1d0b485cd00100f8
Parents: 1bc8ffd 4018232
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:49:43 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:49:43 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eeb150e9/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eeb150e9/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--



[4/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 40182323f5b052cca3e8d2bea6b808a6f85c1241
Parents: bff7572 ef89045
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:46:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:46:48 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/40182323/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--



[3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/DataTracker.java
src/java/org/apache/cassandra/db/compaction/LeveledManifest.java


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

Branch: refs/heads/cassandra-2.1
Commit: ef890455061dcbbda5d9d1cad187fc43a664f4d4
Parents: de62175 968ffd8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:41:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:41:57 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/CHANGES.txt
--
diff --cc CHANGES.txt
index c202586,6d77f3c..477a332
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -20,39 -14,24 +20,40 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +Merged from 1.2:
++ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
 + * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --cc src/java/org/apache/cassandra/db/DataTracker.java
index 097d8cc,d41181b..857e8bd
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ 

[1/5] git commit: Don't allow marking already compacted sstables as compacting.

2014-09-01 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 1bc8ffdae - eeb150e9e


Don't allow marking already compacted sstables as compacting.

Patch by marcuse; reviewed by yukim for CASSANDRA-7145


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

Branch: refs/heads/trunk
Commit: 8bef2609abf32e9524c3aa6c89e5f2d5b381efb6
Parents: 7f9e9a8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:11:38 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:11:38 2014 +0200

--
 CHANGES.txt|  1 +
 src/java/org/apache/cassandra/db/DataTracker.java  | 13 +
 .../cassandra/db/compaction/LeveledManifest.java   |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java |  5 +
 4 files changed, 23 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d27be1f..6c601e5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
  * Track expired tombstones (CASSANDRA-7810)
  * Validate empty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 3e271d3..a1092fa 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -22,6 +22,7 @@ import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -183,6 +184,18 @@ public class DataTracker
 if (inactive.size()  sstables.size())
 return false;
 
+if (Iterables.any(sstables, new PredicateSSTableReader()
+{
+@Override
+public boolean apply(SSTableReader sstable)
+{
+return sstable.isMarkedCompacted();
+}
+}))
+{
+return false;
+}
+
 View newView = currentView.markCompacting(inactive);
 return view.compareAndSet(currentView, newView);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java 
b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
index fc10883..796eb90 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
@@ -529,7 +529,10 @@ public class LeveledManifest
 // add sstables from L1 that overlap candidates
 // if the overlapping ones are already busy in a compaction, 
leave it out.
 // TODO try to find a set of L0 sstables that only overlaps 
with non-busy L1 sstables
-candidates = Sets.union(candidates, overlapping(candidates, 
generations[1]));
+SetSSTableReader l1overlapping = overlapping(candidates, 
generations[1]);
+if (Sets.intersection(l1overlapping, compacting).size()  0)
+return Collections.emptyList();
+candidates = Sets.union(candidates, l1overlapping);
 }
 // check overlap with L0 compacting sstables to make sure we are 
not generating overlap in L1.
 IterableSSTableReader compactingL0 = 
Iterables.filter(generations[0], Predicates.in(compacting));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bef2609/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 4af1cdc..ba7093c 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -994,6 +994,11

[2/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-1.2' into cassandra-2.0

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/968ffd8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/968ffd8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/968ffd8d

Branch: refs/heads/trunk
Commit: 968ffd8dd33a315e687208a6ab8e0d8b83e68603
Parents: e48e6f3 8bef260
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:37:23 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:37:23 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/968ffd8d/CHANGES.txt
--
diff --cc CHANGES.txt
index 5b52471,6c601e5..6d77f3c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,82 -1,5 +1,83 @@@
 -1.2.19
 +2.0.11:
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Forbid re-adding dropped counter columns (CASSANDRA-7831)
 + * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
 + * Always reject inequality on the partition key without token()
 +   (CASSANDRA-7722)
 + * Always send Paxos commit to all replicas (CASSANDRA-7479)
 +
 +
 +2.0.10
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
 + * Fix ALTER clustering column type from DateType to TimestampType when
 +   using DESC clustering order (CASSANRDA-7797)
 + * Stop inheriting liveRatio and liveRatioComputedAt from previous
 +   memtables (CASSANDRA-7796)
 + * Throw EOFException if we run out of chunks in compressed datafile
 +   (CASSANDRA-7664)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
 + * Properly reject operations on list index with conditions (CASSANDRA-7499)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
 + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
 + * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
 + * Give CRR a default input_cql Statement (CASSANDRA-7226)
 + * Better error message when adding a collection with the same name
 +   than a previously dropped one (CASSANDRA-6276)
 + * Fix validation when adding static columns (CASSANDRA-7730)
 + * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
 + * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
 + * Validate arguments of blobAs* functions (CASSANDRA-7707)
 + * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
 + * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
 + * Minor leak in sstable2jon (CASSANDRA-7709)
 + * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
 + * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * Update java driver (for hadoop) (CASSANDRA-7618)
 + * Fix truncate to always flush (CASSANDRA-7511)
 + * Remove shuffle and taketoken (CASSANDRA-7601)
 + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Always merge ranges owned by a single node (CASSANDRA-6930)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
 + * Fix range merging when DES scores are zero (CASSANDRA-7535)
 + * Warn when SSL certificates 

[3/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.0' into cassandra-2.1.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/DataTracker.java
src/java/org/apache/cassandra/db/compaction/LeveledManifest.java


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

Branch: refs/heads/trunk
Commit: ef890455061dcbbda5d9d1cad187fc43a664f4d4
Parents: de62175 968ffd8
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:41:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:41:57 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/CHANGES.txt
--
diff --cc CHANGES.txt
index c202586,6d77f3c..477a332
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -20,39 -14,24 +20,40 @@@ Merged from 2.0
   * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
   * Fix ALTER clustering column type from DateType to TimestampType when
 using DESC clustering order (CASSANRDA-7797)
 - * Stop inheriting liveRatio and liveRatioComputedAt from previous
 -   memtables (CASSANDRA-7796)
   * Throw EOFException if we run out of chunks in compressed datafile
 (CASSANDRA-7664)
 - * Throw InvalidRequestException when queries contain relations on entire
 -   collection columns (CASSANDRA-7506)
   * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
 - * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
   * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
   * Properly reject operations on list index with conditions (CASSANDRA-7499)
 - * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
 + * Validate empty cell names from counter updates (CASSANDRA-7798)
 +Merged from 1.2:
++ * Don't allow compacted sstables to be marked as compacting (CASSANDRA-7145)
 + * Track expired tombstones (CASSANDRA-7810)
 +
 +
 +2.1.0-rc6
 + * Fix OOM issue from netty caching over time (CASSANDRA-7743)
 + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477)
 + * Invalidate all caches on table drop (CASSANDRA-7561)
 + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765)
 + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741)
 + * Add tracing entries about concurrent range requests (CASSANDRA-7599)
 + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
 + * Remove netty buffer ref-counting (CASSANDRA-7735)
 + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
 + * Include stress yaml example in release and deb (CASSANDRA-7717)
 + * workaround for netty issue causing corrupted data off the wire 
(CASSANDRA-7695)
 + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
 + * Fix binding null values inside UDT (CASSANDRA-7685)
 + * Fix UDT field selection with empty fields (CASSANDRA-7670)
 + * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
 + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770)
 +Merged from 2.0:
   * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
   * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
 - * (cqlsh) cqlsh should automatically disable tracing when selecting
 -   from system_traces (CASSANDRA-7641)
 - * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 - * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 - * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
 + * Clone token map outside of hot gossip loops (CASSANDRA-7758)
   * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
   * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
   * Give CRR a default input_cql Statement (CASSANDRA-7226)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef890455/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --cc src/java/org/apache/cassandra/db/DataTracker.java
index 097d8cc,d41181b..857e8bd
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ 

[4/5] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-01 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 40182323f5b052cca3e8d2bea6b808a6f85c1241
Parents: bff7572 ef89045
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Sep 1 15:46:48 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Sep 1 15:46:48 2014 +0200

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/db/DataTracker.java   | 12 
 .../apache/cassandra/db/compaction/LeveledManifest.java |  5 -
 .../org/apache/cassandra/io/sstable/SSTableReader.java  |  5 +
 4 files changed, 22 insertions(+), 1 deletion(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/40182323/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
--



git commit: Don't expose internal classes over JMX

2014-09-05 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 c81dc4bb2 - 45014886e


Don't expose internal classes over JMX

Patch by marcuse; reviewed by slebresne for CASSANDRA-7879


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

Branch: refs/heads/cassandra-2.1.0
Commit: 45014886e89e5bd47bf2f4c9871391d77702ad82
Parents: c81dc4b
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:02:29 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:02:29 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 30 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 93d77c1..befdcd7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Avoid exposing internal classes over JMX (CASSANDRA-7879)
  * Add null check for keys when freezing collection (CASSANDRA-7869)
 
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 65c4882..09c068f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -289,7 +289,14 @@ public class CompactionManager implements 
CompactionManagerMBean
 void execute(SSTableReader input) throws IOException;
 }
 
-public enum AllSSTableOpStatus { ABORTED, SUCCESSFUL }
+public enum AllSSTableOpStatus { ABORTED(1), SUCCESSFUL(0);
+public final int statusCode;
+
+AllSSTableOpStatus(int statusCode)
+{
+this.statusCode = statusCode;
+}
+}
 
 public AllSSTableOpStatus performScrub(final ColumnFamilyStore cfs, final 
boolean skipCorrupted) throws InterruptedException, ExecutionException
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 735bf7b..5c6dbd6 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2156,7 +2156,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 return 
Gossiper.instance.getCurrentGenerationNumber(FBUtilities.getBroadcastAddress());
 }
 
-public CompactionManager.AllSSTableOpStatus forceKeyspaceCleanup(String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
+public int forceKeyspaceCleanup(String keyspaceName, String... 
columnFamilies) throws IOException, ExecutionException, InterruptedException
 {
 if (keyspaceName.equals(Keyspace.SYSTEM_KS))
 throw new RuntimeException(Cleanup of the system keyspace is 
neither necessary nor wise);
@@ -2168,10 +2168,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 if (oneStatus != CompactionManager.AllSSTableOpStatus.SUCCESSFUL)
 status = oneStatus;
 }
-return status;
+return status.statusCode;
 }
 
-public CompactionManager.AllSSTableOpStatus scrub(boolean disableSnapshot, 
boolean skipCorrupted, String keyspaceName, String... columnFamilies) throws 
IOException, ExecutionException, InterruptedException
+public int scrub(boolean disableSnapshot, boolean skipCorrupted, String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
 {
 CompactionManager.AllSSTableOpStatus status = 
CompactionManager.AllSSTableOpStatus.SUCCESSFUL;
 for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, 
keyspaceName, columnFamilies))
@@ -2180,10 +2180,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE

[3/3] git commit: Merge branch 'cassandra-2.1' into trunk

2014-09-05 Thread marcuse
Merge branch 'cassandra-2.1' into trunk

Conflicts:
src/java/org/apache/cassandra/tools/NodeProbe.java


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

Branch: refs/heads/trunk
Commit: 37a9d405c7fe5de84450e20960d94a134d3e85e9
Parents: 719bb39 dd972e6
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:10:40 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:10:40 2014 +0200

--
 CHANGES.txt |  2 ++
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 31 insertions(+), 28 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/37a9d405/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/37a9d405/src/java/org/apache/cassandra/tools/NodeProbe.java
--
diff --cc src/java/org/apache/cassandra/tools/NodeProbe.java
index a0d4db7,3f3073d..55f462e
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@@ -203,34 -203,28 +203,28 @@@ public class NodeProbe implements AutoC
  
  public void forceKeyspaceCleanup(PrintStream out, String keyspaceName, 
String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
  {
- switch (forceKeyspaceCleanup(keyspaceName, columnFamilies))
+ if (forceKeyspaceCleanup(keyspaceName, columnFamilies) != 0)
  {
- case ABORTED:
- failed = true;
- out.println(Aborted cleaning up atleast one table in 
keyspace +keyspaceName+, check server logs for more information.);
- break;
+ failed = true;
 -out.println(Aborted cleaning up atleast one column family in 
keyspace +keyspaceName+, check server logs for more information.);
++out.println(Aborted cleaning up atleast one table in keyspace 
+keyspaceName+, check server logs for more information.);
  }
  }
  
  public void scrub(PrintStream out, boolean disableSnapshot, boolean 
skipCorrupted, String keyspaceName, String... columnFamilies) throws 
IOException, ExecutionException, InterruptedException
  {
- switch (scrub(disableSnapshot, skipCorrupted, keyspaceName, 
columnFamilies))
+ if (scrub(disableSnapshot, skipCorrupted, keyspaceName, 
columnFamilies) != 0)
  {
- case ABORTED:
- failed = true;
- out.println(Aborted scrubbing atleast one table in keyspace 
+keyspaceName+, check server logs for more information.);
- break;
+ failed = true;
 -out.println(Aborted scrubbing atleast one column family in 
keyspace +keyspaceName+, check server logs for more information.);
++out.println(Aborted scrubbing atleast one table in keyspace 
+keyspaceName+, check server logs for more information.);
  }
  }
  
  public void upgradeSSTables(PrintStream out, String keyspaceName, boolean 
excludeCurrentVersion, String... columnFamilies) throws IOException, 
ExecutionException, InterruptedException
  {
- switch (upgradeSSTables(keyspaceName, excludeCurrentVersion, 
columnFamilies))
+ if (upgradeSSTables(keyspaceName, excludeCurrentVersion, 
columnFamilies) != 0)
  {
- case ABORTED:
- failed = true;
- out.println(Aborted upgrading sstables for atleast one table 
in keyspace +keyspaceName+, check server logs for more information.);
- break;
+ failed = true;
 -out.println(Aborted upgrading sstables for atleast one column 
family in keyspace +keyspaceName+, check server logs for more information.);
++out.println(Aborted upgrading sstables for atleast one table in 
keyspace +keyspaceName+, check server logs for more information.);
  }
  }
  



[1/3] git commit: Don't expose internal classes over JMX

2014-09-05 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 719bb3928 - 37a9d405c


Don't expose internal classes over JMX

Patch by marcuse; reviewed by slebresne for CASSANDRA-7879


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

Branch: refs/heads/trunk
Commit: 45014886e89e5bd47bf2f4c9871391d77702ad82
Parents: c81dc4b
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:02:29 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:02:29 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 30 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 93d77c1..befdcd7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Avoid exposing internal classes over JMX (CASSANDRA-7879)
  * Add null check for keys when freezing collection (CASSANDRA-7869)
 
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 65c4882..09c068f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -289,7 +289,14 @@ public class CompactionManager implements 
CompactionManagerMBean
 void execute(SSTableReader input) throws IOException;
 }
 
-public enum AllSSTableOpStatus { ABORTED, SUCCESSFUL }
+public enum AllSSTableOpStatus { ABORTED(1), SUCCESSFUL(0);
+public final int statusCode;
+
+AllSSTableOpStatus(int statusCode)
+{
+this.statusCode = statusCode;
+}
+}
 
 public AllSSTableOpStatus performScrub(final ColumnFamilyStore cfs, final 
boolean skipCorrupted) throws InterruptedException, ExecutionException
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 735bf7b..5c6dbd6 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2156,7 +2156,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 return 
Gossiper.instance.getCurrentGenerationNumber(FBUtilities.getBroadcastAddress());
 }
 
-public CompactionManager.AllSSTableOpStatus forceKeyspaceCleanup(String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
+public int forceKeyspaceCleanup(String keyspaceName, String... 
columnFamilies) throws IOException, ExecutionException, InterruptedException
 {
 if (keyspaceName.equals(Keyspace.SYSTEM_KS))
 throw new RuntimeException(Cleanup of the system keyspace is 
neither necessary nor wise);
@@ -2168,10 +2168,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 if (oneStatus != CompactionManager.AllSSTableOpStatus.SUCCESSFUL)
 status = oneStatus;
 }
-return status;
+return status.statusCode;
 }
 
-public CompactionManager.AllSSTableOpStatus scrub(boolean disableSnapshot, 
boolean skipCorrupted, String keyspaceName, String... columnFamilies) throws 
IOException, ExecutionException, InterruptedException
+public int scrub(boolean disableSnapshot, boolean skipCorrupted, String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
 {
 CompactionManager.AllSSTableOpStatus status = 
CompactionManager.AllSSTableOpStatus.SUCCESSFUL;
 for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, 
keyspaceName, columnFamilies))
@@ -2180,10 +2180,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE

[2/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-05 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/dd972e6c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd972e6c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd972e6c

Branch: refs/heads/trunk
Commit: dd972e6c3f48619d30e4167dde92cd333d58ffad
Parents: d304b7c 4501488
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:06:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:06:57 2014 +0200

--
 CHANGES.txt |  2 ++
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 31 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd972e6c/CHANGES.txt
--
diff --cc CHANGES.txt
index 5404f83,befdcd7..a0ba08b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,56 -1,9 +1,58 @@@
 +2.1.1
 + * (cqlsh): Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to remove multiple elements from a map (CASSANDRA-6599)
 + * Support non-equals conditions in lightweight transactions (CASSANDRA-6839)
 + * Add IF [NOT] EXISTS to create/drop triggers (CASSANDRA-7606)
 + * (cqlsh) Display the current logged-in user (CASSANDRA-7785)
 + * (cqlsh) Don't ignore CTRL-C during COPY FROM execution (CASSANDRA-7815)
 + * (cqlsh) Order UDTs according to cross-type dependencies in DESCRIBE
 +   output (CASSANDRA-7659)
 + * (cqlsh) Fix handling of CAS statement results (CASSANDRA-7671)
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * Explicitly disallow mixing multi-column and single-column
 +   relations on clustering columns (CASSANDRA-7711)
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
  2.1.0
+  * Avoid exposing internal classes over JMX (CASSANDRA-7879)
+  * Add null check for keys when freezing collection (CASSANDRA-7869)
 -
 -
 -2.1.0-rc7
   * Add frozen keyword and require UDT to be frozen (CASSANDRA-7857)
   * Track added sstable size correctly (CASSANDRA-7239)
   * (cqlsh) Fix case insensitivity (CASSANDRA-7834)


[1/2] git commit: Don't expose internal classes over JMX

2014-09-05 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 d304b7cab - dd972e6c3


Don't expose internal classes over JMX

Patch by marcuse; reviewed by slebresne for CASSANDRA-7879


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

Branch: refs/heads/cassandra-2.1
Commit: 45014886e89e5bd47bf2f4c9871391d77702ad82
Parents: c81dc4b
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:02:29 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:02:29 2014 +0200

--
 CHANGES.txt |  1 +
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 30 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 93d77c1..befdcd7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0
+ * Avoid exposing internal classes over JMX (CASSANDRA-7879)
  * Add null check for keys when freezing collection (CASSANDRA-7869)
 
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 65c4882..09c068f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -289,7 +289,14 @@ public class CompactionManager implements 
CompactionManagerMBean
 void execute(SSTableReader input) throws IOException;
 }
 
-public enum AllSSTableOpStatus { ABORTED, SUCCESSFUL }
+public enum AllSSTableOpStatus { ABORTED(1), SUCCESSFUL(0);
+public final int statusCode;
+
+AllSSTableOpStatus(int statusCode)
+{
+this.statusCode = statusCode;
+}
+}
 
 public AllSSTableOpStatus performScrub(final ColumnFamilyStore cfs, final 
boolean skipCorrupted) throws InterruptedException, ExecutionException
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/45014886/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 735bf7b..5c6dbd6 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2156,7 +2156,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 return 
Gossiper.instance.getCurrentGenerationNumber(FBUtilities.getBroadcastAddress());
 }
 
-public CompactionManager.AllSSTableOpStatus forceKeyspaceCleanup(String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
+public int forceKeyspaceCleanup(String keyspaceName, String... 
columnFamilies) throws IOException, ExecutionException, InterruptedException
 {
 if (keyspaceName.equals(Keyspace.SYSTEM_KS))
 throw new RuntimeException(Cleanup of the system keyspace is 
neither necessary nor wise);
@@ -2168,10 +2168,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 if (oneStatus != CompactionManager.AllSSTableOpStatus.SUCCESSFUL)
 status = oneStatus;
 }
-return status;
+return status.statusCode;
 }
 
-public CompactionManager.AllSSTableOpStatus scrub(boolean disableSnapshot, 
boolean skipCorrupted, String keyspaceName, String... columnFamilies) throws 
IOException, ExecutionException, InterruptedException
+public int scrub(boolean disableSnapshot, boolean skipCorrupted, String 
keyspaceName, String... columnFamilies) throws IOException, ExecutionException, 
InterruptedException
 {
 CompactionManager.AllSSTableOpStatus status = 
CompactionManager.AllSSTableOpStatus.SUCCESSFUL;
 for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, 
keyspaceName, columnFamilies))
@@ -2180,10 +2180,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE

[2/2] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-09-05 Thread marcuse
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/dd972e6c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd972e6c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd972e6c

Branch: refs/heads/cassandra-2.1
Commit: dd972e6c3f48619d30e4167dde92cd333d58ffad
Parents: d304b7c 4501488
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Sep 5 11:06:57 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Fri Sep 5 11:06:57 2014 +0200

--
 CHANGES.txt |  2 ++
 .../db/compaction/CompactionManager.java|  9 +-
 .../cassandra/service/StorageService.java   | 12 
 .../cassandra/service/StorageServiceMBean.java  |  6 ++--
 .../org/apache/cassandra/tools/NodeProbe.java   | 30 
 5 files changed, 31 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd972e6c/CHANGES.txt
--
diff --cc CHANGES.txt
index 5404f83,befdcd7..a0ba08b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,56 -1,9 +1,58 @@@
 +2.1.1
 + * (cqlsh): Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to remove multiple elements from a map (CASSANDRA-6599)
 + * Support non-equals conditions in lightweight transactions (CASSANDRA-6839)
 + * Add IF [NOT] EXISTS to create/drop triggers (CASSANDRA-7606)
 + * (cqlsh) Display the current logged-in user (CASSANDRA-7785)
 + * (cqlsh) Don't ignore CTRL-C during COPY FROM execution (CASSANDRA-7815)
 + * (cqlsh) Order UDTs according to cross-type dependencies in DESCRIBE
 +   output (CASSANDRA-7659)
 + * (cqlsh) Fix handling of CAS statement results (CASSANDRA-7671)
 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405)
 + * Support list index operations with conditions (CASSANDRA-7499)
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of 
partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace 
(CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
 + * Explicitly disallow mixing multi-column and single-column
 +   relations on clustering columns (CASSANDRA-7711)
 + * Better error message when condition is set on PK column (CASSANDRA-7804)
 + * Don't send schema change responses and events for no-op DDL
 +   statements (CASSANDRA-7600)
 + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
 + * Throw InvalidRequestException when queries contain relations on entire
 +   collection columns (CASSANDRA-7506)
 + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
 + * (cqlsh) cqlsh should automatically disable tracing when selecting
 +   from system_traces (CASSANDRA-7641)
 + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
 + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
 + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
 + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
 + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
 + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS 
(CASSANDRA-7611)
 + * Catch errors when the JVM pulls the rug out from GCInspector 
(CASSANDRA-5345)
 + * cqlsh fails when version number parts are not int (CASSANDRA-7524)
 +Merged from 1.2:
 + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
 +
 +
  2.1.0
+  * Avoid exposing internal classes over JMX (CASSANDRA-7879)
+  * Add null check for keys when freezing collection (CASSANDRA-7869)
 -
 -
 -2.1.0-rc7
   * Add frozen keyword and require UDT to be frozen (CASSANDRA-7857)
   * Track added sstable size correctly (CASSANDRA-7239)
   * (cqlsh) Fix case insensitivity (CASSANDRA-7834)


[5/5] git commit: Merge branch 'cassandra-2.1' into trunk

2014-11-03 Thread marcuse
Merge branch 'cassandra-2.1' into trunk

Conflicts:
src/java/org/apache/cassandra/db/compaction/CompactionManager.java
src/java/org/apache/cassandra/db/compaction/Upgrader.java
src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java


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

Branch: refs/heads/trunk
Commit: 0f59629ce280ba2a74d65a7719dde7cf79923f05
Parents: e60a06c 5160c91
Author: Marcus Eriksson marc...@apache.org
Authored: Mon Nov 3 17:02:10 2014 +0100
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Nov 3 17:02:10 2014 +0100

--
 CHANGES.txt |   2 +
 .../org/apache/cassandra/db/DataTracker.java| 109 ++--
 .../db/compaction/CompactionManager.java|  29 +-
 .../cassandra/db/compaction/CompactionTask.java |   7 +-
 .../cassandra/db/compaction/Scrubber.java   |  12 +-
 .../cassandra/db/compaction/Upgrader.java   |  31 +-
 .../io/sstable/IndexSummaryManager.java |   2 +-
 .../cassandra/io/sstable/SSTableRewriter.java   | 160 +++---
 .../io/sstable/format/SSTableReader.java|   6 +
 .../db/compaction/AntiCompactionTest.java   |  42 +-
 .../io/sstable/IndexSummaryManagerTest.java |   2 +-
 .../cassandra/io/sstable/SSTableReaderTest.java |   2 +-
 .../io/sstable/SSTableRewriterTest.java | 504 +++
 13 files changed, 755 insertions(+), 153 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/CHANGES.txt
--
diff --cc CHANGES.txt
index 3a8ada2,32083cc..9754110
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,6 +1,39 @@@
 +3.0
 + * Mark sstables as repaired after full repair (CASSANDRA-7586) 
 + * Extend Descriptor to include a format value and refactor reader/writer 
apis (CASSANDRA-7443)
 + * Integrate JMH for microbenchmarks (CASSANDRA-8151)
 + * Keep sstable levels when bootstrapping (CASSANDRA-7460)
 + * Add Sigar library and perform basic OS settings check on startup 
(CASSANDRA-7838)
 + * Support for aggregation functions (CASSANDRA-4914)
 + * Remove cassandra-cli (CASSANDRA-7920)
 + * Accept dollar quoted strings in CQL (CASSANDRA-7769)
 + * Make assassinate a first class command (CASSANDRA-7935)
 + * Support IN clause on any clustering column (CASSANDRA-4762)
 + * Improve compaction logging (CASSANDRA-7818)
 + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
 + * Do anticompaction in groups (CASSANDRA-6851)
 + * Support pure user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 
7781, 7929,
 +   7924, 7812, 8063)
 + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
 + * Move sstable RandomAccessReader to nio2, which allows using the
 +   FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
 + * Remove CQL2 (CASSANDRA-5918)
 + * Add Thrift get_multi_slice call (CASSANDRA-6757)
 + * Optimize fetching multiple cells by name (CASSANDRA-6933)
 + * Allow compilation in java 8 (CASSANDRA-7028)
 + * Make incremental repair default (CASSANDRA-7250)
 + * Enable code coverage thru JaCoCo (CASSANDRA-7226)
 + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) 
 + * Shorten SSTable path (CASSANDRA-6962)
 + * Use unsafe mutations for most unit tests (CASSANDRA-6969)
 + * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
 + * Fail on very large batch sizes (CASSANDRA-8011)
 + * improve concurrency of repair (CASSANDRA-6455)
 +
 +
  2.1.2
+  * Refactor how we track live size (CASSANDRA-7852)
+  * Make sure unfinished compaction files are removed (CASSANDRA-8124)
   * Fix shutdown when run as Windows service (CASSANDRA-8136)
   * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031)
   * Fix race in RecoveryManagerTest (CASSANDRA-8176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/db/DataTracker.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 3ee36cd,84c3cb5..cccb7f9
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@@ -1045,76 -987,63 +1046,78 @@@ public class CompactionManager implemen
  if (!new 

[1/5] git commit: Make sure unfinished compaction files are removed.

2014-11-03 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk e60a06cc8 - 0f59629ce


Make sure unfinished compaction files are removed.

Patch by marcuse; reviewed by yukim for CASSANDRA-8124


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

Branch: refs/heads/trunk
Commit: 9c316e7858f6dbf9df892aff78431044aa104ed9
Parents: d230922
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Oct 17 14:15:46 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Nov 3 16:17:01 2014 +0100

--
 CHANGES.txt |   1 +
 .../cassandra/io/sstable/SSTableReader.java |   6 +
 .../cassandra/io/sstable/SSTableRewriter.java   |  90 +++-
 .../io/sstable/SSTableRewriterTest.java | 473 +++
 4 files changed, 555 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 494fb93..681d616 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.2
+ * Make sure unfinished compaction files are removed (CASSANDRA-8124)
  * Fix shutdown when run as Windows service (CASSANDRA-8136)
  * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031)
  * Fix race in RecoveryManagerTest (CASSANDRA-8176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 872f7df..40e708d 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -1599,6 +1599,12 @@ public class SSTableReader extends SSTable
 }
 }
 
+@VisibleForTesting
+int referenceCount()
+{
+return references.get();
+}
+
 /**
  * Release reference to this SSTableReader.
  * If there is no one referring to this SSTable, and is marked as 
compacted,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
index 76677ac..2c9fe7e 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
@@ -25,8 +25,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
+import com.google.common.collect.Lists;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.ColumnFamilyStore;
@@ -37,6 +39,7 @@ import 
org.apache.cassandra.db.compaction.AbstractCompactedRow;
 import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.utils.CLibrary;
 import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Pair;
 
 /**
  * Wraps one or more writers as output for rewriting one or more readers: 
every sstable_preemptive_open_interval_in_mb
@@ -55,8 +58,7 @@ import org.apache.cassandra.utils.FBUtilities;
  */
 public class SSTableRewriter
 {
-
-private static final long preemptiveOpenInterval;
+private static long preemptiveOpenInterval;
 static
 {
 long interval = 
DatabaseDescriptor.getSSTablePreempiveOpenIntervalInMB() * (1L  20);
@@ -65,6 +67,14 @@ public class SSTableRewriter
 preemptiveOpenInterval = interval;
 }
 
+private boolean isFinished = false;
+
+@VisibleForTesting
+static void overrideOpenInterval(long size)
+{
+preemptiveOpenInterval = size;
+}
+
 private final DataTracker dataTracker;
 private final ColumnFamilyStore cfs;
 
@@ -77,6 +87,8 @@ public class SSTableRewriter
 private long currentlyOpenedEarlyAt; // the position (in MB) in the target 
file we last (re)opened at
 
 private final ListSSTableReader finished = new ArrayList(); // the 
resultant sstables
+private final ListSSTableReader finishedOpenedEarly = new ArrayList(); 
// the 'finished' tmplink sstables
+private final ListPairSSTableWriter, SSTableReader finishedWriters = 
new ArrayList();
 private final OperationType rewriteType; // the type

[4/5] Merge branch 'cassandra-2.1' into trunk

2014-11-03 Thread marcuse
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
--
diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index c3062f7,000..7d4b8f3
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,1881 -1,0 +1,1887 @@@
 +package org.apache.cassandra.io.sstable.format;
 +
 +/*
 + * 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.
 + */
 +
 +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException;
 +import com.clearspring.analytics.stream.cardinality.ICardinality;
 +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 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.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.compaction.ICompactionScanner;
 +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.dht.*;
 +import org.apache.cassandra.io.compress.CompressedRandomAccessReader;
 +import org.apache.cassandra.io.compress.CompressedThrottledReader;
 +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 java.io.*;
 +import java.nio.ByteBuffer;
 +import java.util.*;
 +import java.util.concurrent.*;
 +import java.util.concurrent.atomic.AtomicBoolean;
 +import java.util.concurrent.atomic.AtomicInteger;
 +import java.util.concurrent.atomic.AtomicLong;
 +
 +import static 
org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR;
 +
 +
 +/**
 + * SSTableReaders are open()ed by Keyspace.onStart; after that they are 
created by SSTableWriter.renameAndOpen.
 + * Do not re-call open() on existing SSTable files; use the references kept 
by ColumnFamilyStore post-start instead.
 + */
 +public abstract class SSTableReader extends SSTable
 +{
 +private static final Logger logger = 
LoggerFactory.getLogger(SSTableReader.class);
 +
 +private static final ScheduledThreadPoolExecutor syncExecutor = new 
ScheduledThreadPoolExecutor(1);
 +private static final RateLimiter meterSyncThrottle = 
RateLimiter.create(100.0);
 +
 +public static final ComparatorSSTableReader maxTimestampComparator = 
new ComparatorSSTableReader()
 +{
 +public int compare(SSTableReader o1, SSTableReader o2)
 +{
 +long ts1 = o1.getMaxTimestamp();
 +long ts2 = o2.getMaxTimestamp();
 +return (ts1  ts2 ? -1 : (ts1 == ts2 ? 0 : 1));
 +}
 +};
 +
 +public static final ComparatorSSTableReader sstableComparator = new 
ComparatorSSTableReader()
 +{
 +public int compare(SSTableReader o1, SSTableReader o2)
 +{
 +return o1.first.compareTo(o2.first);
 +}
 +};
 +
 +public static final OrderingSSTableReader sstableOrdering = 
Ordering.from(sstableComparator);
 +
 + 

[2/2] git commit: Refactor how we track live size

2014-11-03 Thread marcuse
Refactor how we track live size

Patch by marcuse; reviewed by yukim for CASSANDRA-7852


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

Branch: refs/heads/cassandra-2.1
Commit: 5160c916c90886f69023ddba0078a624e5cf202d
Parents: 9c316e7
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Oct 17 14:15:46 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Nov 3 16:39:19 2014 +0100

--
 CHANGES.txt |   1 +
 .../org/apache/cassandra/db/DataTracker.java| 109 ---
 .../db/compaction/CompactionManager.java|  26 ++---
 .../cassandra/db/compaction/CompactionTask.java |   7 +-
 .../cassandra/db/compaction/Scrubber.java   |  12 +-
 .../cassandra/db/compaction/Upgrader.java   |  31 +++---
 .../io/sstable/IndexSummaryManager.java |   2 +-
 .../cassandra/io/sstable/SSTableRewriter.java   |  90 ---
 .../db/compaction/AntiCompactionTest.java   |  48 +++-
 .../io/sstable/IndexSummaryManagerTest.java |   2 +-
 .../cassandra/io/sstable/SSTableReaderTest.java |   2 +-
 .../io/sstable/SSTableRewriterTest.java |  57 ++
 12 files changed, 219 insertions(+), 168 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 681d616..32083cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.2
+ * Refactor how we track live size (CASSANDRA-7852)
  * Make sure unfinished compaction files are removed (CASSANDRA-8124)
  * Fix shutdown when run as Windows service (CASSANDRA-8136)
  * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 7393323..7df2b75 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -254,33 +254,36 @@ public class DataTracker
 
 public void markObsolete(CollectionSSTableReader sstables, OperationType 
compactionType)
 {
-replace(sstables, Collections.SSTableReaderemptyList());
+removeSSTablesFromTracker(sstables);
+releaseReferences(sstables, false);
 notifySSTablesChanged(sstables, 
Collections.SSTableReaderemptyList(), compactionType);
 }
 
+/**
+ *
+ * @param oldSSTables
+ * @param allReplacements
+ * @param compactionType
+ */
 // note that this DOES NOT insert the replacement sstables, it only 
removes the old sstables and notifies any listeners
 // that they have been replaced by the provided sstables, which must have 
been performed by an earlier replaceReaders() call
-public void markCompactedSSTablesReplaced(CollectionSSTableReader 
sstables, CollectionSSTableReader allReplacements, OperationType 
compactionType)
+public void markCompactedSSTablesReplaced(CollectionSSTableReader 
oldSSTables, CollectionSSTableReader allReplacements, OperationType 
compactionType)
 {
-replace(sstables, Collections.SSTableReaderemptyList());
-notifySSTablesChanged(sstables, allReplacements, compactionType);
-for (SSTableReader sstable : allReplacements)
-{
-long bytesOnDisk = sstable.bytesOnDisk();
-cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk);
-cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk);
-}
+removeSSTablesFromTracker(oldSSTables);
+releaseReferences(oldSSTables, false);
+notifySSTablesChanged(oldSSTables, allReplacements, compactionType);
+addNewSSTablesSize(allReplacements);
 }
 
 public void addInitialSSTables(CollectionSSTableReader sstables)
 {
-replace(Collections.SSTableReaderemptyList(), sstables);
+addSSTablesToTracker(sstables);
 // no notifications or backup necessary
 }
 
 public void addSSTables(CollectionSSTableReader sstables)
 {
-replace(Collections.SSTableReaderemptyList(), sstables);
+addSSTablesToTracker(sstables);
 for (SSTableReader sstable : sstables)
 {
 maybeIncrementallyBackup(sstable);
@@ -289,6 +292,32 @@ public class DataTracker
 }
 
 /**
+ * Replaces existing sstables with new instances, makes sure compaction 
strategies have the correct instance

[3/5] Merge branch 'cassandra-2.1' into trunk

2014-11-03 Thread marcuse
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java
--
diff --cc test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java
index 000,4d248bd..58803c3
mode 00,100644..100644
--- a/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java
@@@ -1,0 -1,490 +1,504 @@@
+ /*
+  * 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;
+ 
+ import java.io.File;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
 -import java.util.Collection;
+ import java.util.HashSet;
+ import java.util.List;
+ import java.util.Set;
+ import com.google.common.collect.Sets;
++import org.junit.After;
++import org.junit.BeforeClass;
+ import org.junit.Test;
+ 
+ import org.apache.cassandra.SchemaLoader;
+ import org.apache.cassandra.Util;
++import org.apache.cassandra.config.KSMetaData;
+ import org.apache.cassandra.db.ArrayBackedSortedColumns;
+ import org.apache.cassandra.db.ColumnFamilyStore;
+ import org.apache.cassandra.db.DecoratedKey;
+ import org.apache.cassandra.db.Keyspace;
+ import org.apache.cassandra.db.Mutation;
+ import org.apache.cassandra.db.compaction.AbstractCompactedRow;
+ import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
+ import org.apache.cassandra.db.compaction.CompactionController;
+ import org.apache.cassandra.db.compaction.ICompactionScanner;
+ import org.apache.cassandra.db.compaction.LazilyCompactedRow;
+ import org.apache.cassandra.db.compaction.OperationType;
 -import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
++import org.apache.cassandra.exceptions.ConfigurationException;
++import org.apache.cassandra.io.sstable.format.SSTableReader;
++import org.apache.cassandra.io.sstable.format.SSTableWriter;
++import org.apache.cassandra.locator.SimpleStrategy;
+ import org.apache.cassandra.metrics.StorageMetrics;
+ import org.apache.cassandra.service.StorageService;
+ import org.apache.cassandra.utils.ByteBufferUtil;
+ import static org.junit.Assert.assertEquals;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertTrue;
+ 
+ public class SSTableRewriterTest extends SchemaLoader
+ {
 -private static final String KEYSPACE = Keyspace1;
++private static final String KEYSPACE = SSTableRewriterTest;
+ private static final String CF = Standard1;
++
++@BeforeClass
++public static void defineSchema() throws ConfigurationException
++{
++SchemaLoader.prepareServer();
++SchemaLoader.createKeyspace(KEYSPACE,
++SimpleStrategy.class,
++KSMetaData.optsWithRF(1),
++SchemaLoader.standardCFMD(KEYSPACE, CF));
++}
++
++@After
++public void truncateCF()
++{
++Keyspace keyspace = Keyspace.open(KEYSPACE);
++ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF);
++store.truncateBlocking();
++}
++
++
+ @Test
+ public void basicTest() throws InterruptedException
+ {
+ Keyspace keyspace = Keyspace.open(KEYSPACE);
+ ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF);
+ cfs.truncateBlocking();
+ for (int j = 0; j  100; j ++)
+ {
+ ByteBuffer key = ByteBufferUtil.bytes(String.valueOf(j));
+ Mutation rm = new Mutation(KEYSPACE, key);
+ rm.add(CF, Util.cellname(0), ByteBufferUtil.EMPTY_BYTE_BUFFER, 
j);
+ rm.apply();
+ }
+ cfs.forceBlockingFlush();
+ SetSSTableReader sstables = new HashSet(cfs.getSSTables());
+ assertEquals(1, sstables.size());
+ SSTableRewriter writer = new SSTableRewriter(cfs, sstables, 1000, 
false);
+ AbstractCompactionStrategy.ScannerList scanners = 
cfs.getCompactionStrategy().getScanners(sstables);
+ ICompactionScanner scanner = scanners.scanners.get(0);
+ CompactionController controller = new CompactionController(cfs, 
sstables, cfs.gcBefore(System.currentTimeMillis()));
+ 

[1/2] git commit: Make sure unfinished compaction files are removed.

2014-11-03 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 d2309227c - 5160c916c


Make sure unfinished compaction files are removed.

Patch by marcuse; reviewed by yukim for CASSANDRA-8124


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

Branch: refs/heads/cassandra-2.1
Commit: 9c316e7858f6dbf9df892aff78431044aa104ed9
Parents: d230922
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Oct 17 14:15:46 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Nov 3 16:17:01 2014 +0100

--
 CHANGES.txt |   1 +
 .../cassandra/io/sstable/SSTableReader.java |   6 +
 .../cassandra/io/sstable/SSTableRewriter.java   |  90 +++-
 .../io/sstable/SSTableRewriterTest.java | 473 +++
 4 files changed, 555 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 494fb93..681d616 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.2
+ * Make sure unfinished compaction files are removed (CASSANDRA-8124)
  * Fix shutdown when run as Windows service (CASSANDRA-8136)
  * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031)
  * Fix race in RecoveryManagerTest (CASSANDRA-8176)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 872f7df..40e708d 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -1599,6 +1599,12 @@ public class SSTableReader extends SSTable
 }
 }
 
+@VisibleForTesting
+int referenceCount()
+{
+return references.get();
+}
+
 /**
  * Release reference to this SSTableReader.
  * If there is no one referring to this SSTable, and is marked as 
compacted,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
index 76677ac..2c9fe7e 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
@@ -25,8 +25,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
+import com.google.common.collect.Lists;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.ColumnFamilyStore;
@@ -37,6 +39,7 @@ import 
org.apache.cassandra.db.compaction.AbstractCompactedRow;
 import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.utils.CLibrary;
 import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Pair;
 
 /**
  * Wraps one or more writers as output for rewriting one or more readers: 
every sstable_preemptive_open_interval_in_mb
@@ -55,8 +58,7 @@ import org.apache.cassandra.utils.FBUtilities;
  */
 public class SSTableRewriter
 {
-
-private static final long preemptiveOpenInterval;
+private static long preemptiveOpenInterval;
 static
 {
 long interval = 
DatabaseDescriptor.getSSTablePreempiveOpenIntervalInMB() * (1L  20);
@@ -65,6 +67,14 @@ public class SSTableRewriter
 preemptiveOpenInterval = interval;
 }
 
+private boolean isFinished = false;
+
+@VisibleForTesting
+static void overrideOpenInterval(long size)
+{
+preemptiveOpenInterval = size;
+}
+
 private final DataTracker dataTracker;
 private final ColumnFamilyStore cfs;
 
@@ -77,6 +87,8 @@ public class SSTableRewriter
 private long currentlyOpenedEarlyAt; // the position (in MB) in the target 
file we last (re)opened at
 
 private final ListSSTableReader finished = new ArrayList(); // the 
resultant sstables
+private final ListSSTableReader finishedOpenedEarly = new ArrayList(); 
// the 'finished' tmplink sstables
+private final ListPairSSTableWriter, SSTableReader finishedWriters = 
new ArrayList();
 private final OperationType

[2/5] git commit: Refactor how we track live size

2014-11-03 Thread marcuse
Refactor how we track live size

Patch by marcuse; reviewed by yukim for CASSANDRA-7852


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

Branch: refs/heads/trunk
Commit: 5160c916c90886f69023ddba0078a624e5cf202d
Parents: 9c316e7
Author: Marcus Eriksson marc...@apache.org
Authored: Fri Oct 17 14:15:46 2014 +0200
Committer: Marcus Eriksson marc...@apache.org
Committed: Mon Nov 3 16:39:19 2014 +0100

--
 CHANGES.txt |   1 +
 .../org/apache/cassandra/db/DataTracker.java| 109 ---
 .../db/compaction/CompactionManager.java|  26 ++---
 .../cassandra/db/compaction/CompactionTask.java |   7 +-
 .../cassandra/db/compaction/Scrubber.java   |  12 +-
 .../cassandra/db/compaction/Upgrader.java   |  31 +++---
 .../io/sstable/IndexSummaryManager.java |   2 +-
 .../cassandra/io/sstable/SSTableRewriter.java   |  90 ---
 .../db/compaction/AntiCompactionTest.java   |  48 +++-
 .../io/sstable/IndexSummaryManagerTest.java |   2 +-
 .../cassandra/io/sstable/SSTableReaderTest.java |   2 +-
 .../io/sstable/SSTableRewriterTest.java |  57 ++
 12 files changed, 219 insertions(+), 168 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 681d616..32083cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.2
+ * Refactor how we track live size (CASSANDRA-7852)
  * Make sure unfinished compaction files are removed (CASSANDRA-8124)
  * Fix shutdown when run as Windows service (CASSANDRA-8136)
  * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/src/java/org/apache/cassandra/db/DataTracker.java
--
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java 
b/src/java/org/apache/cassandra/db/DataTracker.java
index 7393323..7df2b75 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -254,33 +254,36 @@ public class DataTracker
 
 public void markObsolete(CollectionSSTableReader sstables, OperationType 
compactionType)
 {
-replace(sstables, Collections.SSTableReaderemptyList());
+removeSSTablesFromTracker(sstables);
+releaseReferences(sstables, false);
 notifySSTablesChanged(sstables, 
Collections.SSTableReaderemptyList(), compactionType);
 }
 
+/**
+ *
+ * @param oldSSTables
+ * @param allReplacements
+ * @param compactionType
+ */
 // note that this DOES NOT insert the replacement sstables, it only 
removes the old sstables and notifies any listeners
 // that they have been replaced by the provided sstables, which must have 
been performed by an earlier replaceReaders() call
-public void markCompactedSSTablesReplaced(CollectionSSTableReader 
sstables, CollectionSSTableReader allReplacements, OperationType 
compactionType)
+public void markCompactedSSTablesReplaced(CollectionSSTableReader 
oldSSTables, CollectionSSTableReader allReplacements, OperationType 
compactionType)
 {
-replace(sstables, Collections.SSTableReaderemptyList());
-notifySSTablesChanged(sstables, allReplacements, compactionType);
-for (SSTableReader sstable : allReplacements)
-{
-long bytesOnDisk = sstable.bytesOnDisk();
-cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk);
-cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk);
-}
+removeSSTablesFromTracker(oldSSTables);
+releaseReferences(oldSSTables, false);
+notifySSTablesChanged(oldSSTables, allReplacements, compactionType);
+addNewSSTablesSize(allReplacements);
 }
 
 public void addInitialSSTables(CollectionSSTableReader sstables)
 {
-replace(Collections.SSTableReaderemptyList(), sstables);
+addSSTablesToTracker(sstables);
 // no notifications or backup necessary
 }
 
 public void addSSTables(CollectionSSTableReader sstables)
 {
-replace(Collections.SSTableReaderemptyList(), sstables);
+addSSTablesToTracker(sstables);
 for (SSTableReader sstable : sstables)
 {
 maybeIncrementallyBackup(sstable);
@@ -289,6 +292,32 @@ public class DataTracker
 }
 
 /**
+ * Replaces existing sstables with new instances, makes sure compaction 
strategies have the correct instance
+ *
+ * @param

git commit: add the right set - followup to CASSANDRA-7586

2014-11-03 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/trunk 8d640fb14 - 071b8e391


add the right set - followup to CASSANDRA-7586


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

Branch: refs/heads/trunk
Commit: 071b8e391f985e5815bcec977079d5529ad41cca
Parents: 8d640fb
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Nov 4 06:20:01 2014 +0100
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Nov 4 06:20:01 2014 +0100

--
 src/java/org/apache/cassandra/service/ActiveRepairService.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/071b8e39/src/java/org/apache/cassandra/service/ActiveRepairService.java
--
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java 
b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 08cef5c..171b1c7 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -384,7 +384,7 @@ public class ActiveRepairService
 if (existingSSTables == null)
 existingSSTables = new HashSet();
 existingSSTables.addAll(sstables);
-this.sstableMap.put(cfId, sstables);
+this.sstableMap.put(cfId, existingSSTables);
 }
 
 public synchronized CollectionSSTableReader 
getAndReferenceSSTables(UUID cfId)



  1   2   3   4   5   6   7   8   9   10   >