-
Notifications
You must be signed in to change notification settings - Fork 872
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow down significantly when changing the limit return records from 1000 to 2000 #8703
Comments
Hi @ASXHOLE Any chance to have a dataset to reproduce the problem? Thanks Luigi |
Hi, @luigidellaquila My dataset is so large that i split it into a 10MB zip file(You need to remove the ".zip" suffix before unzip the files,like "OrientDB_data.zip.001") OrientDB_data.zip.001.zip |
I want to know if any progress with this? I have the same problem... |
I checked your DB and I came to the conclusion that the main problem here is that the MATCH executor does some early loading of the connected patterns and in your specific case you have this situation:
All this deserves some optimization, we can easily do some lazy loading and save a lot of resources (both in terms of execution time and memory consumption), I added it to my TODO list and hopefully I'll manage to do it soon. In general, please also consider having many supernodes (ie. vertices with millions of connected edges) in a graph is not considered a very good practice Thanks Luigi |
I just pushed a fix to 3.0.x branch, now the query takes around ten seconds also with LIMIT 2000 The fix will be released with v 3.0.13 Thanks Luigi |
OrientDB Version: 3.10
Java Version: JDK1.8.0_111
OS: CentOs 7
Expected behavior
Actual behavior
Why is the query very slow (more than 33 seconds) when limiting the return result within 2000 records, while very quick (winthin 1 second) when limiting the return result within 1000 records)?
Steps to reproduce
match
{Class:Con,as: Con1,where:(CON_NO='3620067544')}
.out('hasTag')
.in('hasTag')
{as:Con2 ,where:(CON_NO !='3620067544')}
return Con1.CON_NO,Con2.CON_NO
limit 5000
The text was updated successfully, but these errors were encountered: