[Spread-users] Announcing a major new version of the Spread Toolkit 3.17.0 - www.spread.org

Yair Amir yairamir at cnds.jhu.edu
Mon Sep 30 14:29:39 EDT 2002

Spread Concepts LLC and Johns Hopkins Center for Networking and Distributed
System are happy to announce the release of a new stable version, 3.17.0, 
of the Spread toolkit. 

This release includes new features, substantial build improvements and
some bugfixes that break backwards compatibility. This break with
backwards compatibility and the new features are the reason for the 
increase in minor version number.

Spread is a toolkit that provides a high performance messaging service 
that is resilient to faults across external or internal networks. Spread 
functions as a unified message bus for distributed applications, and 
provides highly tuned application-level multicast and group communication 
support. Spread services range from reliable message passing to fully 
ordered messages with delivery guarantees, even in case of computer 
failures and network partitions.

Spread is designed to encapsulate the challenging aspects of asynchronous 
networks and enable the construction of scalable distributed applications, 
allowing application builders to focus on the differentiating components 
of their application.

Note, that the library name change from libsp to libspread requires any 
application using Spread to change how they link. Some new functions
were also added to the C API to provide access to certain membership
fields, these functions replace the hardcoded byte offsets that were
previously documented and should be used instead of those fixed offsets
in all applications.

The new features are:
1) Enhance the group membership algorithm so very large groups and very 
   large numbers of groups will be merged correctly during a membership. 
   With this change Spread should correctly handle groups with thousands
   of members and thousands of groups. This also includes the optimization 
   of sending groups messages as FIFO and AGREED instead of SAFE.
   Thanks to Ryan Caudy from Hopkins for doing this work.

2) Revamped build setup using autoconf instead of manual Makefiles. Thanks
   to Theo Schlossnagle for writing this and updating it. Some small changes
   were made to Theo's 3.16.2 patch to incorporate it.

3) Applied Daniel Rall's SO_REUSEADDR patch. This adds a new configuration
   option SocketPortReuse that can either force SO_REUSEADDR on or off
   for TCP server sockets, or set it to an auto mode that uses REUSEADDR
   if specific interfaces are specified in the spread.conf file and
   does not use it if the default of INADDR_ANY is used. If you force
   this on, be aware that it can open up a security risk where other
   processes can steal Spread's traffic.

4) Changed library name from libsp to libspread. This is both more descriptive
   and should fix the problem with library clashes with other libsp's.

5) Applied Daniel Rall's patch to make the spread execution directory and
   the user and group it runs as configurable at runtime.

6) Fix GGT bug where Spread gets stuck or crashes if you reach GGT state.
   This bug was introduced when Spread 3.x adopted the research version of
   the session layer.

7) Make sure service_type is set to 0 before using it in SP_receive calls 
   in sample programs (spuser, spflooder, simple_user).

8) Fix Mem_Alloc blocks so they can be freed without assertion failure.

9) Fix hanging bug where token rotates, but ARU is stuck.

10) Split the growing changelog at the beginning of Readme.txt into a 
    separate file.

11) Updates to man pages. Clarify service_type handling. Add info on accessor
    functions for membership message body.

With the Spread Open Source License, the toolkit may be freely
used under some conditions.  For example, the license includes the 
requirement that all advertising materials (including web pages) 
mentioning software that uses Spread display a specific acknowledgement. 
Please review the license agreement for more details.

Other commercial licenses or other licensing arrangements are available. 
Please contact michal at spreadconcepts.com. We are looking for partners 
interested in using group communication and/or replication to solve 
demanding, real-world problems.

| The Spread Group Communication Toolkit.                                   |
| Copyright (c) 1993-2002 Spread Concepts LLC                               |
| All rights reserved.                                                      |
|                                                                           |
| The Spread package is licensed under the Spread Open-Source License.      |
| You may only use this software in compliance with the License.            |
| A copy of the license can be found at http://www.spread.org/license       |
|                                                                           |
| This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF     |
| ANY KIND, either express or implied.                                      |
|                                                                           |
| Spread is developed at Spread Concepts LLC and the Center for Networking  |
| and Distributed Systems, The Johns Hopkins University.                    |
|                                                                           |
| Creators:                                                                 |
|    Yair Amir             yairamir at cs.jhu.edu                              |
|    Michal Miskin-Amir    michal at spreadconcepts.com                        |
|    Jonathan Stanton      jonathan at cs.jhu.edu                              |
|                                                                           |
| Major Contributors:                                                       |
|    Cristina Nita-Rotaru crisn at cnds.jhu.edu - group communication security.|
|    Theo Schlossnagle    jesus at omniti.com - Perl, skiplists, autoconf.     |
|    Dan Schoenblum       dansch at cnds.jhu.edu - Java interface.             |
|    John Schultz         jschultz at d-fusion.net - contribution to process   |
|                                                 group membership.         |
|                                                                           |
| Contributors:                                                             |
|    Ryan Caudy        wyvern at cnds.jhu.edu - Group membership               |
|    Ben Laurie        ben at algroup.co.uk - FreeBSD port and warning fixes   |
|    Daniel Rall       dlr at finemaltcoding.com - Java & networking fixes,    |
|                                               configuration improvements  |
|    Marc Zyngier                        - Windows fixes                    |
|                                                                           |
| Special thanks to the following for providing ideas and/or code:          |
|    Ken Birman, Danny Dolev, Mike Goodrich, Ben Laurie,                    |
|    David Shaw, Robbert VanRenesse.                                        |
|                                                                           |
| Partial funding provided by the Defense Advanced Research Projects Agency |
| (DARPA) and The National Security Agency (NSA) since 2000. The Spread     |
| toolkit is not necessarily endorsed by DARPA or the NSA.                  |
|                                                                           |
| WWW    : http://www.spread.org  and  http://www.cnds.jhu.edu              |
| Contact: spread at spread.org                                                |
|                                                                           |
| Version 3.17.0 Built 25/September/2002                                    |

More information about the Spread-users mailing list