-
Notifications
You must be signed in to change notification settings - Fork 871
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
Locking on orientdb #9575
Comments
Could you please send the entire stack trace of all the threads? |
I don't have the entire stack trace anymore, but I have managed to avoid the lock and improve the performance by moving a lot of the databases outside the default storage, to some custom storage. I discovered that listDatabases and scanDatabaseDirectory was called on every command executed remotely, and when you have a lot of folders in the directory, somehow when multiple execute threads were called, they locks up each other. If I move most of the databases into the custom storage like this by changing the server config xml, then because scanDatabaseDirectory doesn't scan custom storages, it speeds things up. This is only a workaround, but it clearly shows where the issue is. . . . . |
Hi, Fixes for this case have been done and released, closing this, please re-open if you still experience problems. Regards |
OrientDB Version: <3.1.7>
Java Version: <openjdk 13.0.2 2020-01-14>
OS: <Linux api-content-7c984f76ff-jrwnn 4.15.0-1102-azure #113~16.04.1-Ubuntu SMP Wed Dec 9 20:42:32 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux>
Expected behavior
Actual behavior
<Orientdb is not responsive, cannot login or list any databases from the studio start page.>
Steps to reproduce
This happens after a lot of parallel read/write the multiple databases. So I don't have the steps to reproduce it. However I have the full thread dump and logs output from orient, if required I will email it separately.
There were 60+ threads BLOCKED in the thread dump, all waiting to acquire [0x00000003c00353a8] or [0x00000003c00e88c0].
As you can see the thread listing databases already hold [0x00000003c00e88c0], but it never returns. The server has been like that for at least an hour and eventually we have to shutdown all databases and restart orient.
Do you know what is com.orientechnologies.orient.server.OServer.listDatabases doing? We do have a lot of databases (1068, and each with a lot of files. around 2000 per each database)
Thanks,
Kathy
The text was updated successfully, but these errors were encountered: