[MUD-Dev] World Persistence, flat files v/s DB v/s ??

Chris Gray cg at ami-cg.GraySage.Edmonton.AB.CA
Wed Mar 25 21:23:22 CET 1998


[Vadim Tkachenko:]

:Sure, that's why there is a concept of a business logic - client doesn't
:hold any locks at all. Everything is split into transactions, and any
:possible locks are handled by the business logic.

In the area we started out discussing, that of attempting to run
world-changing threads on the clients, that isn't good enough. You need
to make the entire transaction that the code does atomic. There was
an example about this a few months ago, involving two agents trying
to go through a door. I don't remember the details, but one agent could
block the second, but that second agent had two steps to its progress.
The key is that the first step must not be allowed to update the DB
unless the second step also completes, but the second step cannot
complete if the first agent blocks the door. Simple transactions from
the client to the server cannot handle this - the entire sequence of
steps in running the action must be tentatively done, then committed or
not, depending on things that may have happened in the mean time. I'm
not explaining this well...

--
Chris Gray   cg at ami-cg.GraySage.Edmonton.AB.CA




More information about the mud-dev-archive mailing list