The
M-Vault Server achieves very high performance for both search and update
operations. These features allow scalability to millions of records,
without significantly driving up the cost of the directory software.
Instead, the scalability cost is mostly associated with the cost of
providing the appropriate system hardware to meet performance (processor,
I/O subsystem, etc.) and sizing (disk space, backup systems) requirements.
The following figure illustrates the internal architecture of the M-Vault
directory server.

The key benefits of this architecture are:
- High performance.
- Excellent scalability.
- Judicious use of system resources.
High performance is achieved using a number of design and implementation
features. M-Vault utilises an efficient multi-threaded object oriented
task manager that evaluates operations and controls their resolution
by use of protocol, local database, or a combination of both. In addition,
data is stored and accessed using an enterprise grade disk-based database.
The database is implemented in a balanced manner using configurable
LRU (least recently used) in-memory caching mechanisms and a scalable
b-tree package for efficiently managing the placement, access, and update
of information on disk. B-trees are well-known self-organizing data
structures whose scalability is limited only by available disk space.
The database technology choice is superior to the two main alternatives:
- In-memory Database. The advantage of an in-memory database
is that directory information is read from disk at startup, and held
in memory as long as the directory is running. While this choice is
attractive when the directory information is primarily read-only and
scalability is not of significant concern. The primary limitation
of this approach is that it does not scale: startup time can be significant
for large data sets; a large amount of physical memory is required
to achieve high performance levels; modifications to information can
be slow; response times vary significantly with system load.
- Off-the-Shelf Relational Database. The relational data model
is not a good match with the hierarchical data model of X.500 and
the type of search and modify operations which need to be applied
to the data. While it is possible to define a mapping of the hierarchical
data model into relational form, the resulting set of tables and the
relationships defined are typically not effectively used by anything
other than the M-Vault Server itself. In order to achieve a suitable
mapping while also maintaining high performance across all X.500 directory
operations, the relational tables must typically be defined in a manner
that makes them unsuitable for use by standard relational access methods,
thereby obviating the most compelling advantages. Without these advantages,
the extra cost associated with bundling a commercial RDBMS is not
economically justifiable.
M-Vault's performance characteristics compare very favourably with
our competitors, more information on performance can be found in this
white paper describing
the results of benchmark testing of Isode M-Vault 10.2.