我在这个gremlin查询做错了什么?这不是一个高性能的查询? AWS上的我的2个nodejs实例使用gremlin客户端,该客户端通过AWS ELB到2个Titan 1.0/gremlin服务器实例通过websockets进行通信。后端是DynamoDB。我们现在为DynamoDB配置了正确的读/写吞吐量。Gremlin服务器停止响应压力测试与gremlin查询
日志:
WARN org.apache.tinkerpop.gremlin.server.op.AbstractEvalOpProcessor - 异常上请求处理脚本[RequestMessage {,的requestId = R1,OP = '的eval',处理器= '', args = {gremlin =
def user = gV()。has(“userId”,userId1).has(“tenantId”,tenantId).hasLabel(userLabel).next(); gV(user).outE (eHasAccessToLabel)。或(.has('shareToType',allType).outV()。has('tenantId',tenantId).outE(eHasAccessToLabel), ('userId',userId).outE(eIs()).has('shareId',groupType).outV()。hasLabel(groupLabel).inE(eIsMemberOfLabel,eIsAdminOfLabel).outV MemberOfLabel,eIsAdminOfLabel).inV()。OUTE(eHasAccessToLabel),__。具有( 'shareToType',用户类型).outV()。hasLabel(编号userLabel)。先后( '用户id',用户id).outE(eHasAccessToLabel))。如('role')。inV()。select('role','path')。by('role')。by('path');,
bindings = {tenantId = 1,userLabel = User ,userId1 = 2,eIsOwnedByLabel = is_owned_by,eHasAccessToLabel = has_access_to,eIsMemberOfLabel = is_member_of,eIsAdminOfLabel = is_admin_of,userId = a1,groupLabel = Group,groupType = group,userType = user,allType = all},accept = application/json,language =的gremlin-常规}}]。 org.apache.tinkerpop.gremlin.process.traversal.util.FastNoSuchElementException
当我们压力测试时,小鬼服务器刚刚停止响应,并为我们提供了这样的错误:
{"name":"logger","hostname":"a","pid":27881,"level":"ERROR","err":{"message":"null (Error 597)","name":"Error","stack":"Error: null (Error 597)\n at GremlinClient.handleProtocolMessage (/opt/application/sharing-app/node_modules/gremlin/lib/GremlinClient.js:204:39)\n at WebSocketGremlinConnection. (/opt/application/sharing-app/node_modules/gremlin/lib/GremlinClient.js:120:23)\n at emitOne (events.js:96:13)\n at WebSocketGremlinConnection.emit (events.js:188:7)\n at WebSocketGremlinConnection.handleMessage (/opt/application/sharing-app/node_modules/gremlin/lib/WebSocketGremlinConnection.js:69:12)\n at WebSocketGremlinConnection._this.ws.onmessage (/opt/application/sharing-app/node_modules/gremlin/lib/WebSocketGremlinConnection.js:46:20)\n
我试着运行()“hasIabel('User')。outE('is_owned_by').... ==>遍历度量
Step Count Traversers Time (ms) % Dur
=============================================================================================================
TitanGraphStep([userId.eq(51ce1780-1998-47eb-a1... 0 0 190.524 24.91
optimization 176.456
backend-query 0 6.074
backend-query 0 5.067
TitanVertexStep(OUT,[is_owned_by],vertex)@[path] 0 0 0.005 0.00
TitanVertexStep(IN,[has_access_to],edge) 0 0 190.539 24.91
OrStep([[HasStep([shareToType.eq(all)]), Profil... 0 0 0.012 0.00
HasStep([shareToType.eq(all)]) 0 0 0.000
EdgeVertexStep(OUT) 0 0 0.000
HasStep([tenantId.eq(ndgThunderDome)]) 0 0 0.000
TitanVertexStep(OUT,[has_access_to],edge) 0 0 0.000
HasStep([shareToType.eq(group)]) 0 0 0.000
EdgeVertexStep(OUT) 0 0 0.000
HasStep([~label.eq(Group)]) 0 0 0.000
TitanVertexStep(IN,[is_member_of, is_admin_of... 0 0 0.000
HasStep([userId.eq(a257c260-261f-45df-a1e7-92... 0 0 0.000
TitanVertexStep(OUT,[is_member_of, is_admin_o... 0 0 0.000
TitanVertexStep(OUT,[has_access_to],edge) 0 0 0.000
HasStep([shareToType.eq(user)]) 0 0 0.000
EdgeVertexStep(OUT) 0 0 0.000
HasStep([~label.eq(User)]) 0 0 0.000
HasStep([userId.eq(a257c260-261f-45df-a1e7-92... 0 0 0.000
TitanVertexStep(OUT,[has_access_to],edge) 0 0 0.000
EdgeVertexStep(IN) 0 0 190.550 24.91
SelectStep([role, path],[value(role), value(pat... 0 0 0.021 0.00
SideEffectCapStep([~metrics]) 1 1 193.286 25.27
>TOTAL - - 764.940 -
TIA
2017-04-24
Vijay
+1
是您的问题关于Gremlin服务器停止或错误本身?来自服务器日志的错误本身就是遍历不返回数据时得到的错误。这一定发生在脚本的某处。根据你的描述,很难说这个错误是否与服务器没有处理进一步的请求有关。我的直觉说这两个可能没有关系。我认为你应该尝试去调试你的Gremlin以摆脱那个错误,从而将它作为一个与服务器挂起相关的问题去除。 –