On 03/13/2017 03:21 PM, agallego wrote:
On Thursday, March 9, 2017 at 11:42:03 AM UTC-5, Avi Kivity wrote:
We noticed in ScyllaDB that performance suffers due to high icache
miss
rate; we saw a very low IPC.
I wonder if we can use an implicit execution stage within the future
scheduler via tags.
ala
template<typename T, typename Tag=void>
future<T>...
maybe a new type? -> tagged_future<Tag, VaridaicTypes...>
Maybe it doesn't work due to the variadic template of the future<>?
It's possible to hack something up, but I'm not sure it's worth the
compile time increase. The current interface is simple enough.
Did you guys play w/ the size of the batches of the function call
group... i.e.: how perf changes from say 10 consecutive calls vs 100
vs 1000.
I did not. It's somewhat self tuning in that a too-large batch will get
preempted.
As in, did it have a major negative effect on the IO loop? - just
wondering.
What do you mean?
Thanks for sharing. I have to add this to my seastar work too.
Check your IPC before. If it's not too low, there's probably no point.
I'd guess >= 2: don't touch, < 0.5: definitely, anything else is a
maybe. But that's just a guess.
I guess you found this more useful around the work on scylla on:
Compressing + writing to disk ... or did you have any other insight as
to where in scylla it would be most helpful.
Mostly where we have complex code running on small work items.
Trying to understand how to apply this to some of my seastar stuff.
Thanks for sharing.
We implemented a SEDA-like mechanism to run tasks tied to the same
function sequentially; the first task warms up icache and the branch
predictors, the second and further runs benefit from this warmup.
The implementation of the mechanism in seastar can be viewed here:
https://github.com/scylladb/seastar/commit/384c81ba7227a9a99d485d1bb68c98c5f3a6b209
<https://github.com/scylladb/seastar/commit/384c81ba7227a9a99d485d1bb68c98c5f3a6b209>
Usage in ScyllaDB, with some performance numbers, can be viewed here:
https://github.com/scylladb/scylla/commit/efd96a448cca4499fd40df8b3df3f0f8444a1464
<https://github.com/scylladb/scylla/commit/efd96a448cca4499fd40df8b3df3f0f8444a1464>.
Microbenchmarks see almost 200% improvement while full-system
tests see
around 50% improvement, mostly due to improved IPC.
--
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]
<mailto:[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.