Weighted Raft and its Application to Geographically Distributed Servers