Author: jbellis
Date: Thu Nov 18 01:36:04 2010
New Revision: 1036309
URL: http://svn.apache.org/viewvc?rev=1036309&view=rev
Log:
retain reference to PendingFile sstables
patch by Stu Hood; reviewed by jbellis for CASSANDRA-1749
Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/PendingFile.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/StreamOut.java
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/streaming/BootstrapTest.java
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1036309&r1=1036308&r2=1036309&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Thu Nov 18 01:36:04 2010
@@ -37,6 +37,7 @@ dev
* clear endpoint cache after updating keyspace metadata (CASSANDRA-1741)
* fix wrapping-range queries on non-minimum token (CASSANDRA-1700)
* truncate includes secondary indexes (CASSANDRA-1747)
+ * retain reference to PendingFile sstables (CASSANDRA-1749)
0.7.0-beta3
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/PendingFile.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/PendingFile.java?rev=1036309&r1=1036308&r2=1036309&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/PendingFile.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/PendingFile.java
Thu Nov 18 01:36:04 2010
@@ -31,6 +31,7 @@ import org.apache.commons.lang.StringUti
import org.apache.cassandra.io.ICompactSerializer;
import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.sstable.SSTable;
import org.apache.cassandra.utils.Pair;
/**
@@ -45,6 +46,9 @@ public class PendingFile
return serializer_;
}
+ // NB: this reference prevents garbage collection of the sstable on the
source node
+ private final SSTable sstable;
+
public final Descriptor desc;
public final String component;
public final List<Pair<Long,Long>> sections;
@@ -53,11 +57,12 @@ public class PendingFile
public PendingFile(Descriptor desc, PendingFile pf)
{
- this(desc, pf.component, pf.sections);
+ this(null, desc, pf.component, pf.sections);
}
- public PendingFile(Descriptor desc, String component,
List<Pair<Long,Long>> sections)
+ public PendingFile(SSTable sstable, Descriptor desc, String component,
List<Pair<Long,Long>> sections)
{
+ this.sstable = sstable;
this.desc = desc;
this.component = component;
this.sections = sections;
@@ -124,7 +129,7 @@ public class PendingFile
List<Pair<Long,Long>> sections = new
ArrayList<Pair<Long,Long>>(count);
for (int i = 0; i < count; i++)
sections.add(new Pair<Long,Long>(Long.valueOf(dis.readLong()),
Long.valueOf(dis.readLong())));
- return new PendingFile(desc, component, sections);
+ return new PendingFile(null, desc, component, sections);
}
}
}
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/StreamOut.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/StreamOut.java?rev=1036309&r1=1036308&r2=1036309&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/StreamOut.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/streaming/StreamOut.java
Thu Nov 18 01:36:04 2010
@@ -166,7 +166,7 @@ public class StreamOut
List<Pair<Long,Long>> sections =
sstable.getPositionsForRanges(ranges);
if (sections.isEmpty())
continue;
- pending.add(new PendingFile(desc, SSTable.COMPONENT_DATA,
sections));
+ pending.add(new PendingFile(sstable, desc, SSTable.COMPONENT_DATA,
sections));
}
logger.info("Stream context metadata {}, {} sstables.", pending,
sstables.size());
return pending;
Modified:
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/streaming/BootstrapTest.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/streaming/BootstrapTest.java?rev=1036309&r1=1036308&r2=1036309&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/streaming/BootstrapTest.java
(original)
+++
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/streaming/BootstrapTest.java
Thu Nov 18 01:36:04 2010
@@ -37,7 +37,7 @@ public class BootstrapTest extends Schem
public void testGetNewNames() throws IOException
{
Descriptor desc = Descriptor.fromFilename(new File("Keyspace1",
"Standard1-500-Data.db").toString());
- PendingFile inContext = new PendingFile(desc, "Data.db",
Arrays.asList(new Pair<Long,Long>(0L, 1L)));
+ PendingFile inContext = new PendingFile(null, desc, "Data.db",
Arrays.asList(new Pair<Long,Long>(0L, 1L)));
PendingFile outContext = StreamIn.getContextMapping(inContext);
// filename and generation are expected to have changed