Live data from Hacker News

Distributed systems theory for the distributed systems engineer

the-paper-trail.org

11–19 of 19 posts

Re: Distributed systems theory for the distributed systems engineer

#11

This is a pretty limited view of distributed systems engineering, particularly at the high-end. Some topics that are essential for designing efficient, massively distributed systems: - Greedy routing theory i.e. protocol design that is robust in a Nash equilibria sense. It still amazes me how many distributed systems are built on protocol designs that are provably unstable and inefficient. - Space decomposition data…

Instead of providing resources, continuation, or even references to these topics for interested minds to dive into, I find bashing and gloating. Or am I reading this completely wrong?

Don't get me wrong, it's good to point out the writing's shortcomings, but as you appear to be knownledgeable in the field, please don't force others to begin from the bottom. Share your knownledge.

Re: Distributed systems theory for the distributed systems engineer

#12
post #11

This is a pretty limited view of distributed systems engineering, particularly at the high-end. Some topics that are essential for designing efficient, massively distributed systems: - Greedy routing theory i.e. protocol design that is robust in a Nash equilibria sense. It still amazes me how many distributed systems are built on protocol designs that are provably unstable and inefficient. - Space decomposition data…

Instead of providing resources, continuation, or even references to these topics for interested minds to dive into, I find bashing and gloating. Or am I reading this completely wrong? Don't get me wrong, it's good to point out the writing's shortcomings, but as you appear to be knownledgeable in the field, please don't force others to begin from the bottom. Share your knownledge.

I see a listing of what the link lacks. It's not the parent's responsibility to provide references without being asked to do so - gathering resources for this kind of post can easily take 2-3x the effort of writing up the original post, especially if the parent's author hasn't studied the subject formally recently. Also, he doesn't know that there's demand for more references without first posting, and if we expect all such posts to contain references, we discourage their authors from writing them.

Re: Distributed systems theory for the distributed systems engineer

#13
I would like to know if any site reliability engineer or sys-admin or someone in any (dev)ops role ever seeks the help of distributed systems theory. I have seen many of the real-life systems that are listed in the article thrown in as a recommended reading for preparation for many job interviews. I've just never managed to figure out in what situations or scenarios (especially troubleshooting-related) the knowledge of the design or the design principles behind a distributed system comes really handy for a person in any of the roles I mentioned above. Any enlightenment will be greatly appreciated.

