So the way a search is executed is that the client sends it to the hub, which then sends it to each of the connected users? In other words, the hub does not maintain a master copy of everybody's shares. If so, how scaleable is this? If all DC users were connected to only one hub, would some clients be overwhelmed by the number of queries? (not to mention the hub itself for having to send out a copy of the query to every single user).
I believe Napster actually maintained a master database.
Quick question about how DC currently works
Moderator: Moderators
-
- Posts: 73
- Joined: 2003-01-06 09:32
-
- DC++ Contributor
- Posts: 3212
- Joined: 2003-01-07 21:46
- Location: .pa.us
Re: Quick question about how DC currently works
Find a P2P program currently in use that does searches server side (I know OpenNap does this, because Napster did). I believe they all just forward search requests to individual clients. That's how gnutella did it, and it's a much bigger network (no numbers) than DC is.Kent Wang wrote:n other words, the hub does not maintain a master copy of everybody's shares. If so, how scaleable is this?
Yes and no. Check out some of fusbar's posts, this is typically an issue he brings up, searching takes up a bit of CPU for him. I think CPU is the issue, not bandwidth - even though he's on a 10mbit line. I don't think search results will swamp a normal DSL or even modem user... but I could be way wrong on that.Kent Wang wrote:If all DC users were connected to only one hub, would some clients be overwhelmed by the number of queries?
Well, even for very long search strings, it's only a pretty small packet. Each client generates a maximum of 10 or 5 hits, and each will be longer than the search packet (since that's substrings, and you have to return the full file name and path, which is likely large). I think, assuming each client hits the search terms even once, that the hub comes out ahead if it doesn't have to do searching server side. Active clients get results back via UDP, but passive ones do force results to be returned via the hub.Kent Wang wrote:(not to mention the hub itself for having to send out a copy of the query to every single user).
An alternative is to keep hashes of files rather than files themselves. There ave various subtleties of this I'll expand on if anyone cares, but I'd guess legally it would add negligable risk/vulnerability.Keeping records of peoples shares is exactly what killed napster
I believe G2/Mike's Protocol/whatever your politics wants to call it concentrates file lists in the superpeers/supernodes.That's how gnutella did it, and it's a much bigger network (no numbers) than DC is.