[MUD-Dev] Is database access a bottleneck? Prevayler.

ra-whiteside at attbi.com ra-whiteside at attbi.com
Wed Dec 11 22:48:44 CET 2002


Hi All,

I've been lurking here for a short time, and have a couple of
questions.  I hope this is not inapropriate.

I recently came across an idea called "Prevayler."

   http://www.prevayler.org

This is a replacement to normal database technology for managing
data in a persistent, reliable, crash-recoverable manner.  The
proponents of this seem to have benchmarks showing it to be a few
thousand times faster than MySQL, for example. (DAOC uses MySQL?)

Now, being a gaming enthusiast (though not a game designer or
developer), it occured to me to wonder if this technology would be
useful in MMORPG games, assuming it indeed works as advertised .

So, my first question is, "What is the bottleneck in scaling MMORPG
games?"  Why do we have worlds with 2-3K players instead of 200-300K
players?

If the answer is, "Nothing all to do with DB access" then, well,
there's no nail for the Prevayler hammer to hit.  Certainly, I'd
guess that if everyone in the game wants to hang out in front of the
Trinsic Bank, or in the East Commons tunnel, you're toast.  However,
when players are reasonably spread out, it seemed to me not unlikely
that the bottleneck was database access.  Or at least, that could
become the bottleneck if you mapped world geographical zones onto
hardware more finely in an attempt to support more simultaneous
users.  The recent "instancing" discussions seem relevant here.

Another question is, "How much data are we talking, here?"

One constraint in using the Prevayler appropach is that all the data
are held in memory which, in turn, is responsible for its high
performance. Thus, although memory is cheap and getting cheaper, if
these databases are terabytes rather than tens of gigabytes, then
it's probably not useful.

Another issue is that the freely available implementation is written
in Java.  Although you can write possibly-distributed clients in a
variety of languages, the current server implementation is in Java.
Until recently, this restricted you to < 4GB of data, that number
being the maximum possible size of a Java Virtual Machine.  The
latest version of Java (JDK 1.4) extends this to hundreds of GB, I
read.

At any rate, the underlying Prevayler idea is applicable in any
language, it's just particularly easy to implement in Java because
of the object serialization available in that language.

Well, that's about it.  Is this interesting at all?

Cheers,
--Bob

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list