Nolan's question of the day: distributed servers?

Aahz Maruch aahz at netcom.com
Thu Sep 30 09:00:04 EDT 1999


In article <87btal3td5.fsf at ethereal.dhis.org>,
Nolan Darilek  <nolan at ethereal.dhis.org> wrote:
>
>So, a network of namespaces will exist, each accessing either a
>database or a server. My current concern, though, is that the server
>shouldn't have to know how every single object on every single server
>works before it starts. From what I've seen of CORBA (And correct me
>if I'm wrong.) class interfaces need to be specified before hand and
>compiled to skeletons. This wouldn't work for me, since if someone on
>server x decides to code, say, a flying car, making a skeleton
>wouldn't be practical.

Let me rephrase what you're trying to do:

You wish to have a distributed system of application servers.  It is not
clear whether you require a distributed system of database servers.  If
you have a central database, everything is easy, assuming each user
stays with a single application server during an entire session: each
application server starts up empty; as objects are used, they get pulled
from the database server; as objects are modified, they get written to
the database server; as users exit, objects get flushed.  

[Well, "easy" is relative; *I* sure wouldn't want to code this.  ;-)
Nevertheless, this is Known Art, and it has the virtues that it's pretty
high-performance and low-latency.]

If you insist on the database also being distributed, I'd suggest
something like the netnews model where each application/database server
pushes changes to, say, three other servers in an overlapping mesh.

Either way, you're going to have update/locking problems if two users
want to change the same object concurrently.  If the likelihood of this
is not high, the simplest system would be to use object versioning, flag
an object as unmodifiable if there's a collision, and let an admin clear
the mess; the latest "clean" version would still be readable.

A thought occurs to me: if Zope has a mechanism for replication, you
might try building your system on top of it.
--
                      --- Aahz (@netcom.com)

Androgynous poly kinky vanilla queer het    <*>      http://www.rahul.net/aahz/
Hugs and backrubs -- I break Rule 6  (if you want to know, do some research)




More information about the Python-list mailing list