anchor.diff:  gremlin> g.V().hasLabel('person').has('name','marko').values('name')
   ==>marko
   
  +[gremlin-groovy]
  +----
  +graph = Neo4jGraph.open('/tmp/neo4j')
  +graph.cypher("CREATE INDEX ON :person(name)")
  +graph.tx().commit()  <1>
  +graph.addVertex(label,'person','name','marko')
  +graph.addVertex(label,'dog','name','puppy')
  +g = graph.traversal(standard())
  +g.V().hasLabel('person').has('name','marko').values('name')
  +graph.close()
  +----
  +
  +<1> schema mutations must happen in a different tx than graph mutations
  +
   Below demonstrates the runtime benefits of indices and demonstrates how if there is no defined index (only vertex labels), a linear scan of the vertex-label partition is still faster than a linear scan of all vertices.
   
   [source,groovy]
  
positive.code: 
  [gremlin-groovy]
  ----
  graph = GraphFactory.open('conf/hadoop-gryo.properties')
  g = graph.traversal(computer(SparkGraphComputer))
  g.V().count()
  g.V().out().out().values('name')
  
negative.code: ----
  hdfs.copyFromLocal('data/tinkerpop-modern.kryo', 'tinkerpop-modern.kryo')
  hdfs.ls()
  graph = GraphFactory.open('conf/hadoop/hadoop-gryo.properties')
  g = graph.traversal(standard())
  g.V().count()
  g.V().out().out().values('name')
  