Resilient Distributed Datasets - A Fault-Tolerant Abstraction for In-Memory Cluster Computing