A concurrent hierarchical approach to global snapshots