> On July 11, 2014, 7:30 p.m., Robert Kanter wrote:
> > core/src/main/java/org/apache/oozie/service/ZKLocksService.java, line 104
> > <https://reviews.apache.org/r/23403/diff/2/?file=628236#file628236line104>
> >
> > A few questions about this:
> >
> > 1) If a thread acquires a readlock and another thread acquires a
> > writelock, then you'll lose the readlock because they both get stored in
> > the same HashMap indexed by the resource. Perhaps we need two maps? one
> > for read locks and one for write locks?
> >
> > 2) Isn't this going to be very slow? acquiring and releasing any lock
> > requires synchronizing on the zkLocks map. That's a huge bottleneck. I
> > don't have a better idea though; perhaps there's some "fancier" Map from
> > Guava that can help here to make it more granular?
1.
No that will not happen. If you have a readlock, you can't acquire writelock.
For other case, we remove lock only if no one is waiting or holding the lock.
int val = lock.getParticipantNodes().size();
if (val == 0) {
synchronized (zkLocks) {
zkLocks.remove(resource);
}
}
2. No. We are not synchronizing whole acquire block, only when we add/remove
entry from hashmap.
- Purshotam
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/23403/#review47671
-----------------------------------------------------------
On July 11, 2014, 12:56 a.m., Purshotam Shah wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/23403/
> -----------------------------------------------------------
>
> (Updated July 11, 2014, 12:56 a.m.)
>
>
> Review request for oozie.
>
>
> Bugs: OOZIE-1923
> https://issues.apache.org/jira/browse/OOZIE-1923
>
>
> Repository: oozie-git
>
>
> Description
> -------
>
> OOZIE-1923 ZKLocksService locks are not re-entrant like MemoryLocks
>
>
> Diffs
> -----
>
> core/src/main/java/org/apache/oozie/service/ZKLocksService.java d03a899
> core/src/test/java/org/apache/oozie/service/TestZKLocksService.java a773469
>
> Diff: https://reviews.apache.org/r/23403/diff/
>
>
> Testing
> -------
>
> UTC
>
>
> Thanks,
>
> Purshotam Shah
>
>