On Jan 14, 2013, at 4:47 PM, Peter Levart <peter.lev...@gmail.com> wrote:

> On 01/14/2013 04:06 PM, Paul Sandoz wrote:
>> On Jan 14, 2013, at 3:38 PM, Peter Levart <peter.lev...@gmail.com> wrote:
>> 
>>> I think these classes are targeted at use cases such as gathering real-time 
>>> statistics of profiling or business data, where data comes in from various 
>>> sources in real-time and statistics are sampled in real-time too...
>>> 
>>> For bulk processing, the new streams API seems more appropriate. I think 
>>> the user might be able to control the order of operations applied 
>>> (j.u.stream.Spliterator API indicates that the spliting of work among FJP 
>>> threads could be controled and we can hope that the order of reduction of 
>>> intermediary results would also be controllable by the user or at least 
>>> defined).
>>> 
>>> Can streams API developers shed some light on that?
>>> 
>> DoubleStream (when added) will have a sum method that will defer to a 
>> reduce, so elements will be processed in order, but the grouping of elements 
>> depends on how the input is split and to what depth, and the user will have 
>> no control over that.
> Unless user implements his own Spliterator, right?
> 

To some extent. A Spliterator can split or say "I ain't gonna split no 
further!" but the framework may decide not to split before the Spliterator says 
no. 

IMHO i think a good Spliterator should keep on splitting until it reaches the 
limits of it's data and grouping wise it is best if a balanced tree is 
produced. Also it is worth pointing out that type of elements supplied by the 
spliterator may not be the same type of elements to reduce on.

FWIW i was assuming 95% of users will never see a Spliterator.

Paul.

Reply via email to