[
https://issues.apache.org/jira/browse/OOZIE-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217912#comment-13217912
]
[email protected] commented on OOZIE-684:
-----------------------------------------------------
bq. On 2012-02-28 03:48:16, Santhosh Srinivasan wrote:
bq. >
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java,
line 234
bq. > <https://reviews.apache.org/r/4035/diff/3/?file=86114#file86114line234>
bq. >
bq. > Same comment as Mohammad - can you check how to optimize this?
bq. >
bq. > Ref:
bq. > http://www.cs.wustl.edu/~schmidt/PDF/DC-Locking.pdf
bq. >
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
interesting read and it is very common to use in the singelton pattern in which
we write once and read a lot. In this case,it will be great to optimize on the
reads. mainly to avoid the synchronization in the common case which is reading.
The main goal here is to avoid a needless thread contention in case of reads.
In our case it is bit different, as our common case is to set the used flag
[write] which happen for all the commands. Assuming the same command may be
called from different threads, we should synchronize around the write [avoiding
two threads set the used flag at the same time and hence continue the execution
path which may cause a problem].
So, if the command is called only once which is our common case, it is
unavoidable to have this one call go outside the synchronization block.
- Mohamed
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4035/#review5381
-----------------------------------------------------------
On 2012-02-27 23:05:10, Mohamed Battisha wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/4035/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2012-02-27 23:05:10)
bq.
bq.
bq. Review request for oozie.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. While executing an interrupt driven commands it may be executed from the
map on one thread and executed from the queue at a different thread
bq. This will cause the following exception to be thrown:
bq. java.lang.IllegalStateException: CoordChangeXCommand already used.
bq.
bq. - Avoiding throwing exception in case of interrupts and synchronizing the
changes in [used]
bq. - Avoiding executing interrupt in case of commands that doesn't need locks
bq. - Changing the debug message for execute interrupt to explicitly
mentioning it is an interrupt command
bq.
bq.
bq. This addresses bug OOZIE-684.
bq. https://issues.apache.org/jira/browse/OOZIE-684
bq.
bq.
bq. Diffs
bq. -----
bq.
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
1293381
bq.
bq. Diff: https://reviews.apache.org/r/4035/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq.
bq. Thanks,
bq.
bq. Mohamed
bq.
bq.
> A race condition may happen under stress while executing an interrupt command
> -----------------------------------------------------------------------------
>
> Key: OOZIE-684
> URL: https://issues.apache.org/jira/browse/OOZIE-684
> Project: Oozie
> Issue Type: Bug
> Reporter: Mohamed Battisha
> Labels: performance
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> While executing an interrupt driven commands it may be executed from the map
> on one thread and executed from the queue at a different thread
> This will cause the following exception to be thrown:
> java.lang.IllegalStateException: CoordChangeXCommand already used.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira