SPREAD TOOLKIT - PowerPoint PPT Presentation

About This Presentation
Title:

SPREAD TOOLKIT

Description:

SPREAD TOOLKIT High performance messaging middleware Presented by Sayantam Dey Vipin Mehta What is SPREAD? Spread is a group communication system that provides a ... – PowerPoint PPT presentation

Number of Views:129
Avg rating:3.0/5.0
Slides: 13
Provided by: ICS95
Learn more at: https://www.ics.uci.edu
Category:

less

Transcript and Presenter's Notes

Title: SPREAD TOOLKIT


1
SPREAD TOOLKIT
  • High performance messaging middleware
  • Presented by
  • Sayantam Dey
  • Vipin Mehta

2
What is SPREAD?
  • Spread is a group communication system that
    provides a number of messaging services to
    applications. These services can then be used by
    applications to make it easy to write
    full-featured reliable groupware, distributed
    servers, client-server applications, chat and
    news services, and many other networked enabled
    tools.

3
SPREAD How it works
  • SPREAD is composed of 2 entities daemons and
    client processes.
  • Daemon(s) maintain information about all
    processes connected to it and the presence of
    other daemon(s), if any.
  • Client processes join/leave the group or
    send/receive messages using the SPREAD primitives.

4
Basic Services
  • Abstraction of a group a name represents a set
    of processes, all of whom receive messages sent
    to the group.
  • Multicast of messages to a group.
  • Membership.
  • Reliable message delivery.
  • Ordering of messages sent to a group.
  • Failure detection of members of group.
  • A strong semantic model of how messages are
    handled in response to group changes.

5
SPREAD primitives
  • SP_connect() Initial call an application must
    make to establish a connection with a Spread
    daemon.
  • SP_disconnect() Called when the application is
    finished with a connection to the Spread daemon.
  • SP_join() Joins a group with the name passed as
    the string group. If the group does not exist
    among the Spread daemons it is created, otherwise
    the existing group with that name is joined.
  • SP_leave() Leaves a group with the name passed
    as the string group.
  • SP_multicast and family SP multicast and its
    variants all can send a message to one or more
    groups.
  • SP_receive and SP_scat_receive This receives
    data and membership messages.
  • Other functions for error reporting.

6
SPREAD architecture
  • Modular Design. Divided into 2 components
    implementation of the network communication layer
    and multiple client interfaces.
  • Multiple link protocols supported in the network
    communication layer. Currently implements 3.
  • Ring Protocol for low latency LANs with not more
    than 30 daemons.
  • Point to Point stable transport over WAN.
  • Hop cross WAN with high latency and loss.
  • Interfaces implemented in C, Perl and Java.

7
SPREAD guarantees
  • Native support of Extended Virtual Synchrony
    (EVS).
  • Can detect network partition. Generates a
    NETWORK event, which allows client processes to
    obtain the updated membership view.
  • Provides a Level of Service.
  • This value determines the extent of ordering and
    reliability of the message. The application can
    choose different levels for each message.
  • 5 different levels of service implemented.

8
SPREAD guarantees continued
  • This table shows the different levels of service
    and their relationship with ordering and
    reliability. (from the SPREAD toolkit users
    guide)

9
SPREAD application areas
  • Replicated servers
  • Generic message bus for clusters and distributed
    clusters
  • N-way fail-over for IP addresses
  • Collaborative tools share data, video and audio
    conferencing
  • Distributed Shared Memory

10
Why use SPREAD
  • Powerful, but simple API. Only six basic calls
    are required to utilize Spread.
  • Spread is optimized and can handle over 8,000
    1Kbytes messages a second in local area network
    settings.
  • Spread allows unicast, multicast, multi-group
    multicast, scatter-gather calls, and multiple
    query functions.
  • Flexible message semantics Spread supports all
    levels of messaging from unreliable to agreed
    (also known as total order) to safe (which
    guarantees all daemons receive the message before
    any deliver it to applications), and provides
    complete extended virtual synchrony.

11
Why use SPREAD continued
  • Spread handles network and machine partitions and
    re-merges safely and notifies applications about
    the current state of the group.
  • Cross Platform Spread supports cross-platform
    operation between Unix (BSD, Linux, Solaris,
    Irix, AIX, Mac OS X, etc.) and Windows
    (2000/NT/98/95).
  • Spread currently has programming API's for C/C,
    C, Java, Perl, Python and Ruby.

12
References
  • www.spread.org
  • www.cnds.jhu.edu
  • SPREAD user guide
  • The Spread Wide Area Group Communication System,
    Yair Amir and Jonathan Stanton.
Write a Comment
User Comments (0)
About PowerShow.com