incubator-giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claudio Martella (JIRA)" <>
Subject [jira] [Commented] (GIRAPH-185) Improve concurrency of putMsg / putMsgList
Date Wed, 25 Apr 2012 16:22:20 GMT


Claudio Martella commented on GIRAPH-185:

The performance of concurrentlinkedqueue is going to be faster than a synchronized block as
it's just a CAS operation on the tail pointer, at least for the add() method which adds to
the tail of the queue. Also, arrayList in any case should be slower on adding elements as
it requires the memory expansion and copying when the allocated memory is exhausted.
Iteration could indeed be a bit slower than an arrayList because of cache.

The memory overhead of each entry of the queue is indeed something that should be investigated.
Worst case, one might think of copying the concurrentlinkedqueue implementation and remove
the "prev" pointer which we don't need.
> Improve concurrency of putMsg / putMsgList
> ------------------------------------------
>                 Key: GIRAPH-185
>                 URL:
>             Project: Giraph
>          Issue Type: Improvement
>          Components: graph
>    Affects Versions: 0.2.0
>            Reporter: Bo Wang
>            Assignee: Bo Wang
>             Fix For: 0.2.0
>         Attachments: GIRAPH-185.patch, GIRAPH-185.patch
>   Original Estimate: 2h
>  Remaining Estimate: 2h
> Currently in putMsg / putMsgList, a synchronized closure is used to protect the whole
transientInMessages when adding the new message. This lock prevents other concurrent calls
to putMsg/putMsgList and increases the response time. We should use fine-grain locks to allow
high concurrency in message communication.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message