Низкая производительность фиксации во время записей загрузки janusgraph - PullRequest
0 голосов
/ 04 декабря 2018

когда я пытаюсь загрузить количество данных из MySQL , я фиксирую каждую запись в JanusGraph с cassandra backend и asticsearch для построения индекса, с использованием 8 потоков ;

В начале программа будет загружать со скоростью 280 записей / секунду ;
Но когда она обрабатывает секунды, она уменьшается до 1 ~ 10 записей / секунду ;

Я пытаюсь изменить размер буфера размер страницы размер блока процент обновления такойнастраивается, но не улучшается, очевидно;

Я просто бродил, пропускаю ли я что-то, и что способствует этой ситуации ...

Код, который следует, - Мой коммитпроцесс dataMap является объектом fastJson, а g является источником обхода janusgraph;

    Long countryId = dataMap.getLong("countryId");

    Long uid = dataMap.getLong("uid");
    String phoneNum = dataMap.getString("phoneNumber");
    String fbId = dataMap.getString("fbId");
    Long createTime = dataMap.getLong("createTime");

    if (uid == null) {
        return;
    }
    Vertex uidVertex = g.addV("uid").next();
    uidVertex.property("uid_code", uid);

    if (createTime != null)
        uidVertex.property("create_time", createTime);
    if (status != null)
        uidVertex.property("status", status);

    g.tx().commit();

    if (phoneNum != null) {
         Vertex phoneVertex = KfkMsgParser.createMerge(g, "phone", "phone_num", phoneNum);

        Edge selfPhone = uidVertex.addEdge("user_phone", phoneVertex);
        selfPhone.property("create_time", bind.of("create_time", dataMap.getLong("createTime")));
        selfPhone.property("uid_code", bind.of("uid_code", uid));
        selfPhone.property("phone_num", bind.of("phone_num", phoneNum));
        g.tx().commit();
    }

    if(fbId != null){
        long endTamp2 = System.currentTimeMillis();
        Vertex fbVertext = KfkMsgParser.createMerge(g, "fb_id", "fb_account",fbId);

        Edge selfFb = uidVertex.addEdge("user_fb",fbVertext);
        if (createTime != null)
            selfFb.property("create_time",bind.of("create_time",createTime));
        g.tx().commit();
    }

Вот функция createMerge:

private static Vertex createMerge(GraphTraversalSource g, String label, String propertyKey, Object propertyValue) {
    Optional<Vertex> vertexOptional = g.V().hasLabel(label).has(propertyKey, propertyValue).tryNext();
    if (vertexOptional.isPresent()) {
        return vertexOptional.get();
    }
    Vertex vertex = g.addV(label).next();
    vertex.property(propertyKey, propertyValue);
    return vertex;
}

1 Ответ

0 голосов
/ 11 декабря 2018

Идет ошибка при создании индекса.
Я нахожу такую ​​тему в группе Google: https://groups.google.com/forum/#!msg/janusgraph-users/VPIUdlC4wNo/KiHM-s2aAwAJ
И знаю, получаю 2000 ~ 3000 записей / сек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...