Search Shortcut cmd + k | ctrl + k
latency_injection_fs

Used to inject simulated latency to filesystem operations

Maintainer(s): dentiny

Compatibility Matrix

This table covers all DuckDB releases that have not reached end-of-life, including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.

Platform 1.4.4 1.4.5 1.5.5 1.5.6 2.0.0
Linux AMD64
Linux ARM64
macOS AMD64
macOS ARM64
Windows AMD64
Windows ARM64
WebAssembly

Installing and Loading

INSTALL latency_injection_fs FROM community;
LOAD latency_injection_fs;

Example

SELECT * FROM latency_inject_fs_list_filesystems();

About latency_injection_fs

This extension injects log-normal distribution latency to all types of filesystem operations, which could be used to local benchmark. It supports a few key features:

  • Supports wrapping user-requested filesystems, so users don't need to make any code change.
  • Supports simulated IO operation latency, via log-normal distribution.
  • Could be used together with rate_limit_fs to throttle operations if needed.

Added Functions

function_name function_type description comment examples
latency_inject_fs_list_filesystems table Returns the names of filesystems currently wrapped by the latency injection filesystem. NULL [SELECT * FROM latency_inject_fs_list_filesystems();]
latency_inject_fs_wrap scalar Wraps a registered DuckDB filesystem with latency injection using the current latency_inject_fs_* settings. NULL [SELECT latency_inject_fs_wrap('HTTPFileSystem');]

Overloaded Functions

This extension does not add any function overloads.

Added Types

This extension does not add any types.

Added Settings

name description input_type scope aliases
latency_inject_fs_enabled Enable or disable latency injection BOOLEAN GLOBAL []
latency_inject_fs_list_mean_ms Mean latency in milliseconds for LIST operations (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_list_stddev Standard deviation for LIST operations latency (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_metadata_write_mean_ms Mean latency in milliseconds for METADATA_WRITE operations (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_metadata_write_stddev Standard deviation for METADATA_WRITE operations latency (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_read_base_mean_ms Base mean latency in milliseconds for READ operations (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_read_base_stddev Base standard deviation for READ operations latency (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_read_bytes_per_ms Read throughput in bytes per millisecond (size-dependent latency) DOUBLE GLOBAL []
latency_inject_fs_stat_mean_ms Mean latency in milliseconds for STAT operations (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_stat_stddev Standard deviation for STAT operations latency (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_write_base_mean_ms Base mean latency in milliseconds for WRITE operations (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_write_base_stddev Base standard deviation for WRITE operations latency (log-normal distribution) DOUBLE GLOBAL []
latency_inject_fs_write_bytes_per_ms Write throughput in bytes per millisecond (size-dependent latency) DOUBLE GLOBAL []