<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Ludwig,<br>
      <br>
      <blockquote>Ticket #569 is very important rework and attempt to
        clarify what state information are needed to resolve MMR update.<br>
        The design and implementation looks simpler to follow but one
        complexity of state information is about all possible corner
        cases.<br>
        It is very difficult to evaluate all the impacts of such
        changes. Here are few remarks:<br>
        <br>
        Design:<br>
        <br>
        <blockquote>Purging is related to deleted values no longer
          useful. The benefit of purging is to reduce the lenght of the
          entry to write to disk. Purging values is fine, but I think we
          should also purge csn. In fact quite often csn string is
          longer than the value it is related to. We purge deleted
          values from their too old csn (and possibly from the value
          itself), but I think we should also purge present value from
          their too old csn (of course value here is to be kept).
          Reading the code I think it is done in
          entry_delete_present_values_wsi* but I think it could also be
          done in entry_add_present_values_wsi*.<br>
          <br>
          <br>
          Is purging values/csn on min(maxCSN) safe if we have no
          mechanism to guarantee that the RUV contains the RUVElement of
          all the suppliers ? I think it is one of the reason of "little
          conservative" 'min(maxCSN) - purgedelay' . A possibility to
          address that is to implement a periodic dummy replicated
          update on all the suppliers, so that even a not updated
          suppliers sends its RUVElement to the others. Of course it
          help only in topology with all the suppliers having this
          feature.<br>
          <br>
          I agree with creating a dummy value to store the 'adcsn', in
          case an attribute has no present/nor deleted values.<br>
          <br>
          distinguished value is complex to handle. I think it should
          not be considered at all while processing the mods. After all
          the mods have been apply, then we can go throught the entry an
          'resurect' or create the missing RDN values.<br>
          <br>
          Your sentence "It inspects every value in the present and
          deleted valueset although they in most cases already have been
          touched and eventually modified. Handling this in a higher
          layer could avoid unnecessary traversals"<br>
          I do not know how you address this concern but my
          understanding is that it is important to go through
          present/deleted valueset to try to shrink the csnset.<br>
          <br>
        </blockquote>
        Source:<br>
        <blockquote>Code looks nice and I have very few remarks.<br>
          line 463: it is looking like the attribute is normalized (dn)
          before being recorded. Does that mean that the server
          systematically changes the provided attribute values ?<br>
          <br>
          entry_add_present_values_wsi_single_valued: there is no
          checking that the attribute has several values. I guess it is
          done later with schema checking. Why not doing this checking
          here.<br>
        </blockquote>
        <blockquote>line 792: valueset_purge is called with op csn not
          the purged csn (min(maxCSN))<br>
          <br>
          <br>
        </blockquote>
      </blockquote>
      best regards<br>
      thierry<br>
      On 03/20/2013 03:11 PM, Ludwig Krispenz wrote:<br>
    </div>
    <blockquote cite="mid:5149C3AD.2070406@redhat.com" type="cite">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      Hi,<br>
      <br>
      I have been working on ticket #569 and reached a state where I
      would like to get feedback. The latest update contains a link to a
      page on the wiki and an attached patch file.<br>
      <br>
      Please review both and let me know where you think more
      investigation/explanation is needed and what your concerns are.<br>
      <br>
      Thanks,<br>
      Ludwig<br>
      <div class="moz-forward-container"><br>
        <br>
        -------- Original Message --------
        <table class="moz-email-headers-table" border="0"
          cellpadding="0" cellspacing="0">
          <tbody>
            <tr>
              <th nowrap="nowrap" valign="BASELINE" align="RIGHT">Subject:

              </th>
              <td>Re: [389 Project] #569: examine replication code to
                reduce amount of stored state information</td>
            </tr>
            <tr>
              <th nowrap="nowrap" valign="BASELINE" align="RIGHT">Date:
              </th>
              <td>Wed, 20 Mar 2013 14:03:01 -0000</td>
            </tr>
            <tr>
              <th nowrap="nowrap" valign="BASELINE" align="RIGHT">From:
              </th>
              <td>389 Project <a moz-do-not-send="true"
                  class="moz-txt-link-rfc2396E"
                  href="mailto:389-trac@fedorahosted.org">&lt;389-trac@fedorahosted.org&gt;</a></td>
            </tr>
            <tr>
              <th nowrap="nowrap" valign="BASELINE" align="RIGHT">Reply-To:

              </th>
              <td><a moz-do-not-send="true"
                  class="moz-txt-link-abbreviated"
                  href="mailto:nobody@fedoraproject.org">nobody@fedoraproject.org</a></td>
            </tr>
            <tr>
              <th nowrap="nowrap" valign="BASELINE" align="RIGHT">To: </th>
              <td>undisclosed-recipients:;</td>
            </tr>
          </tbody>
        </table>
        <br>
        <br>
        <pre>#569: examine replication code to reduce amount of stored state information
------------------------------------------+---------------------------
        Reporter:  lkrispen               |          Owner:  lkrispen
            Type:  task                   |         Status:  assigned
        Priority:  major                  |      Milestone:  1.3.2
       Component:  Replication - General  |        Version:  1.3.0
      Resolution:                         |       Keywords:
      Blocked By:                         |       Blocking:
          Review:                         |  Ticket origin:  Community
Red Hat Bugzilla:                         |       Screened:  1
------------------------------------------+---------------------------

Comment (by lkrispen):

 The current status of the document is here:
 <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://port389.org/wiki/Entry_State_Resolution">http://port389.org/wiki/Entry_State_Resolution</a>

 The current state of the implementation is in the attached patch file.

 What still needs to be done:
 - complete the test cases and create test scripts
 - verify acceptance test results, some tests fail since they examine
 deleted values and value csns based on the old algorithm, need to modify
 these test cases.
 - there is one test failing because server seems to crash, need to
 investigate this
 - code also contains fix for ticket #602 by setting subsequence numbers,
 investigate if this is correct for all usages of csn_compare or if
 csn_compare needs to be differentiated

-- 
Ticket URL: <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="https://fedorahosted.org/389/ticket/569#comment:6">&lt;https://fedorahosted.org/389/ticket/569#comment:6&gt;</a>
389 Project <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="http://port389.org">&lt;http://port389.org&gt;</a>
389 Directory Server
</pre>
        <br>
      </div>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">--
389-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:389-devel@lists.fedoraproject.org">389-devel@lists.fedoraproject.org</a>
<a class="moz-txt-link-freetext" href="https://admin.fedoraproject.org/mailman/listinfo/389-devel">https://admin.fedoraproject.org/mailman/listinfo/389-devel</a></pre>
    </blockquote>
    <br>
  </body>
</html>