You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2015/12/01 10:28:19 UTC
[1/2] cassandra git commit: Don't throw assertion error on old key
cache keys just skip serializing them.
Repository: cassandra
Updated Branches:
refs/heads/cassandra-3.1 b2b4f1550 -> 3e5315277
Don't throw assertion error on old key cache keys just skip serializing them.
patch by aweisberg; reviewed by slebresne for CASSANDRA-10778
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4378b58b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4378b58b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4378b58b
Branch: refs/heads/cassandra-3.1
Commit: 4378b58bba61ec6e7eb0bbfa5733cf9800a7dec3
Parents: 44164bc
Author: Ariel Weisberg <ar...@datastax.com>
Authored: Mon Nov 30 14:43:50 2015 -0500
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Dec 1 10:27:10 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/service/CacheService.java | 4 ++++
.../cassandra/io/sstable/LegacySSTableTest.java | 19 ++++++++++++++++++-
3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4378b58b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0356045..bd14e67 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.1
+ * Fix error when saving cached key for old format sstable (CASSANDRA-10778)
* Invalidate prepared statements on DROP INDEX (CASSANDRA-10758)
* Fix SELECT statement with IN restrictions on partition key,
ORDER BY and LIMIT (CASSANDRA-10729)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4378b58b/src/java/org/apache/cassandra/service/CacheService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java
index a3e7d12..c51a5d1 100644
--- a/src/java/org/apache/cassandra/service/CacheService.java
+++ b/src/java/org/apache/cassandra/service/CacheService.java
@@ -455,6 +455,10 @@ public class CacheService implements CacheServiceMBean
{
public void serialize(KeyCacheKey key, DataOutputPlus out, ColumnFamilyStore cfs) throws IOException
{
+ //Don't serialize old format entries since we didn't bother to implement serialization of both for simplicity
+ //https://issues.apache.org/jira/browse/CASSANDRA-10778
+ if (!key.desc.version.storeRows()) return;
+
RowIndexEntry entry = CacheService.instance.keyCache.getInternal(key);
if (entry == null)
return;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4378b58b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
index 0578d44..00727b8 100644
--- a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
@@ -56,6 +56,7 @@ import org.apache.cassandra.io.sstable.format.SSTableReader;
import org.apache.cassandra.io.sstable.format.Version;
import org.apache.cassandra.io.sstable.format.big.BigFormat;
import org.apache.cassandra.schema.KeyspaceParams;
+import org.apache.cassandra.service.CacheService;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.streaming.StreamPlan;
import org.apache.cassandra.streaming.StreamSession;
@@ -238,7 +239,7 @@ public class LegacySSTableTest
loadLegacyTables();
}
- private static void loadLegacyTables() throws IOException
+ private static void loadLegacyTables() throws Exception
{
for (String legacyVersion : legacyVersions)
{
@@ -251,6 +252,8 @@ public class LegacySSTableTest
loadLegacyTable("legacy_%s_clust", legacyVersion);
loadLegacyTable("legacy_%s_clust_counter", legacyVersion);
+ CacheService.instance.invalidateKeyCache();
+ long startCount = CacheService.instance.keyCache.size();
for (int ck = 0; ck < 50; ck++)
{
String ckValue = Integer.toString(ck) + longString;
@@ -286,6 +289,20 @@ public class LegacySSTableTest
Assert.assertEquals(1L, rs.one().getLong("val"));
}
}
+
+ //For https://issues.apache.org/jira/browse/CASSANDRA-10778
+ //Validate whether the key cache successfully saves in the presence of old keys as
+ //well as loads the correct number of keys
+ long endCount = CacheService.instance.keyCache.size();
+ Assert.assertTrue(endCount > startCount);
+ CacheService.instance.keyCache.submitWrite(Integer.MAX_VALUE).get();
+ CacheService.instance.invalidateKeyCache();
+ Assert.assertEquals(startCount, CacheService.instance.keyCache.size());
+ CacheService.instance.keyCache.loadSaved();
+ if (BigFormat.instance.getVersion(legacyVersion).storeRows())
+ Assert.assertEquals(endCount, CacheService.instance.keyCache.size());
+ else
+ Assert.assertEquals(startCount, CacheService.instance.keyCache.size());
}
}
[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.1
Posted by sl...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.1
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e531527
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e531527
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e531527
Branch: refs/heads/cassandra-3.1
Commit: 3e5315277c85cf6abdaea7b733ec346216ca730a
Parents: b2b4f15 4378b58
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Dec 1 10:28:10 2015 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Dec 1 10:28:10 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/service/CacheService.java | 4 ++++
.../cassandra/io/sstable/LegacySSTableTest.java | 19 ++++++++++++++++++-
3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e531527/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 57769db,bd14e67..99777ec
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,5 -1,5 +1,6 @@@
-3.0.1
+3.1
+Merged from 3.0:
+ * Fix error when saving cached key for old format sstable (CASSANDRA-10778)
* Invalidate prepared statements on DROP INDEX (CASSANDRA-10758)
* Fix SELECT statement with IN restrictions on partition key,
ORDER BY and LIMIT (CASSANDRA-10729)