code: private void persistNode(final @Nonnull Node node)  throws IOException {
          // no need for a full save() so we just do the minimum
          if (node instanceof EphemeralNode) {
              Util.deleteRecursive(new File(getNodesDir(), node.getNodeName()));
          } else {
              XmlFile xmlFile = new XmlFile(Jenkins.XSTREAM,
                      new File(new File(getNodesDir(), node.getNodeName()), "config.xml"));
              xmlFile.write(node);
              SaveableListener.fireOnChange(this, xmlFile);
          }
          jenkins.getQueue().scheduleMaintenance();
      }
docs: Actually persists a node on disk.
  
  @param node the node to be persisted.
  @throws IOException if the node could not be persisted.