Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-1646

Support custom implementor specific graph management

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 3.2.4
    • None
    • server
    • None

    Description

      Currently, Tinkerpop uses the [GraphManager](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/GraphManager.java) to handle graph management and store references to graph objects.

      I propose that we change the graphManager in three ways:

      1. The graphManager should be an interface, and the existing functionality should be moved into a `BasicGraphManager`. This allows the implementor to design their own graph manager so suit their graph management needs. Furthermore, this will need to allow the implementor to supply a graphManager class in the YAML, so the [Settings](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java) must support a graphmanager, which of course can default to the `BasicGraphManager`.

      2. We define additional methods on the interface to improve how the graphManager is used in existing Tinkerpop code. For example, [here](https://github.com/apache/tinkerpop/blob/master/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/ServerGremlinExecutor.java#L156) we mutate an object directly outside the scope of a getter or setter on said object.

      3. We define additional methods on the interface to allow for custom graph opening implementation:
      ```
      /**

      • Implementation that allows for custom graph-opening implementations.
        */
        public Graph openGraph(String graphName, Supplier<Graph> supplier);
        ```

      Attachments

        Issue Links

          Activity

            People

              spmallette Stephen Mallette
              dpitera David Pitera
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: