The Solaris Network Cache and Accelerator ("NCA") is a kernel module designed
to provide improved web server performance. The kernel module, ncakmod, services HTTP requests. To improve the performance of servicing HTTP requests, the NCA kernel module maintains an in-kernel cache of web pages. If the NCA kernel module cannot service the request itself, it passes the request to the http daemon (httpd). It uses either a sockets interface, with family type designated PF_NCA, or a private Solaris doors interface that is based on the Solaris
doors RPC mechanism, to pass the request.
To use the sockets interface, the web server must open a socket of family type PF_NCA. The PF_NCA family supports only SOCK_STREAM and protocol 0, otherwise an error occurs.
The following features are not presently supported:
- You cannot initiate a connection from a PF_NCA type socket. The connect(3SOCKET) interface on PF_NCA
- System calls that are associated with type SO_DGRAM, such as send(), sendto(), sendmsg(), recv(), recvfrom(), and recvmsg(), will fail.
- You cannot set TCP or IP options on a PF_NCA type socket through setsockopt(3SOCKET).
The NCA cache consistency is maintained by honoring HTTP headers that deal with a given content type and expiration date, much the same way as a proxy cache.
For configuration information, see System Administration Guide, Volume 3
When native PF_NCA socket support does not exist in the web server, the ncad_addr(4) interface must be used to provide NCA support in
that web server.
NCA is intended to be run on a dedicated web server. Running other large processes while running NCA might cause undesirable behavior.
NCA supports the logging of in-kernel cache hits. See ncalogd.conf(4). NCA stores logs in a binary format. Use the ncab2clf(1) utility to convert the log from a binary format to the Common Log File format.