Stop MAC servers in parallel - #6575
DomGarguilo wants to merge 1 commit into
Conversation
|
It looks like we are waiting up to 30 seconds per server even with your change. I wonder if instead we change the signature of Thoughts? |
|
Yea I think there are some options here. The changes here keep the same order in which servers are shut down. We could try shutting all processes down at once but that would obviously not guarantee shutdown order which might be needed for some reason in certain tests. Its worth mentioning that the 30s wait is just a worst case scenario but it is per process so if all processes fail to stop properly we would be waiting 30s for each. |
I'm not sure I'm following w/r/t the order. The changes are in a switch statement based on the server method parameter. So, in this method, we are only shutting down one type of server. I'm just suggesting that instead of this method calling |
Yea you're right. I was conflating this with stopping all server types at once. Within a single |
Looking through code paths that could help speed up the ITs and found this one.
In the old code,
MiniAccumuloClusterControl.stop()stops tservers, sservers and compactors one at a time and waits after stopping each. The new code now sends the SIGTERM to all processes of that server type first, then waits on each. This allows them all to start shutting down in parallel before the wait step.I did some rough testing by timing
stop()and found that this speeds things up by ~350ms per server which is negligible on a single run but the time savings multiply.