Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 2,519 Bytes
653e4d2 166628c 653e4d2 041dca5 653e4d2 166628c 6650372 653e4d2 9b015e1 653e4d2 041dca5 653e4d2 166628c 6650372 166628c 1036cc2 9b015e1 1036cc2 166628c 1036cc2 9b015e1 1036cc2 9b015e1 1036cc2 653e4d2 041dca5 166628c 1036cc2 9b015e1 1036cc2 041dca5 1036cc2 9b015e1 1036cc2 041dca5 1036cc2 653e4d2 1036cc2 653e4d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #!/bin/bash
set -e
SNAPSHOT_DIR="/data/qdrant_snapshots"
LOCAL_SNAPSHOT_DIR="/tmp/qdrant_snapshots"
QDRANT_URL="http://localhost:6333"
API_KEY="${QDRANT__SERVICE__API_KEY}"
# Copy snapshots from FUSE mount to local disk first
echo "Copying snapshots from FUSE mount to local /tmp..."
mkdir -p "$LOCAL_SNAPSHOT_DIR"
cp -r "$SNAPSHOT_DIR"/. "$LOCAL_SNAPSHOT_DIR/"
echo "Copy complete."
# Start Qdrant in background
/qdrant/qdrant &
QDRANT_PID=$!
# Wait for Qdrant to be ready
echo "Waiting for Qdrant to start..."
until wget -qO- --header="api-key: $API_KEY" "$QDRANT_URL/readyz" > /dev/null 2>&1; do
sleep 1
done
echo "Qdrant ready."
# Recover snapshots from LOCAL copy (not FUSE mount)
echo "Scanning $LOCAL_SNAPSHOT_DIR for snapshots..."
for COLLECTION_DIR in "$LOCAL_SNAPSHOT_DIR"/*/; do
[ -d "$COLLECTION_DIR" ] || continue
COLLECTION=$(basename "$COLLECTION_DIR")
echo "Found collection folder: $COLLECTION"
SNAPSHOT=""
for f in "$COLLECTION_DIR"*.snapshot; do
case "$f" in *.checksum) continue ;; esac
[ -f "$f" ] && SNAPSHOT="$f" && break
done
if [ -z "$SNAPSHOT" ]; then
echo "No snapshot file found in $COLLECTION_DIR, skipping."
continue
fi
echo "Found snapshot: $SNAPSHOT"
HTTP_STATUS=$(wget -qO- \
--header="api-key: $API_KEY" \
"$QDRANT_URL/collections/$COLLECTION" 2>/dev/null | grep -o '"status":"[^"]*"' | head -1)
echo "Collection $COLLECTION status: $HTTP_STATUS"
if echo "$HTTP_STATUS" | grep -q '"status":"green"'; then
echo "Collection '$COLLECTION' already green, skipping."
continue
fi
echo "Recovering '$COLLECTION' from $SNAPSHOT ..."
RESPONSE=$(wget -qO- \
--method=PUT \
--header="Content-Type: application/json" \
--header="api-key: $API_KEY" \
--body-data="{\"location\":\"file://$SNAPSHOT\"}" \
"$QDRANT_URL/collections/$COLLECTION/snapshots/recover" 2>&1)
echo "Recovery response: $RESPONSE"
echo "Waiting for '$COLLECTION' to become green..."
for i in $(seq 1 60); do
sleep 5
STATUS=$(wget -qO- \
--header="api-key: $API_KEY" \
"$QDRANT_URL/collections/$COLLECTION" 2>/dev/null | grep -o '"status":"[^"]*"' | head -1)
echo " Attempt $i: $STATUS"
if echo "$STATUS" | grep -q '"status":"green"'; then
echo " '$COLLECTION' is green!"
break
fi
done
done
echo "Snapshot recovery complete."
wait $QDRANT_PID |