You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dl...@apache.org on 2023/05/31 14:17:40 UTC
[accumulo] branch elasticity updated: Removed SplitScanner, moved into TabletGroupWatcher (#3439)
This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch elasticity
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push:
new 9cd9fa8921 Removed SplitScanner, moved into TabletGroupWatcher (#3439)
9cd9fa8921 is described below
commit 9cd9fa89211eca0aecdc97a74abf14a51eefe489
Author: Dave Marion <dl...@apache.org>
AuthorDate: Wed May 31 10:17:34 2023 -0400
Removed SplitScanner, moved into TabletGroupWatcher (#3439)
---
.../manager/state/TabletManagementIterator.java | 27 +++---
.../java/org/apache/accumulo/manager/Manager.java | 2 +-
.../accumulo/manager/TabletGroupWatcher.java | 18 +++-
.../accumulo/manager/split/SplitScanner.java | 96 ----------------------
.../apache/accumulo/manager/split/Splitter.java | 44 +++-------
.../accumulo/manager/tableOps/split/PreSplit.java | 5 +-
.../accumulo/manager/split/SplitterTest.java | 47 +++++++----
.../org/apache/accumulo/test/SplitRecoveryIT.java | 2 +
.../test/compaction/SplitCancelsMajCIT.java | 3 +
.../apache/accumulo/test/functional/SplitIT.java | 1 -
.../accumulo/test/functional/SplitRecoveryIT.java | 2 +
11 files changed, 85 insertions(+), 162 deletions(-)
diff --git a/server/base/src/main/java/org/apache/accumulo/server/manager/state/TabletManagementIterator.java b/server/base/src/main/java/org/apache/accumulo/server/manager/state/TabletManagementIterator.java
index 0556e68726..814c4ee224 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/manager/state/TabletManagementIterator.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/manager/state/TabletManagementIterator.java
@@ -30,7 +30,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedMap;
-import java.util.stream.Collectors;
import org.apache.accumulo.core.client.IteratorSetting;
import org.apache.accumulo.core.client.ScannerBase;
@@ -53,6 +52,7 @@ import org.apache.accumulo.core.metadata.TabletState;
import org.apache.accumulo.core.metadata.schema.DataFileValue;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ChoppedColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.CurrentLocationColumnFamily;
+import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.FutureLocationColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.HostingColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.LastLocationColumnFamily;
@@ -214,8 +214,12 @@ public class TabletManagementIterator extends SkippingIterator {
private static boolean shouldReturnDueToSplit(final TabletMetadata tm,
final long splitThreshold) {
- return tm.getFilesMap().values().stream().map(DataFileValue::getSize)
- .collect(Collectors.summarizingLong(Long::longValue)).getSum() > splitThreshold;
+ final long sumOfFileSizes =
+ tm.getFilesMap().values().stream().mapToLong(DataFileValue::getSize).sum();
+ final boolean shouldSplit = sumOfFileSizes > splitThreshold;
+ LOG.debug("{} should split? sum: {}, threshold: {}, result: {}", tm.getExtent(), sumOfFileSizes,
+ splitThreshold, shouldSplit);
+ return shouldSplit;
}
private boolean shouldReturnDueToLocation(final TabletMetadata tm,
@@ -269,6 +273,7 @@ public class TabletManagementIterator extends SkippingIterator {
scanner.fetchColumnFamily(LogColumnFamily.NAME);
scanner.fetchColumnFamily(ChoppedColumnFamily.NAME);
scanner.fetchColumnFamily(HostingColumnFamily.NAME);
+ scanner.fetchColumnFamily(DataFileColumnFamily.NAME);
ServerColumnFamily.OPID_COLUMN.fetch(scanner);
scanner.addScanIterator(new IteratorSetting(1000, "wholeRows", WholeRowIterator.class));
IteratorSetting tabletChange =
@@ -405,14 +410,16 @@ public class TabletManagementIterator extends SkippingIterator {
reasonsToReturnThisTablet.add(ManagementAction.NEEDS_LOCATION_UPDATE);
}
- final long splitThreshold =
- ConfigurationTypeHelper.getFixedMemoryAsBytes(this.env.getPluginEnv()
- .getConfiguration(tm.getTableId()).get(Property.TABLE_SPLIT_THRESHOLD.getKey()));
- if (shouldReturnDueToSplit(tm, splitThreshold)) {
- reasonsToReturnThisTablet.add(ManagementAction.NEEDS_SPLITTING);
- }
+ if (tm.getOperationId() == null) {
+ final long splitThreshold =
+ ConfigurationTypeHelper.getFixedMemoryAsBytes(this.env.getPluginEnv()
+ .getConfiguration(tm.getTableId()).get(Property.TABLE_SPLIT_THRESHOLD.getKey()));
+ if (shouldReturnDueToSplit(tm, splitThreshold)) {
+ reasonsToReturnThisTablet.add(ManagementAction.NEEDS_SPLITTING);
+ }
- // TODO: Add compaction logic
+ // TODO: Add compaction logic
+ }
}
}
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index 401d73d91d..534bf9cc17 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@ -1332,7 +1332,7 @@ public class Manager extends AbstractServer
throw new IllegalStateException("Exception updating manager lock", e);
}
- this.splitter = new Splitter(context, DataLevel.USER, this);
+ this.splitter = new Splitter(context);
this.splitter.start();
while (!clientService.isServing()) {
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java b/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java
index 2ef36c3726..44fb1ba38f 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java
@@ -85,6 +85,7 @@ import org.apache.accumulo.core.tabletserver.thrift.NotServingTabletException;
import org.apache.accumulo.core.util.TextUtil;
import org.apache.accumulo.core.util.threads.Threads.AccumuloDaemonThread;
import org.apache.accumulo.manager.Manager.TabletGoalState;
+import org.apache.accumulo.manager.split.SplitTask;
import org.apache.accumulo.manager.state.MergeStats;
import org.apache.accumulo.manager.state.TableCounts;
import org.apache.accumulo.manager.state.TableStats;
@@ -292,7 +293,6 @@ abstract class TabletGroupWatcher extends AccumuloDaemonThread {
stats.update(tableId, state);
mergeStats.update(tm.getExtent(), state, tm.hasChopped(), !tm.getLogs().isEmpty());
sendChopRequest(mergeStats.getMergeInfo(), state, tm);
- sendSplitRequest(mergeStats.getMergeInfo(), state, tm);
// Always follow through with assignments
if (state == TabletState.ASSIGNED) {
@@ -307,6 +307,21 @@ abstract class TabletGroupWatcher extends AccumuloDaemonThread {
}
}
+ if (actions.contains(ManagementAction.NEEDS_SPLITTING)) {
+ LOG.debug("{} may need splitting.", tm.getExtent());
+ if (manager.getSplitter().isSplittable(tm)) {
+ if (manager.getSplitter().addSplitStarting(tm.getExtent())) {
+ LOG.debug("submitting tablet {} for split", tm.getExtent());
+ manager.getSplitter()
+ .executeSplit(new SplitTask(manager.getContext(), tm, manager));
+ }
+ } else {
+ LOG.debug("{} is not splittable.", tm.getExtent());
+ }
+ // ELASITICITY_TODO: remove below
+ // sendSplitRequest(mergeStats.getMergeInfo(), state, tm);
+ }
+
if (actions.contains(ManagementAction.NEEDS_LOCATION_UPDATE)) {
if (goal == TabletGoalState.HOSTED) {
if ((state != TabletState.HOSTED && !tm.getLogs().isEmpty())
@@ -561,6 +576,7 @@ abstract class TabletGroupWatcher extends AccumuloDaemonThread {
return result;
}
+ // ELASITICITY_TODO: Remove
private void sendSplitRequest(MergeInfo info, TabletState state, TabletMetadata tm) {
// Already split?
if (!info.getState().equals(MergeState.SPLITTING)) {
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/split/SplitScanner.java b/server/manager/src/main/java/org/apache/accumulo/manager/split/SplitScanner.java
deleted file mode 100644
index 0d11e97944..0000000000
--- a/server/manager/src/main/java/org/apache/accumulo/manager/split/SplitScanner.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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
- *
- * https://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.manager.split;
-
-import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.data.TableId;
-import org.apache.accumulo.core.manager.state.tables.TableState;
-import org.apache.accumulo.core.metadata.schema.Ample;
-import org.apache.accumulo.core.metadata.schema.DataFileValue;
-import org.apache.accumulo.core.metadata.schema.TabletMetadata;
-import org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType;
-import org.apache.accumulo.manager.Manager;
-import org.apache.accumulo.server.ServerContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-
-// ELASTICITY_TODO explore moving this functionality into TabletGroupWatcher (also consider the
-// compaction scan). Could we do server side filtering to find candidates? In addition to or
-// independently of moving code to the tablet group watcher, we could sum up files sizes on the
-// tablet server using an accumulo iterator and return on the sum.
-public class SplitScanner implements Runnable {
-
- private static final Logger log = LoggerFactory.getLogger(SplitScanner.class);
-
- private final Ample.DataLevel level;
- private final ServerContext context;
-
- private final Manager manager;
-
- public SplitScanner(ServerContext context, Ample.DataLevel level, Manager manager) {
- Preconditions.checkArgument(level != Ample.DataLevel.ROOT);
- this.context = context;
- this.level = level;
- this.manager = manager;
- }
-
- @Override
- public void run() {
- var tablets = context.getAmple().readTablets().forLevel(level)
- .fetch(ColumnType.FILES, ColumnType.OPID, ColumnType.PREV_ROW, ColumnType.LOCATION).build();
-
- TableId lastTableId = null;
- long threshold = Long.MAX_VALUE;
-
- boolean isOnline = true;
-
- for (TabletMetadata tablet : tablets) {
- if (tablet.getOperationId() != null || !manager.getSplitter().shouldInspect(tablet)) {
- log.debug("ignoring for split inspection {} {} {}", tablet.getExtent(),
- tablet.getOperationId(), !manager.getSplitter().shouldInspect(tablet));
- continue;
- }
-
- if (lastTableId == null || !lastTableId.equals(tablet.getTableId())) {
- threshold = context.getTableConfiguration(tablet.getTableId())
- .getAsBytes(Property.TABLE_SPLIT_THRESHOLD);
- lastTableId = tablet.getTableId();
-
- isOnline = context.getTableState(lastTableId) == TableState.ONLINE;
- }
-
- if (!isOnline) {
- continue;
- }
-
- var tabletSize =
- tablet.getFilesMap().values().stream().mapToLong(DataFileValue::getSize).sum();
-
- if (tabletSize > threshold) {
- if (manager.getSplitter().addSplitStarting(tablet.getExtent())) {
- log.debug("submitting for split tablet:{} size:{} threshold:{}", tablet.getExtent(),
- tabletSize, threshold);
- manager.getSplitter().executeSplit(new SplitTask(context, tablet, manager));
- }
- }
- }
- }
-}
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/split/Splitter.java b/server/manager/src/main/java/org/apache/accumulo/manager/split/Splitter.java
index c41c9b6912..6fc79a4b81 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/split/Splitter.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/split/Splitter.java
@@ -23,8 +23,6 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import org.apache.accumulo.core.conf.Property;
@@ -32,38 +30,24 @@ import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.dataImpl.KeyExtent;
import org.apache.accumulo.core.metadata.StoredTabletFile;
import org.apache.accumulo.core.metadata.TabletFile;
-import org.apache.accumulo.core.metadata.schema.Ample;
import org.apache.accumulo.core.metadata.schema.TabletMetadata;
-import org.apache.accumulo.manager.Manager;
import org.apache.accumulo.server.ServerContext;
import org.apache.accumulo.server.conf.TableConfiguration;
import org.apache.accumulo.server.util.FileUtil;
import org.apache.accumulo.server.util.FileUtil.FileInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.CacheLoader;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.Weigher;
-import com.google.common.base.Preconditions;
import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
public class Splitter {
- private static final Logger log = LoggerFactory.getLogger(Splitter.class);
-
- private final ServerContext context;
- private final Ample.DataLevel level;
-
private final ExecutorService splitExecutor;
- private final ScheduledExecutorService scanExecutor;
- private final Manager manager;
- private ScheduledFuture<?> scanFuture;
-
Cache<KeyExtent,KeyExtent> splitsStarting;
Cache<KeyExtent,HashCode> unsplittable;
@@ -112,14 +96,9 @@ public class Splitter {
return size;
}
- public Splitter(ServerContext context, Ample.DataLevel level, Manager manager) {
- this.context = context;
- this.level = level;
- this.manager = manager;
+ public Splitter(ServerContext context) {
this.splitExecutor = context.threadPools().createExecutorService(context.getConfiguration(),
Property.MANAGER_SPLIT_WORKER_THREADS, true);
- this.scanExecutor =
- context.threadPools().createScheduledExecutorService(1, "Tablet Split Scanner", true);
Weigher<CacheKey,FileInfo> weigher =
(key, info) -> key.tableId.canonical().length() + key.tabletFile.getPathStr().length()
@@ -151,17 +130,9 @@ public class Splitter {
.maximumWeight(10_000_000L).weigher(weigher3).build();
}
- public synchronized void start() {
- Preconditions.checkState(scanFuture == null);
- Preconditions.checkState(!scanExecutor.isShutdown());
- // ELASTICITY_TODO make this configurable if functionality is not moved elsewhere
- scanFuture = scanExecutor.scheduleWithFixedDelay(new SplitScanner(context, level, manager), 1,
- 10, TimeUnit.SECONDS);
- }
+ public synchronized void start() {}
public synchronized void stop() {
- scanFuture.cancel(true);
- scanExecutor.shutdownNow();
splitExecutor.shutdownNow();
}
@@ -185,9 +156,10 @@ public class Splitter {
}
/**
- * Determines if further inspection should be done on a tablet that meets the criteria for splits.
+ * If tablet has not been marked as unsplittable, or file set has changed since being marked
+ * splittable, then return true. Else false.
*/
- public boolean shouldInspect(TabletMetadata tablet) {
+ public boolean isSplittable(TabletMetadata tablet) {
if (splitsStarting.getIfPresent(tablet.getExtent()) != null) {
return false;
}
@@ -197,6 +169,10 @@ public class Splitter {
if (hashCode != null) {
if (hashCode.equals(caclulateFilesHash(tablet))) {
return false;
+ } else {
+ // We know that the list of files for this tablet have changed
+ // so we can remove it from the set of unsplittable tablets.
+ unsplittable.invalidate(tablet.getExtent());
}
}
@@ -205,7 +181,7 @@ public class Splitter {
/**
* Temporarily remember that the process of splitting is starting for this tablet making
- * {@link #shouldInspect(TabletMetadata)} return false in the future.
+ * {@link #isSplittable(TabletMetadata)} return false in the future.
*/
public boolean addSplitStarting(KeyExtent extent) {
Objects.requireNonNull(extent);
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/split/PreSplit.java b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/split/PreSplit.java
index 592f552692..6b7e72298e 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/split/PreSplit.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/split/PreSplit.java
@@ -82,7 +82,7 @@ public class PreSplit extends ManagerRepo {
Map<KeyExtent,Ample.ConditionalResult> results = tabletsMutator.process();
if (results.get(splitInfo.getOriginal()).getStatus() == Status.ACCEPTED) {
- log.trace("{} reserved {} for split", FateTxId.formatTid(tid), splitInfo.getOriginal());
+ log.debug("{} reserved {} for split", FateTxId.formatTid(tid), splitInfo.getOriginal());
return 0;
} else {
var tabletMetadata = results.get(splitInfo.getOriginal()).readMetadata();
@@ -90,7 +90,8 @@ public class PreSplit extends ManagerRepo {
// its possible the tablet no longer exists
var optMeta = Optional.ofNullable(tabletMetadata);
- log.debug("{} Failed to set operation id. extent:{} location:{} opid:{}",
+ log.debug(
+ "{} Failed to set operation id (may have location or operationId). extent:{} location:{} opid:{}",
FateTxId.formatTid(tid), splitInfo.getOriginal(),
optMeta.map(TabletMetadata::getLocation).orElse(null),
optMeta.map(TabletMetadata::getOperationId).orElse(null));
diff --git a/server/manager/src/test/java/org/apache/accumulo/manager/split/SplitterTest.java b/server/manager/src/test/java/org/apache/accumulo/manager/split/SplitterTest.java
index ad49006d5d..407b5fc72b 100644
--- a/server/manager/src/test/java/org/apache/accumulo/manager/split/SplitterTest.java
+++ b/server/manager/src/test/java/org/apache/accumulo/manager/split/SplitterTest.java
@@ -22,9 +22,11 @@ import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import java.util.HashSet;
import java.util.Set;
import org.apache.accumulo.core.data.TableId;
@@ -39,49 +41,58 @@ import org.junit.jupiter.api.Test;
public class SplitterTest {
@Test
- public void testShouldInspect() {
+ public void testIsSplittable() {
ThreadPools threadPools = createNiceMock(ThreadPools.class);
replay(threadPools);
ServerContext context = createNiceMock(ServerContext.class);
expect(context.threadPools()).andReturn(threadPools).anyTimes();
replay(context);
- var splitter = new Splitter(context, null, null);
+ var splitter = new Splitter(context);
KeyExtent ke1 = new KeyExtent(TableId.of("1"), new Text("m"), null);
KeyExtent ke2 = new KeyExtent(TableId.of("1"), null, new Text("m"));
- Set<StoredTabletFile> files1 = Set.of(
- new StoredTabletFile("hdfs://localhost:8020/accumulo/tables/2a/default_tablet/F0000070.rf"),
- new StoredTabletFile(
- "hdfs://localhost:8020/accumulo/tables/2a/default_tablet/F0000072.rf"));
+ Set<StoredTabletFile> files1 = new HashSet<>();
+ files1.add(new StoredTabletFile(
+ "hdfs://localhost:8020/accumulo/tables/2a/default_tablet/F0000070.rf"));
+ files1.add(new StoredTabletFile(
+ "hdfs://localhost:8020/accumulo/tables/2a/default_tablet/F0000072.rf"));
TabletMetadata tabletMeta1 = createMock(TabletMetadata.class);
expect(tabletMeta1.getExtent()).andReturn(ke1).anyTimes();
- expect(tabletMeta1.getFiles()).andReturn(files1).anyTimes();
+ expect(tabletMeta1.getFiles()).andReturn(files1).times(3);
replay(tabletMeta1);
TabletMetadata tabletMeta2 = createMock(TabletMetadata.class);
expect(tabletMeta2.getExtent()).andReturn(ke2).anyTimes();
replay(tabletMeta2);
- assertTrue(splitter.shouldInspect(tabletMeta1));
- assertTrue(splitter.shouldInspect(tabletMeta2));
+ assertTrue(splitter.isSplittable(tabletMeta1));
+ assertTrue(splitter.isSplittable(tabletMeta2));
splitter.addSplitStarting(ke1);
- assertFalse(splitter.shouldInspect(tabletMeta1));
- assertTrue(splitter.shouldInspect(tabletMeta2));
+ assertFalse(splitter.isSplittable(tabletMeta1));
+ assertTrue(splitter.isSplittable(tabletMeta2));
splitter.removeSplitStarting(ke1);
- assertTrue(splitter.shouldInspect(tabletMeta1));
- assertTrue(splitter.shouldInspect(tabletMeta2));
+ assertTrue(splitter.isSplittable(tabletMeta1));
+ assertTrue(splitter.isSplittable(tabletMeta2));
splitter.rememberUnsplittable(tabletMeta1);
- assertFalse(splitter.shouldInspect(tabletMeta1));
- assertTrue(splitter.shouldInspect(tabletMeta2));
+ assertFalse(splitter.isSplittable(tabletMeta1));
+ assertTrue(splitter.isSplittable(tabletMeta2));
+
+ // tabletMeta1 is currently unsplittable. Adding a file
+ // to it's file set should cause it to be removed from
+ // the unsplittable set of tablets, becoming splittable
+ // again.
+ files1.add(new StoredTabletFile(
+ "hdfs://localhost:8020/accumulo/tables/2a/default_tablet/F0000071.rf"));
+ assertTrue(splitter.isSplittable(tabletMeta1));
// when a tablets files change it should become a candidate for inspection
Set<StoredTabletFile> files2 = Set.of(
@@ -94,8 +105,10 @@ public class SplitterTest {
expect(tabletMeta3.getFiles()).andReturn(files2).anyTimes();
replay(tabletMeta3);
- assertTrue(splitter.shouldInspect(tabletMeta3));
- assertTrue(splitter.shouldInspect(tabletMeta2));
+ assertTrue(splitter.isSplittable(tabletMeta3));
+ assertTrue(splitter.isSplittable(tabletMeta2));
+
+ verify(threadPools, context, tabletMeta1, tabletMeta2, tabletMeta3);
}
}
diff --git a/test/src/main/java/org/apache/accumulo/test/SplitRecoveryIT.java b/test/src/main/java/org/apache/accumulo/test/SplitRecoveryIT.java
index e169ff62b2..991e146410 100644
--- a/test/src/main/java/org/apache/accumulo/test/SplitRecoveryIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/SplitRecoveryIT.java
@@ -47,6 +47,8 @@ import org.junit.jupiter.api.Test;
public class SplitRecoveryIT extends AccumuloClusterHarness {
+ // ELASTICITY_TODO: Confirm still works as intended
+
@Override
protected Duration defaultTimeout() {
return Duration.ofMinutes(1);
diff --git a/test/src/main/java/org/apache/accumulo/test/compaction/SplitCancelsMajCIT.java b/test/src/main/java/org/apache/accumulo/test/compaction/SplitCancelsMajCIT.java
index 63c00cbf7c..640b52499e 100644
--- a/test/src/main/java/org/apache/accumulo/test/compaction/SplitCancelsMajCIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/compaction/SplitCancelsMajCIT.java
@@ -44,6 +44,9 @@ import org.junit.jupiter.api.Test;
// ACCUMULO-2862
public class SplitCancelsMajCIT extends SharedMiniClusterBase {
+ // ELASTICITY_TODO: Need to check new split code to ensure that it
+ // still cancels running MAJC.
+
@Override
protected Duration defaultTimeout() {
return Duration.ofMinutes(2);
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/SplitIT.java b/test/src/main/java/org/apache/accumulo/test/functional/SplitIT.java
index 33a93f40b6..8678ff5f49 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/SplitIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/SplitIT.java
@@ -19,7 +19,6 @@
package org.apache.accumulo.test.functional;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.accumulo.test.VerifyIngest.verifyIngest;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java b/test/src/main/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
index fb0a99d260..4064759c83 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java
@@ -83,6 +83,8 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
public class SplitRecoveryIT extends ConfigurableMacBase {
+ // ELASTICITY_TODO: Confirm still works as intended
+
@Override
protected Duration defaultTimeout() {
return Duration.ofMinutes(1);