Uploaded image for project: 'Hama'
  1. Hama
  2. HAMA-897

Performance improvement of graph processing using background threads

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.6.4
    • None
    • graph
    • None

    Description

      Each GraphJobRunner (BSPTask) calls vertex.compute() method sequentially in a while loop:

          while (iterator.hasNext(
              currentMessage == null ? null : (V) currentMessage.getVertexId(),
              Strategy.ALL)) {
      
            vertex = iterator.next();
            if (currentMessage != null) {
              iterable = iterate(currentMessage, (V) currentMessage.getVertexId(),
                  vertex, peer);
            }
      
            if (iterable != null && vertex.isHalted()) {
              vertex.setActive();
            }
      
            if (!vertex.isHalted()) {
              if (iterable == null) {
                vertex.compute(Collections.<M> emptyList());
              } else {
                vertex.compute(iterable);
                currentMessage = iterable.getOverflowMessage();
              }
              activeVertices++;
            }
      
            // note that we even need to rewrite the vertex if it is halted for
            // consistency reasons
            vertices.finishVertexComputation(vertex);
          }
      

      I might be wrong but I'm sure we can improve the performance using the background threads.

      Attachments

        Activity

          People

            Unassigned Unassigned
            udanax Edward J. Yoon
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: