Skip to content

perfcached 0.5.9

Choose a tag to compare

@Lt-Flash Lt-Flash released this 11 Oct 13:01
· 1 commit to master since this release

perfcached - found fast, kept safe

A multithreaded, self-clustering cache for Linux, with its own encrypted protocols and a Redis-compatible door. New here? Start with the README.

Superseded by 0.6.0. This page was added afterwards for the record: no packages are attached - install the latest release. The source archives below are this tag's tree.

This page covers 0.5.9. The ChangeLog has the detail.

A rolling restart. From 0.4.5, 0.5.9 joins a fleet one node at a time; use SET IFEQ/IFNE and DELEX once every node runs 0.5.0 or later. A config that uses [mail] is refused by an older release: to roll back, put the old config back with the old binary.

A node raises its own alerts, and mails them

  • Failed or healing, records the WAL lost, a slow fsync, writes refused for want of memory, an arena near its ceiling, a read-through upstream unreachable or its tracking off, its own start (critical after an unclean stop). Each is logged, kept - the last 100 in /stats alerts and on the status page's alerts card - and counted on /metrics.
  • With [mail] and a build with an SMTP client (PC_MAIL=libcurl; the release packages have one), alerts are mailed: STARTTLS or TLS, AUTH with the password in [secrets] mail, the same alert at most once per min_interval_s unless it got worse, everything within digest_s in one mail, and the clear when it recovers. perfcli -E ... mailtest sends a test mail and prints the server's answer. tls_verify = no keeps TLS for a relay whose certificate cannot be verified, with a warning at every config check.
  • In a fleet, [mail] on one node is enough: the nodes elect the lowest-numbered one that can mail and relay their alerts to it, and what happens to the fleet itself - a member silent, failed, gone or missing, the fleet below a majority - is mailed once, by that node.

libperfd 0.6.0

  • perfd_get_buf, perfd_jget_buf and perfd_hget_buf read into the caller's buffer and allocate nothing. The SONAME stays libperfd.so.0.

Build flavors

  • make menuconfig chooses release, debug or asan (sanitizers linked statically); a non-release build says so in -V, /stats and the page header. contrib/systemd/cores.conf keeps a crashed node's core; asan.conf routes a sanitizer's report beside it.
  • The perfcached packages depend on libcurl (the alert mail).