<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Balz<br>
    <br>
    Thanks very much for your feedback.<br>
    <br>
    Yes, let's spec this out first or/and maybe create a
    "sandbox"-branch.<br>
    <br>
    Maybe we can use<br>
    <br>
    <a class="moz-txt-link-freetext" href="https://github.com/wyona/yanel/wiki">https://github.com/wyona/yanel/wiki</a><br>
    <br>
    for this. WDYT?<br>
    <br>
    Also a tech-lunch would certainly help. What about Friday June 8th?<br>
    <br>
    Best wishes<br>
    <br>
    Michael<br>
    <br>
    Am 30.05.12 14:55, schrieb basZero:
    <blockquote
cite="mid:CAOXzDSF9new2R6nS3S2WA97ziUAghsuJ-cv=MTXxrGdTwE7=jg@mail.gmail.com"
      type="cite">Hi Michael,
      <div>i can have a look at my mails and I'll send them to you
        again.</div>
      <div><br>
      </div>
      <div>Your suggested behaviour looks good to me, although the
        waiting write for all active reads is probably not that easy to
        implement.</div>
      <div><br>
      </div>
      <div>Another very important aspect is to consider the correct
        scope:</div>
      <div>- 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();)</div>
      <div><br>
      </div>
      <div>- 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.</div>
      <div><br>
      </div>
      <div>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 :)</div>
      <div><br>
      </div>
      <div>Cheers</div>
      <div>Balz</div>
      <div>
        <br>
        <div title="signature"> </div>
        <div class="gmail_quote">On Wed, May 30, 2012 at 2:43 PM,
          Michael Wechner <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:michael.wechner@wyona.com" target="_blank">michael.wechner@wyona.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Balz<br>
            <br>
            I remember that you once suggested how we should improve
            concurrent read/write operations, but<br>
            unfortunately I cannot find your email anymore.<br>
            <br>
            I think the behaviour should be as follows:<br>
            <br>
            - Concurrent read operations do not block each other<br>
            - If a thread wants to write, then it first needs to wait
            until all current read operations have finished<br>
            - A write operation blocks new read requests until the
            writing has finished<br>
            <br>
            It seems to me the following articles describe the solution
            quite nicely<br>
            <br>
            <a moz-do-not-send="true"
              href="http://www.javalobby.org/java/forums/t45090.html"
              target="_blank">http://www.javalobby.org/java/forums/t45090.html</a><br>
            <a moz-do-not-send="true"
href="http://tutorials.jenkov.com/java-concurrency/read-write-locks.html"
              target="_blank">http://tutorials.jenkov.com/java-concurrency/read-write-locks.html</a><br>
            <br>
            WDYT?<br>
            <br>
            As an alternative we could also implement the functionality,
            that if a repository has revisions enabled and<br>
            if revisions are actually being created, that the read
            process always accesses the most recent revision, which<br>
            would normally be the same as accessing the actuall node. Of
            course the creation of the revision would also have to be
            locked.<br>
            <br>
            Thanks<span class="HOEnZb"><font color="#888888"><br>
                <br>
                Michael<br>
                -- <br>
                Yanel-development mailing list <a
                  moz-do-not-send="true"
                  href="mailto:Yanel-development@wyona.com"
                  target="_blank">Yanel-development@wyona.com</a><br>
                <a moz-do-not-send="true"
                  href="http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development"
                  target="_blank">http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development</a><br>
              </font></span></blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>