You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2015/08/25 15:24:28 UTC
[1/2] cassandra git commit: Follow up to avoid mutating row while
read repair is happening
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.2 d1d10fae0 -> a69558b00
Follow up to avoid mutating row while read repair is happening
Patch by tjake; reviewed by Stefania for CASSANDRA-9460
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/147fe6d6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/147fe6d6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/147fe6d6
Branch: refs/heads/cassandra-2.2
Commit: 147fe6d69d2efac8db47da9058e9a19f8ddc99fd
Parents: 978660d
Author: T Jake Luciani <ja...@apache.org>
Authored: Mon Aug 24 15:49:18 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Tue Aug 25 09:19:52 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/db/ReadCommand.java | 4 ++--
.../cassandra/db/SliceFromReadCommand.java | 6 +++---
.../cassandra/db/filter/SliceQueryFilter.java | 20 ++++++++++++--------
.../apache/cassandra/service/StorageProxy.java | 4 ++--
5 files changed, 20 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/147fe6d6/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index d6a0af9..dcae493 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.9
+ * Avoid race condition during read repair (CASSANDRA-9460)
* (cqlsh) default load-from-file encoding to utf-8 (CASSANDRA-9898)
* Avoid returning Permission.NONE when failing to query users table (CASSANDRA-10168)
* (cqlsh) Allow encoding to be set through command line (CASSANDRA-10004)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/147fe6d6/src/java/org/apache/cassandra/db/ReadCommand.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java
index dedff6f..cd86336 100644
--- a/src/java/org/apache/cassandra/db/ReadCommand.java
+++ b/src/java/org/apache/cassandra/db/ReadCommand.java
@@ -118,9 +118,9 @@ public abstract class ReadCommand implements IReadCommand, Pageable
}
// maybeTrim removes columns from a response that is too long
- public void maybeTrim(Row row)
+ public Row maybeTrim(Row row)
{
- // noop
+ return row;
}
public long getTimeout()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/147fe6d6/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SliceFromReadCommand.java b/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
index 6995193..461a3a1 100644
--- a/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
+++ b/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
@@ -113,12 +113,12 @@ public class SliceFromReadCommand extends ReadCommand
}
@Override
- public void maybeTrim(Row row)
+ public Row maybeTrim(Row row)
{
if ((row == null) || (row.cf == null))
- return;
+ return row;
- filter.trim(row.cf, getOriginalRequestedCount(), timestamp);
+ return new Row(row.key, filter.trim(row.cf, getOriginalRequestedCount(), timestamp));
}
public IDiskAtomFilter filter()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/147fe6d6/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
index 65925b1..973477f 100644
--- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
@@ -342,14 +342,17 @@ public class SliceQueryFilter implements IDiskAtomFilter
return new ColumnCounter.GroupByPrefix(now, comparator, compositesToGroup);
}
- public void trim(ColumnFamily cf, int trimTo, long now)
+ public ColumnFamily trim(ColumnFamily cf, int trimTo, long now)
{
// each cell can increment the count by at most one, so if we have fewer cells than trimTo, we can skip trimming
if (cf.getColumnCount() < trimTo)
- return;
+ return cf;
ColumnCounter counter = columnCounter(cf.getComparator(), now);
+ ColumnFamily trimmedCf = cf.getFactory().create(cf.metadata(), reversed, trimTo);
+ trimmedCf.delete(cf);
+
Collection<Cell> cells = reversed
? cf.getReverseSortedColumns()
: cf.getSortedColumns();
@@ -363,14 +366,15 @@ public class SliceQueryFilter implements IDiskAtomFilter
if (counter.live() > trimTo)
{
- iter.remove();
- while (iter.hasNext())
- {
- iter.next();
- iter.remove();
- }
+ break;
+ }
+ else
+ {
+ trimmedCf.addColumn(cell);
}
}
+
+ return trimmedCf;
}
public Composite start()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/147fe6d6/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 1536427..161bec8 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -1347,7 +1347,7 @@ public class StorageProxy implements StorageProxyMBean
Row row = exec.get();
if (row != null)
{
- exec.command.maybeTrim(row);
+ row = exec.command.maybeTrim(row);
rows.add(row);
}
@@ -1466,7 +1466,7 @@ public class StorageProxy implements StorageProxyMBean
if (row != null)
{
- command.maybeTrim(row);
+ row = command.maybeTrim(row);
rows.add(row);
}
}
[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into
cassandra-2.2
Posted by ja...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2
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/a69558b0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a69558b0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a69558b0
Branch: refs/heads/cassandra-2.2
Commit: a69558b00067e00d1c4de5806c80fc8314e3538c
Parents: d1d10fa 147fe6d
Author: T Jake Luciani <ja...@apache.org>
Authored: Tue Aug 25 09:24:17 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Tue Aug 25 09:24:17 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/db/ReadCommand.java | 4 ++--
.../cassandra/db/SliceFromReadCommand.java | 6 +++---
.../cassandra/db/filter/SliceQueryFilter.java | 20 ++++++++++++--------
.../apache/cassandra/service/StorageProxy.java | 4 ++--
5 files changed, 20 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a69558b0/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 34615db,dcae493..3065d0b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,5 +1,18 @@@
-2.1.9
+2.2.1
+ * add CLEAR cqlsh command (CASSANDRA-10086)
+ * Support string literals as Role names for compatibility (CASSANDRA-10135)
+ * Allow count(*) and count(1) to be use as normal aggregation (CASSANDRA-10114)
+ * An NPE is thrown if the column name is unknown for an IN relation (CASSANDRA-10043)
+ * Apply commit_failure_policy to more errors on startup (CASSANDRA-9749)
+ * Fix histogram overflow exception (CASSANDRA-9973)
+ * Route gossip messages over dedicated socket (CASSANDRA-9237)
+ * Add checksum to saved cache files (CASSANDRA-9265)
+ * Log warning when using an aggregate without partition key (CASSANDRA-9737)
+ * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
+ * UDF / UDA execution time in trace (CASSANDRA-9723)
+ * Fix broken internode SSL (CASSANDRA-9884)
+Merged from 2.1:
+ * Avoid race condition during read repair (CASSANDRA-9460)
* (cqlsh) default load-from-file encoding to utf-8 (CASSANDRA-9898)
* Avoid returning Permission.NONE when failing to query users table (CASSANDRA-10168)
* (cqlsh) Allow encoding to be set through command line (CASSANDRA-10004)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a69558b0/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a69558b0/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------