TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: How did you learn distributed computing/systems?

25 点作者 yr大约 14 年前
please suggest any tutorials/vidoes/books or courses you used to learn and implement large scale distributed systems. I'm looking for something more practical with code/examples.

6 条评论

blrgeek大约 14 年前
Did an MS in CS ;-)<p>MIT OCW<p><a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-824-distributed-computer-systems-engineering-spring-2006/" rel="nofollow">http://ocw.mit.edu/courses/electrical-engineering-and-comput...</a><p>First start on the OCW course work. The terminology, basic algos, etc. are an important base to build - so you are able to build on other work, and not reinvent the basics.<p>Large scale distributed systems are HARD problems to solve.<p>The only way you can learn is to start by coding up the simple problems and getting to the bigger problems.<p>If you're a masochist, join someplace where they need to debug and maintain high scale distributed systems. The day you start solving multi-system deadlocks &#38; data integrity you're getting there :)<p>And read <a href="http://eferm.com/implementing-durability-for-in-memory-databases-on-ssds" rel="nofollow">http://eferm.com/implementing-durability-for-in-memory-datab...</a> to get an idea of how to concurrency affects everything!<p>Books &#38; Pubs<p><a href="http://en.wikipedia.org/wiki/Distributed_computing#References" rel="nofollow">http://en.wikipedia.org/wiki/Distributed_computing#Reference...</a><p><a href="http://en.wikipedia.org/wiki/List_of_important_publications_in_concurrent,_parallel,_and_distributed_computing" rel="nofollow">http://en.wikipedia.org/wiki/List_of_important_publications_...</a><p>[edited formatting]
Animus7大约 14 年前
Distributed systems are just parallel systems in which any operation can fail.<p>There's a lot of boxed strategies you can use and literature you could read, but understanding the above is half the battle. Therefore I'd recommend anyone starting out to brush up on concurrency first.
bmelton大约 14 年前
I'd known, theoretically, about them for some time, but my first crash course was when I had to build (what I have labelled) a reverse-chat application for a very large government customer.<p>I was tasked with building an application that would allow a central presenter the ability to 'distribute' his chat messages out to as much as 5,000 users. The users could reply, but they would be moderated (and aggregated) by a team of n moderators (where n happened to be 3). User comments would be 'promoted' to the presenter, and the questions wouldn't show up on the screen unless the presenter responded to them.<p>The constraints were ridiculous. I had to build this app with Java, to be hosted on BEA WebLogic application server, and would be surfaced as a portlet on a BEA WebLogic portal. I was not allowed to make any changes to any existing databases already present though after some thought, I was able to get an Apache Derby database approved.<p>Long story short, the product was built, yadda yadda. After they'd used it a few times, some of the constraints were removed, and I was able to migrate it to a load-balanced platform. Of course, if you load balance an embedded database on two different servers, what happens is each node writes to its own data store, and that means that the users on side 1 are able to see side 1 chat, and the users on side 2 are able to see the side 2 chat.<p>So what I needed then, was some way for them to communicate. Since I'm tired of typing, I ended up having to write a bridge layer (with JMS) that communicated updates across the board, and then I ended up writing a task queue that allowed for components to be pushed into a queue, to prevent congestion.
kovar大约 14 年前
I learned about distributed computing in the '80s by writing a lot of small client server applications, tearing apart early chat systems, looking at the internals of NFS, etc.<p>Pick some current distributed system you find interesting and write a simple version of it. You probably can hack together a lightweight dropbox clone pretty easily.<p>Pick up a good book on network internals. You should find a lot of good information on fundamentals as well as example problems for you to work on.
jconley大约 14 年前
I learned by founding a startup that productized a distributed system. One of the other cofounders had experience in the area, so, I guess I did it "old school" with a mentor. Highly recommended. There's nothing quite like a trial by fire when there is a fire fighter sitting next to you at the same folding table.
plamb大约 14 年前
This site is probably the best place to start: <a href="http://highscalability.com/" rel="nofollow">http://highscalability.com/</a><p>I learned most of what I know from working for <a href="http://www.gemstone.com" rel="nofollow">http://www.gemstone.com</a>
评论 #2440055 未加载