IMPALA-2567) requires resolved IP addresses. Since RPCs happen frequently, and IP resolution can be expensive, it makes sense to retain resolved addresses where possible.
The scheduler already knows the resolved address for every backend. However, the logic is very complex, and there's not really a good way to know at compile time whether or not we're using a resolved address or not.
We can address this by adding a new type - perhaps ResolvedAddress : public TNetworkAddress, and requiring that RpcMgr::GetProxy() etc take a ResolvedAddress. That way the compiler will complain if we don't prove to it that the address is resolved. We can make it hard to construct a ResolvedAddress without actually resolving some string into an IPV4 address.