<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">I've said this in a previous thread on
      this same issue, I will repeat myself as many times as needed.<br>
      <br>
      Continuous queries require the previous value itself, not just
      knowledge of the type of the previous value. Strongly typed caches
      solve no problem here. <br>
      <br>
      So if we half-fix query but leave CQ broken I will be half-happy
      (ie. very depressed) :)<br>
      <br>
      I'd remove these commands completely or possibly remove them just
      from public API and keep them internal.<br>
      <br>
      Adrian<br>
      <br>
      <br>
      On 06/27/2017 01:28 PM, Sanne Grinovero wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFm4XO13KNZW2au2oOtZLqV_qugH_ZcL03MO5g1YTLUZSPpuNQ@mail.gmail.com">
      <div dir="auto">
        <div><br>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On 27 Jun 2017 10:13, "Radim Vansa"
              &lt;<a href="mailto:rvansa@redhat.com"
                moz-do-not-send="true">rvansa@redhat.com</a>&gt; wrote:<br
                type="attribution">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
                <br>
                I am working on entry version history (again). In Como
                we've discussed<br>
                that previous values are needed for (continuous) query
                and reliable<br>
                listeners, </blockquote>
            </div>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Index based queries also require the previous
          value on a write - unless we can get "strongly typed caches"
          giving guarantees about the class to represent the content of
          a cache to be unique. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Essentially we only need to know the type of the
          previous object. It might be worth having a way to load the
          type metadata if the previous value only. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">so I
                wonder what should we do with functional write-only<br>
                commands. These are different to commands with flags,
                because flags<br>
                (other than ignore return value) are expected to break
                something.</blockquote>
            </div>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Sorry I hope to not derail the thread but let's
          remind that we hope to evolve beyond "flags are expected to
          break stuff" ; we never got to it but search the mailing
          list. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Since flags are exposed to the user I would
          rather they're not allowed to break things. </div>
        <div dir="auto">Could they be treated as hints? Ignore the flag
          (and warn?) if the used  configuration/integrations veto them.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Alternatively, let's remove them from API.
          Remember "The Jokre" POC was intentionally designed to explore
          pushing the limits on performance w/o end users having to
          solve puzzles, such as learning details about these flags and
          their possible side effects. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">So assuming they become either "safe" or
          internal, maybe you can take advantage of them? </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">I see<br>
                the available options as:<br>
                <br>
                1) run write-only commands 'optimized', ignoring any
                querying and such<br>
                (warn user that he will break it)<br>
                <br>
                2) run write-only without any optimization, rendering
                them useless<br>
                <br>
                3) detect when querying is set up (ignoring listeners
                and maybe other<br>
                stuff that could get broken)<br>
              </blockquote>
            </div>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Might be useful for making a POC work, but I
          believe query will be very likely to be often enabled. </div>
        <div dir="auto">Having an either / or switch for different
          features in Infinispan will make it harder to use and
          understand, so I'd rather see work on the right design as
          taking temporary shortcuts risks baking into stone features
          which we later struggle to fix or maintain.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <br>
                4) remove write-only commands completely (and probably
                functional<br>
                listeners as well because these will lose their purpose)<br>
              </blockquote>
            </div>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">+1 to remove "unconditional writes", at least an
          entry version check should be applied. </div>
        <div dir="auto">I believe we had already pointed out this would
          eventually happen, pretty much for the reasons you're hitting
          now. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <br>
                Right now I am inclined towards 4). There could be some
                internal use<br>
                (e.g. multimaps) that could use 1) which is ran without
                a fancy setup,<br>
                though, but it's asking for trouble.<br>
              </blockquote>
            </div>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">I agree! </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Thanks </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <br>
                WDYT?<br>
                <font color="#888888"><br>
                  Radim<br>
                  <br>
                  --<br>
                  <br>
                  Radim Vansa &lt;<a href="mailto:rvansa@redhat.com"
                    moz-do-not-send="true">rvansa@redhat.com</a>&gt;<br>
                  JBoss Performance Team<br>
                  <br>
                  ______________________________<wbr>_________________<br>
                  infinispan-dev mailing list<br>
                  <a href="mailto:infinispan-dev@lists.jboss.org"
                    moz-do-not-send="true">infinispan-dev@lists.jboss.org</a><br>
                  <a
                    href="https://lists.jboss.org/mailman/listinfo/infinispan-dev"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">https://lists.jboss.org/<wbr>mailman/listinfo/infinispan-<wbr>dev</a><br>
                </font></blockquote>
            </div>
            <br>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
infinispan-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/infinispan-dev">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a></pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>