void mergeFrom(Snapshot source) {
        // Merge the deltas from the source snapshot into this snapshot.
        for (Map.Entry<Revertable, Delta> entry : source.map.entrySet()) {
            // We first try to just copy over the object reference.  That will work if
            //we have no entry at all for the given Revertable.
            Delta destinationDelta = map.putIfAbsent(entry.getKey(), entry.getValue());
            if (destinationDelta != null) {
                // If we already have an entry for the Revertable, we need to merge the
                // source delta into our delta.
                destinationDelta.mergeFrom(epoch, entry.getValue());
            }
        }
        // Delete the source snapshot to make sure nobody tries to reuse it.  We might now
        // share some delta entries with it.
        source.erase();
    }
A snapshot of some timeline data structures.
<br>
The snapshot contains historical data for several timeline data structures.
We use an IdentityHashMap to store this data.  This way, we can easily drop all of
the snapshot data.
server-common/src/main/java/org/apache/kafka/timeline/Snapshot.java