#[repr(u8)]pub enum MetadataOp {
Stat = 0,
ReadLink = 1,
MkDir = 2,
RmDir = 3,
Unlink = 4,
HardLink = 5,
Symlink = 6,
Chmod = 7,
OpenCreate = 8,
}Expand description
Which metadata syscall is being measured.
Separate ops feed independent controllers because their service-time
distributions differ — stat (pure lookup) and unlink (mutation
plus parent-directory write) hit different code paths on the
metadata server and converge on very different baselines. Mixing
them in one controller pollutes the per-op latency signal: the
resulting ratio drifts with operation-mix changes that have nothing
to do with congestion (the long-window baseline percentile shifts
as the mix changes, and in cross mode the inter-quantile spread
becomes a function of the mix rather than the load).
The variants are ordered so they index a fixed-size array when paired
with a Side; see N_META_OPS.
Variants§
Stat = 0
stat / lstat / symlink_metadata. Also covers
canonicalize and read-only File::open — both are dominated
by lookup work on the metadata path.
ReadLink = 1
readlink. Distinct from Stat because it pulls the symlink’s
target body, not just the inode header.
MkDir = 2
mkdir / create_dir. Allocates a directory inode and wires
it into the parent.
RmDir = 3
rmdir / remove_dir. Verifies emptiness then removes the dir.
Unlink = 4
unlink / remove_file. Decrements link count, frees inode at
zero.
HardLink = 5
link / hard_link. Bumps an existing inode’s link count.
Symlink = 6
symlink (creation). Allocates an inode whose body is the
target path.
Chmod = 7
Permission / ownership / timestamp updates: chmod /
set_permissions, chown / fchownat, utimes / utimensat.
Bucketed together because they’re all single inode writes.
OpenCreate = 8
open(O_CREAT) / File::create. Allocates a regular-file
inode and wires it into the parent.
Implementations§
Trait Implementations§
Source§impl Clone for MetadataOp
impl Clone for MetadataOp
Source§fn clone(&self) -> MetadataOp
fn clone(&self) -> MetadataOp
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MetadataOp
impl Debug for MetadataOp
Source§impl Hash for MetadataOp
impl Hash for MetadataOp
Source§impl PartialEq for MetadataOp
impl PartialEq for MetadataOp
Source§fn eq(&self, other: &MetadataOp) -> bool
fn eq(&self, other: &MetadataOp) -> bool
self and other values to be equal, and is used by ==.