Files that are opened read-only in the cache (and that satisfy a few
other criteria) are, by default, mapped into the process address space
instead of being copied into the local cache. This can result in
better-than-usual performance because available virtual memory is
normally much larger than the local cache, and page faults are faster
than page copying on many systems. However, it can cause resource
starvation in the presence of limited virtual memory, and it can
result in immense process sizes in the presence of large databases.
</p>
<p>
The <codeclass="methodname">DbEnv::set_mp_mmapsize()</code> method sets the maximum file size, in
bytes, for a file to be mapped into the process address space. If no
value is specified, it defaults to 10MB.
</p>
<p>
The database environment's maximum mapped file size may also be
configured using the environment's <ahref="../../programmer_reference/env_db_config.html#env_db_config.DB_CONFIG"class="olink">DB_CONFIG</a> file. The syntax of
the entry in that file is a single line with the string
"set_mp_mmapsize", one or more whitespace characters, and the size
in bytes. Because the <ahref="../../programmer_reference/env_db_config.html#env_db_config.DB_CONFIG"class="olink">DB_CONFIG</a> file is read when the database
environment is opened, it will silently overrule configuration
done before that time.
</p>
<p>
The <codeclass="methodname">DbEnv::set_mp_mmapsize()</code> method configures a database
environment, not only operations performed using the specified
<aclass="link"href="env.html"title="Chapter5. The DbEnv Handle">DbEnv</a> handle.
</p>
<p>
The <codeclass="methodname">DbEnv::set_mp_mmapsize()</code> method may be called at any time during
the life of the application.
</p>
<p>
The <codeclass="methodname">DbEnv::set_mp_mmapsize()</code><span>
<span>
method either returns a non-zero error value or throws an
exception that encapsulates a non-zero error value on