c-tree RTG
The following suggestions are applicable to c-treeRTG:
General
• Avoid accessing files via network drives or UNC paths. Start the c-tree Server on the machine where files are stored instead.
• If the c-tree server runs on a separate machine than the isCOBOL Runtime, the network speed and latency might affect performance.
Server-side
• Use the latest c-tree version available.
• Enable the SHAREMEM protocol in ctsrvr.cfg, if not yet enabled.
• In thin client it’s better to call
C$LOCKPID instead of using the BaseLockManager if you need to know who’s locking a record.
• In thin client you can run the c-tree server in the same process as isCOBOL Server. Set
iscobol.ctree.bound_server (boolean)* to true in the isCOBOL Server configuration. The c-tree server will start as part of the isCOBOL Server process at the first OPEN of an indexed file performed by a Client. Working in this mode, the performance is better than having c-tree server running as a separate process. It’s still possible to connect to the c-tree server using external tools, utilities and runtimes.
• If your files are under transaction with logging, consider setting
DELAYED_DURABILITY and increase the value of
LOG_SPACE to 1 GB in ctsrvr.cfg.
Client-side
• When configuring
<instance> or
iscobol.file.index.server, avoid specifying "@localhost" or "@127.0.0.1" in the server name when the c-tree Server runs on the same machine as the runtime. The connection to the localhost is performed by default, and it’s performed via shared memory (faster) instead of TCP/IP (slower) if you don’t use the @ character in the server name.
• Take advantage of prefetch, batchaddition and bulkaddition where applicable. For details:
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
| |
| |
• Avoid the use of a file connector, if possible. Use ctreej instead.
• For temporary files, memory files should be used. For details:
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• Disable c-tree activity logging, so avoid the following settings:
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• Enabling the ctfixed option forces creating fixed-length record data files as fixed-length c-tree files. If you enable ctfixed, you may see a small performance enhancement as there is additional overhead in processing variable-length record data files.
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• If the COBOL application performs several OPEN operations on the same files, consider to add the files to a pool:
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• c-treeRTG allows data and key compression to reduce disk space utilization and network traffic with a potential impact on performance. Enabling compression using the RLE algorithm provides the advantages of compressed data with a very small impact on CPU usage. Since most applications are saturated at the I/O level, the slight increase in CPU usage but less overhead on the I/O channel typically results in performance gains.
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
| |
• The optimisticadd option enables adding keys before the data during WRITE operations. When optimisticadd is disabled, c-tree attempts to add unique keys before adding the data record. This eliminates the overhead of deleting a data record when the unique key check fails, speeding up the insert process. Disable optimisticadd if the COBOL application frequently performs WRITE operations conflicting with existing records.
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• The deferautocommit option turns on optimization that improves performance for functions that use autocommit. Similar to the c-tree
DELAYED_DURABILITY keyword, guarantees atomicity and consistency of transaction but not durability because the last transaction could be lost.
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |
• You might consider disabling transaction logging if if data is stored on secure media (hardware redundancy, etc.). To remove transaction logging from existing files, use the
ctutil utility with the
-tron option. To have new files created without transaction logging, set the following configuration entry:
Configuration via CTREE_CONF | Configuration via iscobol.properties |
|---|
| |