What is the reason behind the 20 seconds delay?
There is a time gap between RS's startup report to HMaster and it's starting of service threads. And we found some exceptions in moving regions for RS have not finished to start it's service threads. So we add 20 seconds delay to make sure the RS have enough time to finish initialization.
But the 20 may be not reasonable, especially for large clusters.
Ps: For large clusters, we plan to dev a region_mover which can unload/load multi regionservers at the same time
Adding a log in the move method make the application VERY verbose, doubling the output. Is that really useful?
Yes. I think it's very useful to measure the maximum unavailable time for each region using region_mover.rb.
And many other factors and configs will affect this time, eg: hbase.hstore.open.and.close.threads.max.
According to this time. we can do more optimizations to reduce the unavailable time in gracefull upgrade.
I don't know if the explanation is clear. More discussions are welcomed. Thanks.