(EDIT: I guess what I'm trying to get at is that it would be nice to read a detailed post about how someone who maintains a big distributed system handled a major troubleshooting or scaling problem and how, if any, distributed systems principle or theory came handy in that exercise.)

Re: Distributed systems theory for the distributed systems engineer

#15

This is a pretty limited view of distributed systems engineering, particularly at the high-end. Some topics that are essential for designing efficient, massively distributed systems: - Greedy routing theory i.e. protocol design that is robust in a Nash equilibria sense. It still amazes me how many distributed systems are built on protocol designs that are provably unstable and inefficient. - Space decomposition data…

Will you open source SpaceCurve so that we can learn from the implementation of all of the points you mentioned?

Re: Distributed systems theory for the distributed systems engineer

#16
post #13

I would like to know if any site reliability engineer or sys-admin or someone in any (dev)ops role ever seeks the help of distributed systems theory. I have seen many of the real-life systems that are listed in the article thrown in as a recommended reading for preparation for many job interviews. I've just never managed to figure out in what situations or scenarios (especially troubleshooting-related) the knowledge…

I don't have time to write a detailed post, but would a book recommendation work? :)

"The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems", coming out next month, provides a good viewpoint on how distributed systems design knowledge is useful to someone in a sysadmin role. (I've read a preview via Safari Online and found it an excellent resource.)

[0] http://www.amazon.com/The-Practice-Cloud-System-Administrati...

Re: Distributed systems theory for the distributed systems engineer

#17
post #16
post #13

I would like to know if any site reliability engineer or sys-admin or someone in any (dev)ops role ever seeks the help of distributed systems theory. I have seen many of the real-life systems that are listed in the article thrown in as a recommended reading for preparation for many job interviews. I've just never managed to figure out in what situations or scenarios (especially troubleshooting-related) the knowledge…

I don't have time to write a detailed post, but would a book recommendation work? :) "The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems", coming out next month, provides a good viewpoint on how distributed systems design knowledge is useful to someone in a sysadmin role. (I've read a preview via Safari Online and found it an excellent resource.) [0] http://www.amazon.com/T…

Thanks! I bookmarked this one a few weeks ago and can't wait for it to come out next month.

Re: Distributed systems theory for the distributed systems engineer

#18
post #11

This is a pretty limited view of distributed systems engineering, particularly at the high-end. Some topics that are essential for designing efficient, massively distributed systems: - Greedy routing theory i.e. protocol design that is robust in a Nash equilibria sense. It still amazes me how many distributed systems are built on protocol designs that are provably unstable and inefficient. - Space decomposition data…

Instead of providing resources, continuation, or even references to these topics for interested minds to dive into, I find bashing and gloating. Or am I reading this completely wrong? Don't get me wrong, it's good to point out the writing's shortcomings, but as you appear to be knownledgeable in the field, please don't force others to begin from the bottom. Share your knownledge.

Took a little bit of reading but the OP is founder of company [0] making a massively scalable geospatial database. This is the closest article [1] I can find which has anything close to details. It lists the following technologies:

* A low level stack that bypasses the OS for at least disk IO (supposed to provide a 2-3x throughput increase)

* "polymorphic" space-filling curves for distributed parallel indexing

* hyper-dimensional spatial sieves [2]

* Allen’s Interval Algebra to parallelise SQL statements

More discussion on some of the OP's previous hacker news posts [3].

[0] - http://spacecurve.com/

[1] - http://www.it-director.com/blogs/Bloor_IM_Blog/2014/7/how-do...

[2] - http://www.google.com/patents/US20090182837

[3] - https://news.ycombinator.com/item?id=7482151

Re: Distributed systems theory for the distributed systems engineer

#19
post #11

This is a pretty limited view of distributed systems engineering, particularly at the high-end. Some topics that are essential for designing efficient, massively distributed systems: - Greedy routing theory i.e. protocol design that is robust in a Nash equilibria sense. It still amazes me how many distributed systems are built on protocol designs that are provably unstable and inefficient. - Space decomposition data…

Instead of providing resources, continuation, or even references to these topics for interested minds to dive into, I find bashing and gloating. Or am I reading this completely wrong? Don't get me wrong, it's good to point out the writing's shortcomings, but as you appear to be knownledgeable in the field, please don't force others to begin from the bottom. Share your knownledge.

Most of these topics have scant literature, or what is there is very theoretical in nature rather than something directly reducible to practice.

Greedy routing theory does have a lot of literature around it because it is used a lot in Layer-2 and Layer-3 packet routing protocols to optimize aggregate throughput of inherently decentralized systems. A lot of the robustness of modern IP networks are explained by this. However, above Layer-3 and particularly at the application level you almost never see properly designed distributed protocols; the people that design L2 routing protocols are not the people that design distributed systems and the knowledge is not transferred. (Admittedly this is a difficult mathematical area to understand with a lot of open problems. I know just enough to make good design decision but otherwise do not understand the underlying math.)

I've stated many times that the HPC algorithm people could learn a lot from the people that design distributed databases and that distributed databases theory can learn a lot from the people that design massively parallel HPC algorithms. As far as I can tell, those two groups of people do not talk to each other. I just happen to have done considerable R&D in both fields so I see what people in both domains are missing.

I've recently been tasked with writing about some of these topics, which should be interesting. My intent was not to bash or gloat but to highlight the point that we can do much better than we (or even I) are currently doing with distributed systems.

Post reply on HN