发布

  • server/internal/registry: reintroduce pruning on model deletion (#9489)

    frostbyte_neo 发布于 2025-03-04 03:11:16 +00:00

    This reintroduces aggressive pruning on model deletion as a temporary
    measure until a more controlled garbage collection (GC) mechanism is
    implemented.

    Issues with the current approach:

    1. Users may accidentally delete a model (ollama rm llama3.3 instead
      of ollama rm llama3.2), requiring a full re-download unless another
      model references the same blobs.

    2. Users may assume a deleted model is still referenced elsewhere, but
      due to prior updates or deletions, the references no longer exist,
      leading to unnecessary re-downloads.

    Soon, we should implement a structured GC mechanism to retain
    unreferenced blobs for a configurable period before removal, which will
    run on "ollama rm" and other commands we deem appropriate.

    Users that want to immediately remove unreferenced blobs can use a new
    prune command that will allow them to specify the age and class of blobs
    to remove.

    Example usage:

    # Run basic blob GC
    $ ollama prune
    
    # Remove unreferenced blobs older than 7 days
    $ ollama prune --age 7d
    
    # Remove all blobs, referenced or not, older than 7 days (and their manifests?)
    $ ollama prune --age 7d --all
    
    # Remove all unreferenced blobs immediately
    $ ollama prune --age 0 --all
    
    # Remove all blobs
    $ ollama prune --age 0 --all
    

    This should provide a safer and more predictable cleanup process.

    下载附件