4 ms·
What is the purpose in combining the two? A way of creating a distributed system like Inferno? Or because you happen to like both ideas?
by strey 19y ago
What is the purpose in combining the two? A way of creating a distributed system like Inferno? Or because you happen to like both ideas?
- nostrademons 19y agoI happen to like both ideas. I was big into P2P systems when I got my first programming job - this was right after Napster and Gnutella came out. Then I did a lot of research into programming language design in college. There's some synergy in that every programming language needs some system to script if it wants to gain massive adoption, so you might as well use the programming language you just invented to write the cool app you're about to invent. Plus, there're some really interesting possibilities if you could replace all these social networking websites with a gigantic distributed P2P network. Social software partitions very well - even if a particular service has millions of users, it's unlikely that any given user exchanges data with more than about 150 other users. You'd eliminate the need for Facebook, at the least, and probably the need for most web startups.
- strey 19y agoThat is a cool idea. I just finished a class this quarter on distributed systems, which I really liked. I'd be interested in hearing your ideas about P2P. Things like epidemic protocols and chord are pretty clever.
- deleted 19y ago[deleted]
- nostrademons 19y agoYeah, I was really interested in Chord and Kademlia while I was looking at this stuff. You know that rtm, one of Chord's principle researchers, is a founder of YCombinator, right? One other thing I really wanted to investigate: using statistical uptime records to distribute data across peers and get high-availability. One problem with P2P networks is that infrequently-accessed material tends to become unavailable - this is even an explicit design goal of FreeNet. It's fine when you're downloading the latest TV show, but it's a real problem if you want to distribute micro-social-network-apps over P2P. Yet most people keep their computers on at fairly predictable times of the day. So you could use that statistical uptime data, from their peers, to figure out where to spread data to make sure that at least one copy is always online at all times. Then you could merge that with access-logs so that data that's frequently accessed migrates to computers near the ones that want to access it. Sorta like a P2P-Akamai. I've noticed that my flists on FaceBook and LiveJournal are very cliquey, and it's always the same folks posting. It's not outside the realm of computational feasibility to connect together your computer with all your friends' computers, P2P, and only push updates to people who are interested in them.