I would like to undersand why is used to say:
"even in case of backend database with session information, stickiness is very useful since it significantly improves performance".
Why it does improve the performance? Is there any drwaback to use persistence even in case of backened database?
Does the term backened database mean that there is a possibility to keep relation between "request and response" ?
If you were doing SSL loadbalancing, the client can utilize SSL Session ID's to keep the server from having to re-send SSL certificates and save bandwidth durring the handshake process. So, it would be advantageous to keep a client stuck to the same server for an entire session.
With HTTP, servers sometimes use etags and expiration dates on content. These values can be unique to a server, so keeping a client on a single server would mean it doesn't have to download objects constantly if they were re-used on multiple pages in a session. (assuming the server uses etags, the client sends them, and a 304 not modified is sent.)
Otherwise than that, other protocols could have the same type of caching and benefit from having a client stay stuck to it for a single session.
Performance wise, layer 4 sticky buffers and parses data for sticky information. L5 sticky requires terminating the HTTP session with the client, buffering the request, parsing it, opening a session on the backend and even possibly buffering/searching/recording server response information.
L3 sticky is the least intensive sticky, but any type will slow down the connection a certain amount. (milliseconds, nothing too bad) L4 and L5 depend on how much data you tell ACE to parse and how complicated you make it. L4 can use regex and you can make very complicated search criteras over 65kb of data that take a few hundred ms per session.