Project

General

Profile

Actions

Feature #20318

closed

Go SDK supports local filesystem-backed data cache

Added by Peter Amstutz about 1 year ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Keep
Story points:
-

Description

Add option to store cached blocks in local filesystem rather than RAM in order to take advantage of better performance of (typically SSD-backed) local disk relative to backend, and let the kernel decide what to cache in RAM.

Where reasonable, implement the same behavior as the Python SDK in laying out and managing the cache directory containing the files for each cached block.

Caller should be able to read a partial block before the entire block is received from upstream, allowing for streaming block content. Can base this on AsyncBuf but uses a file or mmap as the backing store instead of a plain slice.


Subtasks 1 (0 open1 closed)

Task #21177: Review 20318-disk-cacheResolvedTom Clegg12/29/2023Actions

Related issues

Related to Arvados Epics - Idea #18342: Keep performance optimizationNew08/01/202305/30/2024Actions
Related to Arvados - Feature #21196: implement keepclient API on top of block cache with pluggable backendResolvedTom CleggActions
Related to Arvados - Idea #21323: System services use cache/config directories indicated by XDG env vars / systemd directivesNewActions
Related to Arvados - Bug #21428: keepclient test StandaloneSuite.TestPutHR fails intermittentlyResolvedTom CleggActions
Actions

Also available in: Atom PDF