[MUD-Dev] Object-Oriented Databases

John A. Bertoglio jb at co-laboratory.com
Thu May 22 22:32:12 CEST 2003


The discussion on databases prompted me to delurk for a moment.

There has been a steady move from the simple, flat files of early
MUDs to a rich, complex and sophisticated object model. At the same
time, we have seen a demand for larger and larger worlds. While this
provides a more creative design environment, the file structures of
these objects become so large that it soon becomes impossible to
store the entire world in memory. It becomes necessary to buffer the
data in and out of memory based on what is going on in the
world. While it is possible to build a world around a large number
of flat files, it seems that a database is the place to store the
world.

The problem is what kind of database? RDBMS are extremely fast when
working with a few heavily indexed tables. However, they choke on
complex object data using arcane and complex methods to flatten
multi-dimensional object data into rows and tables. Standard
object-oriented databases can handle objects but typically are very
poor in terms of speed and scalability. What is needed is a database
that is industrial strength, fast and capable of storing objects
(and other like XML) in a native format.

Over the last few years I have made my living doing consulting and
development for a database system that would (except for its cost)
be perfect for multi-player games. The product is a called Cache'
from InterSystems. It is based on 30 year old technology (you may
have heard of M or MUMPS) but is the only tool I have found that
handles complex object data and still run at blinding speeds. The
pricing of the product (up to $1000 per seat) makes it a bad choice
in a non-commercial environment. The majority of the users are large
health care and financial firms. (I suspect that a commercial
venture could negotiate a site license that would be acceptable.) 
However, the recent release of an Open Source Linux version of this
technology (from another vendor, GT/M) means that it can compete
heads up with mySQL et. al.

The key to these products are the way they store data. Instead of
using rows and columns, data is stored in multi-dimensional
arrays. It is a very odd product in many ways. If anyone cares, I
could expound on how Cache' works but perhaps that would be best off
list. In any case, I strongly suggest you take a look at the
technology. When I had more time a few years ago I developed a
html-based mud that had over 4 million world locations (On a
P-100). Moving from cell to cell was instantaneous, even with a
WebHammer running as many users as we could fit into a single
workstation. This is not a commercial for Cache' or my
services. This database is the best kept secret in the IT business
and could service an awesome multiplayer world. It is worth looking
at.

On another note: I just noticed an ad on the back cover of EWeek (IT
trade journal) where Oracle promotes itself as the database behind
The Sims Online. I assume it is used for those things for which a
RDBMS would be logical such as account maintenance, billing and so
on. I would be surprised if it turns out that it is actually used
within the game, but who knows?

John Bertoglio


_______________________________________________
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