This is an automated email from the ASF dual-hosted git repository. sarath pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/master by this push: new 8dc4041 ATLAS-3104: Fix stale transaction alerts in atlas logs 8dc4041 is described below commit 8dc4041c69083292d7d5f9996b10f42e33874077 Author: Sarath Subramanian <ssubraman...@hortonworks.com> AuthorDate: Thu Mar 28 14:00:12 2019 -0700 ATLAS-3104: Fix stale transaction alerts in atlas logs --- .../java/org/apache/atlas/repository/graphdb/AtlasGraph.java | 5 +++++ .../apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java | 9 +++++++++ .../apache/atlas/repository/patches/AtlasJavaPatchHandler.java | 8 ++++---- .../atlas/repository/patches/UniqueAttributePatchHandler.java | 8 ++------ .../atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java | 8 ++++++++ 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java b/graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java index 09eab28..d282c99 100644 --- a/graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java +++ b/graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java @@ -208,6 +208,11 @@ public interface AtlasGraph<V, E> { void clear(); /** + * Gets all open transactions. + */ + Set getOpenTransactions(); + + /** * Converts the graph to gson and writes it to the specified stream. * * @param os 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 9328414..8eea96b 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 @@ -60,6 +60,7 @@ import org.janusgraph.core.SchemaViolationException; import org.janusgraph.core.schema.JanusGraphIndex; import org.janusgraph.core.schema.JanusGraphManagement; import org.janusgraph.diskstorage.BackendException; +import org.janusgraph.graphdb.database.StandardJanusGraph; import javax.script.Bindings; import javax.script.ScriptEngine; @@ -87,6 +88,7 @@ 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; public AtlasJanusGraph() { //determine multi-properties once at startup @@ -107,6 +109,8 @@ public class AtlasJanusGraph implements AtlasGraph<AtlasJanusVertex, AtlasJanusE mgmt.rollback(); } } + + janusGraph = (StandardJanusGraph) AtlasJanusGraphDatabase.getGraphInstance(); } @Override @@ -217,6 +221,11 @@ public class AtlasJanusGraph implements AtlasGraph<AtlasJanusVertex, AtlasJanusE } @Override + public Set getOpenTransactions() { + return janusGraph.getOpenTransactions(); + } + + @Override public void shutdown() { getGraph().close(); } diff --git a/repository/src/main/java/org/apache/atlas/repository/patches/AtlasJavaPatchHandler.java b/repository/src/main/java/org/apache/atlas/repository/patches/AtlasJavaPatchHandler.java index 470ff10..9153d49 100644 --- a/repository/src/main/java/org/apache/atlas/repository/patches/AtlasJavaPatchHandler.java +++ b/repository/src/main/java/org/apache/atlas/repository/patches/AtlasJavaPatchHandler.java @@ -84,10 +84,10 @@ public abstract class AtlasJavaPatchHandler { setEncodedProperty(patchVertex, CREATED_BY_KEY, getCurrentUser()); setEncodedProperty(patchVertex, MODIFIED_BY_KEY, getCurrentUser()); - graph.commit(); - addToPatchesRegistry(patchId, getPatchStatus()); } + + graph.commit(); } private PatchStatus getPatchStatus(Map<String, PatchStatus> patchesRegistry) { @@ -108,10 +108,10 @@ public abstract class AtlasJavaPatchHandler { setEncodedProperty(patchVertex, MODIFICATION_TIMESTAMP_PROPERTY_KEY, RequestContext.get().getRequestTime()); setEncodedProperty(patchVertex, MODIFIED_BY_KEY, getCurrentUser()); - graph.commit(); - addToPatchesRegistry(getPatchId(), getPatchStatus()); } + + graph.commit(); } public PatchStatus getPatchStatus() { diff --git a/repository/src/main/java/org/apache/atlas/repository/patches/UniqueAttributePatchHandler.java b/repository/src/main/java/org/apache/atlas/repository/patches/UniqueAttributePatchHandler.java index 0c65ef1..0e707a5 100644 --- a/repository/src/main/java/org/apache/atlas/repository/patches/UniqueAttributePatchHandler.java +++ b/repository/src/main/java/org/apache/atlas/repository/patches/UniqueAttributePatchHandler.java @@ -136,7 +136,6 @@ public class UniqueAttributePatchHandler extends AtlasJavaPatchHandler { private void registerUniqueAttrPropertyKeys(Collection<AtlasAttribute> attributes) throws IndexException { AtlasGraphManagement management = graph.getManagementSystem(); - boolean idxCreated = false; for (AtlasAttribute attribute : attributes) { String uniquePropertyName = attribute.getVertexUniquePropertyName(); @@ -150,14 +149,11 @@ public class UniqueAttributePatchHandler extends AtlasJavaPatchHandler { AtlasCardinality cardinality = indexer.toAtlasCardinality(attributeDef.getCardinality()); indexer.createVertexIndex(management, uniquePropertyName, UniqueKind.NONE, propertyClass, cardinality, isIndexable, true); - - idxCreated = true; } } //Commit indexes - if (idxCreated) { - indexer.commit(management); - } + indexer.commit(management); + graph.commit(); } } \ No newline at end of file diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java index eac2a03..e8d61d1 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasGraphUtilsV2.java @@ -512,9 +512,17 @@ public class AtlasGraphUtilsV2 { LOG.warn("getPatches() returned empty result!"); } + getGraphInstance().commit(); + return new AtlasPatches(ret); } + public int getOpenTransactions() { + Set openTransactions = getGraphInstance().getOpenTransactions(); + + return (openTransactions != null) ? openTransactions.size() : 0; + } + private static AtlasPatch toAtlasPatch(AtlasVertex vertex) { AtlasPatch ret = new AtlasPatch();