In meinem System habe ich die Anforderung, dass die Anzahl der Kanten auf dem Knoten als eine interne Eigenschaft auf dem Scheitelpunkt sowie ein Scheitelpunkt zentrischen Index auf einer bestimmten ausgehenden Kante gespeichert werden muss. Dies erfordert natürlich, dass ich die Anzahl der Kanten auf dem Knoten zähle, nachdem alle Daten vollständig geladen sind. Ich tue dies wie folgt:Zählen von Superknoten auf Titan
long edgeCount = graph.getGraph().traversal().V(vertexId).bothE().count().next();
Allerdings, wenn ich meine Tests auf den Punkt vergrößern, wo einige meiner Knoten „super“ Knoten ich die folgende Ausnahme auf der oberen Zeile:
Caused by: com.netflix.astyanax.connectionpool.exceptions.TransportException: TransportException: [host=127.0.0.1(127.0.0.1):9160, latency=4792(4792), attempts=1]org.apache.thrift.transport.TTransportException: Frame size (70936735) larger than max length (62914560)!
at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:197) ~[astyanax-thrift-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) ~[astyanax-thrift-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:28) ~[astyanax-thrift-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.execute(ThriftSyncConnectionFactoryImpl.java:153) ~[astyanax-thrift-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:119) ~[astyanax-core-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:352) ~[astyanax-core-3.8.0.jar!/:3.8.0]
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$4.execute(ThriftColumnFamilyQueryImpl.java:538) ~[astyanax-thrift-3.8.0.jar!/:3.8.0]
at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxKeyColumnValueStore.getNamesSlice(AstyanaxKeyColumnValueStore.java:112) ~[titan-cassandra-1.0.0.jar!/:na]
Was ist der beste Weg, um das zu beheben? Soll ich einfach die Framegröße erhöhen oder gibt es eine bessere Möglichkeit, die Anzahl der Kanten auf dem Knoten zu zählen?
Bedeutet das, dass ich anfangen muss, Gremlin-Hadoop zu integrieren? –