Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-20462 Lustre Find Utility (LFU)
  3. LU-20605

LFU: reimplement 'lfs find' on the namespace scanner API

XMLWordPrintable

    • Icon: Technical task Technical task
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • None
    • 3
    • 9223372036854775807

      lfs find becomes the first consumer of llapi_scan_namespace() (LU-20603):
      its output path consumes per-object records instead of walking and printing in one pass. Behaviour is preserved.

      It is the honest test of the record. If lfs find rebuilds on the API without special cases, the record carries what a consumer needs; if it does not, the record is wrong, and that is far cheaper to learn now than after a wire format is frozen around it. It also stops lfs find becoming technical debt beside LFU.

      *Acceptance:* the sanity.sh::test_56* series stays green.

      *Known work, from the LU-20603 lab.* A regular file's record that carries neither LLAPI_SCAN_SIZE nor LLAPI_SCAN_BLOCKS (i.e. plain layout files that do not have strict or lazy Size-on-MDT, LU-11962), then the size is stored only on the OST(s) and the MDT's statx has no authoritative size, so the mask reports "cannot answer" rather than zero. lfs find copes today by testing OBD_MD_FLSIZE / OBD_MD_FLLAZYSIZE and falling back to a stat() glimpse. --size, --blocks and --lazy need that fallback carried over explicitly; it is the one thing consuming records does not inherit for free.

      *Scope:* a behaviour-preserving change of internals. Pushing the filter down into the scanner, with its I/O cost tiers, is separate work.

      *Review note:* pushed as one stacked Gerrit series with LU-20603, so the API and its first caller are visible together.

            hnishida Hiroshi Nishida
            hnishida Hiroshi Nishida
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: