[Spread-users] questions from a new user

Ryan Caudy caudy at jhu.edu
Fri Jan 17 16:51:39 EST 2003

A single spread daemon can handle a fairly large number of clients... 
how many, exactly, is OS-specific.  On Linux, this number is about 997. 
  Spread daemons communicate with clients using TCP/IP, or Unix domain 
sockets (if they are local, and this form of IPC is supported).

The number of messages per second that can be attained depend on the 
spread configuration, and the underlying network.  On a LAN, spread can 
handle thousands of messages per second.

Because clients connect and communicate with daemons by tcp/ip, there's 
no reason that one daemon can't serve two subnets.  The only issue 
concerning multiple subnets is that spread daemons in the same segment 
communicate over a broadcast or multicast address.  To have only one 
segment (and multiple daemons), they must either be in the same subnet 
if they communicate using broadcast, or the routers between them must 
allow multicast packets to be routed if they communicate using multicast.

There shouldn't be any problem with dynamically allocated client IP 
addresses.  The spread.conf file, however, must correctly match the 
servers, so you may need to continually update it if the *servers* do 
not have static IP addresses.

For the system you have described, I would encourage you to use multiple 
spread daemons... maybe one for each client, but a smaller number might 
also help.  With only one daemon, any multicasted message would be sent 
from one client, to the spread daemon, to each recipient of the message. 
  For a message sent to 100 clients connected remotely (as opposed to 
locally) by tcp/ip, the same data would cross the network 100 times.  If 
  each client connected to a local daemon, the only communication over 
the LAN would be between daemons, at much lower cost because of the use 
of broadcast or multicast communication.

Spread can provide reliable multicast (or unicast) service, with a 
variety of ordering guarantees, as documented in the users guide. 
Sounds to me like you may need FIFO or AGREED ordering.

If you have further questions, don't hesitate to ask.

Ryan Caudy

Frank Wang wrote:
> Thanks for your help, Ryan. 
> I would like to see whehter Spread is efficient enough to replace our
> currently middleware framework. Basically, I have several publishers and
> could be ~100 subscribers. I hope the sub can continually un/subscribe to
> certain topics and they need RELIABLE (orderred and no loss) communication
> with the publishers.
> One easy solution is to use one central server as the distributor (as many
> middle wares does), both pub and sub will communicate through this one
> server. I could build up several routing servers if necessary, but I would
> like to start from one first.
> Further questions, 
> how good this daemon Spread can handle clients? 
> How many client apps can connect to one daemon or what is the max msgs/per
> sec for a daemon?
> is that possible for one daemon serve for two subnet as 192.16.17.* and
> 192.16.18.*. Or even as 192.19.17.* and 192.16.18.*? (I have sptflooder and
> spread running in different subnets)
> WOuld that be a problem if the clients use dynamic IP (DNS lookup still
> work)?
> I have not seen many examples on its use in the real world and am very
> interested in any real-world examples.
> I am a newbie to spread (just see this name this week), please forgive me if
> you think I have not throughly understood the doc.
> Thanks a lot
> Frank
> -----Original Message-----
> From: Ryan Caudy [mailto:caudy at jhu.edu]
> Sent: Friday, January 17, 2003 1:20 PM
> To: Frank Wang
> Cc: spread-users at lists.spread.org
> Subject: Re: [Spread-users] questions from a new user
> Hi,
> You don't need to run one spread daemon for each client, or even one 
> spread for each machine upon which you are running clients.  For some 
> applications of spread it is encouraged to run daemons on each client 
> machine, but this is not a requirement, and does not fit all 
> applications.  If you tell the list more about how you plan to use 
> spread, we can try to suggest the most efficient way to use it.
> Running spflooder with the option "-s 4803 at spreadmachine" should work, 
> if the name spreadmachine can be resolved by gethostbyname() on the 
> client machine, and the daemon running on spreadmachine is running on 
> port 4803.  If you send your spread.conf file to the list, this may help 
> us see the problem.
> Good luck,
> Ryan Caudy
> Frank Wang wrote:
>>Just starting to get familiar with Spread and having some general
> questions,
>>it is highly appreciated if you would please provide me even partial
> answers
>>to your best knowledge:
>>For each client, do I need to have one spread.exe running at the local? I
>>have used some other middlewares, which mostly have a central server-like
>>program to handle messages. The clients can communicate with each other
>>through this server, but they are not necessarily in the same machines. It
>>apprears in the documentation that I have to have spread running at the
>>local for each client and I also failed to run spread in one machine and
>>spflooder -s 4803 at spreadmahcine while spread is in another machine. Did I
>>config the local setting wrong or spread has to be running in each
> machine?
>>Further questios to come based on the answer to this question.
>>Thanks a lot
>>Spread-users mailing list
>>Spread-users at lists.spread.org
> _______________________________________________
> Spread-users mailing list
> Spread-users at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-users

More information about the Spread-users mailing list