Data compression, introduced in V10, has enjoyed widespread usage with today's increased data volumes. Continued focus on this popular option highlighted several areas of improvement, including performance. One such area was faster reading of uncompressed records from a file employing data record compression.
FairCom also identified areas for improved sRLE decompression performance. Two different techniques were investigated, and each providing improvement. We expect to see a positive performance impact from these changes.
Use of Domain Sockets for Faster Unix/Linux Shared Memory Connections
In release V11 and later, Unix and Linux c-treeACE Servers use a Unix domain socket instead of named pipes for the initial shared memory protocol communication between the client and server. (Prior to this revision, all Unix and Linux systems except AIX used named pipes for the initial shared memory connection.)
The following shared memory protocol changes were enacted:
Now FairCom Server uses a Unix domain socket instead of a pair of named pipes for the initial communication when a client connects to the server. FairCom Server still creates the named pipes, and when a client connects, the server waits for the client to write to either the socket or the named pipe. In this way, the server is able to support both clients that use the new method and those that use the original method.
The COMPATIBILITY SHMEM_PIPE configuration option has been deprecated and no longer has any effect.
c-treeACE clients (both ISAM and SQL) now use the Unix domain socket method when connecting using the shared memory protocol if the server indicates that it supports it. If not, the clients use the original method.
A c-treeACE client library can be compiled with #define NO_ctFeatUNIX_SHMEMsocket to force the client to use the original method only.