Speed was the primary motivation behind mSQL. Because most commercial
SQL servers try to implement the full SQL2 specification in addition
to their own proprietary extensions, they pay for that support in
terms of performance and footprint. mSQL, however, sacrifices some of
the more advanced features of the commercial database engines for
speed. Minerva needed to be able to run many simple SQL queries
quickly. mSQL does exactly that.
Speed and footprint go hand-in-hand. As Hughes discovered, if you
start from the ground up and implement only the necessary
functionality, you can design an SQL server that does not take up so
many resources that it must be run on a machine by itself in order to
be useful. As a result, mSQL has a large amount of the functionality
of the major database engines using a fraction of the resources.
The speed and footprint improvements of mSQL would have been enough
to make it a viable replacement for Postgres on the Minerva project.
Hughes, however, also wanted to change the behavior that caused him
to seek an alternative in the first place. Hughes specifically
designed mSQL to handle multiple simultaneous connections within a
single process. The result of these design goals is a small, fast,
efficient SQL server capable of handling multiple connections,
locally or over the network.