github graygnuorg/pound v4.2

latest releases: v4.13, v4.12, v4.11...
21 months ago

Rewrite periodic tasks

The timer thread is rewritten completely in order to do periodic operations (such as backend probing and session expiration) precisely when needed, instead of waking up in fixed intervals and checking what should be done. Among others, this helps reduce the CPU load.

Whenever a backend is marked as dead, a periodic job is scheduled for alive_to seconds from the current time, which will probe the backend and either mark it as alive (if it responds) or reschedule itself for a later time (if it does not). Thus, no unnecessary iterations over listeners/servers/backends occur.

Sessions are kept on per-service basis in a combined structure consisting of a hash table (to quickly look-up a session) and
a doubly-linked list (to provide for session expiration). Sessions within the latter are sorted by their expiration time. A periodic
job is scheduled to the expiration time of the first session in the list, i.e. the least recently used one. After removing the expired
session, the job reschedules itself to the expiration time of the next session (which becomes first in the list), if any.

The haport feature has been removed.

Control interface rewritten

The new control interface uses REST API.

Poundctl rewritten

Don't miss a new pound release

NewReleases is sending notifications on new releases.