Gleb Sinyavskiy created TINKERPOP-2855: ------------------------------------------
Summary: Performance degradation in TinkerGraph 3.5.4 Key: TINKERPOP-2855 URL: https://issues.apache.org/jira/browse/TINKERPOP-2855 Project: TinkerPop Issue Type: Bug Components: tinkergraph Affects Versions: 3.5.4 Environment: Ubuntu 22.04.1, docker Reporter: Gleb Sinyavskiy Hello, I few days ago I tried to update gremlin-server in our project from 3.5.3 to 3.5.4 and found out that it's test suite got 5 times slower. We use the official docker image(tinkerpop/gremlin-server) with some configuration changes: {code:java} gremlin.tinkergraph.vertexIdManager=ANY gremlin.tinkergraph.edgeIdManager=ANY {code} The app uses user-generated string ids and heavily relies on the upsert pattern from the [recipes|https://tinkerpop.apache.org/docs/3.5.4/recipes/]. Yesterday I made an investigation and narrowed it down to the performance on the upsert pattern. I also discovered that the issue is not related to our configuration changes and can be reproduced with vanilla image and LONG ids. I prepared a [simple script that reproduces the issue|https://github.com/zhulik/gremlin-server-performance-issue/] and contacted Stephen Mallette on discord. They confirmed the issue exists, but only in 3.5.4, 3.6.0 performs as expected. They also wrote a groovy script that reproduces the problem: {code:groovy} g = TinkerGraph.open().traversal() batches = (0..<100).collect{ (0..<100) } start = System.currentTimeMillis() for (batch in batches) { b = g for (id in batch) { b = b.V(id).fold().coalesce(__.unfold(), __.addV("test").property(T.id, id)) } b.iterate() } System.currentTimeMillis() - start {code} [discord message|https://discord.com/channels/838910279550238720/838910279550238723/1064964247823593502] Both my and Stephen's scripts perform few times slower when executed against 3.5.4 in compare to 3.5.3 or 3.6.0. *Steps to reproduce:* Run my or Stephen's script against vanilla tinkerpop/gremlin-server:3.5.4 docker image *Expected result:* Script's execution time matches it's time executed against 3.5.3 or 3.6.0 *Observed result:* Script is 5-7 times slower. -- This message was sent by Atlassian Jira (v8.20.10#820010)