private Future<?> asyncProcessNodeUpdate(Runnable runnable) {
    if (!executor.isShutdown()) {
      try {
        return executor.submit(runnable);
      } catch (RejectedExecutionException e) {
        if (executor.isShutdown()) {
          LOG.warn("aclZNode changed after ZKPermissionWatcher was shutdown");
        } else {
          throw e;
        }
      }
    }
    return null; // No task launched so there will be nothing to cancel later
  }
Handles synchronization of access control list entries and updates throughout all nodes in the
cluster. The {@link AccessController} instance on the {@code _acl_} table regions, creates a
znode for each table as {@code /hbase/acl/tablename}, with the znode data containing a serialized
list of the permissions granted for the table. The {@code AccessController} instances on all
other cluster hosts watch the znodes for updates, which trigger updates in the
{@link AuthManager} permission cache.
hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/ZKPermissionWatcher.java