How small is 'small' in this context? It's interesting to contrast this
with the direction of modern analytical databases, where there is a natural
pipeline of operators through which a batch of data (maybe 10KB, but with
high variance) runs. Rather than execute this pipeline one
operator-at-a-time, the most recent work (e.g. [1][2]) in the area
recommends doing everything possible to keep the current batch in cache,
and sending it as far through its pipeline as it can go without an
(application-level) context switch.

The benefit is partly that the cost of moving data between stages is
greatly reduced (indeed, the idea is to compile query plans into one giant
function with no parameter passing or return overhead), at the cost of
losing icache locality across batches (but you get plenty of it
intra-batch).

[1] http://www.vldb.org/pvldb/vol4/p539-neumann.pdf
[2] http://15721.courses.cs.cmu.edu/spring2016/papers/p743-leis.pdf

On 15 March 2017 at 06:42, 'Nitsan Wakart' via mechanical-sympathy <
[email protected]> wrote:

> This to me is the distilled observation here, so repeating in isolation:
> "Mostly where we have complex code running on small work items"
> Which makes allot of sense.
>
> --
> You received this message because you are subscribed to the Google Groups
> "mechanical-sympathy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to