-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement slab level cache for remote frees #634
Comments
Hi Matt,
We sure are. In tremor, and I have a project at work ( axiom now ) where I
think it's a great fit.
We'll ask the community as well
Cheers,
Darach.
…On Thu, Sep 14, 2023, 22:15 Matthew Parkinson ***@***.***> wrote:
@Licenser <https://github.com/Licenser> @darach
<https://github.com/darach> are you still using snmalloc. If so do you
have any benchmarks that represent your workload? We have some ideas that
would benefit your kind of workload for Tremor.
—
Reply to this email directly, view it on GitHub
<#634 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABX5MW5MOJBESOQQAOE7FLX2NQVNANCNFSM6AAAAAA4YXRFRI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Awesome thanks. Any benchmarks we can run would really help us in justifying the engineering work. |
Our CI benchmarks are snmalloc based https://www.tremor.rs/benchmarks/ - relatively boring UI there. They have changed enough though in themselves and we rewrote the runtime and connectors so the benchmarking |
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
I've spent a while playing with various cache strategies (though nothing very sophisticated, just sort of seeing what the low-hanging fruit was like). For the two workloads I've tried, for three interesting choices of hashes, I currently have these message counts:
The hash here is inspired by https://github.com/skeeto/hash-prospector but is sort of "a third" of that:
I'm sure it's possible to do better, but that seems to work alright, though it's not sensitive to the upper bits of the slab! Of note, however, changing the shift to |
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
While working on microsoft#634, it's useful to be able to simulate caching policies without having to write all the C++ to actually run them. Here's a terrible little Perl script that can probably do most of what you might want.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
- Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of microsoft#634
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
Approximate a message-passing application as a set of producers, a set of consumers, and a set of proxies that do both. We'll use this for some initial insight for microsoft#634 but it seems worth having in general.
@nwf-msr observed that we could improve the performance of remote deallocation if the producer does more work on building lists for each slab before returning to the original allocator. This could improve producer/consumer scenarios further.
Tasks
The text was updated successfully, but these errors were encountered: