Both Uber and Didi shared that access time has to be switched off to avoid spiky NameNode RPC process time. If access time is not off entirely, getBlockLocations RPCs have to update access time and must access the active NameNode. (that's my understanding. haven't checked the code)
We should record this as a best practice in our doc.
(If you are on the ASF slack, check out this thread