[Yanel-dev] Concurrent Read Write Locks

Michael Wechner michael.wechner at wyona.com
Wed May 30 21:03:08 CEST 2012


Hi Balz

Thanks very much for your feedback.

Yes, let's spec this out first or/and maybe create a "sandbox"-branch.

Maybe we can use

https://github.com/wyona/yanel/wiki

for this. WDYT?

Also a tech-lunch would certainly help. What about Friday June 8th?

Best wishes

Michael

Am 30.05.12 14:55, schrieb basZero:
> Hi Michael,
> i can have a look at my mails and I'll send them to you again.
>
> Your suggested behaviour looks good to me, although the waiting write 
> for all active reads is probably not that easy to implement.
>
> Another very important aspect is to consider the correct scope:
> - global files (e.g. a data file that can be modified by any user) 
> must use a LOCK object of global scope (that's easy, it's a public 
> static final Object GLOBAL_LOCK = new Object();)
>
> - user specific files (e.g. user profile extension), files that are 
> modified by the same user, always, such modifications do not need to 
> be synchronized globally, but within the session. For Zwischengas I 
> have implemented a nice helper class which uses an object stored in 
> the user's session which gets used for session-scoped synchronization.
>
> If you are planning to draft a design for this, I will spend some time 
> to review it, if you want. Or we can have another tech-lunch together :)
>
> Cheers
> Balz
>
> On Wed, May 30, 2012 at 2:43 PM, Michael Wechner 
> <michael.wechner at wyona.com <mailto:michael.wechner at wyona.com>> wrote:
>
>     Hi Balz
>
>     I remember that you once suggested how we should improve
>     concurrent read/write operations, but
>     unfortunately I cannot find your email anymore.
>
>     I think the behaviour should be as follows:
>
>     - Concurrent read operations do not block each other
>     - If a thread wants to write, then it first needs to wait until
>     all current read operations have finished
>     - A write operation blocks new read requests until the writing has
>     finished
>
>     It seems to me the following articles describe the solution quite
>     nicely
>
>     http://www.javalobby.org/java/forums/t45090.html
>     http://tutorials.jenkov.com/java-concurrency/read-write-locks.html
>
>     WDYT?
>
>     As an alternative we could also implement the functionality, that
>     if a repository has revisions enabled and
>     if revisions are actually being created, that the read process
>     always accesses the most recent revision, which
>     would normally be the same as accessing the actuall node. Of
>     course the creation of the revision would also have to be locked.
>
>     Thanks
>
>     Michael
>     -- 
>     Yanel-development mailing list Yanel-development at wyona.com
>     <mailto:Yanel-development at wyona.com>
>     http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wyona.org/pipermail/yanel-development/attachments/20120530/dd1c5192/attachment-0001.html>


More information about the Yanel-development mailing list