FLAC: A Robust Failure-Aware Atomic Commit Protocol for Distributed Transactions