HBASE-13703 ReplicateContext should not be a member of ReplicationSource.

This commit is contained in:
Lars Hofhansl 2015-05-21 21:56:21 -07:00
parent b886bac53c
commit f8893e0012
2 changed files with 3 additions and 5 deletions

View File

@ -134,7 +134,7 @@ public interface ReplicationEndpoint extends Service {
* A context for {@link ReplicationEndpoint#replicate(ReplicateContext)} method.
*/
@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.REPLICATION)
class ReplicateContext {
static class ReplicateContext {
List<Entry> entries;
int size;
@InterfaceAudience.Private

View File

@ -131,8 +131,6 @@ public class ReplicationSource extends Thread
private ReplicationEndpoint replicationEndpoint;
// A filter (or a chain of filters) for the WAL entries.
private WALEntryFilter walEntryFilter;
// Context for ReplicationEndpoint#replicate()
private ReplicationEndpoint.ReplicateContext replicateContext;
// throttler
private ReplicationThrottler throttler;
@ -187,8 +185,6 @@ public class ReplicationSource extends Thread
this.peerId = this.replicationQueueInfo.getPeerId();
this.logQueueWarnThreshold = this.conf.getInt("replication.source.log.queue.warn", 2);
this.replicationEndpoint = replicationEndpoint;
this.replicateContext = new ReplicationEndpoint.ReplicateContext();
}
private void decorateConf() {
@ -689,6 +685,8 @@ public class ReplicationSource extends Thread
this.throttler.resetStartTick();
}
}
// create replicateContext here, so the entries can be GC'd upon return from this call stack
ReplicationEndpoint.ReplicateContext replicateContext = new ReplicationEndpoint.ReplicateContext();
replicateContext.setEntries(entries).setSize(currentSize);
long startTimeNs = System.nanoTime();