Implementing Distributed Single Address Space in the Presence of Failures