You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/10/13 18:14:02 UTC
[1/9] git commit: make it clear we are logging two stats for MS
Updated Branches:
refs/heads/cassandra-1.2 5fab1276c -> 7290abd19
refs/heads/cassandra-2.0 67bbdba82 -> 53b2d9d55
refs/heads/trunk ca7ba1418 -> 2531424c0
make it clear we are logging two stats for MS
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dc2dd525
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dc2dd525
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dc2dd525
Branch: refs/heads/cassandra-1.2
Commit: dc2dd525eb69c001d703b6bb2bd673a0d34db45a
Parents: 5fab127
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 19:54:31 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:07:23 2013 -0500
----------------------------------------------------------------------
src/java/org/apache/cassandra/utils/StatusLogger.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc2dd525/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/StatusLogger.java b/src/java/org/apache/cassandra/utils/StatusLogger.java
index 15c4811..dbf56d4 100644
--- a/src/java/org/apache/cassandra/utils/StatusLogger.java
+++ b/src/java/org/apache/cassandra/utils/StatusLogger.java
@@ -93,7 +93,7 @@ public class StatusLogger
pendingResponses += n;
}
logger.info(String.format("%-25s%10s%10s",
- "MessagingService", "n/a", pendingCommands + "," + pendingResponses));
+ "MessagingService", "n/a", pendingCommands + "/" + pendingResponses));
// Global key/row cache information
AutoSavingCache<KeyCacheKey, RowIndexEntry> keyCache = CacheService.instance.keyCache;
[7/9] git commit: merge from 1.2
Posted by jb...@apache.org.
merge from 1.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53b2d9d5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53b2d9d5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53b2d9d5
Branch: refs/heads/cassandra-2.0
Commit: 53b2d9d55acf841f74812efbc35af42990e01718
Parents: 67bbdba 7290abd
Author: Jonathan Ellis <jb...@apache.org>
Authored: Sun Oct 13 11:13:15 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:13:15 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
.../org/apache/cassandra/utils/StatusLogger.java | 2 +-
5 files changed, 12 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 0fc2a91,7f43031..4668ae2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -47,43 -22,10 +47,44 @@@ Merged from 1.2
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
* stress: add username/password authentication support (CASSANDRA-6068)
+ * Fix indexed queries with row cache enabled on parent table (CASSANDRA-5732)
-1.2.10
+2.0.1
+ * Fix bug that could allow reading deleted data temporarily (CASSANDRA-6025)
+ * Improve memory use defaults (CASSANDRA-5069)
+ * Make ThriftServer more easlly extensible (CASSANDRA-6058)
+ * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062)
+ * add file_cache_size_in_mb setting (CASSANDRA-5661)
+ * Improve error message when yaml contains invalid properties (CASSANDRA-5958)
+ * Improve leveled compaction's ability to find non-overlapping L0 compactions
+ to work on concurrently (CASSANDRA-5921)
+ * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614)
+ * Log Merkle tree stats (CASSANDRA-2698)
+ * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862)
+ * Improve offheap memcpy performance (CASSANDRA-5884)
+ * Use a range aware scanner for cleanup (CASSANDRA-2524)
+ * Cleanup doesn't need to inspect sstables that contain only local data
+ (CASSANDRA-5722)
+ * Add ability for CQL3 to list partition keys (CASSANDRA-4536)
+ * Improve native protocol serialization (CASSANDRA-5664)
+ * Upgrade Thrift to 0.9.1 (CASSANDRA-5923)
+ * Require superuser status for adding triggers (CASSANDRA-5963)
+ * Make standalone scrubber handle old and new style leveled manifest
+ (CASSANDRA-6005)
+ * Fix paxos bugs (CASSANDRA-6012, 6013, 6023)
+ * Fix paged ranges with multiple replicas (CASSANDRA-6004)
+ * Fix potential AssertionError during tracing (CASSANDRA-6041)
+ * Fix NPE in sstablesplit (CASSANDRA-6027)
+ * Migrate pre-2.0 key/value/column aliases to system.schema_columns
+ (CASSANDRA-6009)
+ * Paging filter empty rows too agressively (CASSANDRA-6040)
+ * Support variadic parameters for IN clauses (CASSANDRA-4210)
+ * cqlsh: return the result of CAS writes (CASSANDRA-5796)
+ * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050)
+ * Support named bind variables in CQL (CASSANDRA-6033)
+Merged from 1.2:
+ * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
* Avoid second-guessing out-of-space state (CASSANDRA-5605)
* Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)
* (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/CFMetaData.java
index bbea21e,fcbd012..374f4a5
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@@ -445,18 -304,18 +445,24 @@@ public final class CFMetaDat
public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)
{
- this(keyspace, name, type, comp, subcc, getId(keyspace, name));
+ this(keyspace, name, type, makeComparator(type, comp, subcc));
}
- CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, UUID id)
+ public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp)
+ {
+ this(keyspace, name, type, comp, getId(keyspace, name));
+ }
+
+ @VisibleForTesting
+ CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, UUID id)
{
- // Final fields must be set in constructor
+ assert keyspace != null;
+ assert name != null;
+ assert type != null;
+ assert id != null;
+ // (subcc may be null for non-supercolumns)
+ // (comp may also be null for custom indexes, which is kind of broken if you ask me)
+
ksName = keyspace;
cfName = name;
cfType = type;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 117df6f,39359b7..597ca53
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -1266,15 -1188,10 +1266,11 @@@ public class ColumnFamilyStore implemen
long start = System.nanoTime();
try
{
+ int gcBefore = gcBefore(filter.timestamp);
if (isRowCacheEnabled())
{
- UUID cfId = Schema.instance.getId(keyspace.getName(), name);
- if (cfId == null)
- {
- logger.trace("no id found for {}.{}", keyspace.getName(), name);
- return null;
- }
+ assert !isIndex(); // CASSANDRA-5732
+ UUID cfId = metadata.cfId;
ColumnFamily cached = getThroughCache(cfId, filter);
if (cached == null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index afc7409,caa7e20..8b12575
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@@ -53,30 -49,11 +53,11 @@@ public abstract class AbstractSimplePer
indexedCfMetadata.cfName,
new LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
-
- // enable and initialize row cache based on parent's setting and indexed column's cardinality
- CFMetaData.Caching baseCaching = baseCfs.metadata.getCaching();
- if (baseCaching == CFMetaData.Caching.ALL || baseCaching == CFMetaData.Caching.ROWS_ONLY)
- {
- /*
- * # of index CF's key = cardinality of indexed column.
- * if # of keys stored in index CF is more than average column counts (means tall keyspaceName),
- * then consider it as high cardinality.
- */
- double estimatedKeys = indexCfs.estimateKeys();
- double averageColumnCount = indexCfs.getMeanColumns();
- if (averageColumnCount > 0 && estimatedKeys / averageColumnCount > 1)
- {
- logger.debug("turning row cache on for " + indexCfs.name);
- indexCfs.metadata.caching(baseCaching);
- indexCfs.initRowCache();
- }
- }
}
- protected abstract void init(ColumnDefinition columnDef);
+ protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, Column column);
- protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, IColumn column);
+ protected abstract ByteBuffer getIndexedValue(ByteBuffer rowKey, Column column);
protected abstract AbstractType getExpressionComparator();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------
[4/9] git commit: Avoid using row cache on 2i CFs patch by Sam
Tunnicliffe and jbellis for CASSANDRA-5732
Posted by jb...@apache.org.
Avoid using row cache on 2i CFs
patch by Sam Tunnicliffe and jbellis for CASSANDRA-5732
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7290abd1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7290abd1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7290abd1
Branch: refs/heads/cassandra-1.2
Commit: 7290abd198d6c63f1109094cf237d9c84f617f7d
Parents: dc2dd52
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 14:45:46 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:09:25 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
4 files changed, 11 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index afb1464..7f43031 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
* stress: add username/password authentication support (CASSANDRA-6068)
+ * Fix indexed queries with row cache enabled on parent table (CASSANDRA-5732)
1.2.10
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 4355737..fcbd012 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -309,7 +309,13 @@ public final class CFMetaData
CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, UUID id)
{
- // Final fields must be set in constructor
+ assert keyspace != null;
+ assert name != null;
+ assert type != null;
+ assert id != null;
+ // (subcc may be null for non-supercolumns)
+ // (comp may also be null for custom indexes, which is kind of broken if you ask me)
+
ksName = keyspace;
cfName = name;
cfType = type;
@@ -387,7 +393,7 @@ public final class CFMetaData
public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType<?> columnComparator)
{
// Depends on parent's cache setting, turn on its index CF's cache.
- // Here, only key cache is enabled, but later (in KeysIndex) row cache will be turned on depending on cardinality.
+ // Row caching is never enabled; see CASSANDRA-5732
Caching indexCaching = parent.getCaching() == Caching.ALL || parent.getCaching() == Caching.KEYS_ONLY
? Caching.KEYS_ONLY
: Caching.NONE;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index a7e8605..39359b7 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1190,12 +1190,8 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
if (isRowCacheEnabled())
{
- UUID cfId = Schema.instance.getId(table.name, columnFamily);
- if (cfId == null)
- {
- logger.trace("no id found for {}.{}", table.name, columnFamily);
- return null;
- }
+ assert !isIndex(); // CASSANDRA-5732
+ UUID cfId = metadata.cfId;
ColumnFamily cached = getThroughCache(cfId, filter);
if (cached == null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index 2ff2d27..caa7e20 100644
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@ -49,25 +49,6 @@ public abstract class AbstractSimplePerColumnSecondaryIndex extends PerColumnSec
indexedCfMetadata.cfName,
new LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
-
- // enable and initialize row cache based on parent's setting and indexed column's cardinality
- CFMetaData.Caching baseCaching = baseCfs.metadata.getCaching();
- if (baseCaching == CFMetaData.Caching.ALL || baseCaching == CFMetaData.Caching.ROWS_ONLY)
- {
- /*
- * # of index CF's key = cardinality of indexed column.
- * if # of keys stored in index CF is more than average column counts (means tall table),
- * then consider it as high cardinality.
- */
- double estimatedKeys = indexCfs.estimateKeys();
- double averageColumnCount = indexCfs.getMeanColumns();
- if (averageColumnCount > 0 && estimatedKeys / averageColumnCount > 1)
- {
- logger.debug("turning row cache on for " + indexCfs.getColumnFamilyName());
- indexCfs.metadata.caching(baseCaching);
- indexCfs.initRowCache();
- }
- }
}
protected abstract void init(ColumnDefinition columnDef);
[5/9] git commit: Avoid using row cache on 2i CFs patch by Sam
Tunnicliffe and jbellis for CASSANDRA-5732
Posted by jb...@apache.org.
Avoid using row cache on 2i CFs
patch by Sam Tunnicliffe and jbellis for CASSANDRA-5732
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7290abd1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7290abd1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7290abd1
Branch: refs/heads/cassandra-2.0
Commit: 7290abd198d6c63f1109094cf237d9c84f617f7d
Parents: dc2dd52
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 14:45:46 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:09:25 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
4 files changed, 11 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index afb1464..7f43031 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
* stress: add username/password authentication support (CASSANDRA-6068)
+ * Fix indexed queries with row cache enabled on parent table (CASSANDRA-5732)
1.2.10
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 4355737..fcbd012 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -309,7 +309,13 @@ public final class CFMetaData
CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, UUID id)
{
- // Final fields must be set in constructor
+ assert keyspace != null;
+ assert name != null;
+ assert type != null;
+ assert id != null;
+ // (subcc may be null for non-supercolumns)
+ // (comp may also be null for custom indexes, which is kind of broken if you ask me)
+
ksName = keyspace;
cfName = name;
cfType = type;
@@ -387,7 +393,7 @@ public final class CFMetaData
public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType<?> columnComparator)
{
// Depends on parent's cache setting, turn on its index CF's cache.
- // Here, only key cache is enabled, but later (in KeysIndex) row cache will be turned on depending on cardinality.
+ // Row caching is never enabled; see CASSANDRA-5732
Caching indexCaching = parent.getCaching() == Caching.ALL || parent.getCaching() == Caching.KEYS_ONLY
? Caching.KEYS_ONLY
: Caching.NONE;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index a7e8605..39359b7 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1190,12 +1190,8 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
if (isRowCacheEnabled())
{
- UUID cfId = Schema.instance.getId(table.name, columnFamily);
- if (cfId == null)
- {
- logger.trace("no id found for {}.{}", table.name, columnFamily);
- return null;
- }
+ assert !isIndex(); // CASSANDRA-5732
+ UUID cfId = metadata.cfId;
ColumnFamily cached = getThroughCache(cfId, filter);
if (cached == null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index 2ff2d27..caa7e20 100644
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@ -49,25 +49,6 @@ public abstract class AbstractSimplePerColumnSecondaryIndex extends PerColumnSec
indexedCfMetadata.cfName,
new LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
-
- // enable and initialize row cache based on parent's setting and indexed column's cardinality
- CFMetaData.Caching baseCaching = baseCfs.metadata.getCaching();
- if (baseCaching == CFMetaData.Caching.ALL || baseCaching == CFMetaData.Caching.ROWS_ONLY)
- {
- /*
- * # of index CF's key = cardinality of indexed column.
- * if # of keys stored in index CF is more than average column counts (means tall table),
- * then consider it as high cardinality.
- */
- double estimatedKeys = indexCfs.estimateKeys();
- double averageColumnCount = indexCfs.getMeanColumns();
- if (averageColumnCount > 0 && estimatedKeys / averageColumnCount > 1)
- {
- logger.debug("turning row cache on for " + indexCfs.getColumnFamilyName());
- indexCfs.metadata.caching(baseCaching);
- indexCfs.initRowCache();
- }
- }
}
protected abstract void init(ColumnDefinition columnDef);
[8/9] git commit: merge from 1.2
Posted by jb...@apache.org.
merge from 1.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53b2d9d5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53b2d9d5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53b2d9d5
Branch: refs/heads/trunk
Commit: 53b2d9d55acf841f74812efbc35af42990e01718
Parents: 67bbdba 7290abd
Author: Jonathan Ellis <jb...@apache.org>
Authored: Sun Oct 13 11:13:15 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:13:15 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
.../org/apache/cassandra/utils/StatusLogger.java | 2 +-
5 files changed, 12 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 0fc2a91,7f43031..4668ae2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -47,43 -22,10 +47,44 @@@ Merged from 1.2
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
* stress: add username/password authentication support (CASSANDRA-6068)
+ * Fix indexed queries with row cache enabled on parent table (CASSANDRA-5732)
-1.2.10
+2.0.1
+ * Fix bug that could allow reading deleted data temporarily (CASSANDRA-6025)
+ * Improve memory use defaults (CASSANDRA-5069)
+ * Make ThriftServer more easlly extensible (CASSANDRA-6058)
+ * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062)
+ * add file_cache_size_in_mb setting (CASSANDRA-5661)
+ * Improve error message when yaml contains invalid properties (CASSANDRA-5958)
+ * Improve leveled compaction's ability to find non-overlapping L0 compactions
+ to work on concurrently (CASSANDRA-5921)
+ * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614)
+ * Log Merkle tree stats (CASSANDRA-2698)
+ * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862)
+ * Improve offheap memcpy performance (CASSANDRA-5884)
+ * Use a range aware scanner for cleanup (CASSANDRA-2524)
+ * Cleanup doesn't need to inspect sstables that contain only local data
+ (CASSANDRA-5722)
+ * Add ability for CQL3 to list partition keys (CASSANDRA-4536)
+ * Improve native protocol serialization (CASSANDRA-5664)
+ * Upgrade Thrift to 0.9.1 (CASSANDRA-5923)
+ * Require superuser status for adding triggers (CASSANDRA-5963)
+ * Make standalone scrubber handle old and new style leveled manifest
+ (CASSANDRA-6005)
+ * Fix paxos bugs (CASSANDRA-6012, 6013, 6023)
+ * Fix paged ranges with multiple replicas (CASSANDRA-6004)
+ * Fix potential AssertionError during tracing (CASSANDRA-6041)
+ * Fix NPE in sstablesplit (CASSANDRA-6027)
+ * Migrate pre-2.0 key/value/column aliases to system.schema_columns
+ (CASSANDRA-6009)
+ * Paging filter empty rows too agressively (CASSANDRA-6040)
+ * Support variadic parameters for IN clauses (CASSANDRA-4210)
+ * cqlsh: return the result of CAS writes (CASSANDRA-5796)
+ * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050)
+ * Support named bind variables in CQL (CASSANDRA-6033)
+Merged from 1.2:
+ * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
* Avoid second-guessing out-of-space state (CASSANDRA-5605)
* Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)
* (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/CFMetaData.java
index bbea21e,fcbd012..374f4a5
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@@ -445,18 -304,18 +445,24 @@@ public final class CFMetaDat
public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)
{
- this(keyspace, name, type, comp, subcc, getId(keyspace, name));
+ this(keyspace, name, type, makeComparator(type, comp, subcc));
}
- CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, UUID id)
+ public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp)
+ {
+ this(keyspace, name, type, comp, getId(keyspace, name));
+ }
+
+ @VisibleForTesting
+ CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, UUID id)
{
- // Final fields must be set in constructor
+ assert keyspace != null;
+ assert name != null;
+ assert type != null;
+ assert id != null;
+ // (subcc may be null for non-supercolumns)
+ // (comp may also be null for custom indexes, which is kind of broken if you ask me)
+
ksName = keyspace;
cfName = name;
cfType = type;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 117df6f,39359b7..597ca53
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -1266,15 -1188,10 +1266,11 @@@ public class ColumnFamilyStore implemen
long start = System.nanoTime();
try
{
+ int gcBefore = gcBefore(filter.timestamp);
if (isRowCacheEnabled())
{
- UUID cfId = Schema.instance.getId(keyspace.getName(), name);
- if (cfId == null)
- {
- logger.trace("no id found for {}.{}", keyspace.getName(), name);
- return null;
- }
+ assert !isIndex(); // CASSANDRA-5732
+ UUID cfId = metadata.cfId;
ColumnFamily cached = getThroughCache(cfId, filter);
if (cached == null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index afc7409,caa7e20..8b12575
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@@ -53,30 -49,11 +53,11 @@@ public abstract class AbstractSimplePer
indexedCfMetadata.cfName,
new LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
-
- // enable and initialize row cache based on parent's setting and indexed column's cardinality
- CFMetaData.Caching baseCaching = baseCfs.metadata.getCaching();
- if (baseCaching == CFMetaData.Caching.ALL || baseCaching == CFMetaData.Caching.ROWS_ONLY)
- {
- /*
- * # of index CF's key = cardinality of indexed column.
- * if # of keys stored in index CF is more than average column counts (means tall keyspaceName),
- * then consider it as high cardinality.
- */
- double estimatedKeys = indexCfs.estimateKeys();
- double averageColumnCount = indexCfs.getMeanColumns();
- if (averageColumnCount > 0 && estimatedKeys / averageColumnCount > 1)
- {
- logger.debug("turning row cache on for " + indexCfs.name);
- indexCfs.metadata.caching(baseCaching);
- indexCfs.initRowCache();
- }
- }
}
- protected abstract void init(ColumnDefinition columnDef);
+ protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, Column column);
- protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, IColumn column);
+ protected abstract ByteBuffer getIndexedValue(ByteBuffer rowKey, Column column);
protected abstract AbstractType getExpressionComparator();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/53b2d9d5/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------
[6/9] git commit: Avoid using row cache on 2i CFs patch by Sam
Tunnicliffe and jbellis for CASSANDRA-5732
Posted by jb...@apache.org.
Avoid using row cache on 2i CFs
patch by Sam Tunnicliffe and jbellis for CASSANDRA-5732
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7290abd1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7290abd1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7290abd1
Branch: refs/heads/trunk
Commit: 7290abd198d6c63f1109094cf237d9c84f617f7d
Parents: dc2dd52
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 14:45:46 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:09:25 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
4 files changed, 11 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index afb1464..7f43031 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
* Handle JMX notification failure for repair (CASSANDRA-6097)
* (Hadoop) Fetch no more than 128 splits in parallel (CASSANDRA-6169)
* stress: add username/password authentication support (CASSANDRA-6068)
+ * Fix indexed queries with row cache enabled on parent table (CASSANDRA-5732)
1.2.10
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 4355737..fcbd012 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -309,7 +309,13 @@ public final class CFMetaData
CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc, UUID id)
{
- // Final fields must be set in constructor
+ assert keyspace != null;
+ assert name != null;
+ assert type != null;
+ assert id != null;
+ // (subcc may be null for non-supercolumns)
+ // (comp may also be null for custom indexes, which is kind of broken if you ask me)
+
ksName = keyspace;
cfName = name;
cfType = type;
@@ -387,7 +393,7 @@ public final class CFMetaData
public static CFMetaData newIndexMetadata(CFMetaData parent, ColumnDefinition info, AbstractType<?> columnComparator)
{
// Depends on parent's cache setting, turn on its index CF's cache.
- // Here, only key cache is enabled, but later (in KeysIndex) row cache will be turned on depending on cardinality.
+ // Row caching is never enabled; see CASSANDRA-5732
Caching indexCaching = parent.getCaching() == Caching.ALL || parent.getCaching() == Caching.KEYS_ONLY
? Caching.KEYS_ONLY
: Caching.NONE;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index a7e8605..39359b7 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1190,12 +1190,8 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
if (isRowCacheEnabled())
{
- UUID cfId = Schema.instance.getId(table.name, columnFamily);
- if (cfId == null)
- {
- logger.trace("no id found for {}.{}", table.name, columnFamily);
- return null;
- }
+ assert !isIndex(); // CASSANDRA-5732
+ UUID cfId = metadata.cfId;
ColumnFamily cached = getThroughCache(cfId, filter);
if (cached == null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/7290abd1/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index 2ff2d27..caa7e20 100644
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@ -49,25 +49,6 @@ public abstract class AbstractSimplePerColumnSecondaryIndex extends PerColumnSec
indexedCfMetadata.cfName,
new LocalPartitioner(columnDef.getValidator()),
indexedCfMetadata);
-
- // enable and initialize row cache based on parent's setting and indexed column's cardinality
- CFMetaData.Caching baseCaching = baseCfs.metadata.getCaching();
- if (baseCaching == CFMetaData.Caching.ALL || baseCaching == CFMetaData.Caching.ROWS_ONLY)
- {
- /*
- * # of index CF's key = cardinality of indexed column.
- * if # of keys stored in index CF is more than average column counts (means tall table),
- * then consider it as high cardinality.
- */
- double estimatedKeys = indexCfs.estimateKeys();
- double averageColumnCount = indexCfs.getMeanColumns();
- if (averageColumnCount > 0 && estimatedKeys / averageColumnCount > 1)
- {
- logger.debug("turning row cache on for " + indexCfs.getColumnFamilyName());
- indexCfs.metadata.caching(baseCaching);
- indexCfs.initRowCache();
- }
- }
}
protected abstract void init(ColumnDefinition columnDef);
[3/9] git commit: make it clear we are logging two stats for MS
Posted by jb...@apache.org.
make it clear we are logging two stats for MS
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dc2dd525
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dc2dd525
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dc2dd525
Branch: refs/heads/trunk
Commit: dc2dd525eb69c001d703b6bb2bd673a0d34db45a
Parents: 5fab127
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 19:54:31 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:07:23 2013 -0500
----------------------------------------------------------------------
src/java/org/apache/cassandra/utils/StatusLogger.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc2dd525/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/StatusLogger.java b/src/java/org/apache/cassandra/utils/StatusLogger.java
index 15c4811..dbf56d4 100644
--- a/src/java/org/apache/cassandra/utils/StatusLogger.java
+++ b/src/java/org/apache/cassandra/utils/StatusLogger.java
@@ -93,7 +93,7 @@ public class StatusLogger
pendingResponses += n;
}
logger.info(String.format("%-25s%10s%10s",
- "MessagingService", "n/a", pendingCommands + "," + pendingResponses));
+ "MessagingService", "n/a", pendingCommands + "/" + pendingResponses));
// Global key/row cache information
AutoSavingCache<KeyCacheKey, RowIndexEntry> keyCache = CacheService.instance.keyCache;
[9/9] git commit: merge from 2.0
Posted by jb...@apache.org.
merge from 2.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2531424c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2531424c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2531424c
Branch: refs/heads/trunk
Commit: 2531424c0050196512b3f8f785f9041eab1c2ef3
Parents: ca7ba14 53b2d9d
Author: Jonathan Ellis <jb...@apache.org>
Authored: Sun Oct 13 11:13:55 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:13:55 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 10 ++++++++--
.../apache/cassandra/db/ColumnFamilyStore.java | 8 ++------
.../AbstractSimplePerColumnSecondaryIndex.java | 19 -------------------
.../org/apache/cassandra/utils/StatusLogger.java | 2 +-
5 files changed, 12 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2531424c/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2531424c/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2531424c/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2531424c/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
[2/9] git commit: make it clear we are logging two stats for MS
Posted by jb...@apache.org.
make it clear we are logging two stats for MS
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dc2dd525
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dc2dd525
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dc2dd525
Branch: refs/heads/cassandra-2.0
Commit: dc2dd525eb69c001d703b6bb2bd673a0d34db45a
Parents: 5fab127
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 10 19:54:31 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sun Oct 13 11:07:23 2013 -0500
----------------------------------------------------------------------
src/java/org/apache/cassandra/utils/StatusLogger.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dc2dd525/src/java/org/apache/cassandra/utils/StatusLogger.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/StatusLogger.java b/src/java/org/apache/cassandra/utils/StatusLogger.java
index 15c4811..dbf56d4 100644
--- a/src/java/org/apache/cassandra/utils/StatusLogger.java
+++ b/src/java/org/apache/cassandra/utils/StatusLogger.java
@@ -93,7 +93,7 @@ public class StatusLogger
pendingResponses += n;
}
logger.info(String.format("%-25s%10s%10s",
- "MessagingService", "n/a", pendingCommands + "," + pendingResponses));
+ "MessagingService", "n/a", pendingCommands + "/" + pendingResponses));
// Global key/row cache information
AutoSavingCache<KeyCacheKey, RowIndexEntry> keyCache = CacheService.instance.keyCache;