CRUSH Controlled, Scalable, Decentralized Placement of Replicated Data Formal Requirements for Virtualizable Third Generation Architectures In Search of Understandable Consensus Algorithm