You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by pa...@apache.org on 2017/04/20 13:48:59 UTC
[1/9] cassandra git commit: Fix SSTableLoader fail when the loaded
table contains dropped columns (CASSANDRA-13276)
Repository: cassandra
Updated Branches:
refs/heads/cassandra-3.0 175e4f8ce -> f5b36f12d
refs/heads/cassandra-3.11 42904c653 -> 4d24958dd
refs/heads/trunk b687641f7 -> 50ba850be
Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/175e4f8c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/175e4f8c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/175e4f8c
Branch: refs/heads/cassandra-3.11
Commit: 175e4f8ce868ea04a5e11a8d5212d8c397ea0d12
Parents: b063b38
Author: adelapena <a....@gmail.com>
Authored: Thu Apr 20 13:16:15 2017 +0100
Committer: adelapena <a....@gmail.com>
Committed: Thu Apr 20 13:16:15 2017 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../utils/NativeSSTableLoaderClient.java | 43 +++++++++++++++-----
2 files changed, 34 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/175e4f8c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 81d5b06..6a1e486 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.14
+ * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
* Interrupt replaying hints on decommission (CASSANDRA-13308)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/175e4f8c/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
index 4c6b12e..97237d0 100644
--- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
+++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
@@ -18,7 +18,9 @@
package org.apache.cassandra.utils;
import java.net.InetAddress;
+import java.nio.ByteBuffer;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import com.datastax.driver.core.*;
@@ -184,16 +186,29 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
for (Row colRow : session.execute(columnsQuery, keyspace, name))
defs.add(createDefinitionFromRow(colRow, keyspace, name, types));
- return CFMetaData.create(keyspace,
- name,
- id,
- isDense,
- isCompound,
- isSuper,
- isCounter,
- isView,
- defs,
- partitioner);
+ CFMetaData metadata = CFMetaData.create(keyspace,
+ name,
+ id,
+ isDense,
+ isCompound,
+ isSuper,
+ isCounter,
+ isView,
+ defs,
+ partitioner);
+
+ String droppedColumnsQuery = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ? AND table_name = ?",
+ SchemaKeyspace.NAME,
+ SchemaKeyspace.DROPPED_COLUMNS);
+ Map<ByteBuffer, CFMetaData.DroppedColumn> droppedColumns = new HashMap<>();
+ for (Row colRow : session.execute(droppedColumnsQuery, keyspace, name))
+ {
+ CFMetaData.DroppedColumn droppedColumn = createDroppedColumnFromRow(colRow, keyspace);
+ droppedColumns.put(UTF8Type.instance.decompose(droppedColumn.name), droppedColumn);
+ }
+ metadata.droppedColumns(droppedColumns);
+
+ return metadata;
}
private static ColumnDefinition createDefinitionFromRow(Row row, String keyspace, String table, Types types)
@@ -211,4 +226,12 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
ColumnDefinition.Kind kind = ColumnDefinition.Kind.valueOf(row.getString("kind").toUpperCase());
return new ColumnDefinition(keyspace, table, name, type, position, kind);
}
+
+ private static CFMetaData.DroppedColumn createDroppedColumnFromRow(Row row, String keyspace)
+ {
+ String name = row.getString("column_name");
+ AbstractType<?> type = CQLTypeParser.parse(keyspace, row.getString("type"), Types.none());
+ long droppedTime = TimeUnit.MILLISECONDS.toMicros(row.getTimestamp("dropped_time").getTime());
+ return new CFMetaData.DroppedColumn(name, type, droppedTime);
+ }
}
[2/9] cassandra git commit: Fix SSTableLoader fail when the loaded
table contains dropped columns (CASSANDRA-13276)
Posted by pa...@apache.org.
Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/175e4f8c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/175e4f8c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/175e4f8c
Branch: refs/heads/trunk
Commit: 175e4f8ce868ea04a5e11a8d5212d8c397ea0d12
Parents: b063b38
Author: adelapena <a....@gmail.com>
Authored: Thu Apr 20 13:16:15 2017 +0100
Committer: adelapena <a....@gmail.com>
Committed: Thu Apr 20 13:16:15 2017 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../utils/NativeSSTableLoaderClient.java | 43 +++++++++++++++-----
2 files changed, 34 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/175e4f8c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 81d5b06..6a1e486 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.14
+ * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
* Interrupt replaying hints on decommission (CASSANDRA-13308)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/175e4f8c/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
index 4c6b12e..97237d0 100644
--- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
+++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
@@ -18,7 +18,9 @@
package org.apache.cassandra.utils;
import java.net.InetAddress;
+import java.nio.ByteBuffer;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import com.datastax.driver.core.*;
@@ -184,16 +186,29 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
for (Row colRow : session.execute(columnsQuery, keyspace, name))
defs.add(createDefinitionFromRow(colRow, keyspace, name, types));
- return CFMetaData.create(keyspace,
- name,
- id,
- isDense,
- isCompound,
- isSuper,
- isCounter,
- isView,
- defs,
- partitioner);
+ CFMetaData metadata = CFMetaData.create(keyspace,
+ name,
+ id,
+ isDense,
+ isCompound,
+ isSuper,
+ isCounter,
+ isView,
+ defs,
+ partitioner);
+
+ String droppedColumnsQuery = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ? AND table_name = ?",
+ SchemaKeyspace.NAME,
+ SchemaKeyspace.DROPPED_COLUMNS);
+ Map<ByteBuffer, CFMetaData.DroppedColumn> droppedColumns = new HashMap<>();
+ for (Row colRow : session.execute(droppedColumnsQuery, keyspace, name))
+ {
+ CFMetaData.DroppedColumn droppedColumn = createDroppedColumnFromRow(colRow, keyspace);
+ droppedColumns.put(UTF8Type.instance.decompose(droppedColumn.name), droppedColumn);
+ }
+ metadata.droppedColumns(droppedColumns);
+
+ return metadata;
}
private static ColumnDefinition createDefinitionFromRow(Row row, String keyspace, String table, Types types)
@@ -211,4 +226,12 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
ColumnDefinition.Kind kind = ColumnDefinition.Kind.valueOf(row.getString("kind").toUpperCase());
return new ColumnDefinition(keyspace, table, name, type, position, kind);
}
+
+ private static CFMetaData.DroppedColumn createDroppedColumnFromRow(Row row, String keyspace)
+ {
+ String name = row.getString("column_name");
+ AbstractType<?> type = CQLTypeParser.parse(keyspace, row.getString("type"), Types.none());
+ long droppedTime = TimeUnit.MILLISECONDS.toMicros(row.getTimestamp("dropped_time").getTime());
+ return new CFMetaData.DroppedColumn(name, type, droppedTime);
+ }
}
[3/9] cassandra git commit: Fix SSTableLoader fail when the loaded
table contains dropped columns (CASSANDRA-13276)
Posted by pa...@apache.org.
Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/42904c65
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/42904c65
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/42904c65
Branch: refs/heads/trunk
Commit: 42904c65381d69351b130f64f9b2ba2425513a04
Parents: 638df6f
Author: adelapena <a....@gmail.com>
Authored: Thu Apr 20 13:19:25 2017 +0100
Committer: adelapena <a....@gmail.com>
Committed: Thu Apr 20 13:19:25 2017 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../utils/NativeSSTableLoaderClient.java | 43 +++++++++++++++-----
2 files changed, 34 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/42904c65/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 690c959..b6ca04b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -26,6 +26,7 @@
* Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417)
* Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
Merged from 3.0:
+ * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
* Interrupt replaying hints on decommission (CASSANDRA-13308)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/42904c65/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
index 0b40fcb..f7fe968 100644
--- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
+++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
@@ -18,7 +18,9 @@
package org.apache.cassandra.utils;
import java.net.InetAddress;
+import java.nio.ByteBuffer;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import com.datastax.driver.core.*;
@@ -185,16 +187,29 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
for (Row colRow : session.execute(columnsQuery, keyspace, name))
defs.add(createDefinitionFromRow(colRow, keyspace, name, types));
- return CFMetaData.create(keyspace,
- name,
- id,
- isDense,
- isCompound,
- isSuper,
- isCounter,
- isView,
- defs,
- partitioner);
+ CFMetaData metadata = CFMetaData.create(keyspace,
+ name,
+ id,
+ isDense,
+ isCompound,
+ isSuper,
+ isCounter,
+ isView,
+ defs,
+ partitioner);
+
+ String droppedColumnsQuery = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ? AND table_name = ?",
+ SchemaConstants.SCHEMA_KEYSPACE_NAME,
+ SchemaKeyspace.DROPPED_COLUMNS);
+ Map<ByteBuffer, CFMetaData.DroppedColumn> droppedColumns = new HashMap<>();
+ for (Row colRow : session.execute(droppedColumnsQuery, keyspace, name))
+ {
+ CFMetaData.DroppedColumn droppedColumn = createDroppedColumnFromRow(colRow, keyspace);
+ droppedColumns.put(UTF8Type.instance.decompose(droppedColumn.name), droppedColumn);
+ }
+ metadata.droppedColumns(droppedColumns);
+
+ return metadata;
}
private static ColumnDefinition createDefinitionFromRow(Row row, String keyspace, String table, Types types)
@@ -212,4 +227,12 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
ColumnDefinition.Kind kind = ColumnDefinition.Kind.valueOf(row.getString("kind").toUpperCase());
return new ColumnDefinition(keyspace, table, name, type, position, kind);
}
+
+ private static CFMetaData.DroppedColumn createDroppedColumnFromRow(Row row, String keyspace)
+ {
+ String name = row.getString("column_name");
+ AbstractType<?> type = CQLTypeParser.parse(keyspace, row.getString("type"), Types.none());
+ long droppedTime = TimeUnit.MILLISECONDS.toMicros(row.getTimestamp("dropped_time").getTime());
+ return new CFMetaData.DroppedColumn(name, type, droppedTime);
+ }
}
[4/9] cassandra git commit: Fail repair if insufficient responses
received
Posted by pa...@apache.org.
Fail repair if insufficient responses received
Patch by Simon Zhou; Reviewed by Paulo Motta for CASSANDRA-13397
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5b36f12
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5b36f12
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5b36f12
Branch: refs/heads/cassandra-3.11
Commit: f5b36f12df65a780a52851207c285db7a8b4122f
Parents: 175e4f8
Author: Simon Zhou <sz...@uber.com>
Authored: Fri Mar 31 20:53:39 2017 -0700
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:26:16 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 22 +++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6a1e486..7a860fe 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.14
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/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 11d4617..b4cea79 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -321,30 +321,36 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else
{
- status.set(false);
- failedNodes.add(neighbour.getHostAddress());
- prepareLatch.countDown();
+ // bailout early to avoid potentially waiting for a long time.
+ failRepair(parentRepairSession, "Endpoint not alive: " + neighbour);
}
}
+
try
{
- prepareLatch.await(1, TimeUnit.HOURS);
+ // Failed repair is expensive so we wait for longer time.
+ if (!prepareLatch.await(1, TimeUnit.HOURS)) {
+ failRepair(parentRepairSession, "Did not get replies from all endpoints.");
+ }
}
catch (InterruptedException e)
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString(), e);
+ failRepair(parentRepairSession, "Interrupted while waiting for prepare repair response.");
}
if (!status.get())
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get positive replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString());
+ failRepair(parentRepairSession, "Got negative replies from endpoints " + failedNodes);
}
return parentRepairSession;
}
+ private void failRepair(UUID parentRepairSession, String errorMsg) {
+ removeParentRepairSession(parentRepairSession);
+ throw new RuntimeException(errorMsg);
+ }
+
public void registerParentRepairSession(UUID parentRepairSession, InetAddress coordinator, List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long timestamp, boolean isGlobal)
{
if (!registeredForEndpointChanges)
[8/9] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by pa...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4d24958d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4d24958d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4d24958d
Branch: refs/heads/cassandra-3.11
Commit: 4d24958dd1c2b529cd415d7d8a8d533b5e8db0cb
Parents: 42904c6 f5b36f1
Author: Paulo Motta <pa...@apache.org>
Authored: Thu Apr 20 10:37:00 2017 -0300
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:37:00 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 22 +++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d24958d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index b6ca04b,7a860fe..08df2dd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,11 +1,38 @@@
-3.0.14
+3.11.0
+ * V5 protocol flags decoding broken (CASSANDRA-13443)
+ * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422)
+ * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329)
+ * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962)
+ * Add charset to Analyser input stream (CASSANDRA-13151)
+ * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820)
+ * cdc column addition strikes again (CASSANDRA-13382)
+ * Fix static column indexes (CASSANDRA-13277)
+ * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298)
+ * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370)
+ * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247)
+ * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317)
+ * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366)
+ * Support unaligned memory access for AArch64 (CASSANDRA-13326)
+ * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915).
+ * Fix equality comparisons of columns using the duration type (CASSANDRA-13174)
+ * Obfuscate password in stress-graphs (CASSANDRA-12233)
+ * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
+ * nodetool stopdaemon errors out (CASSANDRA-13030)
+ * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
+ * Fix primary index calculation for SASI (CASSANDRA-12910)
+ * More fixes to the TokenAllocator (CASSANDRA-12990)
+ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
+ * Address message coalescing regression (CASSANDRA-12676)
+ * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417)
+ * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
+Merged from 3.0:
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
- * Handling partially written hint files (CASSANDRA-12728)
+ * Handling partially written hint files (CASSANDRA-12728)
* Interrupt replaying hints on decommission (CASSANDRA-13308)
-
-3.0.13
+ * Handling partially written hint files (CASSANDRA-12728)
+ * Fix NPE issue in StorageService (CASSANDRA-13060)
* Make reading of range tombstones more reliable (CASSANDRA-12811)
* Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213)
* Fix view builder bug that can filter out data on restart (CASSANDRA-13405)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d24958d/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
[6/9] cassandra git commit: Fail repair if insufficient responses
received
Posted by pa...@apache.org.
Fail repair if insufficient responses received
Patch by Simon Zhou; Reviewed by Paulo Motta for CASSANDRA-13397
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5b36f12
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5b36f12
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5b36f12
Branch: refs/heads/cassandra-3.0
Commit: f5b36f12df65a780a52851207c285db7a8b4122f
Parents: 175e4f8
Author: Simon Zhou <sz...@uber.com>
Authored: Fri Mar 31 20:53:39 2017 -0700
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:26:16 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 22 +++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6a1e486..7a860fe 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.14
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/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 11d4617..b4cea79 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -321,30 +321,36 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else
{
- status.set(false);
- failedNodes.add(neighbour.getHostAddress());
- prepareLatch.countDown();
+ // bailout early to avoid potentially waiting for a long time.
+ failRepair(parentRepairSession, "Endpoint not alive: " + neighbour);
}
}
+
try
{
- prepareLatch.await(1, TimeUnit.HOURS);
+ // Failed repair is expensive so we wait for longer time.
+ if (!prepareLatch.await(1, TimeUnit.HOURS)) {
+ failRepair(parentRepairSession, "Did not get replies from all endpoints.");
+ }
}
catch (InterruptedException e)
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString(), e);
+ failRepair(parentRepairSession, "Interrupted while waiting for prepare repair response.");
}
if (!status.get())
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get positive replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString());
+ failRepair(parentRepairSession, "Got negative replies from endpoints " + failedNodes);
}
return parentRepairSession;
}
+ private void failRepair(UUID parentRepairSession, String errorMsg) {
+ removeParentRepairSession(parentRepairSession);
+ throw new RuntimeException(errorMsg);
+ }
+
public void registerParentRepairSession(UUID parentRepairSession, InetAddress coordinator, List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long timestamp, boolean isGlobal)
{
if (!registeredForEndpointChanges)
[5/9] cassandra git commit: Fail repair if insufficient responses
received
Posted by pa...@apache.org.
Fail repair if insufficient responses received
Patch by Simon Zhou; Reviewed by Paulo Motta for CASSANDRA-13397
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5b36f12
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5b36f12
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5b36f12
Branch: refs/heads/trunk
Commit: f5b36f12df65a780a52851207c285db7a8b4122f
Parents: 175e4f8
Author: Simon Zhou <sz...@uber.com>
Authored: Fri Mar 31 20:53:39 2017 -0700
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:26:16 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 22 +++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6a1e486..7a860fe 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.14
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5b36f12/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 11d4617..b4cea79 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -321,30 +321,36 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else
{
- status.set(false);
- failedNodes.add(neighbour.getHostAddress());
- prepareLatch.countDown();
+ // bailout early to avoid potentially waiting for a long time.
+ failRepair(parentRepairSession, "Endpoint not alive: " + neighbour);
}
}
+
try
{
- prepareLatch.await(1, TimeUnit.HOURS);
+ // Failed repair is expensive so we wait for longer time.
+ if (!prepareLatch.await(1, TimeUnit.HOURS)) {
+ failRepair(parentRepairSession, "Did not get replies from all endpoints.");
+ }
}
catch (InterruptedException e)
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString(), e);
+ failRepair(parentRepairSession, "Interrupted while waiting for prepare repair response.");
}
if (!status.get())
{
- removeParentRepairSession(parentRepairSession);
- throw new RuntimeException("Did not get positive replies from all endpoints. List of failed endpoint(s): " + failedNodes.toString());
+ failRepair(parentRepairSession, "Got negative replies from endpoints " + failedNodes);
}
return parentRepairSession;
}
+ private void failRepair(UUID parentRepairSession, String errorMsg) {
+ removeParentRepairSession(parentRepairSession);
+ throw new RuntimeException(errorMsg);
+ }
+
public void registerParentRepairSession(UUID parentRepairSession, InetAddress coordinator, List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long timestamp, boolean isGlobal)
{
if (!registeredForEndpointChanges)
[9/9] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Posted by pa...@apache.org.
Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/50ba850b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/50ba850b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/50ba850b
Branch: refs/heads/trunk
Commit: 50ba850beb573ae4aa62ac46e645ce48413815ce
Parents: b687641 4d24958
Author: Paulo Motta <pa...@apache.org>
Authored: Thu Apr 20 10:40:22 2017 -0300
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:48:37 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 21 ++++++++++++--------
2 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/50ba850b/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index db863e1,08df2dd..2710060
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -80,7 -24,9 +80,8 @@@
* NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
* Address message coalescing regression (CASSANDRA-12676)
* Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417)
- * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
Merged from 3.0:
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
* Handling partially written hint files (CASSANDRA-12728)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/50ba850b/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/ActiveRepairService.java
index 381af48,fea690e..c03c470
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@@ -358,14 -324,17 +358,16 @@@ public class ActiveRepairService implem
}
else
{
- status.set(false);
- failedNodes.add(neighbour.getHostAddress());
- prepareLatch.countDown();
+ // bailout early to avoid potentially waiting for a long time.
+ failRepair(parentRepairSession, "Endpoint not alive: " + neighbour);
}
}
-
try
{
- prepareLatch.await(DatabaseDescriptor.getRpcTimeout(), TimeUnit.MILLISECONDS);
+ // Failed repair is expensive so we wait for longer time.
+ if (!prepareLatch.await(1, TimeUnit.HOURS)) {
+ failRepair(parentRepairSession, "Did not get replies from all endpoints.");
+ }
}
catch (InterruptedException e)
{
@@@ -382,9 -349,13 +382,14 @@@
return parentRepairSession;
}
+ private void failRepair(UUID parentRepairSession, String errorMsg) {
+ removeParentRepairSession(parentRepairSession);
+ throw new RuntimeException(errorMsg);
+ }
+
- public void registerParentRepairSession(UUID parentRepairSession, InetAddress coordinator, List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long timestamp, boolean isGlobal)
+ public void registerParentRepairSession(UUID parentRepairSession, InetAddress coordinator, List<ColumnFamilyStore> columnFamilyStores, Collection<Range<Token>> ranges, boolean isIncremental, long repairedAt, boolean isGlobal)
{
+ assert isIncremental || repairedAt == ActiveRepairService.UNREPAIRED_SSTABLE;
if (!registeredForEndpointChanges)
{
Gossiper.instance.register(this);
[7/9] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by pa...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4d24958d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4d24958d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4d24958d
Branch: refs/heads/trunk
Commit: 4d24958dd1c2b529cd415d7d8a8d533b5e8db0cb
Parents: 42904c6 f5b36f1
Author: Paulo Motta <pa...@apache.org>
Authored: Thu Apr 20 10:37:00 2017 -0300
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Apr 20 10:37:00 2017 -0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/ActiveRepairService.java | 22 +++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d24958d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index b6ca04b,7a860fe..08df2dd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,11 +1,38 @@@
-3.0.14
+3.11.0
+ * V5 protocol flags decoding broken (CASSANDRA-13443)
+ * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422)
+ * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329)
+ * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962)
+ * Add charset to Analyser input stream (CASSANDRA-13151)
+ * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820)
+ * cdc column addition strikes again (CASSANDRA-13382)
+ * Fix static column indexes (CASSANDRA-13277)
+ * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298)
+ * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370)
+ * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247)
+ * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317)
+ * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366)
+ * Support unaligned memory access for AArch64 (CASSANDRA-13326)
+ * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915).
+ * Fix equality comparisons of columns using the duration type (CASSANDRA-13174)
+ * Obfuscate password in stress-graphs (CASSANDRA-12233)
+ * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
+ * nodetool stopdaemon errors out (CASSANDRA-13030)
+ * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
+ * Fix primary index calculation for SASI (CASSANDRA-12910)
+ * More fixes to the TokenAllocator (CASSANDRA-12990)
+ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
+ * Address message coalescing regression (CASSANDRA-12676)
+ * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417)
+ * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
+Merged from 3.0:
+ * Fail repair if insufficient responses received (CASSANDRA-13397)
* Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
* Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
- * Handling partially written hint files (CASSANDRA-12728)
+ * Handling partially written hint files (CASSANDRA-12728)
* Interrupt replaying hints on decommission (CASSANDRA-13308)
-
-3.0.13
+ * Handling partially written hint files (CASSANDRA-12728)
+ * Fix NPE issue in StorageService (CASSANDRA-13060)
* Make reading of range tombstones more reliable (CASSANDRA-12811)
* Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213)
* Fix view builder bug that can filter out data on restart (CASSANDRA-13405)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d24958d/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------