You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by bi...@apache.org on 2015/06/11 03:10:06 UTC
[1/2] accumulo git commit: ACCUMULO-3890 cache CredentialProvider
objects to prevent unneeded NN ops
Repository: accumulo
Updated Branches:
refs/heads/1.7 24813234f -> 724bfb312
ACCUMULO-3890 cache CredentialProvider objects to prevent unneeded NN ops
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/a2e131bd
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/a2e131bd
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/a2e131bd
Branch: refs/heads/1.7
Commit: a2e131bda969061b93e8639e11c3445d450e5bc3
Parents: c6d1ce5
Author: Billie Rinaldi <bi...@apache.org>
Authored: Wed Jun 10 14:25:13 2015 -0700
Committer: Billie Rinaldi <bi...@apache.org>
Committed: Wed Jun 10 18:04:44 2015 -0700
----------------------------------------------------------------------
.../conf/CredentialProviderFactoryShim.java | 24 +++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/a2e131bd/core/src/main/java/org/apache/accumulo/core/conf/CredentialProviderFactoryShim.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/conf/CredentialProviderFactoryShim.java b/core/src/main/java/org/apache/accumulo/core/conf/CredentialProviderFactoryShim.java
index 3c3c051..9af3e00 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/CredentialProviderFactoryShim.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/CredentialProviderFactoryShim.java
@@ -21,7 +21,9 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.accumulo.core.util.CachedConfiguration;
import org.apache.hadoop.conf.Configuration;
@@ -62,6 +64,9 @@ public class CredentialProviderFactoryShim {
private static Method flushMethod = null;
private static Boolean hadoopClassesAvailable = null;
+ // access to cachedProviders should be synchronized when necessary (for example see getCredentialProviders)
+ private static final Map<String,List<Object>> cachedProviders = new HashMap<String,List<Object>>();
+
/**
* Determine if we can load the necessary CredentialProvider classes. Only loaded the first time, so subsequent invocations of this method should return fast.
*
@@ -200,6 +205,15 @@ public class CredentialProviderFactoryShim {
*/
@SuppressWarnings("unchecked")
protected static List<Object> getCredentialProviders(Configuration conf) {
+ String path = conf.get(CREDENTIAL_PROVIDER_PATH);
+ if (path == null || path.isEmpty()) {
+ return null;
+ }
+
+ if (cachedProviders.containsKey(path)) {
+ return cachedProviders.get(path);
+ }
+
// Call CredentialProviderFactory.getProviders(Configuration)
Object providersObj = null;
try {
@@ -217,7 +231,15 @@ public class CredentialProviderFactoryShim {
// Cast the Object to List<Object> (actually List<CredentialProvider>)
try {
- return (List<Object>) providersObj;
+ List<Object> providersList = (List<Object>) providersObj;
+ synchronized (cachedProviders) {
+ if (cachedProviders.containsKey(path)) {
+ return cachedProviders.get(path);
+ } else {
+ cachedProviders.put(path, providersList);
+ }
+ }
+ return providersList;
} catch (ClassCastException e) {
log.error("Expected a List from {} method", HADOOP_CRED_PROVIDER_FACTORY_GET_PROVIDERS_METHOD_NAME, e);
return null;
[2/2] accumulo git commit: Merge branch '1.6' into 1.7
Posted by bi...@apache.org.
Merge branch '1.6' into 1.7
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/724bfb31
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/724bfb31
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/724bfb31
Branch: refs/heads/1.7
Commit: 724bfb3128cc87f5259d43bf41e7559c8ad82619
Parents: 2481323 a2e131b
Author: Billie Rinaldi <bi...@apache.org>
Authored: Wed Jun 10 18:07:04 2015 -0700
Committer: Billie Rinaldi <bi...@apache.org>
Committed: Wed Jun 10 18:07:04 2015 -0700
----------------------------------------------------------------------
.../conf/CredentialProviderFactoryShim.java | 24 +++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------