Durability and crash recovery in distributed in-memory storage systems