code: public void merge(VectorClock other) {
          for (Entry<String, Long> entry : other.replicaTimestamps.entrySet()) {
              final String replicaId = entry.getKey();
              final long mergingTimestamp = entry.getValue();
              final long localTimestamp = replicaTimestamps.containsKey(replicaId)
                      ? replicaTimestamps.get(replicaId)
                      : Long.MIN_VALUE;
              replicaTimestamps.put(replicaId, Math.max(localTimestamp, mergingTimestamp));
          }
      }
docs: Merges the provided vector clock into this one by taking the maximum of
  the logical timestamps for each replica.
  This method is not thread safe and concurrent access must be synchronized
  externally.