INFO: Acceler8DB Network Blocking Considerations
The information in this article applies to:
- Acceler8DB, All Releases
- Windows
- TCP/IP
- AVR, All Releases
SUMMARY:
Here is some information on considerations when dealing with large records (>
6K) and database I/O within an AVR application.
STATUS:
Current.
MORE INFORMATION:
Acceler8DB provides a "network blocking" feature, which can improve
program performance when reading sequential records. In most situations where
records are accessed in "read-only" mode, network blocking should be used.
However, there are certain access scenarios where the use of network blocking is
not beneficial, and may even reduce performance.
In read-access network blocking, the server sends a single network communication
packet containing the largest number of sequential records which fits into that
packet, i.e. Acceler8DB/DataGate protocol network communication packet or
"logical packets" - These are independent of the underlying comm transport
(TCP/IP), which generally does use smaller "physical packets". Consequently, file record size should be considered when using network
blocking. If a file's record size is so large that one or more network packets
are required to transmit a single record, then network blocking will not improve
performance. In fact, in such a scenario, the client/server overhead associated
with network blocking may decrease performance slightly. For this reason,
ASNA recommends that programmers consider 6 Kbytes to be the maximum record
length for file access with network blocking. In some instances, files with
slightly larger record lengths may be used effectively with network blocking,
but the 6K limit is a good rule-of-thumb.
Read-access network blocking should also be avoided when records are being
accessed more "randomly" than "sequentially". Network blocking optimizes each
record access using client-side record buffers, so that the record
following/preceding the current record can be returned without network
communication to the server. While network blocking supports most random access
methods, the performance of these methods is comparatively reduced. However, if
the majority of the program's record access is sequential, the greater
performance of network blocking's sequential accesses will generally cancel the
lower performing random accesses, to provide better performance overall. When
performance is critical and there is any question of the usefulness of network
blocking, the program should be benchmark tested with and without network
blocking enabled.
Steps to determine what is your file's record format length:
- Open the database via database manager
- Go to the library where the file exits
- Right click on the file, select Properties (See Figure 1)
- There is a Record Format Length property (See Figure 2)

Figure 1

Figure 2
Keywords: packet, network, transmission, size, block, record format
length, large, slow, performance, netblockfactor
|