Skip to main content

Theoretical and practical peer capacity of peergroups

2 replies [Last post]
seiska
Offline
Joined: 2008-07-03
Points: 0

Hello,

I've been studying JXTA for a while and am currently in design phase of my p2p system.

One important issue which I cannot find answer and it has dramatic affect on design, is peer capacity of peer groups.

By looking at source code, I find one clue from file RdvPeerRdvService.java:
public final static int DEFAULT_MAX_CLIENTS = 200;

Then this wiki page gives something:
http://wiki.java.net/bin/view/Jxta/RendezvousServiceImplementation
@ Demotion of a Rendezvous
saying: "The automatic demotion mechanism kicks in if there are more than 5 rendezvous in a group"
(this is of course for situation when peers use RDV autostart, but still this gives some clues.)

Now, if I make all peers come into same netpeergroup, would limit of peers be then 5 * 200 = 1000 peers?
Or can netpeergroup handle much larger amounts of peers?
Does anyone have any concrete tested or experienced numbers of how many peers we can have in netpeergroup?

How should p2p application with massive number of peers be organized?
Should I make smaller islands (1000 peers) and RDVs of these small islands would be connected to higher level group?

Any hints, even to some documents discussing with this issue or even remotely related to it would help.

Message was edited by: seiska

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
seiska
Offline
Joined: 2008-07-03
Points: 0

I got some answers from source which I consider reliable in context of JXTA... (Please don't ask about source, I'm not going to tell who he/she is.)

Q: Does this mean I cannot get more than 5 rendezvous on netpeergroup?

A: No. In a peergroup, not every peer is connected to every peer. It works with views, i.e., a subset of "known" peers of a peergroup around a peer of that peergroup. A peer will flip from EDGE to RDV state when there is too many or not enough RDVs "in the area/peerview". That limit applies locally, but not globally. It depends how the EDGE peers and RDV peers are connected together. Globally, you can have any number of RDVs in a peer group.

Q: If it does, I think we have problem. By looking source code I found that RdvPeerRdvService.java has line:
public final static int DEFAULT_MAX_CLIENTS = 200;

A: That is the maximum number of connections (leases) a peer will accept from EDGE and other RDVs. Remember RDVs are also connected to other RDVs in the peergroup.

Q: Would following plan work:
netPeerGroup.getRendezVousService().setAutoStart(true, 5*60*1000);

A: 5*60*1000 = 5 minutes. That might be a little too much if your network is dynamic (i.e., many peers connecting and leaving). If it is dynamic, I would try with 30 seconds first.

seiska
Offline
Joined: 2008-07-03
Points: 0

After few hours of googling, I found document (which overall is good reading on this topic):
http://www.irisa.fr/paris/pages-perso/Mathieu-Jan/talks/2007-03-29_IPDPS...

This study shows that they have had several hundreds of rendevous peers in network of 1250 peers. So there must be something I have not understood with document:
http://wiki.java.net/bin/view/Jxta/RendezvousServiceImplementation
describing autodemotion.

Message was edited by: seiska