[NTLUG:Discuss] Distributed processing
Stephen Davidson
gorky at freenet.carleton.ca
Fri Jul 20 14:10:43 CDT 2001
Greetings.
I wonder if Javelin by ObjectDesign would be worth considering?
It is not free, but my understanding is that it is not that expensive.
Basically, it is a sophisticated object/data cache. The implementation
is quite interesting, and highly proprietary (this is where they make
their money), but the general idea is that there is a replicated cache
accross the hosts. The cache can store JavaObjects and/or Database
data, or anything else that you can get into a computer's memory. Data
is not duplicated in all of the caches, only the ones that need it. Say
machines A & D need a given piece of data, with machine C acting as a
"failover" machine. Then A, C, and D would have the data, but none of
the other machines in the cluster would receive a copy of the data,
unless they specifically request it. The software is extremely
efficient, and has low processor/system overhead.
Just a suggestion.
-Steve
Greg Edwards wrote:
>
> cbbrowne at hex.net wrote:
> >
> > On Wed, 18 Jul 2001 21:34:28 CDT, the world broke into rejoicing as
> > Greg Edwards <greg at nas-inet.com> said:
> > > Each host would be assigned a set of functions that it would support and
> > > not a set of applications. This does not fit the load balance or
> > > clustering model very well. Some hosts could act as database servers,
> > > some in a Beowulf cluster, some as game tree processors, some as search
> > > engines (these are just examples). Not every host would support every
> > > request that could be generated. This makes for a poor fit for a strict
> > > message queue solution as you don't want to send the queue to hosts that
> > > are non players in the logic thread.
> >
> > I would object _slightly_ on the message queue comment; it would be quite
> > reasonable to have a set of queues named suitably for better sharing...
> > I'm not sure what your exact objection is here, but would speculate it's
> > of two things:
> >
>
> >
> > Sounds fairly suited for the message queueing approach, albeit not as
> > an automatic result of the messaging scheme, but rather as an aspect
> > of the design of the work process.
> > --
>
> A message queue solution would certainly work but it would not be
> efficient for what I'm looking at. I envision several hundred functions
> distributed throughout the farm with many functions capable of retaining
> results for an aged period. Trying to maintain response factor
> heuristics with message queues would (IMO) flood the backbone with more
> traffic than is necessary. I believe that maintaining heuristics on the
> response from the current host to the host that processed the request
> using an open hash would be simpler to maintain and a considerably
> lighter load on the network.
>
> Consider a multiplier game spanning a game board with 64 grids and 15
> players currently in the game. Host A is currently the game manager.
> Hosts C and D are responsible for determining which players are visible
> to each other. Players 1, 5, 9, and 10 are each in grid 32. Hosts C
> and D currently have the same response factor (as known to Host A).
> Player 1 gets processed by host C and player 5 by host D. All other
> things being equal host C and D provide equal response factors on the
> returned results. Now player 9 comes along and host C gets the
> request. Since host C and D currently both have the search results from
> the 1 and 5 players cached the performance factor of host C becomes
> better than D (using simple averaging). Now when player 10 comes along
> host C has already had player 9 results added to its data set and host D
> has not. In this scenario you want host C to get the request and not
> host D. In a typical message queue solution (first come first serve)
> host D has a better than average chance of ending up with the request.
> Yes we could get into weighting the queues by host response factors, but
> would that be worth the work.
>
> For those thinking "hey this sounds like an OOPS solution". I want it
> to be a procedural solution for process control reasons. I want to be
> able to backup and request from a different host if I receive a
> timeout/non-response on any requests. I also do NOT want to pass the
> entire data set between functions (hosts).
>
> --
> Greg Edwards
> New Age Software, Inc.
> http://www.nas-inet.com
> _______________________________________________
> http://www.ntlug.org/mailman/listinfo/discuss
More information about the Discuss
mailing list