Question:
I’ve heard about a configuration keyword for SQLBase that groups multiple COMMITs together. Does this keyword exist, and under whatconditions would it be useful?
Answer:
Yes. The keyword “groupcommit
” is a SQLBase configuration keyword that controls how many COMMITs are bundled together before writing them to disk. The ability to specify groupcommit
first became available in SQLBase 5.1.4 and was designed to increase transaction throughput on systems with many active client applications.
The first characteristic to keep in mind with this keyword is that it tells SQLBase to wait until X COMMITs have occurred before writing them to disk. This sounds interesting at first; however, experienced DBAs and developers are probably a bit wary of a configuration keyword that causes SQLBase to wait, especially for something as critical as COMMITs. In fact this concern forms the basis for determining the best groupcommit
value for your system.
Groupcommit
specifies the maximum number of COMMITs thatSQLBase groups together before it physically flushes log buffers to disk. By default, SQLBase waits for 1 system tick for the number of COMMITs to equal the groupcommit
setting. This waiting period iscontrolled by another configuration keyword, groupcommitdelay
, whichcontrols the maximum number of system ticks (this is determined by hardware; it usually takes about 1/30 of a second) that SQLBase waits before it performs the log flushing.
If groupcommit
and groupcommitdelay
are setimproperly, SQLBase performance will degrade if both of the following conditions are satisfied:
- The number of active users is less than the
groupcommit
- The number of inactive users is greater than that of active users
Active user?A user connects to a database, performs operations and issues COMMITs frequently.