[SERVER-16146] dropDatabase is slow and returns success immediately though it then blocks progress while running Created: 14/Nov/14 Updated: 11/Jul/16 Resolved: 22/Nov/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 2.8.0-rc1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Asya Kamsky | Assignee: | Asya Kamsky |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Operating System: | ALL | ||||||||
| Participants: | |||||||||
| Description |
|
I dropped DB and created LSM collection like this:
It took over 400 seconds and it was blocking everything, including serverStatus.
The logs seem to indicate gap between the calls, but the files in DB directory show otherwise:
|
| Comments |
| Comment by Asya Kamsky [ 22/Nov/14 ] |
|
Retested with master - the dropDatabase is now synchronous and takes much less time than before. |
| Comment by Eliot Horowitz (Inactive) [ 20/Nov/14 ] |
|
Can you retest with HEAD |
| Comment by Eliot Horowitz (Inactive) [ 17/Nov/14 ] |
|
Added |
| Comment by Eliot Horowitz (Inactive) [ 17/Nov/14 ] |
|
This is likely the same issue as the checkpoint issue. What version were you using on this? |
| Comment by Asya Kamsky [ 15/Nov/14 ] |
|
I think I figured out what's going on. Between dropDatabase which is, in fact, large and create collection is when the long pause is. dropDatabase returns immediately but the files in the data directory are still there, in fact they are there for a long time. Watching the process and directory after ok is returned for dropDatabase, it's clear that this is when it's cleaning things up... I think a way to reproduce would be to run the same workload/test on dbpath without deleting the files but instead keeping the directory and just dropping the one database you're testing on. I'm watching files being deleted from it at a rate of about a few every minute - either it's going to take even longer than before (because I keep running on the same dbpath) or it speeds up towards the end, since it's been running for 15 minutes already. |
| Comment by Eliot Horowitz (Inactive) [ 14/Nov/14 ] |
|
This is probably the same as the checkpoint issue. |