incubator-hama-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edward J. Yoon (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HAMA-307) BSPMaster - job ID counter is not read and updated atomically
Date Mon, 07 Mar 2011 12:59:00 GMT

     [ https://issues.apache.org/jira/browse/HAMA-307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Edward J. Yoon updated HAMA-307:
--------------------------------

    Fix Version/s:     (was: 0.2.1)
                       (was: 0.3.0)

> BSPMaster - job ID counter is not read and updated atomically
> -------------------------------------------------------------
>
>                 Key: HAMA-307
>                 URL: https://issues.apache.org/jira/browse/HAMA-307
>             Project: Hama
>          Issue Type: Bug
>          Components: bsp
>    Affects Versions: 0.2.0
>            Reporter: Filipe Manana
>            Assignee: Edward J. Yoon
>             Fix For: 0.2.0
>
>         Attachments: hama-307.patch
>
>
> The nextJobId (int attribute) in BSPMaster is not read and updated atomically, therefore
it's possible that concurrent requests get the same job ID and/or cause the job ID to not
get incremented by the proper quantity.
> The following simple patch fixes it.
> Notice:
> I changed the type from int to Integer.
> This is to avoid doing the following in getNewJobId():
> int id;
> synchronized (this) {
>   id = nextJobId++;
> }
> the instance (referenced by this) is synchronized in many places in BSPMaster, so by
making nextJobId an Integer (object), we can synchronize on it, reducing contention times:
> private Integer nextJobId = Integer.valueOf(1);
> public BSPJobID getNewJobId() throws IOException {
>     int id;
>     synchronized (nextJobId) {
>       id = nextJobId;
>       nextJobId = Integer.valueOf(id + 1);
>     }
>     return new BSPJobID(this.masterIdentifier, id);
>   }
> cheers

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message