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:23:00 UTC
[jira] [Commented] (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:comment-tabpanel&focusedCommentId=17683441#comment-17683441 ]
Gleb Sinyavskiy commented on TINKERPOP-2855:
--------------------------------------------
I've just tested 3.5.5 and it's also affected
> 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)