git commit: back up new sstables before creating a new View (which makes the new one eligible for compaction)
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
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)
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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.
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
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
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
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
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
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.
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()
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
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
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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
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
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)