Skip to content

brig ls and repinning with large dataset takes forever and blocks other operations #119

@max-privatevoid

Description

@max-privatevoid

Describe the bug
With a large dataset (~70GB, ~4500 files), brig ls takes a very long time, as does performing a repin, Worse yet, repinning seems to be an operation that blocks all other file operations, so with the default configuration brig stalls for hours every 15 minutes. I suspect this is due to IsCached being called on everything in the repo and therefore performing a /refs call on all the CIDs brig knows about.

To Reproduce

  • Add a large dataset
  • brig ls

or

  • While (re-)adding a large dataset, trigger a repin
  • Staging process blocks until repin is complete

Please always include the output of the following commands in your report!

  • brig bug -s

go version: ````
uname -s -v -m: Linux #1-NixOS SMP PREEMPT Wed May 18 08:28:23 UTC 2022 x86_64
IPFS config (only datastore):

{
  "Datastore": {
    "BloomFilterSize": 0,
    "GCPeriod": "1h",
    "HashOnRead": false,
    "NoSync": true,
    "Spec": {
      "child": {
        "path": "badgerds",
        "syncWrites": false,
        "truncate": true,
        "type": "badgerds"
      },
      "prefix": "badger.datastore",
      "type": "measure"
    },
    "StorageGCWatermark": 90,
    "StorageMax": "200GB"
  },
}

brig client version: v.. [build: ] (built from 6b7eccf)
brig server version: v..+
IPFS Version: 0.12.2+

Expected behavior
brig ls should return (near) instantly. Repinning should be performed in the background, without blocking other commands and without hammering the disk with read operations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions