I am looking forward to using it, but has one question about the
FreePastry simulation though.
It seems to simulate Pastry at the overlay level instead of packet-level
like ns-2 tool. Can i ask if you know any researches/studies that use
FreePastry simulator ? I would like to see what measurement we can get
from using such overlay simulator: overlay hop-counts, physical
hop-counts, ..?
And by the way, how long would it take to run a simulation consisting of
100K nodes ?
Thanks,
Anh.
Jeff Hoye wrote:
If you are looking for a structured p2p overlay to build distributed
applications, try FreePastry! (http://www.freepastry.org/)
FreePastry is a open source (BSD like), modular, Java implementation
of the Pastry overlay. We just released version 2.0 which has a lot
of performance features including a much more compact serialization
than Java Serialization. We've done extensive testing on the
Internet, and FreePastry comes with a discrete event simulator that
has been optimized and can support 10K-100K nodes on a beefy machine.
We've done a lot of work to make stronger routing consistency
guarantees than most other p2p overlays.
NAT support is currently limited to users who can set up port
forwarding, or have UPnP, but some of our users are investigating
integration STUN to expand this capability.
Cheers!
-Jeff
Changes since release 2.0beta2
* Documentation:
o Diagrams -- see docs/visio/ in the source distribution
o Wireshark dissector. Thanks David Dugoujon -- see
tools/wireshark/ in the source distribution.
Note: the FreePastry wireshark dissector is licensed under
the GPL, not FreePastry's BSD-like license
o Protocol Specification -- see docs/ProtocolSpec.txt in the
source distribution
* Minor bug fixes.
Changes since release 2.0beta
* Depends on Java 1.5 to use new features
* Numerous Bug Fixes, Performance Optimizations, Documentation
improvements.
* Tap interface for simulator: see SimulatorListener
* Routing Consistency works much better
o Lots of evaluation on PlanetLab
o Note:The PeriodicLeafSetProtocol is very low bandwidth and
provides routing consistency in almost all situations
other than network partitions. However, the accuracy of the LeafSet is
most accurate near the center. This is because leafset
changes are gossiped. With the default setup, changes to the leafset
may take over 4 minutes to propagate to all nodes. However,
your nearest neighbor to the left and right are guaranteed to be
accurate.
o Note:The node may go ready and not ready depending on
lease validity. Not ready means that the node will not accept
routing messages. This is necessary to guarantee routing consistency.
To find out if you are ready, you can call
PastryNode.isReady(), or register yourself as an Observer of the
PastryNode. You can expect a value of true when the node goes
ready, and a value of false when it goes not-ready.
* Better support of NATs:
o Integration of optional UPnP provider: SBBI's UPNPLib
o EpochInetSocketAddress supports a list of IP addresses to
work properly with NATs that don't support hairpinning.
* FreePastry will scan the working directory for user.params to
override the freepastry.params file in the jar
Changes since release 1.4.4
* Elimination of Java Serialization. Is reverse compatible with
the code of previous version, but the protocol is not reverse
compatible. Your application needs to implement
rice.p2p.commonapi.rawserialization.RawMessage to gain the benefits of
non-java
serialization.
* See docs/ProtocolSpec.txt for the definition of the protocol.
Now FP can be ported to other languages...
* Application level sockets. Applications can now use their own
socket which will be properly source-routed. This allows
applications to handle their own end-to-end communication for large
messages and flow control. See rice.tutorial.appsocket for an
example of how to use this feature.
* Application and Endpoint can be registered later to remove
implicit registration that caused synchronization bugs during
startup. In other words, Node.registerApplication() was replaced with
buildEndpoint() and you must call Endpoint.register() after
you application has initialized its member variables.
* Various other improvements.
_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers
_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers