Titan Db ignores index

I have a chart with two indices. These are two composite indexes with label restrictions. (both of them are exactly the same only for different properties / labels). It seems that a certain job works, while the other doesn't. I executed the following profile () to double check:

One is called KeyOnNode: property uidand label node:

gremlin> g.V().hasLabel("node").has("uid", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
TitanGraphStep([~label.eq(node), uid.eq(dammit_...                     1           1           2.565    96.84
  optimization                                                                                 1.383
  backend-query                                                        1                       0.231
SideEffectCapStep([~metrics])                                          1           1           0.083     3.16
                                            >TOTAL                     -           -           2.648        -

The above is quite acceptable and works well. I guess the magic line backend-query.

Another is called NameOnSuperNode: property nameand label supernode:

gremlin> g.V().hasLabel("supernode").has("name", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
TitanGraphStep([~label.eq(supernode), name.eq(n...                     1           1        5763.163   100.00
  optimization                                                                                 2.261
  scan                                                                                         0.000
SideEffectCapStep([~metrics])                                          1           1           0.073     0.00
                                            >TOTAL                     -           -        5763.236        -

Here the request takes an outrageous amount of time, and we have a line scan. Initially, I wondered if the index was indexed through the control system, but, alas, everything seems to work fine:

gremlin> m = graphT.openManagement(); 
==>com.thinkaurelius.titan.graphdb.database.management.ManagementSystem@73c1c105
gremlin> index = m.getGraphIndex("NameOnSuperNode")
==>NameOnSuperNode
gremlin> index.getFieldKeys()
==>name
gremlin> import static com.thinkaurelius.titan.graphdb.types.TypeDefinitionCategory.*
==>null
gremlin> sv = m.getSchemaVertex(index)
==>NameOnSuperNode
gremlin> rel = sv.getRelated(INDEX_SCHEMA_CONSTRAINT, Direction.OUT)
==>com.thinkaurelius.titan.graphdb.types.SchemaSource$Entry@26b2b8e2
gremlin> sse = rel.iterator().next()
==>com.thinkaurelius.titan.graphdb.types.SchemaSource$Entry@2d39a135
gremlin> sse.getSchemaType()
==>supernode

reset db . , , , , . , ?

INFO: Titan DB 1.1 (TP 3.1.1)

: , REGISTERED:

gremlin> :> m = graphT.openManagement(); index = m.getGraphIndex("NameOnSuperNode"); pkey = index.getFieldKeys()[0]; index.getIndexStatus(pkey)
==>INSTALLED

? m.updateIndex(index, SchemaAction.REGISTER_INDEX).get(); m.commit(); graphT.tx().commit();,

2: , :

gremlin> m = graphT.openManagement(); 
index = m.getGraphIndex("NameOnSuperNode") ; 
import static com.thinkaurelius.titan.graphdb.types.TypeDefinitionCategory.*; 
import com.thinkaurelius.titan.graphdb.database.management.ManagementSystem; 
m.updateIndex(index, SchemaAction.REGISTER_INDEX).get();
ManagementSystem.awaitGraphIndexStatus(graphT, "NameOnSuperNode").status(SchemaStatus.REGISTERED).timeout(20, java.time.temporal.ChronoUnit.MINUTES).call();
m.commit();
graphT.tx().commit()

. INSTALLED, . , . - ? FYI ~ 100K ~ 130 .

+4
2

, , :

  • , , ( , name propertyKey ), reindex, per Titan:

    . , , , , , . , , , , index . , . , .

  • , REGISTERED INSTALLED, mgmt.awaitGraphIndexStatus(). , .

  • , , , .

  • , Titan ( JanusGraph PR) Key, propertyKey, REGISTERED

  • REGISTERED, Titan/JanusGraph node . INSTALLED, , . , ​​ Titan/JanusGraph , : phantom. , JVM, .. kill -9 - , - . , , , . phantom, , , phantom.

+7

, . , cassandra, elasticsearch. hbase, . . : https://docs.janusgraph.org/0.2.0/configuration.html

+1

Source: https://habr.com/ru/post/1660666/


All Articles