Hacker News new | past | comments | ask | show | jobs | submit login
Monoids and Differential Dataflow (github.com/frankmcsherry)
99 points by pplonski86 on March 10, 2019 | hide | past | favorite | 7 comments



If you're interested in the mathematics underpinning parallel models of computing, and their relation to dependency graphs, I recommend looking at 'trace theory'. It's built on the abstract algebra of trace monoids.

Trace theory seems to have fallen out of academic fashion. I have a feeling it may have a resurgence of interest in coming decades, as it is useful for analysing concurrent systems.


Volker Diekert, Yves Metivier, "Partial Commutation and Traces https://pdfs.semanticscholar.org/d67a/c4c1e5967f7e114f390245...


I think I recall LaBRI being fond of infinite trees for logic programming too. I like trees. I never saw the paper you linked so thanks a lot.


odd, college computing branch director mentioned that a few times but it was never the subject of a class or even a chapter. Thanks for the hint.


I am a happy user of differential dataflow (DD), which has been great for simplifying an app that I care about.

The app in question already includes a form of the connected components computation Frank is describing improvements to in this post so I’m excited to see whether these ideas help make things work even better.

Finally, if you’re interested in the original foundations underlying the underlying library, check out “Foundations of Differential Dataflow”, Abadi, McSherry, and Plotkin, FoSSaCS 2015: http://homepages.inf.ed.ac.uk/gdp/publications/differentialw... or, for even more mathematical context about why this works, check out, e.g., Bruce Sagan’s slides on the Mobius Inversion function: https://users.math.msu.edu/users/sagan/Slides/MfpBog1h.pdf

In conclusion: this transition from abelian groups to monoids looks like a nice generalization of the underlying theory!


<3


It's nice to see Rust being used successfully for some fairly high-level, research-like problems. The whole blog series is quite interesting (you can find the older posts in the readme file for the repo, or more conveniently in the "posts" folder, listed by date).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: