This looks to be possible but will require some work. Vertex
and Edge Ids
in TinkerGraph
are determined using IDManagers
which is done here.
You can see that this is decided via a config value which ends up using reflection to construct the IDManager
.
So you would have to do the following:
Create your own IDManager
by implementing the interface you can use the default manager as a guideline. For example:
public enum DefaultIdManager implements IdManager {
...
ANY {
@Override
public Long getNextId(final TinkerGraph graph) {
return unique random number
}
}
...
}
You would then have to create a config with your new manager specified and create the tinkergraph using that manager:
BaseConfiguration config = new BaseConfiguration();
config.addProperty(TinkerGraph.GREMLIN_TINKERGRAPH_EDGE_ID_MANAGER, "your.package.structure.YourIdManager.ANY");
TinkerGraph.open(config);
I would love to know if there is an easier way but I think this will work.
Side Note:
It might be easier to check if your production graph DB provides an in-memory layer. I know a few graph dbs do and using that rather than TinkerGraph
will likely be better. TinkerGraph
is really only meant for plating around I believe.