diff options
Diffstat (limited to 'docs/programmer_reference/env_region.html')
| -rw-r--r-- | docs/programmer_reference/env_region.html | 150 |
1 files changed, 80 insertions, 70 deletions
diff --git a/docs/programmer_reference/env_region.html b/docs/programmer_reference/env_region.html index 24658d3a..43c820f5 100644 --- a/docs/programmer_reference/env_region.html +++ b/docs/programmer_reference/env_region.html @@ -14,7 +14,7 @@ <body> <div xmlns="" class="navheader"> <div class="libver"> - <p>Library Version 11.2.5.3</p> + <p>Library Version 12.1.6.1</p> </div> <table width="100%" summary="Navigation header"> <tr> @@ -22,9 +22,7 @@ </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="env_naming.html">Prev</a> </td> - <th width="60%" align="center">Chapter 9. - The Berkeley DB Environment - </th> + <th width="60%" align="center">Chapter 9. The Berkeley DB Environment </th> <td width="20%" align="right"> <a accesskey="n" href="env_security.html">Next</a></td> </tr> </table> @@ -38,92 +36,104 @@ </div> </div> </div> - <p> - Each of the Berkeley DB subsystems within an environment is described by - one or more regions, or chunks of memory. The regions contain all of - the per-process and per-thread shared information (including mutexes), - that comprise a Berkeley DB environment. These regions are created in - one of three types of memory, depending on the flags specified to the - <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> method: + <p> + Each of the Berkeley DB subsystems within an environment is + described by one or more regions, or chunks of memory. The + regions contain all of the per-process and per-thread shared + information (including mutexes), that comprise a Berkeley DB + environment. These regions are created in one of three types + of memory, depending on the flags specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> + method: </p> <div class="orderedlist"> <ol type="1"> <li> - <p> - If the <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag is specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> method, - regions are created in per-process heap memory; that is, memory - returned by <code class="literal">malloc</code>(3). + <p> + If the <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag is specified to the + <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> method, regions are created in per-process + heap memory; that is, memory returned by + <code class="literal">malloc</code>(3). </p> <p> - If this flag is specified, then you cannot open more than a - single handle for the environment. For example, if - both a server application and Berkeley DB utilities (for - example, the <a href="../api_reference/C/db_archive.html" class="olink">db_archive</a> utility, the <a href="../api_reference/C/db_checkpoint.html" class="olink">db_checkpoint</a> utility or the <a href="../api_reference/C/db_stat.html" class="olink">db_stat</a> utility) - are expected to access the environment, the <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag - should not be specified because the second attempt to open + If this flag is specified, then you cannot open + more than a single handle for the environment. For + example, if both a server application and Berkeley DB + utilities (for example, the <a href="../api_reference/C/db_archive.html" class="olink">db_archive</a> utility, the + <a href="../api_reference/C/db_checkpoint.html" class="olink">db_checkpoint</a> utility or the <a href="../api_reference/C/db_stat.html" class="olink">db_stat</a> utility) are expected to + access the environment, the <a href="../api_reference/C/envopen.html#envopen_DB_PRIVATE" class="olink">DB_PRIVATE</a> flag should + not be specified because the second attempt to open the environment will fail. </p> </li> <li> - <p> - If the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag is specified to <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a>, shared - regions are created in system memory rather than files. This is - an alternative mechanism for sharing the Berkeley DB environment - among multiple processes and multiple threads within processes. + <p> + If the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag is specified to + <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a>, shared regions are created in system memory + rather than files. This is an alternative mechanism + for sharing the Berkeley DB environment among multiple + processes and multiple threads within processes. </p> - <p> - The system memory used by Berkeley DB is potentially useful past - the lifetime of any particular process. Therefore, additional - cleanup may be necessary after an application fails because - there may be no way for Berkeley DB to ensure that system - resources backing the shared memory regions are returned to the - system. + <p> + The system memory used by Berkeley DB is + potentially useful past the lifetime of any particular + process. Therefore, additional cleanup may be + necessary after an application fails because there may + be no way for Berkeley DB to ensure that system + resources backing the shared memory regions are + returned to the system. </p> - <p> - The system memory that is used is architecture-dependent. For - example, on systems supporting X/Open-style shared memory - interfaces, such as UNIX systems, the - <code class="literal">shmget</code>(2) and related System V IPC interfaces - are used. Additionally, VxWorks systems use system memory. In - these cases, an initial segment ID must be specified by the - application to ensure that applications do not overwrite each - other's database environments, so that the number of segments - created does not grow without bounds. See the <a href="../api_reference/C/envset_shm_key.html" class="olink">DB_ENV->set_shm_key()</a> - method for more information. + <p> + The system memory that is used is + architecture-dependent. For example, on systems + supporting X/Open-style shared memory interfaces, such + as UNIX systems, the <code class="literal">shmget</code>(2) and + related System V IPC interfaces are used. + Additionally, VxWorks systems use system memory. In + these cases, an initial segment ID must be specified + by the application to ensure that applications do not + overwrite each other's database environments, so that + the number of segments created does not grow without + bounds. See the <a href="../api_reference/C/envset_shm_key.html" class="olink">DB_ENV->set_shm_key()</a> method for more + information. </p> - <p> - On Windows platforms, the use of the <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag is - problematic because the operating system uses reference counting - to clean up shared objects in the paging file automatically. In - addition, the default access permissions for shared objects are - different from files, which may cause problems when an - environment is accessed by multiple processes running as - different users. See the <a href="../installation/build_win_notes.html" class="olink">Windows Notes</a> section in the - Berkeley DB Installation and Build Guide for more information. + <p> + On Windows platforms, the use of the + <a href="../api_reference/C/envopen.html#envopen_DB_SYSTEM_MEM" class="olink">DB_SYSTEM_MEM</a> flag is problematic because the + operating system uses reference counting to clean up + shared objects in the paging file automatically. In + addition, the default access permissions for shared + objects are different from files, which may cause + problems when an environment is accessed by multiple + processes running as different users. See the + <a href="../installation/build_win_notes.html" class="olink">Windows Notes</a> section in the Berkeley DB Installation and Build Guide for + more information. </p> </li> <li> - If no memory-related flags are specified to <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a>, memory backed - by the filesystem is used to store the regions. On UNIX systems, - the Berkeley DB library will use the POSIX mmap interface. If mmap - is not available, the UNIX shmget interfaces may be used instead, if - they are available. + If no memory-related flags are specified to + <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a>, memory backed by the filesystem is used to + store the regions. On UNIX systems, the Berkeley DB + library will use the POSIX mmap interface. If mmap is not + available, the UNIX shmget interfaces may be used instead, + if they are available. </li> </ol> </div> <p> - Any files created in the filesystem to back the regions are created in - the environment home directory specified to the <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> call. These - files are named __db.### (for example, __db.001, __db.002 and so on). - When region files are backed by the filesystem, one file per region is - created. When region files are backed by system memory, a single file - will still be created because there must be a well-known name in the - filesystem so that multiple processes can locate the system shared - memory that is being used by the environment.</p> - <p>Statistics - about the shared memory regions in the environment can be displayed - using the <span class="bold"><strong>-e</strong></span> option to the - <a href="../api_reference/C/db_stat.html" class="olink">db_stat</a> utility. + Any files created in the filesystem to back the regions are + created in the environment home directory specified to the + <a href="../api_reference/C/envopen.html" class="olink">DB_ENV->open()</a> call. These files are named __db.### (for example, + __db.001, __db.002 and so on). When region files are backed by + the filesystem, one file per region is created. When region + files are backed by system memory, a single file will still be + created because there must be a well-known name in the + filesystem so that multiple processes can locate the system + shared memory that is being used by the environment. + </p> + <p> + Statistics about the shared memory regions in the + environment can be displayed using the <span class="bold"><strong> + -e</strong></span> option to the <a href="../api_reference/C/db_stat.html" class="olink">db_stat</a> utility. </p> </div> <div class="navfooter"> |
