This is an automated email from the ASF dual-hosted git repository.
sarath pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new ce6ca7d ATLAS-3519: reuse script engine to improve lineage query
performance
ce6ca7d is described below
commit ce6ca7dc4da8f006fe94556fbe6dafe1e2e820a9
Author: leslizhang <[email protected]>
AuthorDate: Fri Nov 8 19:16:13 2019 +0800
ATLAS-3519: reuse script engine to improve lineage query performance
Signed-off-by: Madhan Neethiraj <[email protected]>
Signed-off-by: Sarath Subramanian <[email protected]>
(cherry picked from commit bdd110dfe7481815d3a19ebc6acb4fdefacc93ed)
---
.../atlas/repository/graphdb/janus/AtlasJanusGraph.java | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git
a/graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java
b/graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java
index bbc7630..4acb371 100644
---
a/graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java
+++
b/graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java
@@ -51,7 +51,6 @@ import org.janusgraph.core.PropertyKey;
import org.janusgraph.core.SchemaViolationException;
import org.janusgraph.core.schema.JanusGraphIndex;
import org.janusgraph.core.schema.JanusGraphManagement;
-import org.janusgraph.core.schema.Mapping;
import org.janusgraph.core.schema.Parameter;
import org.janusgraph.diskstorage.BackendException;
import org.janusgraph.graphdb.database.StandardJanusGraph;
@@ -84,6 +83,14 @@ public class AtlasJanusGraph implements
AtlasGraph<AtlasJanusVertex, AtlasJanusE
private final ConvertGremlinValueFunction
GREMLIN_VALUE_CONVERSION_FUNCTION = new ConvertGremlinValueFunction();
private final Set<String> multiProperties
= new HashSet<>();
private final StandardJanusGraph janusGraph;
+ private final ThreadLocal<GremlinGroovyScriptEngine> scriptEngine =
ThreadLocal.withInitial(() -> {
+ DefaultImportCustomizer.Builder builder =
DefaultImportCustomizer.build()
+
.addClassImports(java.util.function.Function.class)
+
.addMethodImports(__.class.getMethods())
+
.addMethodImports(P.class.getMethods());
+ return new GremlinGroovyScriptEngine(builder.create());
+ });
+
public AtlasJanusGraph() {
this(getGraphInstance());
@@ -330,13 +337,7 @@ public class AtlasJanusGraph implements
AtlasGraph<AtlasJanusVertex, AtlasJanusE
@Override
public GremlinGroovyScriptEngine getGremlinScriptEngine() {
- DefaultImportCustomizer.Builder importBuilder =
DefaultImportCustomizer.build()
-
.addClassImports(java.util.function.Function.class)
-
.addMethodImports(__.class.getMethods())
-
.addMethodImports(P.class.getMethods());
- GremlinGroovyScriptEngine scriptEngine = new
GremlinGroovyScriptEngine(importBuilder.create());
-
- return scriptEngine;
+ return scriptEngine.get();
}
@Override