An Efficient Centralized Algorithm Ensuring Consistent Recovery in Causal Message Logging with Independent Checkpointing