Uploaded image for project: 'Giraph (Retired)'
  1. Giraph (Retired)
  2. GIRAPH-328

Outgoing messages from current superstep should be grouped at the sender by owning worker, not by partition



    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.0.0
    • 1.0.0
    • bsp, graph
    • None


      Currently, outgoing messages created by the Vertex#compute() cycle on each worker are stored and grouped by the partitionId on the destination worker to which the messages belong. This results in messages being duplicated on the wire per partition on a given receiving worker that has delivery vertices for those messages.

      By partitioning the outgoing, current-superstep messages by destination worker, we can split them into partitions at insertion into a MessageStore on the destination worker. What we trade in come compute time while inserting at the receiver side, we gain in fine grained control over the real number of messages each worker caches outbound for any given worker before flushing, and how those flush messages are aggregated for delivery as well. Potentially, it allows for a great reduction in duplicate messages sent in situations like Vertex#sendMessageToAllEdges() – see GIRAPH-322, GIRAPH-314. You get the idea.

      This might be a poor idea, and it can certainly use some additional refinement, but it passes mvn verify and may even run It interoperates with the disk spill code, but not as well as it could. Consider this a request for comment on the idea (and the approach) rather than a finished product.

      Comments/ideas/help welcome! Thanks


        1. GIRAPH-328.8.patch
          43 kB
          Avery Ching
        2. GIRAPH-328-1.patch
          25 kB
          Eli Reisman
        3. GIRAPH-328-2.patch
          30 kB
          Eli Reisman
        4. GIRAPH-328-3.patch
          34 kB
          Eli Reisman
        5. GIRAPH-328-4.patch
          41 kB
          Eli Reisman
        6. GIRAPH-328-5.patch
          40 kB
          Eli Reisman
        7. GIRAPH-328-6.patch
          42 kB
          Eli Reisman
        8. GIRAPH-328-7.patch
          43 kB
          Eli Reisman



            initialcontext Eli Reisman
            initialcontext Eli Reisman
            0 Vote for this issue
            3 Start watching this issue