public ReadWriteLock getTakingSnapshotLock() {
    return this.takingSnapshotLock;
  }
Take a snapshot using the specified handler. On failure the snapshot temporary working
directory is removed. NOTE: prepareToTakeSnapshot() called before this one takes care of the
rejecting the snapshot request if the table is busy with another snapshot/restore operation.
@param snapshot the snapshot description
@param handler  the snapshot handler
hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java