小编use*_*707的帖子

Kryo崩溃了EnvironmentFailureException

我正在尝试序列化自定义类的一些对象,我得到以下异常:

    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)

java exception kryo

10
推荐指数
1
解决办法
140
查看次数

OrientDB没有返回读取顶点的输出边缘

我正在尝试读取之前添加到数据库中的边:

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)

但似乎返回始终为空,因为第一个返回 …

java orientdb

6
推荐指数
0
解决办法
120
查看次数

grpc找不到protobuf库

我检查了 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)

c++ cmake protocol-buffers grpc

5
推荐指数
1
解决办法
6895
查看次数

Neo4j在Java嵌入式高可用性模式下

是否可以在高可用性(HA)模式下运行Neo4j,并具有多个Java客户端(嵌入式Java)的读/写访问权限?

如果是,是否需要特殊配置?(除标准HA配置外)

我想在我的计算机上运行包含三个本地服务器的HA群集.使用套接字从三个Java客户端编写和读取.

java high-availability neo4j

3
推荐指数
1
解决办法
166
查看次数

Linux Shell脚本中通过for循环访问数组

我有以下 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)

linux arrays shell

2
推荐指数
1
解决办法
5796
查看次数

Gremlin获取具有特定开始和结束节点的Edge

我正在使用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来获得它的方法。我不想在两个节点之间有多个边缘。我只想要具有特定顶点的一条边。

java gremlin titan

0
推荐指数
1
解决办法
1582
查看次数