Efficient and Scalable Checkpointing and Recovery Algorithm for Distributed Systems --