]> git.hungrycats.org Git - bees/commitdiff
docs: align config-file terminology with crawler/scanner/tier model
authorZygo Blaxell <bees@furryterror.org>
Tue, 23 Jun 2026 18:29:41 +0000 (14:29 -0400)
committerZygo Blaxell <bees@furryterror.org>
Sat, 5 Sep 2026 04:04:12 +0000 (00:04 -0400)
Standardize on the user-facing object model for the extent scan mode:
the crawler enumerates extents from btrfs and tracks its cursor, while
the scanner owns the size range and filter chain and processes a subset
of what the crawler returns.  A size tier is one (common) shape of a
scanner.

Attribute size selection to the scanner, not the crawler (the
skip-forward optimization that pushes it into crawl state is an
implementation detail that does not belong in user docs).  Fix
"crawler"/"scanner" usages that contradicted each other, including the
size-min/size-max discard text where min said "crawler" and max said
"scanner" for the same operation.

Assisted-by: Claude-Code:claude-opus-4-8
docs/config-file.md

index 3b8c8cdf47229614710a9584ca9ae4a45f0e0dc1..f3c65ccb5be47fc688b5d66922ddb94b49a7c3bc 100644 (file)
@@ -927,7 +927,7 @@ The `[thread]` section sets how many worker threads bees runs and how aggressive
   * `>0` makes bees start with the `thread-min` number of workers and then add more until either the 1-minute load average approaches the target or the `thread-max` limit is reached.
 
 * **`task-queue-max`**
-  Maximum number of extent-scan tasks the crawler will queue at once before backpressuring itself, expressed as a count of in-flight `Task` objects.  Larger values increase parallelism and memory use; smaller values reduce wasted work after a restart by keeping fewer extents in flight.
+  Maximum number of extent-scan tasks the scanner will queue at once before backpressuring itself, expressed as a count of in-flight `Task` objects.  Larger values increase parallelism and memory use; smaller values reduce wasted work after a restart by keeping fewer extents in flight.
 
   This parameter cannot be set too low, or scanners will not be able to allocate any `Task` objects and the crawl will starve.  The exact minimum depends on bees implementation details that may change between releases; treat **50** as a risky minimum.
 
@@ -1058,7 +1058,7 @@ The `[scan.subvol]` section controls the legacy subvol-based scan modes (modes 0
 
 ## [scan.extent.*] sections
 
-The `[scan.extent.*]` sections configure the extent scan mode.  Extent scan walks the btrfs extent tree in physical address order, dividing extents into size tiers and dispatching a crawler task for each tier.
+The `[scan.extent.*]` sections configure the extent scan mode.  Extent scan divides extents into size tiers; each tier is a scanner with its own size range and filter chain.  Each scanner has a crawler that walks the btrfs extent tree in physical address order, enumerating extents for the scanner to process.
 
 ### Wildcard defaults: [scan.extent.*]
 
@@ -1069,7 +1069,7 @@ The special section `[scan.extent.*]` sets default values inherited by all named
   Set to `no` to disable all extent size tiers by default, then enable individual tiers.
 
 * **`size-min`**
-  Minimum physical (post-compression) extent size for this tier.  Extents smaller than this are skipped by the crawler.  Accepts [size values](config-format.md#size-values).  Default: `0`.
+  Minimum physical (post-compression) extent size for this tier.  Extents smaller than this are skipped by the scanner.  Accepts [size values](config-format.md#size-values).  Default: `0`.
 
 * **`size-max`**
   Maximum physical extent size for this tier.  Extents larger than this are skipped by the scanner.  Accepts [size values](config-format.md#size-values); `max` means no upper bound.  Default: `max`.
@@ -1085,7 +1085,7 @@ The special section `[scan.extent.*]` sets default values inherited by all named
   `1` selects the temporary `scan_next_extent` hook for integration tests.
 
 * **`first-transid`**
-  Where a crawler starts scanning **the first time the tier is created** — that
+  Where this scanner starts **the first time the tier is created** — that
   is, when there is no saved position for it in `beespoint.ini`.  A tier that
   already has a saved position always resumes from that position and ignores
   this setting.  Default: `min`.  Inherited from `[scan.extent.*]` if not set
@@ -1098,7 +1098,7 @@ The special section `[scan.extent.*]` sets default values inherited by all named
 
   | Value | Starting point | Effect |
   |-------|----------------|--------|
-  | `min` | Lowest min-transid of existing crawlers | Default. The new tier joins the in-progress scans without redundantly re-sweeping data already scanned and committed past.  On a fresh install (no crawlers yet) this is transid 0, so bees scans everything. |
+  | `min` | Lowest min-transid of existing scanners | Default. The new tier joins the in-progress scans without redundantly re-sweeping data already scanned and committed past.  On a fresh install (no scanners yet) this is transid 0, so bees scans everything. |
   | `zero` | Beginning of the filesystem | The new tier independently re-scans **all** existing data.  Use after widening a size tier, relaxing a filter, or adding a hash function, when a full historical pass can find duplicates the old configuration could not. |
   | `current` | Current filesystem transid | The new tier ignores everything written before now and only processes **future** writes. |
 
@@ -1112,7 +1112,7 @@ The special section `[scan.extent.*]` sets default values inherited by all named
 
 ### Named tier sections: [scan.extent.NAME]
 
-Each named section corresponds to one crawler scanning extents in its configured size range.  The section name is an opaque label with no special meaning — size bounds come from `size-min` and `size-max`, not from the name.  The default configuration has six tiers:
+Each named section configures one scanner that processes extents in its configured size range.  The section name is an opaque label with no special meaning — size bounds come from `size-min` and `size-max`, not from the name.  The default configuration has six tiers:
 
 | Section | Default size range |
 |---------|--------------------|