【发布时间】:2018-01-12 11:15:12
【问题描述】:
我正在更新 janusgraph 中顶点的一些属性。 可能包含多达 500000 个顶点更新。 下划线 db 是 cassandra。 在进行这些更新时,我收到以下错误:
org.apache.tinkerpop.gremlin.driver.exception.ResponseException:脚本评估超过了配置的 'scriptEvaluationTimeout' 阈值 60000000 毫秒,或者直接取消了请求 [g.V().has(IProKeys_A_ID, analysisId).has 的评估(quaPro, propValue).id()]
代码:
...
// 1. retrieve SPC property different values
Cluster cluster = gremlinCluster.getCluster();
Client client = null;
List<String> propertyValues = Lists.newArrayList();
try {
client = cluster.connect();
String gremlin = "g.V().has(IPr_a_ID, aId).values(qProperty).dedup()";
Map<String, Object> parameters = Maps.newHashMap();
parameters.put("IPr_a_ID", IPropertyKeys.ANALYSIS_ID);
parameters.put("aId", analysisResultId);
parameters.put("qProperty", qProperty);
if (logger.isDebugEnabled()) logger.debug("Submiting query [ " + gremlin + " ] with binding [ " + parameters + "]");
ResultSet resultSet = client.submit(gremlin, parameters);
if (logger.isDebugEnabled()) logger.debug("Query finished.");
resultSet.stream().forEach(result -> {
String propertyValue = result.getString();
propertyValues.add(propertyValue);
});
} catch
...
..
..
..
// 2. for each property value, run gremlin query to assign new grouptag property to proper vertices
try {
client = cluster.connect();
for (String propValue : propertyValues) {
String gremlin = "g.V().has(IProKeys_A_ID,analysisId).has(quaPro, propValue).property(qGtag,propValue).iterate(); return null";
Map<String, Object> parameters = Maps.newHashMap();
parameters.put("IProKeys_A_ID", IP_ID);
parameters.put("analysisId", aisRId);
parameters.put("quaPro", q_Property);
parameters.put("qGtag", qu_dG_ptag);
parameters.put("propValue", propValue);
if (logger.isDebugEnabled()) logger.debug("Submiting query [ " + gremlin + " ] with binding [ " + parameters + "]");
client.submit(gremlin, parameters).one();
if (logger.isDebugEnabled()) logger.debug("Query finished.");
}
能否请您告诉我出现此错误的原因?
【问题讨论】:
-
我认为您需要提供更多信息。
propertyValues是否包含您需要更新的 500000 个顶点?添加更多代码应该有助于澄清情况。 -
我添加了更多信息
标签: gremlin