16.3.4 Deleting a Graph
In order to reduce the memory usage of the graph server (PGX), the session
  must drop the unused graph objects created through the getGraph() method, by
  invoking the close() method.
               
Calling the close() method not only destroys the specified graph,
   but all of its associated properties, including transient properties as well. In addition, all of
   the collections related to the graph instance (for example, a VertexSet) are
   also deleted automatically. If a session holds multiple PgxGraph objects
   referencing the same graph, invoking close() on any of them will invalidate all
   the PgxGraph objects referencing that graph, making any operation on those
   objects fail.
               
For example:
opg4j> var graph1 = session.getGraph("myGraphName")
opg4j> var graph2 = session.getGraph("myGraphName")
opg4j> graph2.close()                                // Delete graph2
opg4j> var properties = graph1.getVertexProperties() //throws an exception as graph1 reference is not valid anymore
opg4j> properties = graph2.getVertexProperties()     //throws an exception as graph2 reference is not valid anymorePgxGraph graph1 = session.getGraph("myGraphName");
// graph2 references the same graph of graph1
PgxGraph graph2 = session.getGraph("myGraphName");
// Delete graph2
graph2.close();
// Both the following calls throw an exception, as both references are not valid anymore
Set<VertexProperty<?, ?>> properties = graph1.getVertexProperties();
properties = graph2.getVertexProperties();graph1 = session.get_graph("myGraphName")
# graph2 references the same graph of graph1
 graph2 = session.get_graph("myGraphName")
# Delete graph2
graph2.close()
# Both the following calls throw an exception, as both references are not valid anymore
properties = graph1.get_vertex_properties()
properties = graph2.get_vertex_properties()The same behavior occurs when multiple PgxGraph objects
    reference the same snapshot. Since a snapshot is effectively a graph, closing a
     PgxGraph object referencing a certain snapshot invalidates all
     PgxGraph objects referencing the same snapshot, but does not invalidate those
    referencing other snapshots:
                  
// Get a snapshot of "myGraphName"
PgxGraph graph1 = session.getGraph("myGraphName");
// graph2 and graph3 reference the same snapshot as graph1
PgxGraph graph2 = session.getGraph("myGraphName");
PgxGraph graph3 = session.getGraph("myGraphName");
// Assume another snapshot is created ...
// Make graph3 references the latest snapshot available
session.setSnapshot(graph3, PgxSession.LATEST_SNAPSHOT);
graph2.close();
// Both the following calls throw an exception, as both references are not valid anymore
Set<VertexProperty<?, ?>> properties = graph1.getVertexProperties();
properties = graph2.getVertexProperties();
// graph3 is still valid, so the call succeeds
properties = graph3.getVertexProperties();Note:
Even if a graph is closed by a session, the graph data may still remain in the server memory, if the graph is currently shared by other sessions. In such a case, the graph may still be visible among the available graphs through thePgxSession.getGraphs(<namespace>) method.
                  As a safe alternative to the manual removal of each graph, the PGX API supports
    some implicit resource management features which allow developers to safely omit the
     close() call. See Resource Management Considerations for more information.
                  
Parent topic: Graph Management in the Graph Server (PGX)