Repository navigation
perfcached 0.5.7.1
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 everything since 0.5.6.6: 0.5.7 and 0.5.7.1, which replaced it the same day. The ChangeLog has both.
A rolling restart. From 0.4.5, 0.5.7.1 joins a fleet one node at a time; use SET IFEQ/IFNE and DELEX once every node runs 0.5.0 or later.
A rolling restart waits for the witness a reconcile needs
- A node does not call itself safe to restart while it is the last live witness of a peer's reconcile:
stats.cluster.restart.waits_fornames the peers. (0.5.7 waited while any peer reconciled; 0.5.7.1 waits only where its restart would leave the reconcile without a witness.) - A reconcile left with no witness at all - every peer restarted after the node went down - says so once, after 30 seconds, with the remedy, and counts the time in
stats.cluster.reconcile_no_witness_s. A rolling restart that went on regardless used to leave the first node's reconcile waiting for good. - The status page's header says when a reconcile is in trouble: red "reconcile has no witness - restart this node", amber "do not restart: node N needs it to finish its reconcile".
/memberscarries each member'sreconcilingandsole_witness.
The memory guard and huge pages
- The guard no longer counts a huge-page arena twice. On a 2 GB node with
arena_mb = 1024on a 512-page pool it refused every new client once the arena had given memory back. Boot says when a pool is outside the limit;/stats clients.memory.hugetlb_pool.
Read-through probes without a fetch
EXISTS,TTL,PTTLandTYPEof a key the collection does not hold answer from one round trip of TYPE and PTTL, and a hash or JSON document is remembered as present for the next ones - they used to fetch and store the whole document./stats upstream.fill_present,present_hits.
Connect storms
- A worker turn runs at most 8 Noise handshakes and parks the rest, and accepts at most 64 connections: at ~6,000 encrypted connects a second, an established client's p99 went from 92-107 ms to 33-37 ms.
/stats clients.handshakes.