uv 캐시에서 중복 파일을 모두 제거하는 PR 공개
uv: Deduplicate all files in the wheel cache
uv의 PR #21327은 wheel 캐시 내 파일 수준 중복 제거를 도입합니다. 기존에는 wheel 단위로만 콘텐츠 주소 지정 캐싱을 지원했지만, 이제 모든 파일을 BLAKE3 해시로 `files-v0` 버킷에 저장하고, 하드링크를 통해 기존 위치에 연결합니다. 이로써 캐시 크기가 약 10% (545.2 MiB) 줄어들며, 콜드 설치 속도는 4% 미만으로 느려질 뿐 웜 설치에는 영향이 없습니다. 벤치마크 결과 모든 8개 측정 항목의 중앙값 회귀가 5% 미만입니다.
So we're saving 545.2 MiB on my local machine, or about 10% of the cache. In return, the net effect seems to be something like a <4% slowdown for cold installs (and no effect on warm installs), which I think is probably worthwhile here.
HN 토론
93- notatallshaw
pip 유지보수자로서, 저는 오랫동안 uv의 캐시의 장단점을 살펴봤습니다. 그것은 uv가 pip보다 따뜻한 설치를 더 빠르게 만드는 가장 큰 요소입니다. pip는 원본 배포판을 캐시하고 매번 압축을 풀어야 하는 반면, uv는 압축이 풀린 배포판을 캐시하고 가능하면 하드 링크로 연결합니다.
하지만 항상 두 가지 주요 문제가 있었습니다:
1. "다운로드" 명령에 대해 정확한 배포판을 재현할 방법이 없습니다 (pip download에 해당하는 uv 명령이 없습니다).
2. 다양한 환경을 많이 사용하는 사람들의 경우 캐시가 pip보다 훨씬 더 커집니다.
적어도 일화적으로, 이것이 2번을 크게 개선하는지 보고 싶습니다. 그렇다면 상당한 디스크 공간 비용 없이 2계층 캐싱 전략을 가질 수 있을지도 모릅니다.
- mark_l_watson
좋은 개선이네요. 저에게 uv는 'Python용 Quicklisp'입니다. uv 덕분에 Quicklisp이 Common Lisp를 더 멋지게 사용하게 만든 것처럼 Python을 즐겁게 사용할 수 있게 되었습니다.
저는 항상 Lisp에 헌신해 왔지만, 몇 년 전 uv를 사용하기 시작하면서 Python을 정말 즐겁게 사용할 수 있는 언어로 보기 시작했고, Python 개발 환경을 거의 마찰 없이 만들기 위해 노력했습니다.
- stephenlf
uv는 현대 Python 라이브러리의 중추입니다. 개선 사항을 보게 되어 기쁩니다.
- CivBase
캐시 크기 10% 감소를 위해 4% 속도 저하를 감수하는 것은 저에게 명백히 가치 있어 보이지 않습니다. 특히 복잡성이 증가하는 상황에서는 더욱 그렇습니다.
- TacticalCoder
> 파일 수준 중복 제거: 이제 모든 파일이 BLAKE3 해시 아래에 저장됩니다.
Blake3는 정말 놀랍도록 빠른 암호화 해시입니다. 저는 제 자신의 "중복 제거 / 무결성 / 버서커" 유틸리티(LLM이 등장하기 전에 만든)에 사용합니다.
만약 다음과 같은 파일이 있다면:
DSC98731-b3-7b39197a22.JPG
그러면:
- 해당 파일이 7b39197a22로 체크섬되지 않으면 파일 무결성 문제가 있는 것입니다 (놀랍게도 이미 문제 해결에 도움이 되었습니다).
- 다른 파일이 동일한 Blake3 7b39197a22 해시를 가지면 중복 파일입니다.
- 그 7b39197a22 체크섬이 제 데이터베이스에 있으면 "일이 일어날 수 있습니다".
예를 들어 제 DB는 "Blake3 해시가 7b39197a22인 파일은 항상 삭제해도 된다" 또는 "Blake3 해시가 887463c09e인 파일이 'dscXXXXX' 같은 일반적인 파일명을 가진 경우 항상 '20260722jackJohnAtTheBeach-b3-778463c09e.jpg'(또는 원하는 대로)로 이름을 바꿀 수 있다"고 말할 수 있습니다.
정말 훌륭합니다 (그리고 여기 여러 사람이 독립적으로 비슷한 방식을 만들었다는 것을 알고 있습니다). Blake3는 이런 종류의 용도에 놀라운 해시입니다.