You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Gleb Sinyavskiy (Jira)" <ji...@apache.org> on 2023/02/02 14:22:00 UTC

[jira] [Updated] (TINKERPOP-2855) Performance degradation in TinkerGraph 3.5.4 and 3.5.5

     [ https://issues.apache.org/jira/browse/TINKERPOP-2855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gleb Sinyavskiy updated TINKERPOP-2855:
---------------------------------------
    Summary: Performance degradation in TinkerGraph 3.5.4 and 3.5.5  (was: Performance degradation in TinkerGraph 3.5.4)

> Performance degradation in TinkerGraph 3.5.4 and 3.5.5
> ------------------------------------------------------
>
>                 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
>            Priority: Major
>              Labels: bug, performance
>
> 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 of 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 a 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 when executed against 3.5.3 or 3.6.0
> *Observed result:*
> The script is 5-7 times slower.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)