我正在尝试序列化自定义类的一些对象,我得到以下异常:
com.esotericsoftware.kryo.KryoException: com.sleepycat.je.EnvironmentFailureException: (JE 5.0.73) IdentityHashMap.entrySet() should not be used. See [#18167]. UNEXPECTED_STATE: Unexpected internal state, may have side effects.
Serialization trace:
highestFlushLevels (com.sleepycat.je.recovery.DirtyINMap)
checkpointDirtyMap (com.sleepycat.je.recovery.Checkpointer)
checkpointer (com.sleepycat.je.dbi.EnvironmentImpl)
envImpl (com.sleepycat.je.dbi.MemoryBudget)
budget (com.sleepycat.je.cleaner.DbFileSummaryMap)
dbFileSummaries (com.sleepycat.je.dbi.DatabaseImpl)
databaseImpl (com.sleepycat.je.Database)
db (com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEKeyValueStore)
store (com.thinkaurelius.titan.diskstorage.keycolumnvalue.keyvalue.OrderedKeyValueStoreAdapter)
store (com.thinkaurelius.titan.diskstorage.keycolumnvalue.cache.NoKCVSCache)
edgeStore (com.thinkaurelius.titan.diskstorage.Backend)
backend (com.thinkaurelius.titan.graphdb.database.StandardTitanGraph)
graph (com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx)
tx (com.thinkaurelius.titan.graphdb.types.vertices.PropertyKeyVertex)
key (com.thinkaurelius.titan.graphdb.relations.SimpleTitanProperty)
properties (main.java.com.bag.util.storage.RelationshipStorage)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:101)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:505)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:575)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:80) …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取之前添加到数据库中的边:
Iterable<Vertex> startNodes = getVertexList(relationshipStorage.getStartNode(), graph);
Iterable<Vertex> endNodes = getVertexList(relationshipStorage.getEndNode(), graph);
List<Edge> list = StreamSupport.stream(startNodes.spliterator(), false)
.flatMap(vertex1 -> StreamSupport.stream(vertex1.getEdges(Direction.OUT, relationshipId).spliterator(), false))
.filter(edge -> StreamSupport.stream(endNodes.spliterator(), false).anyMatch(vertex -> edge.getVertex(Direction.IN).equals(vertex)))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我正在创建以下方式:
Iterable<Vertex> startNodes = this.getVertexList(storage.getStartNode(), graph);
Iterable<Vertex> endNodes = this.getVertexList(storage.getEndNode(), graph);
for (Vertex startNode : startNodes)
{
for (Vertex endNode : endNodes)
{
String edgeClass = "class:" + storage.getId();
Edge edge = startNode.addEdge(edgeClass, endNode);
for (Map.Entry<String, Object> entry : storage.getProperties().entrySet())
{
edge.setProperty(entry.getKey(), entry.getValue());
}
edge.setProperty(Constants.TAG_HASH, HashCreator.sha1FromRelationship(storage));
edge.setProperty(Constants.TAG_SNAPSHOT_ID, snapshotId);
}
}
graph.commit();
Run Code Online (Sandbox Code Playgroud)
但似乎返回始终为空,因为第一个返回 …
我检查了 grpc 安装并完成了构建和安装。
现在当我尝试:
find_package(gRPC CONFIG REQUIRED)
我明白了
CMake Error at CMakeLists.txt:15 (find_package):
Found package configuration file:
/usr/lib64/cmake/grpc/gRPCConfig.cmake
but it set gRPC_FOUND to FALSE so package "gRPC" is considered to be NOT
FOUND. Reason given by package:
The following imported targets are referenced, but are missing:
protobuf::libprotobuf protobuf::libprotoc
Run Code Online (Sandbox Code Playgroud)
事件虽然
find_package(Protobuf REQUIRED)
效果很好。
我读到我应该跑去cmake ../.. -DBUILD_DEPS=ON -DBUILD_SHARED_LIBS=ON解决这个问题。然而,这会导致:
CMake Error at cmake/abseil-cpp.cmake:38 (find_package):
Could not find a package configuration file provided by "absl" with any of
the following names:
abslConfig.cmake …Run Code Online (Sandbox Code Playgroud) 是否可以在高可用性(HA)模式下运行Neo4j,并具有多个Java客户端(嵌入式Java)的读/写访问权限?
如果是,是否需要特殊配置?(除标准HA配置外)
我想在我的计算机上运行包含三个本地服务器的HA群集.使用套接字从三个Java客户端编写和读取.
我有以下 shell 脚本。我面临的问题是,在第一次迭代中 ${NUM[${i}]} 返回数组的全部内容,而接下来的每次迭代都返回空。为什么会这样?
NUM="2 2 2 0"
i=0
for CLIENT in ${BAG_CLIENTS} ; do
if [ "$BFT" = true ]; then
SERVERS="-$i"
fi
echo "Starting ${NUM[${i}]} clients with $PERCWRITES writes and $SERVERS serv$
ssh rneiheiser@$CLIENT "~/runclient.sh $i ${NUM[${i}]} $PERCWRITES $SERVERS &$
((i++))
done
Run Code Online (Sandbox Code Playgroud) 我正在使用Gremlin处理Titan Graph。而且我正在设法找到一种非常具体的关系。
我有标签,属性以及可能的start和endNode列表。
我希望所有关系都与此相匹配。
我已经有了这个来获取所有匹配标签和属性的关系:
GraphTraversal<Edge, Edge> tempOutput = g.E().hasLabel(relationshipStorage.getId());
if(relationshipStorage.getProperties() != null)
{
for (Map.Entry<String, Object> entry : relationshipStorage.getProperties().entrySet())
{
if (tempOutput == null)
{
break;
}
tempOutput = tempOutput.has(entry.getKey(), entry.getValue());
}
}
Run Code Online (Sandbox Code Playgroud)
但是我没有找到通过特定的start和endNode来获得它的方法。我不想在两个节点之间有多个边缘。我只想要具有特定顶点的一条边。