Performance: Caching and Memory Management

The PostPath Server™ uses a sophisticated buffer management scheme to avoid memory copies and heap fragmentation. Essentially, once an incoming request frame has been decompressed, buffer data (strings, byte-arrays etc.) are never copied out of it; instead references to the original data are passed around within the server for processing. Even if, for instance, the string has to be converted from 8-bit to 16-bit characters it is simply marked converted rather than having its actual internal data changed.

The server also takes pains to avoid using up more memory than is needed, leaving as much physical memory as possible available for disk caching and especially for caching of inode disk blocks. Techniques include using simplified indexes (see earlier discussion) and using two-levels of data truncation, where applicable, to avoid holding more data than is necessary in memory for efficient sorting.