You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by al...@apache.org on 2016/03/03 01:06:49 UTC
[25/50] [abbrv] incubator-ranger git commit: RANGER-618 : KMS gets
slower in key creation once Database grows
RANGER-618 : KMS gets slower in key creation once Database grows
Signed-off-by: Velmurugan Periasamy <ve...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/e4f7fa92
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/e4f7fa92
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/e4f7fa92
Branch: refs/heads/HDP-2.3.2-groupid
Commit: e4f7fa9254ed75798717caecc3ff49faab948148
Parents: cabac2c
Author: Gautam Borad <gb...@gmail.com>
Authored: Tue Aug 18 16:27:14 2015 +0530
Committer: Velmurugan Periasamy <ve...@apache.org>
Committed: Sun Sep 6 10:17:58 2015 -0400
----------------------------------------------------------------------
.../hadoop/crypto/key/RangerKeyStore.java | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e4f7fa92/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStore.java
----------------------------------------------------------------------
diff --git a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStore.java b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStore.java
index dc8efde..ff82f53 100644
--- a/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStore.java
+++ b/kms/src/main/java/org/apache/hadoop/crypto/key/RangerKeyStore.java
@@ -83,6 +83,7 @@ public class RangerKeyStore extends KeyStoreSpi {
}
private Hashtable<String, Object> keyEntries = new Hashtable<String, Object>();
+ private Hashtable<String, Object> deltaEntries = new Hashtable<String, Object>();
RangerKeyStore() {
}
@@ -136,7 +137,7 @@ public class RangerKeyStore extends KeyStoreSpi {
public void addKeyEntry(String alias, Key key, char[] password, String cipher, int bitLength, String description, int version, String attributes)
throws KeyStoreException
{
- synchronized(keyEntries) {
+ synchronized(deltaEntries) {
try {
Class<?> c = null;
@@ -163,7 +164,8 @@ public class RangerKeyStore extends KeyStoreSpi {
entry.description = description;
entry.version = version;
entry.attributes = attributes;
- keyEntries.put(alias.toLowerCase(), entry);
+ deltaEntries.put(alias.toLowerCase(), entry);
+ keyEntries.put(alias.toLowerCase(), entry);
} catch (Exception e) {
logger.error(e.getMessage());
throw new KeyStoreException(e.getMessage());
@@ -177,7 +179,8 @@ public class RangerKeyStore extends KeyStoreSpi {
{
synchronized(keyEntries) {
dbOperationDelete(convertAlias(alias));
- keyEntries.remove(convertAlias(alias));
+ keyEntries.remove(convertAlias(alias));
+ deltaEntries.remove(convertAlias(alias));
}
}
@@ -214,7 +217,7 @@ public class RangerKeyStore extends KeyStoreSpi {
public void engineStore(OutputStream stream, char[] password)
throws IOException, NoSuchAlgorithmException, CertificateException
{
- synchronized(keyEntries) {
+ synchronized(deltaEntries) {
// password is mandatory when storing
if (password == null) {
throw new IllegalArgumentException("Ranger Master Key can't be null");
@@ -223,7 +226,7 @@ public class RangerKeyStore extends KeyStoreSpi {
MessageDigest md = getKeyedMessageDigest(password);
byte digest[] = md.digest();
- for (Enumeration<String> e = keyEntries.keys(); e.hasMoreElements();) {
+ for (Enumeration<String> e = deltaEntries.keys(); e.hasMoreElements();) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(new DigestOutputStream(baos, md));
@@ -231,7 +234,7 @@ public class RangerKeyStore extends KeyStoreSpi {
try{
String alias = e.nextElement();
- Object entry = keyEntries.get(alias);
+ Object entry = deltaEntries.get(alias);
oos = new ObjectOutputStream(dos);
oos.writeObject(((SecretKeyEntry)entry).sealedKey);
@@ -250,6 +253,7 @@ public class RangerKeyStore extends KeyStoreSpi {
}
}
}
+ clearDeltaEntires();
}
}
@@ -537,4 +541,8 @@ public class RangerKeyStore extends KeyStoreSpi {
}
}
+ public void clearDeltaEntires(){
+ deltaEntries.clear();
+ }
+
}
\ No newline at end of file