There are some more performance considerations in developing proxy based applications. Here they are:
- Use Hugelbfs system to for running code and for application context memory (for connections): Please see this for getting understanding of this technique.
- Use User space RCU wherever possible: See the RCU related information here.
- Use Futexes as part of RCU implementation for add/delete operations. See about Futexes here.
- Use posix spinlock kind of Mutexes only for small portion of the code.
- Use UIO based Interrupt indication to the User space processes while dealing with memory mapped hardware accelerators.