Emulator works on multiple computers again (but few documents provided).
A node does not appear on other nodes' routing tables while it is joining in an overlay (except Kademlia).
Jetty was updated from 7.3.1 to 8.1.7.
Berkeley DB Java Edition was updated from 4.1.10 to 5.0.58.
April 17, 2011
Version 0.10.3 released.
Messaging service API was changed.
A routing algorithm FRT-Chord was slightly changed.
Calculation of node removal priority was changed.
Jetty was updated from 7.2.2 to 7.3.1.
Berkeley DB Java Edition was updated from 4.1.7 to 4.1.10.
January 23, 2011
Version 0.10.2 released.
A bug in FRT-Chord implementation was fixed.
1-hop routing feature of FRT-Chord implementation was disabled (in default).
It requires improvement.
Jetty was updated from 7.2.1 to 7.2.2.
Berkeley DB Java Edition was updated from 4.1.6 to 4.1.7.
November 27, 2010
Version 0.10.1 released.
Automatic reput of key-value pairs was fixed and works again.
DHT shell (with --web and --showmap options)
shows a route again by using IPInfoDB API v2 to know nodes' location.
CyberLink for Java was updated from 1.7 to 2.0.
Jetty was updated from 7.2.0 to 7.2.1.
November 18, 2010
Version 0.10 released.
A routing algorithm FRT-Chord was implemented.
Performance of Emulator was improved.
Interface to implement a routing algorithm (RoutingAlgorithm)
was changed.
RoutingAlgorithm#adjustRoot method,
which has been used to implement Chord-like algorithms, was abolished.
A bug in Mcast service related to callback was fixed.
Jetty was updated from 7.1.6 to 7.2.0.
Berkeley DB Java Edition was updated from 4.0.103 to 4.1.6.
August 8, 2010
Version 0.9.11 released.
TCP Messaging service correctly closes connections on both sides,
a receiver and a sender.
This change prevents descriptor consumption by half-closed connections.
Default node IDs were changed.
Uses Google Maps JavaScript API V3
to show a routing path on a geographical map.
V2 has been used so far.
Memory consumption by an Emulator was reduced.
Jetty was updated from 7.0.2 to 7.1.6.
May 11, 2010
Version 0.9.10 released.
Fixed a bug in joining process.
If a node left an overlay and tried joining again,
it could fail with the bug.
Fixed a bug which disturbed a node to exit by a "halt" command.
This bug was introduced to 0.9.6.
Automatic reputting was improved.
The number of keys reputted at a time is limited.
Apache XML-RPC (library) was updated from 3.1.2 to 3.1.3.
Berkeley DB Java Edition was updated from 4.0.92 to 4.0.103.
Jetty was updated from 7.0.1 to 7.0.2.
March 20, 2010
Version 0.9.9 released.
Node joining processes in Pastry and Tapestry were improved.
Unnecessary messages were elimited in Pastry.
Acknowledged Multicast was fixed and it works again in Tapestry.
Berkeley DB Java Edition was updated from 4.0.71 to 4.0.92.
December 12, 2009
Version 0.9.8 released.
Mcast (multicast) service was improved in efficiency.
A node no longer requires a dedicated thread,
and this change increases the number of nodes an Emulator can host.
TCP connection pool stops working if the specified size is 0.
Berkeley DB Java Edition was updated from 3.3.87 to 4.0.71.
Jetty was updated from 7.0.0 to 7.0.1.
October 26, 2009
Version 0.9.7 released.
Deadlock could occur in a very large-scale emulation (over 10^5 nodes)
with collective forwarding (See notes about version 0.8.2). Fixed.
Directory type "PersistentMap" has not work from 0.9.1. Fixed.
Jetty was updated from 6.1.20 to 7.0.0.
September 20, 2009
Version 0.9.6 released.
Emulator supports event-driven emulation, not only real time emulation.
It works suplying --eventdriven option to owemu command.
Note that in event-driven mode commands run serially, not in parallel.
Subtle bugs in Emulator were fixed.
September 16, 2009
Version 0.9.5 released.
Fixed a bug in TCP Messaging service, which hogs descriptors with the bug.
Jetty was updated from 6.1.17 to 6.1.20.
Berkeley DB Java Edition was updated from 3.3.82 to 3.3.87.
Berkeley DB Java Edition was updated from 3.3.69 to 3.3.75.
October 9, 2008
Version 0.8.9 released.
The DHT implementation (src/ow/dht/impl/) was refactored.
Now it consists of two parts:
a basic implementation (BasicDHTImpl)
and a churn-tolerant extension (ChurnTolerantDHTImpl).
A bug in IP(v4) multicast router (bin/owmrouted) was fixed.
Apache XML-RPC (library) was updated from 3.0 to 3.1.1.
Berkeley DB Java Edition was updated from 3.3.62 to 3.3.69.
June 19, 2008
Version 0.8.8 released.
Prevents most cases of accidental termination of a DHT node
by heap overflow.
Jetty was updated from 6.1.10 to 6.1.11.
Berkeley DB Java Edition was updated from 3.2.76 to 3.3.62.
May 24, 2008
Version 0.8.7 released.
An experiment confirmed that
an Emulator can host 150,000 nodes with 1750 megabytes of heap
(java -Xmx1750m).
Reduces memory consumption of
Kademlia, Pastry and Tapestry implementations,
DHT shell, Mcast shell and Messaging service for Emulator.
Jetty was updated from 6.1.9 to 6.1.10.
May 19, 2008
Version 0.8.6 released.
An experiment confirmed that
An Emulator can host 80,000 nodes with 1600 megabytes of heap
(java -Xmx1600m).
Reduces memory consumption of a DHT node running Koorde.
Iterative routing driver implements routing timeout.
Note that recursive routing driver has implemented the function
from its initial version.
Resolves problems possible on a real network
including an infinite loop, sending a message repeatedly and a dead lock.
May 14, 2008
Version 0.8.5 released.
An experiment confirmed that
an Emulator can host 70,000 nodes with 1600 megabytes of heap
(java -Xmx1600m).
Reduces the amount of memory required by Messaging services.
Pastry implementation was improved to avoid a loop in routing.
Alleviates memory consumption of the Kademlia implementation.
An Emulator can host 90,000 nodes running Kademlia.
Lightens node joining process of Tapestry.
Reduces the size of a message and the number of instantiated messages.
May 6, 2008
Version 0.8.4 released.
In iterative routing, an order of processes was changed.
Last hop adjustment in Chord and Koorde for multiple routing requests
is executed concurrently.
Messaging service for Emulator can add communication latency
to each message delivery.
May 3, 2008
Version 0.8.3 released.
DHT#put() uses the TTL value and the hashed secret
which have been set by prior DHT#setTTL() and DHT#setHashedSecret() calls.
DHT shell has now "setttl" and "setsecret" command to set them
for following "put" commands.
DHT#put() and DHT#remove() accept multiple values for a single key.
DHT#put() and DHT#remove() bundles multiple put/remove requests
to a single message if the targets of the requests are the same node.
This change reduces the number of messages.
April 28, 2008
Version 0.8.2 released.
Collective routing was implemented.
Put, get and remove commands of a DHT shell
accept multiple key-value pairs once.
Bugs in recursive routing (driver) were fixed.
Routing success rate in Pastry was improved.
When the Pastry implementation merges a node into
a routing table and leaf sets, it merges the node into other tables.
A loop in routing got fewer.
Berkeley DB Java Edition was updated from 3.2.74 to 3.2.76.
April 2, 2008
Version 0.8.1 released.
Routing (e.g. put and get to a DHT) success rate in Chord and Koorde was
improved, especially in case the routing table has not been mature yet.
A routing request could not have a reply
if a routing message was lost during routing. Fixed.
Jetty was updated from 6.1.8 to 6.1.9.
March 22, 2008
Version 0.8 released.
RoutingAlgorithm#resume() could invoke
unnecessary multiple threads a node
for fix_fingers (Chord) and de Bruijn pointer maintenance (Koorde). Fixed.
This fix got many node emulation lighter.
In case that routing failed,
routing methods (e.g. RoutingService#route...) throw
a RoutingException.
Jetty was updated from 6.1.7 to 6.1.8.
Berkeley DB Java Edition was updated from 3.2.68 to 3.2.74.
Utility methods to examine UPnP-related status provided
in ow.messaging.util.UPnPAddressPortMapper class.
TCP-style timeout calculation has not worked
and the default value has been used. Fixed.
January 3, 2008
Version 0.7.11 released.
A command-line tool owlistnodes provided.
It traverses nodes on an overlay and lists found nodes.
Emulator's behavior changed.
It finishs when no task remains or remaining tasks were all scheduled with
scheduledaemon command.
December 25, 2007
Version 0.7.10 released.
A bug in TCP and UDP Messaging services fixed.
They invoked a message hander doubly
if the destination is the node itself.
Jetty was updated from 6.1.6 to 6.1.7.
Berkeley DB Java Edition was updated from 3.2.44 to 3.2.68.
December 18, 2007
Version 0.7.9 released.
Resets a socket just after obtains it from a socket pool
by reading remaining data from it.
December 18, 2007
Version 0.7.8 released.
Includes minor changes: a few flags introduced
and maximum interval of fix_fingers in Chord changed.
December 1, 2007
Version 0.7.7 released.
The number of threads per node was reduced.
A node no longer requires a dedicated thread.
This change increases the number of nodes an Emulator can host.
Nobember 26, 2007
Version 0.7.6 released.
Expiration process in a Directory service, used by the DHT service,
was lightened.
Performance of Kademlia was improved.
Jetty was updated from 6.1.5 to 6.1.6.
Nobember 6, 2007
Version 0.7.5 released.
From 0.7.3, DHT#remove has not worked. Fixed.
In case that automatic reputting is enabled,
a key-value pair on a DHT has not expire. Fixed.
Nobember 4, 2007
Version 0.7.4 released.
With version 0.7.3, put and remove requests to a DHT node with a secret
do not work. Fixed.
In a specific case, DHT#get returns no value though values exist.
Fixed.
Each node on the route records time in a routing result
(RoutingResult instance),
and web interface of DHT shell (owdhtshell -x) shows them.
Invokes an independent thread to perform a reverse lookup of a hostname
to avoid an execution block on the lookup.
Overlay Visualizer (owviz) and Message Counter
(owmsgcounter) accept --no-upnp option
as well as DHT shell (owdhtshell)
and Mcast shell (owmcastshell).
October 6, 2007
Version 0.7.3 released.
Reduces the size of messages passed between nodes.
Note that this and later versions of Overlay Weaver is not interoperable with
0.7.2 and prior versions.
Berkeley DB Java Edition was updated from 3.2.43 to 3.2.44.
August 25, 2007
Version 0.7.2 released.
UPnP NAT Traversal was implemented.
A node changes its own recognizing IP address to an external address
of a NAT after it discovered and configured the NAT.
Berkeley DB Java Edition was updated from 3.2.42 to 3.2.43.
August 22, 2007
Version 0.7.1 released.
A bug of Distributed Environment Emulator in version 0.7 was fixed.
It ignores the host ID argument of "invoke <host ID>" command.
The bug has prevented churn experiments.
Berkeley DB Java Edition was updated from 3.2.23 to 3.2.42.
July 28, 2007
Version 0.7 released.
The number of threads per node was much reduced.
On an Emulator, a DHT node requires only 2 private threads
with any routing algorithm.
Emulator adapts to a system clock jump (and overload).
In the case, it does not invoke sequential schedules in bulk
and instead defer them for the jump period with showing a message "[Clock jump ...]".
Kills JVM immediately in case that OutOfMemoryError is caught.
It happens when a JVM cannot create a thread, for example.
A bug of Koorde implementation fixed.
It causes TTL expiration in routing if there is a node
with the same ID as the routing target ID.
Slight bugs in TCP and UDP Messaging services, and DHT were fixed.
May 9, 2007
Version 0.6.3 released.
Duplicate processes handling a REQ_CONNECT message in Chord
eliminated.
Jetty was updated from 6.1.1 to 6.1.3.
May 3, 2007
Version 0.6.2 released.
Chord implementation was improved to deal with node failures well.
DHT shell accepts any incoming connection without --acl option.
The root node of routing creates and removes replicas on a DHT
instead of the requester if replication is enabled.
In case of DHT put, get and remove,
a node requests spare root candidates
to be prepared for failure of the root node.
April 23, 2007
Version 0.6.1 released.
RoutingAlgorithm#neighbors() was renamed rootCandidates().
A DHT node uses it to determine whether to transfer key-value pairs
to a newly joining node.
Berkeley DB Java Edition was updated from 3.2.21 to 3.2.23.
A Chord node checks whether its predecessor is alive or not
in stabilization process.
March 29, 2007
Version 0.6 released.
Cross-site scripting vulnerability which
DHT shell with -x option (owdhtshell -x) had
has been solved.
See this page for details.
DHT shell, Mcast shell and Message Counter accept
an access control list (ACL) supplied by --acl option.
Messaging timeout calculation in TCP-style was implemented.
Communication layer in UDP gives consideration to
a broken/partial UDP datagram received.
February 26, 2007
Version 0.5.11 released.
A bug fixed.
A lookup could fail in Chord and Koorde on a real network because of this bug.
February 12, 2007
Version 0.5.10 released.
Web interface of DHT shell (owdhtshell -x)
accepts put, get and remove operations
on http://<hostname>:3998/.
February 10, 2007
Version 0.5.9 released.
DHT shell (owdhtshell command) shows node information
on http://<hostname>:3998/
if it is invoked with `-x' option.
Default port number for lookup has been changed from 3999 to 3997.
A few bugs in Koorde fixed.
February 7, 2007
Version 0.5.8 released.
Mcast shell prints multicasted messages to standard output, not only sockets.
February 7, 2007
DHT Access Tools 0.5 released.
The gateway URL can be specified with an environment variable
DHT_GATEWAY.
January 31, 2007
Version 0.5.7 released.
Emulator works on multiple computers again (owemu -f ...).
January 6, 2007
Version 0.5.6 released.
Efficiency, especially about threads, improved.
A bug of Emulator fixed.
It causes a returned message not to be delivered in a high load.
December 6, 2006
DHT Access Tools 0.4 released.
December 4, 2006
Version 0.5.5 released.
A few subtle bugs in Pastry, Koorde and Tapestry fixed.
December 2, 2006
DHT Access Tools 0.3 released.
Renamed from "Bamboo Client" to "DHT Access Tools".
Accessor (DHTAccessor class) was separated from tools
such as get, put and rm.
November 29, 2006
Version 0.5.4 released.
A possible deadlock of a joining node in Tapestry resolved.
November 19, 2006
Version 0.5.3 released.
A bug fixed.
It prevented message-sent-reports reaching a stat collector,
including Visualizer.
November 19, 2006
Version 0.5.2 released.
Visualizer (owviz) collects node information actively
if the initial contact is specified.
A bug, which causes deadlock during UDP hole punching, fixed.
November 6, 2006
Version 0.5.1 released.
The method of surrogate routing in Pastry changed and
the rate of successful lookups improved.
The signatures of
RoutingAlgorithm#join() and RoutingService#join() methods changed.
October 24, 2006
Version 0.5 released.
The format of emulation scenarios changed.
The change enables an Emulator to invoke (and halt) nodes
even after started controlling a node.
October 11, 2006
Version 0.4.3 released.
Bugs in XML-RPC DHT server and Pastry implementation fixed.
October 7, 2006
Version 0.4.2 released.
DHT and Mcast shells improved to serve more kinds of telnet clients.
September 19, 2006
Version 0.4.1 released.
DHT and Mcast shells write messages to a Windows' console correctly.
September 12, 2006
Version 0.4 released.
Decent replica management was implemented.
A value is replicated on closest nodes to the root (destination of routing).
The number of replicas is 3 (ow.dht.DHTConfiguration#DEFAULT_NUM_REPLICA = 3) in default.
September 2, 2006
Version 0.3.6 released.
Libraries (e.g. for XML-RPC) updated.
August 17, 2006
Version 0.3.5 released.
A few thread-related problems (race conditions) removed.
The main JAR file (overlayweaver.jar) is now self-contained
for minimum functions.
July 4, 2006
Bamboo Client 0.1 released.
This is a set of tools to access a DHT
constructed by Overlay Weaver or
Bamboo DHT.
May 18, 2006
Version 0.3.4 released.
A combination of Tapestry and recursive routing works again.
May 15, 2006
Version 0.3.3 released.
Koorde works correctly again.
May 11, 2006
Version 0.3.2 released.
A bug fixed.
It prevented DHT#get working and appeared only with Kademlia.
May 10, 2006
Version 0.3.1 released.
DHT service works on a real network.
0.3 has a serious bug on it.
Mailing list for Japanese discussion was moved from SourceForge.net to
Yahoo! Groups
(ML page).
April 26, 2006
Version 0.2 released.
Implements another routing algorithm Koorde.
"Group Manager" service was renamed to "Mcast".
April 10, 2006
Version 0.1.6 released.
A bug in Group Manager (multicasting service) fixed.
March 26, 2006
Version 0.1.5 released.
A bug, which does not appears in normal use, fixed:
In case that Chord without finger table (Linear Walker) works
in the aggressive joining mode (Fig.6 in the Chord paper),
a node asks its successor to make itself the predecessor.
March 24, 2006
Version 0.1.4 released.
Chord was decoupled into finger table and the remaining base.
The base part ("LinearWalker") works individually.
February 12, 2006
Version 0.1.3 released.
A bug in AdvancedDHT fixed.
January 31, 2006
Version 0.1.2 released.
API for DHT and GroupManager was slightly updated.
Berkeley DB Java Edition was updated from 2.0.90 to 2.1.30.
January 19, 2006
Version 0.1.1 released.
Reporting to a messaging counter or visualizer
(-m option of tools like DHT Shell)
and UDP hole punching work together.