From 780b92ada9afcf1d58085a83a0b9e6bc982203d1 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 17 Feb 2015 17:25:57 +0000 Subject: Imported from /home/lorry/working-area/delta_berkeleydb/db-6.1.23.tar.gz. --- docs/programmer_reference/mp_config.html | 111 +++++++++++++++++-------------- 1 file changed, 60 insertions(+), 51 deletions(-) (limited to 'docs/programmer_reference/mp_config.html') diff --git a/docs/programmer_reference/mp_config.html b/docs/programmer_reference/mp_config.html index ae7083aa..1c585e4b 100644 --- a/docs/programmer_reference/mp_config.html +++ b/docs/programmer_reference/mp_config.html @@ -14,7 +14,7 @@ -

There are two issues to consider when configuring the memory pool.

-

The first issue, the most important tuning parameter for Berkeley DB -applications, is the size of the memory pool. There are two ways to -specify the pool size. First, calling the DB_ENV->set_cachesize() method -specifies the pool size for all of the applications sharing the Berkeley DB -environment. Second, the DB->set_cachesize() method only specifies a -pool size for the specific database. Note: It is meaningless to call -DB->set_cachesize() for a database opened inside of a Berkeley DB -environment because the environment pool size will override any pool -size specified for a single database. For information on tuning the -Berkeley DB cache size, see -Selecting a cache size.

- Note the memory pool defaults to assuming that the average page size is - 4k. This factor is used to determine the size of the hash table used - to locate pages in the memory pool. The size of the hash table is - calculated to so that on average 2.5 pages will be in each hash table - entry. Each page requires a mutex be allocated to it and the average - page size is used to determine the number of mutexes to allocate to the - memory pool. -

+ There are two issues to consider when configuring the memory + pool. +

- Normally you should see good results by using the default values for - the page size, but in some cases you may be able to achieve better - performance by manually configuring the page size. The expected page - size, hash table size and mutex count can be set via the methods: - DB_ENV->set_mp_pagesize(), DB_ENV->set_mp_tablesize(), and DB_ENV->set_mp_mtxcount(). -

-

The second memory pool configuration issue is the maximum size an -underlying file can be and still be mapped into the process address -space (instead of reading the file's pages into the cache). Mapping -files into the process address space can result in better performance -because available virtual memory is often much larger than the local -cache, and page faults are faster than page copying on many systems. -However, in the presence of limited virtual memory, it can cause -resource starvation; and in the presence of large databases, it can -result in immense process sizes. In addition, because of the -requirements of the Berkeley DB transactional implementation, only read-only -files can be mapped into process memory.

-

To specify that no files are to be mapped into the process address -space, specify the DB_NOMMAP flag to the -DB_ENV->set_flags() method. To specify that any individual file should -not be mapped into the process address space, specify the -DB_NOMMAP flag to the DB_MPOOLFILE->open() interface. To limit -the size of files mapped into the process address space, use the -DB_ENV->set_mp_mmapsize() method.

+ The first issue, the most important tuning parameter for + Berkeley DB applications, is the size of the memory pool. + There are two ways to specify the pool size. First, calling + the DB_ENV->set_cachesize() method specifies the pool size for all + of the applications sharing the Berkeley DB environment. + Second, the DB->set_cachesize() method only specifies a pool + size for the specific database. Note: It is meaningless to + call DB->set_cachesize() for a database opened inside of a + Berkeley DB environment because the environment pool size will + override any pool size specified for a single database. For + information on tuning the Berkeley DB cache size, see Selecting a cache size. +

+

+ Note the memory pool defaults to assuming that the average + page size is 4k. This factor is used to determine the size of + the hash table used to locate pages in the memory pool. The + size of the hash table is calculated to so that on average 2.5 + pages will be in each hash table entry. Each page requires a + mutex be allocated to it and the average page size is used to + determine the number of mutexes to allocate to the memory + pool. +

+

+ Normally you should see good results by using the default + values for the page size, but in some cases you may be able to + achieve better performance by manually configuring the page + size. The expected page size, hash table size and mutex count + can be set via the methods: DB_ENV->set_mp_pagesize(), + DB_ENV->set_mp_tablesize(), and DB_ENV->set_mp_mtxcount(). +

+

+ The second memory pool configuration issue is the maximum + size an underlying file can be and still be mapped into the + process address space (instead of reading the file's pages + into the cache). Mapping files into the process address space + can result in better performance because available virtual + memory is often much larger than the local cache, and page + faults are faster than page copying on many systems. However, + in the presence of limited virtual memory, it can cause + resource starvation; and in the presence of large databases, + it can result in immense process sizes. In addition, because + of the requirements of the Berkeley DB transactional + implementation, only read-only files can be mapped into + process memory. +

+

+ To specify that no files are to be mapped into the process + address space, specify the DB_NOMMAP flag to the + DB_ENV->set_flags() method. To specify that any individual file + should not be mapped into the process address space, specify + the DB_NOMMAP flag to the DB_MPOOLFILE->open() interface. To limit + the size of files mapped into the process address space, use + the DB_ENV->set_mp_mmapsize() method. +