Try OpenEdge Now
skip to main content
New Information
OpenEdge RDBMS : Buffer Hash Table concurrency
 

Buffer Hash Table concurrency

This release provides the ability to adjust the number of latches that protect the Buffer Hash Table (BHT). Each BHT latch protects a portion of the table, restricting concurrent access to that portion. With more latches, the fraction of the table protected by a single latch is reduced. Prior to this release, the number of latches was a fixed at 1024; starting in this release, you can specify the number of latches as a percent of the number of entries in the hash table. A larger number of latches should reduce contention for random access to the buffer pool. A larger number of latches will not reduce contention created by multiple users attempting to access the same data.
Specify the number of latches with the -hashLatchFactor startup parameter on the primary broker. If not specified, the factor defaults to ten percent (10%) of the size of the BHT. The BHT is sized at approximately one quarter (25%) of the value of -B. Alternately, you can set the size of the BHT with the -hash startup parameter. You must specify the -hashLatchFactor value at startup; you can not modify it while the database is online. The following table illustrates the number of latches allocated, based on specifying -B 2000000, and varying the -hashLatchFactor.
Buffers (-B)
Buffer Hash Table (approximate)
-hashLatchFactor
Number of latches (approximate)
2,000,000
500,000
5 (min value)
25,000
2,000,000
500,000
10 (default)
50,000
2,000,000
500,000
25
125,000
2,000,000
500,000
50
250,000
2,000,000
500,000
100 (max value)
500,000
For more details, see Buffer Hash Latch Factor (-hashLatchFactor).