Merge branch '1.8' Conflicts: minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ee8e0705 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ee8e0705 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ee8e0705 Branch: refs/heads/master Commit: ee8e0705ccb3e0b54ef4a913d05d59c47f8f340a Parents: 930592f 3e5524c Author: Keith Turner <ke...@deenlo.com> Authored: Tue Jul 19 16:05:09 2016 -0400 Committer: Keith Turner <ke...@deenlo.com> Committed: Tue Jul 19 16:05:09 2016 -0400 ---------------------------------------------------------------------- .../org/apache/accumulo/core/Constants.java | 1 + .../org/apache/accumulo/core/conf/Property.java | 6 + .../core/metadata/schema/MetadataSchema.java | 7 + .../tabletserver/thrift/TUnloadTabletGoal.java | 67 ++++ .../thrift/TabletClientService.java | 275 +++++++++++---- core/src/main/thrift/tabletserver.thrift | 9 +- .../main/asciidoc/chapters/administration.txt | 14 + .../impl/MiniAccumuloClusterControl.java | 25 +- .../impl/MiniAccumuloClusterImpl.java | 12 +- .../server/constraints/MetadataConstraints.java | 6 +- .../accumulo/server/master/LiveTServerSet.java | 5 +- .../server/master/state/MetaDataStateStore.java | 37 ++ .../master/state/MetaDataTableScanner.java | 6 +- .../server/master/state/SuspendingTServer.java | 71 ++++ .../master/state/TabletLocationState.java | 44 ++- .../server/master/state/TabletState.java | 2 +- .../master/state/TabletStateChangeIterator.java | 1 + .../server/master/state/TabletStateStore.java | 43 ++- .../master/state/ZooTabletStateStore.java | 14 +- .../master/state/TabletLocationStateTest.java | 28 +- .../gc/GarbageCollectWriteAheadLogsTest.java | 4 +- .../java/org/apache/accumulo/master/Master.java | 82 ++++- .../org/apache/accumulo/master/MasterTime.java | 108 ++++++ .../accumulo/master/TabletGroupWatcher.java | 83 ++++- .../accumulo/master/state/MergeStats.java | 4 +- .../accumulo/master/state/TableCounts.java | 4 + .../master/state/RootTabletStateStoreTest.java | 4 +- .../apache/accumulo/tserver/TabletServer.java | 31 +- .../accumulo/test/master/MergeStateIT.java | 2 +- .../test/master/SuspendedTabletsIT.java | 340 +++++++++++++++++++ .../test/performance/thrift/NullTserver.java | 3 +- 31 files changed, 1155 insertions(+), 183 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/core/src/main/java/org/apache/accumulo/core/Constants.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/core/src/main/java/org/apache/accumulo/core/conf/Property.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java ---------------------------------------------------------------------- diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java index fef66a8,3e66acf..1e5a4f9 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java @@@ -33,6 -32,6 +33,7 @@@ import java.net.URI import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; ++import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@@ -343,10 -342,17 +344,17 @@@ public class MiniAccumuloClusterImpl im return process; } - Process _exec(Class<?> clazz, ServerType serverType, String... args) throws IOException { - + Process _exec(Class<?> clazz, ServerType serverType, Map<String,String> configOverrides, String... args) throws IOException { List<String> jvmOpts = new ArrayList<>(); jvmOpts.add("-Xmx" + config.getMemory(serverType)); + if (configOverrides != null && !configOverrides.isEmpty()) { - File siteFile = File.createTempFile("accumulo-site", ".xml", config.getConfDir()); ++ File siteFile = Files.createTempFile(config.getConfDir().toPath(), "accumulo-site", ".xml").toFile(); + Map<String,String> confMap = new HashMap<>(); + confMap.putAll(config.getSiteConfig()); + confMap.putAll(configOverrides); + writeConfig(siteFile, confMap.entrySet()); + jvmOpts.add("-Dorg.apache.accumulo.config.file=" + siteFile.getName()); + } if (config.isJDWPEnabled()) { Integer port = PortUtils.getRandomFreePort(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/server/base/src/main/java/org/apache/accumulo/server/master/state/TabletStateChangeIterator.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/server/master/src/main/java/org/apache/accumulo/master/Master.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java ---------------------------------------------------------------------- diff --cc server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java index 907de0c,2cf7d9d..fa8087f --- a/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java +++ b/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java @@@ -91,9 -90,15 +91,14 @@@ import org.apache.hadoop.fs.Path import org.apache.hadoop.io.Text; import org.apache.thrift.TException; -import com.google.common.base.Optional; import com.google.common.collect.Iterators; + import org.apache.accumulo.core.conf.Property; + import org.apache.accumulo.server.conf.TableConfiguration; + import static java.lang.Math.min; + import java.util.SortedSet; + import static java.lang.Math.min; - class TabletGroupWatcher extends Daemon { + abstract class TabletGroupWatcher extends Daemon { // Constants used to make sure assignment logging isn't excessive in quantity or size private static final String ASSIGNMENT_BUFFER_SEPARATOR = ", "; private static final int ASSINGMENT_BUFFER_MAX_LENGTH = 4096; @@@ -165,9 -182,10 +182,10 @@@ SortedMap<TServerInstance,TabletServerStatus> destinations = new TreeMap<>(currentTServers); destinations.keySet().removeAll(this.master.serversToShutdown); - List<Assignment> assignments = new ArrayList<Assignment>(); - List<Assignment> assigned = new ArrayList<Assignment>(); + List<Assignment> assignments = new ArrayList<>(); + List<Assignment> assigned = new ArrayList<>(); List<TabletLocationState> assignedToDeadServers = new ArrayList<>(); + List<TabletLocationState> suspendedToGoneServers = new ArrayList<>(); Map<KeyExtent,TServerInstance> unassigned = new HashMap<>(); Map<TServerInstance,List<Path>> logsForDeadServers = new TreeMap<>(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/ee8e0705/test/src/main/java/org/apache/accumulo/test/performance/thrift/NullTserver.java ----------------------------------------------------------------------