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.
