uv icon indicating copy to clipboard operation
uv copied to clipboard

Performance: uv {add|remove|sync} on private registry slower and finding "stale response"

Open billy-doyle opened this issue 5 months ago • 2 comments

Doing any uv command results in significantly slower times then just using pypi index url. Only change is using this private index url (pyproject.toml) like this:

[tool.uv]
index-url = "https://my-private-registry/repository/pypi/simple"

Using pypi (used curlify as an example public package but applies to any, requests, pandas etc):

(data_sci) billy@sa ~/data_sci % uv remove curlify                   
Resolved 217 packages in 482ms
   Built data-sci @ file:///Users/billy/data_sci
Prepared 1 package in 489ms
Uninstalled 2 packages in 4ms
Installed 1 package in 3ms
 - curlify==2.2.1
 ~ data-sci==0.0.0 (from file:///Users/billy/data_sci)

Using private registry (sonatype nexus if it matters):

(data_sci) billy@sa ~/data_sci % uv remove curlify
Resolved 217 packages in 4.62s
   Built data-sci @ file:///Users/billy/data_sci
Prepared 1 package in 2.50s
Uninstalled 2 packages in 6ms
Installed 1 package in 2ms
 - curlify==2.2.1
 ~ data-sci==0.0.0 (from file:///Users/billy/data_sci)

Debug logs with -vvv for a package, here confluent-kafka as an example. Seeing a lot of these Found stale response logs.

    0.457895s   6ms DEBUG uv_client::cached_client Found stale response for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
    0.457901s   6ms DEBUG uv_client::cached_client Sending revalidation request for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
    uv_client::cached_client::revalidation_request url="https://my-private-registry/repository/pypi/simple/confluent-kafka/"
...
    0.963099s 511ms DEBUG uv_client::cached_client Found not-modified response for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
    uv_client::cached_client::refresh_cache file=/Users/billy/Library/Caches/uv/simple-v12/index/4dd2fc1dc4fa3d1d/confluent-kafka.rkyv
uv_resolver::version_map::from_metadata 
uv_distribution::distribution_database::get_or_build_wheel_metadata dist=confluent-kafka==2.5.0
  uv_client::registry_client::wheel_metadata built_dist=confluent-kafka==2.5.0
    uv_client::cached_client::get_serde 
      uv_client::cached_client::get_cacheable 
        uv_client::cached_client::read_and_parse_cache file=/Users/billy/Library/Caches/uv/wheels-v1/index/4dd2fc1dc4fa3d1d/confluent-kafka/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.msgpack
uv_client::cached_client::from_path_sync path="/Users/billy/Library/Caches/uv/wheels-v1/index/4dd2fc1dc4fa3d1d/confluent-kafka/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.msgpack"
        0.964585s   0ms DEBUG uv_client::cached_client Found stale response for: https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4
        0.964598s   0ms DEBUG uv_client::cached_client Sending revalidation request for: https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4
        uv_client::cached_client::revalidation_request url="https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4"
...
uv_resolver::resolver::choose_version package=confluent-kafka
  1.104862s   0ms DEBUG uv_resolver::resolver Searching for a compatible version of confluent-kafka (>=2.3.0, <3.0.0)
  1.104876s   0ms DEBUG uv_resolver::resolver Selecting: confluent-kafka==2.5.0 [preference] (confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl)
uv_resolver::resolver::get_dependencies_forking package=confluent-kafka, version=2.5.0
  uv_resolver::resolver::get_dependencies package=confluent-kafka, version=2.5.0

billy-doyle avatar Sep 09 '24 22:09 billy-doyle