ACCUMULO-2041 updates from initial review
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/80498591 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/80498591 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/80498591 Branch: refs/heads/ACCUMULO-378 Commit: 8049859154dc5cab5a5a0ce1d6babaf243c06922 Parents: 7db2abf Author: Eric C. Newton <eric.new...@gmail.com> Authored: Mon Apr 21 15:27:15 2014 -0400 Committer: Eric C. Newton <eric.new...@gmail.com> Committed: Tue Jun 3 10:49:43 2014 -0400 ---------------------------------------------------------------------- .../accumulo/tserver/CountingIterator.java | 78 ++++++++++++++++++++ .../apache/accumulo/tserver/TabletServer.java | 4 +- .../apache/accumulo/tserver/tablet/Batch.java | 26 +++++-- .../tserver/tablet/CompactionRunner.java | 2 +- .../tserver/tablet/CompactionWatcher.java | 1 + .../accumulo/tserver/tablet/Compactor.java | 54 +------------- .../tserver/tablet/MinorCompactionTask.java | 9 ++- .../accumulo/tserver/tablet/ScanBatch.java | 14 +++- .../accumulo/tserver/tablet/ScanDataSource.java | 10 +-- .../accumulo/tserver/tablet/ScanOptions.java | 49 +++++++++--- .../apache/accumulo/tserver/tablet/Scanner.java | 27 +++---- .../accumulo/tserver/tablet/SplitInfo.java | 38 ++++++++-- .../apache/accumulo/tserver/tablet/Tablet.java | 4 +- .../accumulo/tserver/CountingIteratorTest.java | 1 - 14 files changed, 213 insertions(+), 104 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/CountingIterator.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/CountingIterator.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/CountingIterator.java new file mode 100644 index 0000000..e4ba076 --- /dev/null +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/CountingIterator.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.accumulo.tserver; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; + +import org.apache.accumulo.core.data.Key; +import org.apache.accumulo.core.data.Value; +import org.apache.accumulo.core.iterators.IteratorEnvironment; +import org.apache.accumulo.core.iterators.SortedKeyValueIterator; +import org.apache.accumulo.core.iterators.WrappingIterator; + +public class CountingIterator extends WrappingIterator { + + private long count; + private final ArrayList<CountingIterator> deepCopies; + private final AtomicLong entriesRead; + + @Override + public CountingIterator deepCopy(IteratorEnvironment env) { + return new CountingIterator(this, env); + } + + private CountingIterator(CountingIterator other, IteratorEnvironment env) { + setSource(other.getSource().deepCopy(env)); + count = 0; + this.deepCopies = other.deepCopies; + this.entriesRead = other.entriesRead; + deepCopies.add(this); + } + + public CountingIterator(SortedKeyValueIterator<Key,Value> source, AtomicLong entriesRead) { + deepCopies = new ArrayList<CountingIterator>(); + this.setSource(source); + count = 0; + this.entriesRead = entriesRead; + } + + @Override + public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options, IteratorEnvironment env) { + throw new UnsupportedOperationException(); + } + + @Override + public void next() throws IOException { + super.next(); + count++; + if (count % 1024 == 0) { + entriesRead.addAndGet(1024); + } + } + + public long getCount() { + long sum = 0; + for (CountingIterator dc : deepCopies) { + sum += dc.count; + } + + return count + sum; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java index 1c07c44..2a453a8 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java @@ -1303,7 +1303,7 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu throw new RuntimeException(t); } - ScanResult scanResult = new ScanResult(Key.compress(bresult.results), bresult.more); + ScanResult scanResult = new ScanResult(Key.compress(bresult.getResults()), bresult.isMore()); scanSession.entriesReturned += scanResult.results.size(); @@ -1859,7 +1859,7 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu Value val = null; - for (KVEntry entry2 : batch.results) { + for (KVEntry entry2 : batch.getResults()) { val = entry2.getValue(); break; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Batch.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Batch.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Batch.java index 73434c6..1a83ba4 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Batch.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Batch.java @@ -20,11 +20,11 @@ import java.util.List; import org.apache.accumulo.core.data.Key; -class Batch { - final boolean skipContinueKey; - final List<KVEntry> results; - final Key continueKey; - final long numBytes; +final class Batch { + private final boolean skipContinueKey; + private final List<KVEntry> results; + private final Key continueKey; + private final long numBytes; Batch(boolean skipContinueKey, List<KVEntry> results, Key continueKey, long numBytes) { this.skipContinueKey = skipContinueKey; @@ -32,4 +32,20 @@ class Batch { this.continueKey = continueKey; this.numBytes = numBytes; } + + public boolean isSkipContinueKey() { + return skipContinueKey; + } + + public List<KVEntry> getResults() { + return results; + } + + public Key getContinueKey() { + return continueKey; + } + + public long getNumBytes() { + return numBytes; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionRunner.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionRunner.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionRunner.java index de5a66d..1dee64b 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionRunner.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionRunner.java @@ -18,7 +18,7 @@ package org.apache.accumulo.tserver.tablet; import org.apache.accumulo.tserver.compaction.MajorCompactionReason; -class CompactionRunner implements Runnable, Comparable<CompactionRunner> { +final class CompactionRunner implements Runnable, Comparable<CompactionRunner> { private final Tablet tablet; private final MajorCompactionReason reason; http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionWatcher.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionWatcher.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionWatcher.java index 1ca1f33..adc01b2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionWatcher.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactionWatcher.java @@ -51,6 +51,7 @@ public class CompactionWatcher implements Runnable { this.config = config; } + @Override public void run() { List<CompactionInfo> runningCompactions = Compactor.getRunningCompactions(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java index 2a3e2f4..9a93be3 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Compactor.java @@ -40,11 +40,9 @@ import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.file.FileOperations; import org.apache.accumulo.core.file.FileSKVIterator; import org.apache.accumulo.core.file.FileSKVWriter; -import org.apache.accumulo.core.iterators.IteratorEnvironment; import org.apache.accumulo.core.iterators.IteratorUtil; import org.apache.accumulo.core.iterators.IteratorUtil.IteratorScope; import org.apache.accumulo.core.iterators.SortedKeyValueIterator; -import org.apache.accumulo.core.iterators.WrappingIterator; import org.apache.accumulo.core.iterators.system.ColumnFamilySkippingIterator; import org.apache.accumulo.core.iterators.system.DeletingIterator; import org.apache.accumulo.core.iterators.system.MultiIterator; @@ -60,6 +58,7 @@ import org.apache.accumulo.server.problems.ProblemReports; import org.apache.accumulo.server.problems.ProblemType; import org.apache.accumulo.trace.instrument.Span; import org.apache.accumulo.trace.instrument.Trace; +import org.apache.accumulo.tserver.CountingIterator; import org.apache.accumulo.tserver.InMemoryMap; import org.apache.accumulo.tserver.MinorCompactionReason; import org.apache.accumulo.tserver.TabletIteratorEnvironment; @@ -71,57 +70,6 @@ public class Compactor implements Callable<CompactionStats> { private static final Logger log = Logger.getLogger(Compactor.class); private static final AtomicLong nextCompactorID = new AtomicLong(0); - public static class CountingIterator extends WrappingIterator { - - private long count; - private final ArrayList<CountingIterator> deepCopies; - private final AtomicLong entriesRead; - - @Override - public CountingIterator deepCopy(IteratorEnvironment env) { - return new CountingIterator(this, env); - } - - private CountingIterator(CountingIterator other, IteratorEnvironment env) { - setSource(other.getSource().deepCopy(env)); - count = 0; - this.deepCopies = other.deepCopies; - this.entriesRead = other.entriesRead; - deepCopies.add(this); - } - - public CountingIterator(SortedKeyValueIterator<Key,Value> source, AtomicLong entriesRead) { - deepCopies = new ArrayList<Compactor.CountingIterator>(); - this.setSource(source); - count = 0; - this.entriesRead = entriesRead; - } - - @Override - public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options, IteratorEnvironment env) { - throw new UnsupportedOperationException(); - } - - @Override - public void next() throws IOException { - super.next(); - count++; - if (count % 1024 == 0) { - entriesRead.addAndGet(1024); - } - } - - public long getCount() { - long sum = 0; - for (CountingIterator dc : deepCopies) { - sum += dc.count; - } - - return count + sum; - } - } - - public static class CompactionCanceledException extends Exception { private static final long serialVersionUID = 1L; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java index 9278cb2..6183824 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/MinorCompactionTask.java @@ -24,9 +24,12 @@ import org.apache.accumulo.trace.instrument.Span; import org.apache.accumulo.trace.instrument.Trace; import org.apache.accumulo.tserver.MinorCompactionReason; import org.apache.accumulo.tserver.compaction.MajorCompactionReason; +import org.apache.log4j.Logger; class MinorCompactionTask implements Runnable { + private static Logger log = Logger.getLogger(MinorCompactionTask.class); + private final Tablet tablet; private long queued; private CommitSession commitSession; @@ -47,7 +50,7 @@ class MinorCompactionTask implements Runnable { @Override public void run() { - tablet.isMinorCompactionRunning(); + tablet.minorCompactionStarted(); Span minorCompaction = Trace.on("minorCompaction"); try { FileRef newMapfileLocation = tablet.getNextMapFilename(mergeFile == null ? "F" : "M"); @@ -68,7 +71,7 @@ class MinorCompactionTask implements Runnable { tablet.getTabletServer().minorCompactionStarted(commitSession, commitSession.getWALogSeq() + 1, newMapfileLocation.path().toString()); break; } catch (IOException e) { - Tablet.log.warn("Failed to write to write ahead log " + e.getMessage(), e); + log.warn("Failed to write to write ahead log " + e.getMessage(), e); } } span.stop(); @@ -83,7 +86,7 @@ class MinorCompactionTask implements Runnable { tablet.initiateMajorCompaction(MajorCompactionReason.NORMAL); } } catch (Throwable t) { - Tablet.log.error("Unknown error during minor compaction for extent: " + tablet.getExtent(), t); + log.error("Unknown error during minor compaction for extent: " + tablet.getExtent(), t); throw new RuntimeException(t); } finally { tablet.minorCompactionComplete(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanBatch.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanBatch.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanBatch.java index 0ea76d3..dc932c6 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanBatch.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanBatch.java @@ -18,12 +18,20 @@ package org.apache.accumulo.tserver.tablet; import java.util.List; -public class ScanBatch { - public final boolean more; - public final List<KVEntry> results; +final public class ScanBatch { + private final boolean more; + private final List<KVEntry> results; ScanBatch(List<KVEntry> results, boolean more) { this.results = results; this.more = more; } + + public boolean isMore() { + return more; + } + + public List<KVEntry> getResults() { + return results; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java index 980a082..5464731 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanDataSource.java @@ -76,7 +76,7 @@ class ScanDataSource implements DataSource { this.tablet = tablet; expectedDeletionCount = tablet.getDataSourceDeletions(); this.options = options; - this.interruptFlag = options.interruptFlag; + this.interruptFlag = options.getInterruptFlag(); } @Override @@ -147,7 +147,7 @@ class ScanDataSource implements DataSource { files = reservation.getSecond(); } - Collection<InterruptibleIterator> mapfiles = fileManager.openFiles(files, options.isolated); + Collection<InterruptibleIterator> mapfiles = fileManager.openFiles(files, options.isIsolated()); List<SortedKeyValueIterator<Key,Value>> iters = new ArrayList<SortedKeyValueIterator<Key,Value>>(mapfiles.size() + memIters.size()); @@ -167,12 +167,12 @@ class ScanDataSource implements DataSource { ColumnFamilySkippingIterator cfsi = new ColumnFamilySkippingIterator(delIter); - ColumnQualifierFilter colFilter = new ColumnQualifierFilter(cfsi, options.columnSet); + ColumnQualifierFilter colFilter = new ColumnQualifierFilter(cfsi, options.getColumnSet()); - VisibilityFilter visFilter = new VisibilityFilter(colFilter, options.authorizations, options.defaultLabels); + VisibilityFilter visFilter = new VisibilityFilter(colFilter, options.getAuthorizations(), options.getDefaultLabels()); return iterEnv.getTopLevelIterator(IteratorUtil - .loadIterators(IteratorScope.scan, visFilter, tablet.getExtent(), tablet.getTableConfiguration(), options.ssiList, options.ssio, iterEnv)); + .loadIterators(IteratorScope.scan, visFilter, tablet.getExtent(), tablet.getTableConfiguration(), options.getSsiList(), options.getSsio(), iterEnv)); } void close(boolean sawErrors) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanOptions.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanOptions.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanOptions.java index 9382ea7..07aa8e7 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanOptions.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/ScanOptions.java @@ -25,16 +25,16 @@ import org.apache.accumulo.core.data.Column; import org.apache.accumulo.core.data.thrift.IterInfo; import org.apache.accumulo.core.security.Authorizations; -class ScanOptions { +final class ScanOptions { - final Authorizations authorizations; - final byte[] defaultLabels; - final Set<Column> columnSet; - final List<IterInfo> ssiList; - final Map<String,Map<String,String>> ssio; - final AtomicBoolean interruptFlag; - final int num; - final boolean isolated; + private final Authorizations authorizations; + private final byte[] defaultLabels; + private final Set<Column> columnSet; + private final List<IterInfo> ssiList; + private final Map<String,Map<String,String>> ssio; + private final AtomicBoolean interruptFlag; + private final int num; + private final boolean isolated; ScanOptions(int num, Authorizations authorizations, byte[] defaultLabels, Set<Column> columnSet, List<IterInfo> ssiList, Map<String,Map<String,String>> ssio, AtomicBoolean interruptFlag, boolean isolated) { @@ -48,4 +48,35 @@ class ScanOptions { this.isolated = isolated; } + public Authorizations getAuthorizations() { + return authorizations; + } + + public byte[] getDefaultLabels() { + return defaultLabels; + } + + public Set<Column> getColumnSet() { + return columnSet; + } + + public List<IterInfo> getSsiList() { + return ssiList; + } + + public Map<String,Map<String,String>> getSsio() { + return ssio; + } + + public AtomicBoolean getInterruptFlag() { + return interruptFlag; + } + + public int getNum() { + return num; + } + + public boolean isIsolated() { + return isolated; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Scanner.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Scanner.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Scanner.java index 96379fc..ad3fcb2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Scanner.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Scanner.java @@ -56,7 +56,7 @@ public class Scanner { ScanDataSource dataSource; - if (options.isolated) { + if (options.isIsolated()) { if (isolatedDataSource == null) isolatedDataSource = new ScanDataSource(tablet, options); dataSource = isolatedDataSource; @@ -68,7 +68,7 @@ public class Scanner { SortedKeyValueIterator<Key,Value> iter; - if (options.isolated) { + if (options.isIsolated()) { if (isolatedIter == null) isolatedIter = new SourceSwitchingIterator(dataSource, true); else @@ -78,16 +78,16 @@ public class Scanner { iter = new SourceSwitchingIterator(dataSource, false); } - results = tablet.nextBatch(iter, range, options.num, options.columnSet); + results = tablet.nextBatch(iter, range, options.getNum(), options.getColumnSet()); - if (results.results == null) { + if (results.getResults() == null) { range = null; return new ScanBatch(new ArrayList<KVEntry>(), false); - } else if (results.continueKey == null) { - return new ScanBatch(results.results, false); + } else if (results.getContinueKey() == null) { + return new ScanBatch(results.getResults(), false); } else { - range = new Range(results.continueKey, !results.skipContinueKey, range.getEndKey(), range.isEndKeyInclusive()); - return new ScanBatch(results.results, true); + range = new Range(results.getContinueKey(), !results.isSkipContinueKey(), range.getEndKey(), range.isEndKeyInclusive()); + return new ScanBatch(results.getResults(), true); } } catch (IterationInterruptedException iie) { @@ -111,13 +111,14 @@ public class Scanner { } finally { // code in finally block because always want // to return mapfiles, even when exception is thrown - if (!options.isolated) + if (!options.isIsolated()) { dataSource.close(false); - else + } else { dataSource.detachFileManager(); + } - if (results != null && results.results != null) - tablet.updateQueryStats(results.results.size(), results.numBytes); + if (results != null && results.getResults() != null) + tablet.updateQueryStats(results.getResults().size(), results.getNumBytes()); } } @@ -125,7 +126,7 @@ public class Scanner { // this could lead to the case where file iterators that are in use by a thread are returned // to the pool... this would be bad public void close() { - options.interruptFlag.set(true); + options.getInterruptFlag().set(true); synchronized (this) { scanClosed = true; if (isolatedDataSource != null) http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/SplitInfo.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/SplitInfo.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/SplitInfo.java index 084503a..ec84aa8 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/SplitInfo.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/SplitInfo.java @@ -32,13 +32,13 @@ import org.apache.accumulo.server.master.state.TServerInstance; * */ -public class SplitInfo { - final String dir; - final SortedMap<FileRef,DataFileValue> datafiles; - final String time; - final long initFlushID; - final long initCompactID; - final TServerInstance lastLocation; +final public class SplitInfo { + private final String dir; + private final SortedMap<FileRef,DataFileValue> datafiles; + private final String time; + private final long initFlushID; + private final long initCompactID; + private final TServerInstance lastLocation; SplitInfo(String d, SortedMap<FileRef,DataFileValue> dfv, String time, long initFlushID, long initCompactID, TServerInstance lastLocation) { this.dir = d; @@ -49,4 +49,28 @@ public class SplitInfo { this.lastLocation = lastLocation; } + public String getDir() { + return dir; + } + + public SortedMap<FileRef,DataFileValue> getDatafiles() { + return datafiles; + } + + public String getTime() { + return time; + } + + public long getInitFlushID() { + return initFlushID; + } + + public long getInitCompactID() { + return initCompactID; + } + + public TServerInstance getLastLocation() { + return lastLocation; + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java index 432e3a3..bf9a905 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java @@ -255,7 +255,7 @@ public class Tablet implements TabletCommitter { } public Tablet(TabletServer tabletServer, KeyExtent extent, TabletResourceManager trm, SplitInfo info) throws IOException { - this(tabletServer, new Text(info.dir), extent, trm, info.datafiles, info.time, info.initFlushID, info.initCompactID, info.lastLocation); + this(tabletServer, new Text(info.getDir()), extent, trm, info.getDatafiles(), info.getTime(), info.getInitFlushID(), info.getInitCompactID(), info.getLastLocation()); splitCreationTime = System.currentTimeMillis(); } @@ -2539,7 +2539,7 @@ public class Tablet implements TabletCommitter { minorCompactionWaitingToStart = true; } - public void minorCompacationStarted() { + public void minorCompactionStarted() { minorCompactionWaitingToStart = false; minorCompactionInProgress = true; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/80498591/server/tserver/src/test/java/org/apache/accumulo/tserver/CountingIteratorTest.java ---------------------------------------------------------------------- diff --git a/server/tserver/src/test/java/org/apache/accumulo/tserver/CountingIteratorTest.java b/server/tserver/src/test/java/org/apache/accumulo/tserver/CountingIteratorTest.java index 253c97e..302b025 100644 --- a/server/tserver/src/test/java/org/apache/accumulo/tserver/CountingIteratorTest.java +++ b/server/tserver/src/test/java/org/apache/accumulo/tserver/CountingIteratorTest.java @@ -26,7 +26,6 @@ import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.SortedMapIterator; -import org.apache.accumulo.tserver.tablet.Compactor.CountingIterator; import org.junit.Assert; import org.junit.Test;