Missing or missed documentation?

68 views
Skip to first unread message

Cecil New

unread,
Jul 16, 2016, 10:29:50 AM7/16/16
to Gremlin-users
Well, I've learned enough to begin work on an experiment. But there are some topics I have not seen covered in the online documentation. Could someone point me to where I can find information using the Gremlin Server?
  • I don't see any server configuration allowing me to specify where to persist the data. I will be loading several millions of vertices and even more edges: I want to be sure that I have enough space.
  • I don't see any information on how to add indices or, indeed, whether Gremlin Server even uses them. I hope the built-ins (id and label) are indexed automatically, but I have at least one vertex property for which I will need an index.
  • I don't see any information on how to specify the data types of a property. In the AddProperty section there are examples of 2 arguments and 3 arguments, to wit:
    • g.V(1).property('country','usa')
    • g.V(1).property(list,'age',35)
Here "list" looks like it may be some sort of type (an array), but there's no information about what that first argument means or how it is to be used. I can see that strings are quoted and integers aren't. But I need at least the following:
    • Dates/Timestamps
    • Floating point
Lastly, I will be using a non-JVM language so everything is going over the wire via bindings. 

If Gremlin Sever isn't up to the task and I need to consider another implementation, please let me know that too!

Thanks in advance
Cecil

Robert Dale

unread,
Jul 16, 2016, 2:03:13 PM7/16/16
to gremli...@googlegroups.com
Gremlin server is like Gremlin As A Service (GaaS? :-) It's a higher
layer, look at this picture..
http://tinkerpop.apache.org/docs/current/reference/#_graph_system_integration

You'll need to pick an actual graph database backend and configure
gremlin server. Some graph databases come with their own gramlin
server pre-packaged. There's a list on the home page and 'providers'
section. They each support varying versions of gremlin. Also reference
implementations:
http://tinkerpop.apache.org/docs/current/reference/#implementations

How data types are handled is dependent upon the database
implementation. Some let you put any data type, some set it as the
data type of the first value. Configuring a schema is also
implementation-specific. Same goes for indices. There's no gremlin
API for those.

That 'list' looks like it would be a reference to a static import for
VertexProperty.Cardinality.list.
http://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/structure/VertexProperty.Cardinality.html


--
Robert Dale
> --
> You received this message because you are subscribed to the Google Groups
> "Gremlin-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to gremlin-user...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/gremlin-users/fc02b325-bc4d-4388-b525-32572c55a29d%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Jason Plurad

unread,
Jul 16, 2016, 5:14:34 PM7/16/16
to Gremlin-users
Hi Cecil,

Graph database systems and language drivers (including many non-JVM) are found on the Apache TinkerPop homepage.

Configuring the Gremlin Server is done through a YAML file (gremlin-server.yaml is the default). The `graphs` key in the YAML file allows you to specify a graph properties file that would contains configuration properties for your chosen graph database instance.


-- Jason

Cecil New

unread,
Jul 21, 2016, 7:39:52 AM7/21/16
to Gremlin-users
Thanks for the responses, but I'm still a bit confused... when I mentioned the "gremlin server" I meant what can be downloaded from the tinkerpop home page. This server is functional. I can connect to it by the console:
gremlin> :> graph.features()
==>FEATURES
> GraphFeatures
>-- Transactions: false
>-- Computer: true
>-- ThreadedTransactions: false
>-- ConcurrentAccess: false
>-- Persistence: true
> VariableFeatures
>-- Variables: true
>-- BooleanValues: true
>-- ByteValues: true
>-- DoubleValues: true
>-- FloatValues: true
 etc...

I can connect and load data using my code, which I can see with the remote console. The features claim persistence (altho I don't see "how", since there's no transaction/commit support).

Is the graph I'm seeing here just the same in-memory graph used by the console?

Thank you for the clarifications... 

Stephen Mallette

unread,
Jul 21, 2016, 8:10:04 AM7/21/16
to Gremlin-users
I think you should review the links the previously posted. The graph you are looking at with "graph.features()" is configured in gremlin servers yaml configuration file. If you've not edited that file, are using the standard distribution and are not specifying a different configuration file then the file it is using is conf/gremlin-server.yaml and you are using an in-memory TinkerGraph. TinkerGraph does support persistence by specifying a gremlin.tinkergraph.graphLocation in the configuration:


For the size of graph you are loading you might want to try a different graph database like Neo4j which supports transactions and such. Neo4j should do very well with a graph in the size range you are expecting. You will need to install into Gremlin Server (it doesn't package it directly):


and configure Gremlin Server to use it:



--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages