This is an automated email from the ASF dual-hosted git repository.
mmiller pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/master by this push:
new 58e7087 Refactor use of ServerConfigurationFactory (#1572)
58e7087 is described below
commit 58e70870db8e1600ee860c984e062efaeac7e4e6
Author: Mike Miller <[email protected]>
AuthorDate: Wed Apr 8 08:38:12 2020 -0400
Refactor use of ServerConfigurationFactory (#1572)
* Minimize calls to ServerConfFactory by in-lining methods in ServerContext
---
.../org/apache/accumulo/server/ServerContext.java | 37 +++++++++++++++-
.../accumulo/server/ServiceEnvironmentImpl.java | 5 +--
.../server/client/ClientServiceHandler.java | 18 +++-----
.../accumulo/server/conf/ConfigSanityCheck.java | 2 +-
.../accumulo/server/conf/TableConfiguration.java | 7 ---
.../accumulo/server/conf/ZooConfiguration.java | 3 +-
.../apache/accumulo/server/init/Initialize.java | 7 ++-
.../balancer/HostRegexTableLoadBalancer.java | 6 +--
.../server/master/balancer/RegexGroupBalancer.java | 4 +-
.../server/master/balancer/TableLoadBalancer.java | 6 +--
.../server/replication/ReplicationUtil.java | 2 +-
.../tabletserver/LargestFirstMemoryManager.java | 7 ---
.../accumulo/server/util/LoginProperties.java | 2 +-
...tRegexTableLoadBalancerReconfigurationTest.java | 8 +++-
.../balancer/HostRegexTableLoadBalancerTest.java | 8 +++-
.../master/balancer/TableLoadBalancerTest.java | 51 +++++++---------------
.../java/org/apache/accumulo/master/Master.java | 10 +----
.../apache/accumulo/master/TabletGroupWatcher.java | 3 +-
.../accumulo/master/replication/WorkMaker.java | 2 +-
.../tableOps/tableExport/WriteExportFiles.java | 2 +-
.../accumulo/master/upgrade/Upgrader9to10.java | 5 +--
.../org/apache/accumulo/tracer/TraceServer.java | 9 ++--
.../org/apache/accumulo/tserver/FileManager.java | 5 +--
.../org/apache/accumulo/tserver/TabletServer.java | 28 +++++-------
24 files changed, 110 insertions(+), 127 deletions(-)
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
b/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
index 7a48eac..c844fde 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
@@ -24,16 +24,23 @@ import java.io.IOException;
import org.apache.accumulo.core.clientImpl.ClientContext;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
import org.apache.accumulo.core.crypto.CryptoServiceFactory;
import org.apache.accumulo.core.crypto.CryptoServiceFactory.ClassloaderType;
+import org.apache.accumulo.core.data.NamespaceId;
+import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.metadata.schema.Ample;
import org.apache.accumulo.core.rpc.SslConnectionParams;
import org.apache.accumulo.core.singletons.SingletonReservation;
import org.apache.accumulo.core.spi.crypto.CryptoService;
+import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooReaderWriter;
+import org.apache.accumulo.server.conf.NamespaceConfiguration;
import org.apache.accumulo.server.conf.ServerConfigurationFactory;
+import org.apache.accumulo.server.conf.TableConfiguration;
+import org.apache.accumulo.server.conf.ZooConfiguration;
import org.apache.accumulo.server.fs.VolumeManager;
import org.apache.accumulo.server.metadata.ServerAmpleImpl;
import org.apache.accumulo.server.rpc.SaslServerConnectionParams;
@@ -51,10 +58,12 @@ import org.apache.hadoop.security.UserGroupInformation;
public class ServerContext extends ClientContext {
private final ServerInfo info;
+ private final ZooReaderWriter zooReaderWriter;
private TableManager tableManager;
private UniqueNameAllocator nameAllocator;
- private ZooReaderWriter zooReaderWriter;
private ServerConfigurationFactory serverConfFactory = null;
+ private DefaultConfiguration defaultConfig = null;
+ private AccumuloConfiguration systemConfig = null;
private AuthenticationTokenSecretManager secretManager;
private CryptoService cryptoService = null;
@@ -103,6 +112,10 @@ public class ServerContext extends ClientContext {
cryptoService = CryptoServiceFactory.newInstance(acuConf,
ClassloaderType.ACCUMULO);
}
+ public SiteConfiguration getSiteConfiguration() {
+ return info.getSiteConfiguration();
+ }
+
public synchronized ServerConfigurationFactory getServerConfFactory() {
if (serverConfFactory == null) {
serverConfFactory = new ServerConfigurationFactory(this,
info.getSiteConfiguration());
@@ -112,7 +125,26 @@ public class ServerContext extends ClientContext {
@Override
public AccumuloConfiguration getConfiguration() {
- return getServerConfFactory().getSystemConfiguration();
+ if (systemConfig == null) {
+ ZooCache propCache = new ZooCache(getZooKeepers(),
getZooKeepersSessionTimeOut());
+ systemConfig = new ZooConfiguration(this, propCache,
getSiteConfiguration());
+ }
+ return systemConfig;
+ }
+
+ public TableConfiguration getTableConfiguration(TableId id) {
+ return getServerConfFactory().getTableConfiguration(id);
+ }
+
+ public NamespaceConfiguration getNamespaceConfiguration(NamespaceId
namespaceId) {
+ return getServerConfFactory().getNamespaceConfiguration(namespaceId);
+ }
+
+ public DefaultConfiguration getDefaultConfiguration() {
+ if (defaultConfig == null) {
+ defaultConfig = DefaultConfiguration.getInstance();
+ }
+ return defaultConfig;
}
/**
@@ -224,4 +256,5 @@ public class ServerContext extends ClientContext {
public Ample getAmple() {
return new ServerAmpleImpl(this);
}
+
}
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/ServiceEnvironmentImpl.java
b/server/base/src/main/java/org/apache/accumulo/server/ServiceEnvironmentImpl.java
index a7a78d5..28732ea 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/ServiceEnvironmentImpl.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/ServiceEnvironmentImpl.java
@@ -121,7 +121,7 @@ public class ServiceEnvironmentImpl implements
ServiceEnvironment {
@Override
public Configuration getConfiguration(TableId tableId) {
- return new
ConfigurationImpl(srvCtx.getServerConfFactory().getTableConfiguration(tableId));
+ return new ConfigurationImpl(srvCtx.getTableConfiguration(tableId));
}
@Override
@@ -138,8 +138,7 @@ public class ServiceEnvironmentImpl implements
ServiceEnvironment {
@Override
public <T> T instantiate(TableId tableId, String className, Class<T> base)
throws ReflectiveOperationException, IOException {
- String ctx =
-
srvCtx.getServerConfFactory().getTableConfiguration(tableId).get(Property.TABLE_CLASSPATH);
+ String ctx =
srvCtx.getTableConfiguration(tableId).get(Property.TABLE_CLASSPATH);
return ConfigurationTypeHelper.getClassInstance(ctx, className, base);
}
}
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
b/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
index 3c4ab35..bbfa6c0 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
@@ -60,7 +60,6 @@ import org.apache.accumulo.core.security.TablePermission;
import org.apache.accumulo.core.securityImpl.thrift.TCredentials;
import org.apache.accumulo.core.trace.thrift.TInfo;
import org.apache.accumulo.server.ServerContext;
-import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.accumulo.server.fs.VolumeManager;
import org.apache.accumulo.server.security.AuditedSecurityOperation;
import org.apache.accumulo.server.security.SecurityOperation;
@@ -310,14 +309,13 @@ public class ClientServiceHandler implements
ClientService.Iface {
@Override
public Map<String,String> getConfiguration(TInfo tinfo, TCredentials
credentials,
ConfigurationType type) throws TException {
- ServerConfigurationFactory factory = context.getServerConfFactory();
switch (type) {
case CURRENT:
- return conf(credentials, factory.getSystemConfiguration());
+ return conf(credentials, context.getConfiguration());
case SITE:
- return conf(credentials, factory.getSiteConfiguration());
+ return conf(credentials, context.getSiteConfiguration());
case DEFAULT:
- return conf(credentials, factory.getDefaultConfiguration());
+ return conf(credentials, context.getDefaultConfiguration());
}
throw new RuntimeException("Unexpected configuration type " + type);
}
@@ -326,7 +324,7 @@ public class ClientServiceHandler implements
ClientService.Iface {
public Map<String,String> getTableConfiguration(TInfo tinfo, TCredentials
credentials,
String tableName) throws TException, ThriftTableOperationException {
TableId tableId = checkTableId(context, tableName, null);
- AccumuloConfiguration config =
context.getServerConfFactory().getTableConfiguration(tableId);
+ AccumuloConfiguration config = context.getTableConfiguration(tableId);
return conf(credentials, config);
}
@@ -392,7 +390,7 @@ public class ClientServiceHandler implements
ClientService.Iface {
try {
shouldMatch = loader.loadClass(interfaceMatch);
- AccumuloConfiguration conf =
context.getServerConfFactory().getTableConfiguration(tableId);
+ AccumuloConfiguration conf = context.getTableConfiguration(tableId);
String context = conf.get(Property.TABLE_CLASSPATH);
@@ -427,8 +425,7 @@ public class ClientServiceHandler implements
ClientService.Iface {
try {
shouldMatch = loader.loadClass(interfaceMatch);
- AccumuloConfiguration conf =
-
context.getServerConfFactory().getNamespaceConfiguration(namespaceId);
+ AccumuloConfiguration conf =
context.getNamespaceConfiguration(namespaceId);
String context = conf.get(Property.TABLE_CLASSPATH);
@@ -489,8 +486,7 @@ public class ClientServiceHandler implements
ClientService.Iface {
throw new ThriftTableOperationException(null, ns, null,
TableOperationExceptionType.NAMESPACE_NOTFOUND, why);
}
- AccumuloConfiguration config =
- context.getServerConfFactory().getNamespaceConfiguration(namespaceId);
+ AccumuloConfiguration config =
context.getNamespaceConfiguration(namespaceId);
return conf(credentials, config);
}
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/conf/ConfigSanityCheck.java
b/server/base/src/main/java/org/apache/accumulo/server/conf/ConfigSanityCheck.java
index ce8c9e2..b31a4c2 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/conf/ConfigSanityCheck.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/conf/ConfigSanityCheck.java
@@ -29,7 +29,7 @@ public class ConfigSanityCheck implements KeywordExecutable {
public static void main(String[] args) {
try (var context = new ServerContext(SiteConfiguration.auto())) {
- context.getServerConfFactory().getSystemConfiguration();
+ context.getConfiguration();
}
}
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
b/server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
index b065c6d..491421c 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
@@ -141,13 +141,6 @@ public class TableConfiguration extends
AccumuloConfiguration {
}
/**
- * returns the actual NamespaceConfiguration that corresponds to the current
parent namespace.
- */
- public NamespaceConfiguration getNamespaceConfiguration() {
- return
context.getServerConfFactory().getNamespaceConfiguration(parent.namespaceId);
- }
-
- /**
* Gets the parent configuration of this configuration.
*
* @return parent configuration
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfiguration.java
b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfiguration.java
index 468391f..b611a6e 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfiguration.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfiguration.java
@@ -46,8 +46,7 @@ public class ZooConfiguration extends AccumuloConfiguration {
private final Map<String,String> fixedProps =
Collections.synchronizedMap(new HashMap<>());
private final String propPathPrefix;
- protected ZooConfiguration(ServerContext context, ZooCache propCache,
- AccumuloConfiguration parent) {
+ public ZooConfiguration(ServerContext context, ZooCache propCache,
AccumuloConfiguration parent) {
this.context = context;
this.propCache = propCache;
this.parent = parent;
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
index 09f7aec..d2d5da3 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
@@ -416,13 +416,12 @@ public class Initialize implements KeywordExecutable {
// If they did not, fall back to the credentials present in
accumulo.properties that the
// servers will use themselves.
try {
- final var siteConf =
context.getServerConfFactory().getSiteConfiguration();
- if (siteConf.getBoolean(Property.INSTANCE_RPC_SASL_ENABLED)) {
+ if (siteConfig.getBoolean(Property.INSTANCE_RPC_SASL_ENABLED)) {
final UserGroupInformation ugi =
UserGroupInformation.getCurrentUser();
// We don't have any valid creds to talk to HDFS
if (!ugi.hasKerberosCredentials()) {
- final String accumuloKeytab =
siteConf.get(Property.GENERAL_KERBEROS_KEYTAB),
- accumuloPrincipal =
siteConf.get(Property.GENERAL_KERBEROS_PRINCIPAL);
+ final String accumuloKeytab =
siteConfig.get(Property.GENERAL_KERBEROS_KEYTAB),
+ accumuloPrincipal =
siteConfig.get(Property.GENERAL_KERBEROS_PRINCIPAL);
// Fail if the site configuration doesn't contain appropriate
credentials to login as
// servers
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancer.java
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancer.java
index 3560a47..abf84f4 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancer.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancer.java
@@ -329,15 +329,13 @@ public class HostRegexTableLoadBalancer extends
TableLoadBalancer {
public void init(ServerContext context) {
super.init(context);
- this.hrtlbConf =
-
context.getServerConfFactory().getSystemConfiguration().newDeriver(HrtlbConf::new);
+ this.hrtlbConf = context.getConfiguration().newDeriver(HrtlbConf::new);
tablesRegExCache =
CacheBuilder.newBuilder().expireAfterAccess(1,
TimeUnit.HOURS).build(new CacheLoader<>() {
@Override
public Deriver<Map<String,String>> load(TableId key) throws
Exception {
- return context.getServerConfFactory().getTableConfiguration(key)
- .newDeriver(conf -> getRegexes(conf));
+ return context.getTableConfiguration(key).newDeriver(conf ->
getRegexes(conf));
}
});
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/RegexGroupBalancer.java
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/RegexGroupBalancer.java
index c427bf0..a6a4e48 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/RegexGroupBalancer.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/RegexGroupBalancer.java
@@ -63,7 +63,7 @@ public class RegexGroupBalancer extends GroupBalancer {
@Override
protected long getWaitTime() {
- Map<String,String> customProps =
context.getServerConfFactory().getTableConfiguration(tableId)
+ Map<String,String> customProps = context.getTableConfiguration(tableId)
.getAllPropertiesWithPrefix(Property.TABLE_ARBITRARY_PROP_PREFIX);
if (customProps.containsKey(WAIT_TIME_PROPERTY)) {
return
ConfigurationTypeHelper.getTimeInMillis(customProps.get(WAIT_TIME_PROPERTY));
@@ -75,7 +75,7 @@ public class RegexGroupBalancer extends GroupBalancer {
@Override
protected Function<KeyExtent,String> getPartitioner() {
- Map<String,String> customProps =
context.getServerConfFactory().getTableConfiguration(tableId)
+ Map<String,String> customProps = context.getTableConfiguration(tableId)
.getAllPropertiesWithPrefix(Property.TABLE_ARBITRARY_PROP_PREFIX);
String regex = customProps.get(REGEX_PROPERTY);
final String defaultGroup = customProps.get(DEFAUT_GROUP_PROPERTY);
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
index 5ecc41d..0872847 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
@@ -48,8 +48,7 @@ public class TableLoadBalancer extends TabletBalancer {
private TabletBalancer constructNewBalancerForTable(String clazzName,
TableId tableId)
throws Exception {
String context = null;
- context =
this.context.getServerConfFactory().getTableConfiguration(tableId)
- .get(Property.TABLE_CLASSPATH);
+ context =
this.context.getTableConfiguration(tableId).get(Property.TABLE_CLASSPATH);
Class<? extends TabletBalancer> clazz;
if (context != null && !context.equals(""))
clazz = AccumuloVFSClassLoader.getContextManager().loadClass(context,
clazzName,
@@ -65,8 +64,7 @@ public class TableLoadBalancer extends TabletBalancer {
if (tableState == null)
return null;
if (tableState.equals(TableState.ONLINE))
- return this.context.getServerConfFactory().getTableConfiguration(table)
- .get(Property.TABLE_LOAD_BALANCER);
+ return
this.context.getTableConfiguration(table).get(Property.TABLE_LOAD_BALANCER);
return null;
}
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/replication/ReplicationUtil.java
b/server/base/src/main/java/org/apache/accumulo/server/replication/ReplicationUtil.java
index e34766f..926d0f9 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/replication/ReplicationUtil.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/replication/ReplicationUtil.java
@@ -124,7 +124,7 @@ public class ReplicationUtil {
continue;
}
- TableConfiguration tableConf =
context.getServerConfFactory().getTableConfiguration(localId);
+ TableConfiguration tableConf = context.getTableConfiguration(localId);
if (tableConf == null) {
log.trace("Could not get configuration for table {} (it no longer
exists)", table);
continue;
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/tabletserver/LargestFirstMemoryManager.java
b/server/base/src/main/java/org/apache/accumulo/server/tabletserver/LargestFirstMemoryManager.java
index dda6d13..dedc4a6 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/tabletserver/LargestFirstMemoryManager.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/tabletserver/LargestFirstMemoryManager.java
@@ -121,13 +121,6 @@ public class LargestFirstMemoryManager implements
MemoryManager {
}
}
- LargestFirstMemoryManager(long maxMemory, int maxConcurrentMincs, int
numWaitingMultiplier) {
- this();
- this.maxMemory = maxMemory;
- this.maxConcurrentMincs = maxConcurrentMincs;
- this.numWaitingMultiplier = numWaitingMultiplier;
- }
-
@Override
public void init(ServerConfiguration conf) {
this.config = conf;
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/util/LoginProperties.java
b/server/base/src/main/java/org/apache/accumulo/server/util/LoginProperties.java
index 47039c8..3b0633d 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/util/LoginProperties.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/util/LoginProperties.java
@@ -46,7 +46,7 @@ public class LoginProperties implements KeywordExecutable {
@Override
public void execute(String[] args) throws Exception {
try (var context = new ServerContext(SiteConfiguration.auto())) {
- AccumuloConfiguration config =
context.getServerConfFactory().getSystemConfiguration();
+ AccumuloConfiguration config = context.getConfiguration();
Authenticator authenticator = AccumuloVFSClassLoader.getClassLoader()
.loadClass(config.get(Property.INSTANCE_SECURITY_AUTHENTICATOR))
.asSubclass(Authenticator.class).getDeclaredConstructor().newInstance();
diff --git
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerReconfigurationTest.java
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerReconfigurationTest.java
index 79fcd52..6ebf71d 100644
---
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerReconfigurationTest.java
+++
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerReconfigurationTest.java
@@ -54,7 +54,13 @@ public class HostRegexTableLoadBalancerReconfigurationTest
replay(context1);
final TestServerConfigurationFactory factory = new
TestServerConfigurationFactory(context1);
ServerContext context2 = createMockContext();
- expect(context2.getServerConfFactory()).andReturn(factory).anyTimes();
+
expect(context2.getConfiguration()).andReturn(factory.getSystemConfiguration()).anyTimes();
+ expect(context2.getTableConfiguration(FOO.getId()))
+ .andReturn(factory.getTableConfiguration(FOO.getId())).anyTimes();
+ expect(context2.getTableConfiguration(BAR.getId()))
+ .andReturn(factory.getTableConfiguration(BAR.getId())).anyTimes();
+ expect(context2.getTableConfiguration(BAZ.getId()))
+ .andReturn(factory.getTableConfiguration(BAZ.getId())).anyTimes();
replay(context2);
init(context2);
Map<KeyExtent,TServerInstance> unassigned = new HashMap<>();
diff --git
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerTest.java
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerTest.java
index 81899b1..c8057f0 100644
---
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerTest.java
+++
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/HostRegexTableLoadBalancerTest.java
@@ -62,7 +62,13 @@ public class HostRegexTableLoadBalancerTest extends
BaseHostRegexTableLoadBalanc
private void initFactory(ServerConfigurationFactory factory) {
ServerContext context = createMockContext();
- expect(context.getServerConfFactory()).andReturn(factory).anyTimes();
+
expect(context.getConfiguration()).andReturn(factory.getSystemConfiguration()).anyTimes();
+ expect(context.getTableConfiguration(FOO.getId()))
+ .andReturn(factory.getTableConfiguration(FOO.getId())).anyTimes();
+ expect(context.getTableConfiguration(BAR.getId()))
+ .andReturn(factory.getTableConfiguration(BAR.getId())).anyTimes();
+ expect(context.getTableConfiguration(BAZ.getId()))
+ .andReturn(factory.getTableConfiguration(BAZ.getId())).anyTimes();
replay(context);
init(context);
}
diff --git
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
index 8e11b33..37e9225 100644
---
a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
+++
b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
@@ -18,6 +18,8 @@
*/
package org.apache.accumulo.server.master.balancer;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
@@ -33,9 +35,7 @@ import java.util.TreeMap;
import java.util.UUID;
import org.apache.accumulo.core.client.admin.TableOperations;
-import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
-import org.apache.accumulo.core.conf.SiteConfiguration;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.dataImpl.KeyExtent;
import org.apache.accumulo.core.master.thrift.TableInfo;
@@ -43,8 +43,6 @@ import
org.apache.accumulo.core.master.thrift.TabletServerStatus;
import org.apache.accumulo.core.tabletserver.thrift.TabletStats;
import org.apache.accumulo.core.util.HostAndPort;
import org.apache.accumulo.server.ServerContext;
-import org.apache.accumulo.server.conf.NamespaceConfiguration;
-import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.accumulo.server.conf.TableConfiguration;
import org.apache.accumulo.server.master.state.TServerInstance;
import org.apache.accumulo.server.master.state.TabletMigration;
@@ -126,49 +124,32 @@ public class TableLoadBalancerTest {
@Override
protected TableOperations getTableOperations() {
- TableOperations tops = EasyMock.createMock(TableOperations.class);
- EasyMock.expect(tops.tableIdMap()).andReturn(TABLE_ID_MAP).anyTimes();
+ TableOperations tops = createMock(TableOperations.class);
+ expect(tops.tableIdMap()).andReturn(TABLE_ID_MAP).anyTimes();
replay(tops);
return tops;
}
}
private ServerContext createMockContext() {
- ServerContext context = EasyMock.createMock(ServerContext.class);
+ ServerContext context = createMock(ServerContext.class);
final String instanceId =
UUID.nameUUIDFromBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9,
0}).toString();
- EasyMock.expect(context.getProperties()).andReturn(new
Properties()).anyTimes();
- EasyMock.expect(context.getInstanceID()).andReturn(instanceId).anyTimes();
-
EasyMock.expect(context.getZooKeepers()).andReturn("10.0.0.1:1234").anyTimes();
-
EasyMock.expect(context.getZooKeepersSessionTimeOut()).andReturn(30_000).anyTimes();
- EasyMock.expect(context.getZooKeeperRoot()).andReturn("/root/").anyTimes();
+ expect(context.getProperties()).andReturn(new Properties()).anyTimes();
+ expect(context.getInstanceID()).andReturn(instanceId).anyTimes();
+ expect(context.getZooKeepers()).andReturn("10.0.0.1:1234").anyTimes();
+ expect(context.getZooKeepersSessionTimeOut()).andReturn(30_000).anyTimes();
+ expect(context.getZooKeeperRoot()).andReturn("/root/").anyTimes();
return context;
}
@Test
public void test() {
final ServerContext context = createMockContext();
- replay(context);
- ServerConfigurationFactory confFactory =
- new ServerConfigurationFactory(context, SiteConfiguration.auto()) {
- @Override
- public TableConfiguration getTableConfiguration(TableId tableId) {
- // create a dummy namespaceConfiguration to satisfy requireNonNull
in TableConfiguration
- // constructor
- NamespaceConfiguration dummyConf = new
NamespaceConfiguration(null, context, null);
- return new TableConfiguration(context, tableId, dummyConf) {
- @Override
- public String get(Property property) {
- // fake the get table configuration so the test doesn't try to
look in zookeeper for
- // per-table classpath stuff
- return DefaultConfiguration.getInstance().get(property);
- }
- };
- }
- };
- final ServerContext context2 = createMockContext();
-
EasyMock.expect(context2.getServerConfFactory()).andReturn(confFactory).anyTimes();
- replay(context2);
+ TableConfiguration conf = createMock(TableConfiguration.class);
+ expect(conf.get(Property.TABLE_CLASSPATH)).andReturn("").anyTimes();
+
expect(context.getTableConfiguration(EasyMock.anyObject())).andReturn(conf).anyTimes();
+ replay(context, conf);
String t1Id = TABLE_ID_MAP.get("t1"), t2Id = TABLE_ID_MAP.get("t2"),
t3Id = TABLE_ID_MAP.get("t3");
@@ -179,13 +160,13 @@ public class TableLoadBalancerTest {
Set<KeyExtent> migrations = Collections.emptySet();
List<TabletMigration> migrationsOut = new ArrayList<>();
TableLoadBalancer tls = new TableLoadBalancer();
- tls.init(context2);
+ tls.init(context);
tls.balance(state, migrations, migrationsOut);
assertEquals(0, migrationsOut.size());
state.put(mkts("10.0.0.2", "0x02030405"), status());
tls = new TableLoadBalancer();
- tls.init(context2);
+ tls.init(context);
tls.balance(state, migrations, migrationsOut);
int count = 0;
Map<TableId,Integer> movedByTable = new HashMap<>();
diff --git a/server/master/src/main/java/org/apache/accumulo/master/Master.java
b/server/master/src/main/java/org/apache/accumulo/master/Master.java
index be683d8..9996d2e 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/Master.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/Master.java
@@ -99,7 +99,6 @@ import org.apache.accumulo.server.AbstractServer;
import org.apache.accumulo.server.HighlyAvailableService;
import org.apache.accumulo.server.ServerContext;
import org.apache.accumulo.server.ServerOpts;
-import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.accumulo.server.fs.VolumeManager;
import org.apache.accumulo.server.log.WalStateManager;
import org.apache.accumulo.server.log.WalStateManager.WalMarkerException;
@@ -275,8 +274,6 @@ public class Master extends AbstractServer
private Future<Void> upgradeMetadataFuture;
- private final ServerConfigurationFactory serverConfig;
-
private MasterClientServiceHandler clientHandler;
private int assignedOrHosted(TableId tableId) {
@@ -374,9 +371,8 @@ public class Master extends AbstractServer
Master(ServerOpts opts, String[] args) throws IOException {
super("master", opts, args);
ServerContext context = super.getContext();
- this.serverConfig = context.getServerConfFactory();
- AccumuloConfiguration aconf = serverConfig.getSystemConfiguration();
+ AccumuloConfiguration aconf = context.getConfiguration();
log.info("Version {}", Constants.VERSION);
log.info("Instance {}", getInstanceID());
@@ -1591,10 +1587,6 @@ public class Master extends AbstractServer
return nextEvent;
}
- public ServerConfigurationFactory getConfigurationFactory() {
- return serverConfig;
- }
-
public VolumeManager getVolumeManager() {
return getContext().getVolumeManager();
}
diff --git
a/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java
b/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java
index 5f29286..6dc3919 100644
---
a/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java
+++
b/server/master/src/main/java/org/apache/accumulo/master/TabletGroupWatcher.java
@@ -211,8 +211,7 @@ abstract class TabletGroupWatcher extends Daemon {
eventListener.waitForEvents(Master.TIME_TO_WAIT_BETWEEN_SCANS);
}
TableId tableId = tls.extent.getTableId();
- TableConfiguration tableConf =
-
this.master.getConfigurationFactory().getTableConfiguration(tableId);
+ TableConfiguration tableConf =
this.master.getContext().getTableConfiguration(tableId);
MergeStats mergeStats = mergeStatsCache.get(tableId);
if (mergeStats == null) {
diff --git
a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
index db57c4e..174852b 100644
---
a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
+++
b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
@@ -115,7 +115,7 @@ public class WorkMaker {
}
// Get the table configuration for the table specified by the status
record
- tableConf =
context.getServerConfFactory().getTableConfiguration(tableId);
+ tableConf = context.getTableConfiguration(tableId);
// getTableConfiguration(String) returns null if the table no longer
exists
if (tableConf == null) {
diff --git
a/server/master/src/main/java/org/apache/accumulo/master/tableOps/tableExport/WriteExportFiles.java
b/server/master/src/main/java/org/apache/accumulo/master/tableOps/tableExport/WriteExportFiles.java
index 0227817..a65c663 100644
---
a/server/master/src/main/java/org/apache/accumulo/master/tableOps/tableExport/WriteExportFiles.java
+++
b/server/master/src/main/java/org/apache/accumulo/master/tableOps/tableExport/WriteExportFiles.java
@@ -262,7 +262,7 @@ class WriteExportFiles extends MasterRepo {
Map<String,String> siteConfig =
context.instanceOperations().getSiteConfiguration();
Map<String,String> systemConfig =
context.instanceOperations().getSystemConfiguration();
- TableConfiguration tableConfig =
context.getServerConfFactory().getTableConfiguration(tableID);
+ TableConfiguration tableConfig = context.getTableConfiguration(tableID);
OutputStreamWriter osw = new OutputStreamWriter(dataOut, UTF_8);
diff --git
a/server/master/src/main/java/org/apache/accumulo/master/upgrade/Upgrader9to10.java
b/server/master/src/main/java/org/apache/accumulo/master/upgrade/Upgrader9to10.java
index 064f63b..f5e7291 100644
---
a/server/master/src/main/java/org/apache/accumulo/master/upgrade/Upgrader9to10.java
+++
b/server/master/src/main/java/org/apache/accumulo/master/upgrade/Upgrader9to10.java
@@ -306,9 +306,8 @@ public class Upgrader9to10 implements Upgrader {
long maxTime = -1;
try (FileSKVIterator reader =
FileOperations.getInstance().newReaderBuilder()
.forFile(path.toString(), ns, ns.getConf(),
context.getCryptoService())
- .withTableConfiguration(
-
context.getServerConfFactory().getTableConfiguration(RootTable.ID))
- .seekToBeginning().build()) {
+
.withTableConfiguration(context.getTableConfiguration(RootTable.ID)).seekToBeginning()
+ .build()) {
while (reader.hasTop()) {
maxTime = Math.max(maxTime, reader.getTopKey().getTimestamp());
reader.next();
diff --git
a/server/tracer/src/main/java/org/apache/accumulo/tracer/TraceServer.java
b/server/tracer/src/main/java/org/apache/accumulo/tracer/TraceServer.java
index 09a5920..14a2575 100644
--- a/server/tracer/src/main/java/org/apache/accumulo/tracer/TraceServer.java
+++ b/server/tracer/src/main/java/org/apache/accumulo/tracer/TraceServer.java
@@ -58,7 +58,6 @@ import
org.apache.accumulo.fate.zookeeper.ZooUtil.NodeExistsPolicy;
import org.apache.accumulo.server.ServerContext;
import org.apache.accumulo.server.ServerOpts;
import org.apache.accumulo.server.ServerUtil;
-import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.accumulo.server.security.SecurityUtil;
import org.apache.accumulo.server.util.time.SimpleTimer;
import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader;
@@ -84,7 +83,6 @@ import org.slf4j.LoggerFactory;
public class TraceServer implements Watcher, AutoCloseable {
private static final Logger log = LoggerFactory.getLogger(TraceServer.class);
- private final ServerConfigurationFactory serverConfiguration;
private final ServerContext context;
private final TServer server;
private final AtomicReference<BatchWriter> writer;
@@ -197,10 +195,9 @@ public class TraceServer implements Watcher, AutoCloseable
{
public TraceServer(ServerContext context, String hostname) throws Exception {
this.context = context;
- this.serverConfiguration = context.getServerConfFactory();
log.info("Version {}", Constants.VERSION);
log.info("Instance {}", context.getInstanceID());
- AccumuloConfiguration conf = serverConfiguration.getSystemConfiguration();
+ AccumuloConfiguration conf = context.getConfiguration();
tableName = conf.get(Property.TRACE_TABLE);
accumuloClient = ensureTraceTableExists(conf);
@@ -306,8 +303,8 @@ public class TraceServer implements Watcher, AutoCloseable {
}
public void run() {
-
SimpleTimer.getInstance(serverConfiguration.getSystemConfiguration()).schedule(()
-> flush(),
- SCHEDULE_DELAY, SCHEDULE_PERIOD);
+ SimpleTimer.getInstance(context.getConfiguration()).schedule(() ->
flush(), SCHEDULE_DELAY,
+ SCHEDULE_PERIOD);
server.serve();
}
diff --git
a/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
b/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
index 36404a6..0a9496d 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
@@ -318,8 +318,7 @@ public class FileManager {
// log.debug("Opening "+file + " path " + path);
FileSKVIterator reader =
FileOperations.getInstance().newReaderBuilder()
.forFile(path.toString(), ns, ns.getConf(),
context.getCryptoService())
- .withTableConfiguration(
-
context.getServerConfFactory().getTableConfiguration(tablet.getTableId()))
+
.withTableConfiguration(context.getTableConfiguration(tablet.getTableId()))
.withCacheProvider(cacheProvider).withFileLenCache(fileLenCache).build();
readersReserved.put(reader, file);
} catch (Exception e) {
@@ -481,7 +480,7 @@ public class FileManager {
this.tablet = tablet;
this.cacheProvider = cacheProvider;
- continueOnFailure =
context.getServerConfFactory().getTableConfiguration(tablet.getTableId())
+ continueOnFailure = context.getTableConfiguration(tablet.getTableId())
.getBoolean(Property.TABLE_FAILURES_IGNORE);
if (tablet.isMeta()) {
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 d1ef5ef..4ba635c 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
@@ -181,7 +181,6 @@ import org.apache.accumulo.server.ServerContext;
import org.apache.accumulo.server.ServerOpts;
import org.apache.accumulo.server.TabletLevel;
import org.apache.accumulo.server.client.ClientServiceHandler;
-import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.accumulo.server.conf.TableConfiguration;
import org.apache.accumulo.server.data.ServerMutation;
import org.apache.accumulo.server.fs.VolumeChooserEnvironment;
@@ -350,7 +349,6 @@ public class TabletServer extends AbstractServer {
public static final AtomicLong seekCount = new AtomicLong(0);
private final AtomicLong totalMinorCompactions = new AtomicLong(0);
- private final ServerConfigurationFactory confFactory;
private final ZooAuthenticationKeyWatcher authKeyWatcher;
private final WalStateManager walMarker;
@@ -367,7 +365,6 @@ public class TabletServer extends AbstractServer {
context.setupCrypto();
this.masterLockCache = new ZooCache(context.getZooReaderWriter(), null);
this.watcher = new TransactionWatcher(context);
- this.confFactory = context.getServerConfFactory();
this.fs = context.getVolumeManager();
final AccumuloConfiguration aconf = getConfiguration();
log.info("Version " + Constants.VERSION);
@@ -603,8 +600,7 @@ public class TabletServer extends AbstractServer {
return null;
}
- return
getContext().getServerConfFactory().getTableConfiguration(extent.getTableId())
- .getScanDispatcher();
+ return
getContext().getTableConfiguration(extent.getTableId()).getScanDispatcher();
}
@Override
@@ -1345,7 +1341,7 @@ public class TabletServer extends AbstractServer {
final CompressedIterators compressedIters = new
CompressedIterators(symbols);
ConditionCheckerContext checkerContext = new
ConditionCheckerContext(getContext(),
- compressedIters, confFactory.getTableConfiguration(cs.tableId));
+ compressedIters, getContext().getTableConfiguration(cs.tableId));
while (iter.hasNext()) {
final Entry<KeyExtent,List<ServerConditionalMutation>> entry =
iter.next();
@@ -2072,10 +2068,9 @@ public class TabletServer extends AbstractServer {
SecurityErrorCode.PERMISSION_DENIED).asThriftException();
}
- ServerConfigurationFactory factory = getContext().getServerConfFactory();
ExecutorService es = resourceManager.getSummaryPartitionExecutor();
Future<SummaryCollection> future = new Gatherer(getContext(), request,
- factory.getTableConfiguration(tableId),
getContext().getCryptoService()).gather(es);
+ getContext().getTableConfiguration(tableId),
getContext().getCryptoService()).gather(es);
return startSummaryOperation(credentials, future);
}
@@ -2090,11 +2085,12 @@ public class TabletServer extends AbstractServer {
SecurityErrorCode.PERMISSION_DENIED).asThriftException();
}
- ServerConfigurationFactory factory = getContext().getServerConfFactory();
ExecutorService spe = resourceManager.getSummaryRemoteExecutor();
- Future<SummaryCollection> future = new Gatherer(getContext(), request,
- factory.getTableConfiguration(TableId.of(request.getTableId())),
- getContext().getCryptoService()).processPartition(spe, modulus,
remainder);
+ TableConfiguration tableConfig =
+ getContext().getTableConfiguration(TableId.of(request.getTableId()));
+ Future<SummaryCollection> future =
+ new Gatherer(getContext(), request, tableConfig,
getContext().getCryptoService())
+ .processPartition(spe, modulus, remainder);
return startSummaryOperation(credentials, future);
}
@@ -2111,7 +2107,7 @@ public class TabletServer extends AbstractServer {
ExecutorService srp = resourceManager.getSummaryRetrievalExecutor();
TableConfiguration tableCfg =
- confFactory.getTableConfiguration(TableId.of(request.getTableId()));
+ getContext().getTableConfiguration(TableId.of(request.getTableId()));
BlockCache summaryCache = resourceManager.getSummaryCache();
BlockCache indexCache = resourceManager.getIndexCache();
Cache<String,Long> fileLenCache = resourceManager.getFileLenCache();
@@ -3177,9 +3173,9 @@ public class TabletServer extends AbstractServer {
private Durability getMincEventDurability(KeyExtent extent) {
TableConfiguration conf;
if (extent.isMeta()) {
- conf = confFactory.getTableConfiguration(RootTable.ID);
+ conf = getContext().getTableConfiguration(RootTable.ID);
} else {
- conf = confFactory.getTableConfiguration(MetadataTable.ID);
+ conf = getContext().getTableConfiguration(MetadataTable.ID);
}
return DurabilityImpl.fromString(conf.get(Property.TABLE_DURABILITY));
}
@@ -3228,7 +3224,7 @@ public class TabletServer extends AbstractServer {
}
public TableConfiguration getTableConfiguration(KeyExtent extent) {
- return confFactory.getTableConfiguration(extent.getTableId());
+ return getContext().getTableConfiguration(extent.getTableId());
}
public DfsLogger.ServerResources getServerConfig() {