/** * Take a snapshot without waiting for the server to complete that snapshot (asynchronous) * <p> * Only a single snapshot should be taken at a time, or results may be undefined. * @param snapshot snapshot to take * @return the max time in millis to wait for the snapshot * @throws IOException if the snapshot did not succeed or we lose contact with the master. * @throws SnapshotCreationException if snapshot creation failed * @throws IllegalArgumentException if the snapshot request is formatted incorrectly */ public long takeSnapshotAsync(SnapshotDescription snapshot) throws IOException, SnapshotCreationException { SnapshotDescriptionUtils.assertSnapshotRequestIsValid(snapshot); HSnapshotDescription snapshotWritable = new HSnapshotDescription(snapshot); return getMaster().snapshot(snapshotWritable); }