first i want to thank you for a really great p2p simulator!
After all this flattery here is my first question:
Is there a (simple) way in PeerFactSim to define churn factors for specific groups for a specific time?
(e.g. churn factor 0.7 from minute 10 to minute 40 for group germany, 0.5 from 10m-40m for latin america …)
thanks for using the simulator. At the moment it is only possible to activate the churn for all hosts together. The option to specify the affected groups is a nice feature, but it is not planned from our side at the moment. But you are free to include it!
thanks for the quick answer. There is still another open question.
Currently i am using the exponential churn model for which i can chose a churn factor < 0.5.
Why doesnt it work with a factor > 0.5? (actually i just tested 0.6, 0.7, 0.8)
And if i may ask a second question:
could you give me a short hint on which classes i have to focus to implement the ‘churn feature’ i was asking for?
I do not know the details of the implementation in the exponential churn model. But by looking in the classes, I think the calculation of the churn model uses the churn factor only as one component, but uses also other ones. In the calculateTransientCf() method of the ExponentialChurnModel class you find the calculation. And it expects a churn factor less than 0.5.
For your churn feature, I have to correct my previous post. It is already possible to enable churn only for some groups by using “<Properties enableChurn=”false” />” in the host builder configuration. But the time for activating churn is the same for all groups. If you also want this independet for all groups, you have to modify the code, otherwise not.
If this is the case i would introduce a new ChurnGenerator (look at the DefaultChurnGenerator) which has also some actions (which can be configured in an action file) to have this dynamic behaviour.