# Chapter Review: 6.2.4 - The Bookkeeper's Ledger (SLRU & MultiXact)
**Purpose**: To explain SLRU (Simple Least Recently Used) caches and MultiXact wait events, which often occur during heavy transaction or subtransaction volume.
**Target reader at this point**: An advanced user who is seeing obscure "SLRU" waits and needs to understand what part of their application logic (e.g., Savepoints or Shared Locks) is causing them.
**Main takeaway**: Not all ledgers are big data tables. SLRUs are "Note Cards" for internal coordination. If you have too many "Sub-orders" (Subtransactions), the Bookkeeper's desk gets cluttered.
## What works
- **The "Note Cards" Metaphor**: Framing SLRUs as small index cards that get dropped to disk when the desk (cache) is full is a perfect way to explain "Simple Least Recently Used" without getting into the weeds of C algorithms.
- **MultiXact "Group Alpha"**: Describing MultiXacts as a "Group Membership" note for shared row-level locks is highly intuitive. It explains *why* a separate ledger is needed (because you can't fit all the names on the row itself).
- **Subtransaction Diagnostic**: Briefly mentioning that savepoints (subtransactions) drive SLRU traffic is a high-value practical tip for developers.
## Technical concerns
- **clog (CommitLog)**: (Minor) While you mention `CommitLog` in the technical categories, it might be worth explicitly naming the `pg_xact` directory if you've named other directories in previous sections (like `pg_wal`).
- **SLRU Scope**: (Minor) It could be clarify that SLRUs are *not* stored in `shared_buffers`, which is why they have their own wait events.
## Narrative concerns
- **Consistency**: The "Bookkeeper" role is a perfect addition to the "Chef/Waiter" staff model.
- **Metaphorical Flow**: The transition from "Master Keys" (metadata files) to "Note Cards" (ephemeral bookkeeping) feels like a logical progression of "Administrative IO."
## Readability concerns
- **Density**: This addresses a very complex part of Postgres internals with surprising brevity and clarity.
- **Formatting**: The use of `[!info]` boxes for deep-dive links is consistent and helpful.
## Highlights/Lowlights
- **Most confusing point**: The technical bridge between `MultiXact` and row-level locking might still feel a bit "magical," but the metaphor provides a good enough mental model.
- **Most engaging point**: The idea that elephants are being "too polite" by sharing too many resources.
- **Missing example or diagram**: A "Note Card" labeled "Sub-Order 42" containing a list of sub-transactions.
## Feedback (Obs/Imp/Sug)
### Observation 1: Shared Buffers vs SLRU
**Observation**: Many users assume *all* data resides in `shared_buffers`.
**Impact**: If a user tries to fix SLRU waits by increasing `shared_buffers`, they will fail.
**Suggestion**: Add a small note that these "Note Cards" live in their own special desk, separate from the main "Warming Rack" (shared_buffers).
### Observation 2: Frontmatter consistency
**Observation**: Like some others, this one has the `---` correctly.
**Impact**: Good consistency.
**Suggestion**: Ensure the "fix" applied here is backported to early sub-chapters.
## Top Revisions
1. **Clarify memory locations**: Mention that SLRUs have their own cache separate from `shared_buffers`.
2. **Add a visual**: A Bookkeeper's desk with a stack of index cards.
## Overall verdict
**Strong**. It takes one of the most obscure wait event families in Postgres and makes it accessible through excellent metaphorical reasoning.
## Scoring Rubric
- **Technical correctness**: 5/5
- **Conceptual structure**: 5/5
- **Narrative flow**: 5/5
- **Readability**: 5/5
- **Example quality**: 4/5
- **Audience fit**: 5/5