On Wed, 2004-04-28 at 15:38, Perrin Harkins wrote:
> On Wed, 2004-04-28 at 15:34, Tyler Rorabaugh wrote:
> > I need object persistance between servers
> > Say for example you had a person object
> > That container first / last name
> > I want the object to contain the same data for each session
> > Across each server.
> 
> The way people usually do that is to have a central database that
> manages the application's read/write data.  Are you using a database for
> this now?

To be a little bit more clear about this, there is no way in any
language to move objects between machines without serializing them. 
This means you have to coordinate updates between machines somehow.  You
can use various elaborate synchronization approaches, but they usually
end up being slower than simply using a central database, and they
introduce major new problems when dealing with mutable data that needs
transactional updates.  If you don't need transactional updates and are
not worried about very short-term synchronization problems, you can use
something like Spread to broadcast data updates around a cluster.

Usually your best approach is to cache locally where you can (read-only
objects, read/write objects if you are using sticky sessions) and back
the whole thing with a database.  I wrote some about this some here:
http://perl.apache.org/docs/tutorials/apps/scale_etoys/etoys.html

I'm planning to talk a lot more about caching strategies at the YAPC::NA
and OSCON conferences this year, for anyone who is interested.

- Perrin


-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to