diff --git a/Makefile b/Makefile index 283e833..873dd8b 100644 --- a/Makefile +++ b/Makefile @@ -938,23 +938,29 @@ cold-pack-all: bootstrap ## parallel cold-pack, RAM-aware (override with COLD_PA @echo ">> all shards packed; final bucket state:" @$(ARBORIST) cold stats -cold-hydrate: bootstrap ## genesis a fresh peer from cloud, M-aware: pull every metadata pack from bucket in parallel and route into HYDRATE_DIR/00N.db × HYDRATE_M +cold-hydrate: bootstrap ## genesis a fresh peer from cloud, M-aware: pull every metadata pack and route into HYDRATE_DIR/00N.db × HYDRATE_M. HYDRATE_MODE=full (default) | just-enough @if [ -z "$(HYDRATE_DIR)" ]; then echo "HYDRATE_DIR= required"; exit 2; fi @if [ -z "$(HYDRATE_M)" ]; then echo "HYDRATE_M= required (matches #000065 canonical M)"; exit 2; fi @mkdir -p $(HYDRATE_DIR) - @$(COLD_PACK_PICK_JOBS); \ + @MODE="$${HYDRATE_MODE:-full}"; \ + case "$$MODE" in \ + full) MODE_FLAG="--full" ;; \ + just-enough) MODE_FLAG="--just-enough" ;; \ + *) echo "HYDRATE_MODE=$$MODE invalid (full | just-enough)"; exit 2 ;; \ + esac; \ + $(COLD_PACK_PICK_JOBS); \ echo ">> discovering metadata packs in bucket"; \ hashes=$$($(ARBORIST) cold list --no-manifest \ | $(VENV)/bin/python -c \ "import sys, json; d=json.load(sys.stdin); print(' '.join(p['pack_hash'] for p in d['packs'] if p['kind']=='metadata'))"); \ if [ -z "$$hashes" ]; then echo "no metadata packs in bucket"; exit 3; fi; \ - echo ">> $$JOBS-way parallel pull of metadata packs (M=$(HYDRATE_M))"; \ + echo ">> $$JOBS-way parallel pull of metadata packs (M=$(HYDRATE_M), mode=$$MODE)"; \ printf "%s\n" $$hashes | \ xargs -n 1 -P $$JOBS -I {} \ $(ARBORIST) cold unpack {} \ --hydrate-shards-dir $(HYDRATE_DIR) \ --hydrate-M $(HYDRATE_M) \ - --full + $$MODE_FLAG @echo ">> hydration complete:" @ls -lh $(HYDRATE_DIR)/*.db 2>/dev/null