You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Removing non lightweight edges is not slower than in OrientDB 2.x
Actual behavior
Hi!
We are updating OrientDB from version 2.2.37 to 3.2.6 and detected some performance issues with removing edges.
We have some not lightweighted edges which should be removed. This takes now 40% more time than before.
With some research and debugging we found out, that the reason for that is this code change that was made for OrientDB 3.0.0. Unfortunately, we cannot see why this change was made (no issue linked).
In this commit, outcoming and incoming vertices were detached when removing an edge, which at first sounds correct.
We made a profiling where you can see that the OEdgeDelegate.deleteLinks method takes over 60% of the time, see
While debugging we saw, that this method is called twice for each edge:
com.tinkerpop.blueprints.impls.orient.OrientGraph.removeEdgeInternal(OrientEdge) --> line 438 calls edge.removeRecord()
this calls com.orientechnologies.orient.core.record.impl.OEdgeDocument.delete()
This deletes the links first (no 1) and delegates to the super.delete() (no 2) which finally leads to com.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.delete(ORecord) which also deletes the links in line 1030 if the document is an edge
Is this expected?
Steps to reproduce
remove a non-lightweight edge
The text was updated successfully, but these errors were encountered:
OrientDB Version: 3.2.6
Java Version: 1.8.0_322-b06 Temurin
OS: Windows 10 Enterprise
Expected behavior
Removing non lightweight edges is not slower than in OrientDB 2.x
Actual behavior
Hi!
We are updating OrientDB from version 2.2.37 to 3.2.6 and detected some performance issues with removing edges.
We have some not lightweighted edges which should be removed. This takes now 40% more time than before.
With some research and debugging we found out, that the reason for that is this code change that was made for OrientDB 3.0.0. Unfortunately, we cannot see why this change was made (no issue linked).
In this commit, outcoming and incoming vertices were detached when removing an edge, which at first sounds correct.
We made a profiling where you can see that the
OEdgeDelegate.deleteLinks
method takes over 60% of the time, seeWhile debugging we saw, that this method is called twice for each edge:
com.tinkerpop.blueprints.impls.orient.OrientGraph.removeEdgeInternal(OrientEdge)
--> line 438 callsedge.removeRecord()
com.orientechnologies.orient.core.record.impl.OEdgeDocument.delete()
This deletes the links first (no 1) and delegates to the
super.delete()
(no 2) which finally leads tocom.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.delete(ORecord)
which also deletes the links in line 1030 if the document is an edgeIs this expected?
Steps to reproduce
remove a non-lightweight edge
The text was updated successfully, but these errors were encountered: