<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi there.<div><br></div><div>Lets take the 2 API sets (M/R and distributed exec) separately:</div><div><br></div><div>M/R</div><div>* Why does MapReduceTask extend Set? &nbsp;It probably shouldn't even extend DistributedRemoteTask, since some methods such as execute(Callable) doesn't make sense for MapReduceTask. &nbsp;Perhaps a common super-interface? &nbsp;That alone should simplify the generics...&nbsp;</div><div>* Why does Mapper.map() return a Map? [1] Shouldn't it return a single transformation for a given K and V?</div><div>* Reducer.reduce()'s return type should not necessarily be the same type as the mapped transformation. &nbsp;Also, does the reducer really need the key? Surely just the transformed version of each K/V pair.</div><div>* Similarly, Collator.add() should just need the address and the reduced result from each node (each node would only produce 1 result!)</div><div><br></div><div>DistExec</div><div>* Why do you have execute() and executeAsync() with no params? &nbsp;What do these methods do?</div><div>* Not sure what DistributedTaskContext is all about. &nbsp;What does read() and write() do? &nbsp;Is this meant to be a "layer" in front of the cache in question? &nbsp;Why not just pass in a ref to the cache?</div><div>* What does Factory do?</div><div><br></div><div>Almost there! &nbsp;:-)</div><div><br></div><div>Cheers</div><div>Manik</div><div><br></div><div>[1]&nbsp;How many times can I say "map" in one sentence? &nbsp;:)</div><div><br></div><div><br><div><div>On 10 Jan 2011, at 19:28, Vladimir Blagojevic wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<div bgcolor="#ffffff" text="#000000">
    On 11-01-05 3:39 PM, Manik Surtani wrote:
    <blockquote cite="mid:701E91AE-E28A-4CE1-A132-2670C4A7DE3D@jboss.org" type="cite"><br>
      <div>
        <blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica;
            font-style: normal; font-variant: normal; font-weight:
            normal; letter-spacing: normal; line-height: normal;
            orphans: 2; text-indent: 0px; text-transform: none;
            white-space: normal; widows: 2; word-spacing: 0px;
            font-size: medium;"><br>
            <br>
            Awesome! I love this fluent API proposal!<br>
            <font class="Apple-style-span"><font class="Apple-style-span" color="#144fae"><br>
              </font></font></span></blockquote>
        <br>
      </div>
      <div>Cool. &nbsp;Then if this is the case lets stick with the fluent
        API - I think it would make life much easier for developers.</div>
      <br>
      <div>
        <span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium; ">
          <div>
            <div>--</div>
            <div>Manik Surtani</div>
            <br>
          </div>
        </span></div>
    </blockquote>
    <br>
    Proposal Manik and I talked about is here
<a class="moz-txt-link-freetext" href="https://github.com/vblagoje/infinispan/commit/59b0c3cb78bce70fdcd49d2d36f68de110944fc6">https://github.com/vblagoje/infinispan/commit/59b0c3cb78bce70fdcd49d2d36f68de110944fc6</a><br>
    <br>
    I have slightly changed it to better match map/reduce paradigm
    described here <a class="moz-txt-link-freetext" href="http://labs.google.com/papers/mapreduce.html">http://labs.google.com/papers/mapreduce.html</a><br>
    Therefore, we now have both map/reduce and a more simple "execute
    this task unit on remote nodes and return results" proposal. <br>
    Users might not like number of type parameters in MapReduceTask. I
    wanted to be as precise as possible to begin with and we can discuss
    how and if to reduce them.<br>
    Example for map/reduce is WordCountExample.java. Have a look.<br>
    <br>
    I put a proposal in distexec package. I wanted to have parent
    package to branch from. We need to accommodate simple execution
    model, map/reduce, various execution policies and so on. They could
    not fit all in mapreduce package and its children. Hence distexec
    package. If you think you have better name - speak up.<br>
    <br>
    <br>
    Regards,<br>
    Vladimir<br>
  </div>

_______________________________________________<br>infinispan-dev mailing list<br><a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/infinispan-dev</blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div><a href="http://twitter.com/maniksurtani">twitter.com/maniksurtani</a></div><div><br></div><div>Lead, Infinispan</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><br></div></div></span><br class="Apple-interchange-newline">
</div>
<br></div></body></html>