mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-11-05 11:37:44 +01:00
* seaweed-vector: build and extend the vector index weed_lance_worker::vector_index builds an IVF_FLAT index in the metric the table was created with, sizes partitions from the row count, and extends an index with a new segment or a retrain; the core crate re-exports it and adds the probes a query spends. Tests cover coverage after build, append, retrain and compaction. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * weed-vector-cli: index build and index optimize Logs go to stderr so stdout stays the JSON a caller parses. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * test/s3vectors: PERF_INDEX builds the index before the timed queries The cluster fixture hands out its catalog URL, the Makefile builds weed-vector-cli, and the perf suite builds the index after ingest and reports the build time and segment count. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * seaweed-vector: test that a build takes the table's metric Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * test/s3vectors: make clean removes weed-vector-cli Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * seaweed-vector: optimize only the indices on the vector column Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * seaweed-vector: resolve the query metric with index::distance_metric Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * seaweed-vector: test the L2 metric under the name CreateIndex stores Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: PERF_CLUSTERS draws the perf suite's vectors around shared centres Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011UpvafvK8JpagF94MHWqwK * seaweed-vector: test that compaction drops the deleted key from tied hits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * seaweed-vector: test that an append-only optimize serves the new row Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: record PERF_NOISE in the perf report config Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: report recall through an index without asserting it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: count a hit tying the k-th best score toward recall Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: allow float32 rounding at the recall cutoff Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: count a repeated hit key once toward recall Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: credit cutoff ties only up to the slots the top-k leaves Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test/s3vectors: assert every filtered hit passes the filter, indexed or not Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
52 lines
1.5 KiB
Makefile
52 lines
1.5 KiB
Makefile
WEED := ./weed
|
|
VEC := ./weed-vector
|
|
CLI := ./weed-vector-cli
|
|
WORKER_MANIFEST := ../../rust/sw-vector-distributed/Cargo.toml
|
|
ifneq ($(wildcard $(WORKER_MANIFEST)),)
|
|
WORKER := ./weed-vector-worker
|
|
endif
|
|
VOLUME := ./weed-volume
|
|
CARGO_PROFILE ?= release
|
|
CARGO_TARGET_DIR ?= $(abspath ../../seaweed-vector/target)
|
|
override CARGO_TARGET_DIR := $(abspath $(CARGO_TARGET_DIR))
|
|
CARGO_OUTPUT := $(CARGO_TARGET_DIR)/$(if $(filter dev,$(CARGO_PROFILE)),debug,$(CARGO_PROFILE))
|
|
export CARGO_TARGET_DIR
|
|
|
|
.PHONY: all test perf build clean FORCE
|
|
|
|
all: test
|
|
|
|
$(WEED): FORCE
|
|
go build -o $(WEED) ../../weed
|
|
|
|
$(VEC): FORCE
|
|
cd ../../seaweed-vector && cargo build --locked --profile $(CARGO_PROFILE) -p weed-vector-server
|
|
cp $(CARGO_OUTPUT)/weed-vector $(VEC)
|
|
|
|
$(CLI): FORCE
|
|
cd ../../seaweed-vector && cargo build --locked --profile $(CARGO_PROFILE) -p weed-vector-core --bin weed-vector-cli
|
|
cp $(CARGO_OUTPUT)/weed-vector-cli $(CLI)
|
|
|
|
ifneq ($(WORKER),)
|
|
$(WORKER): $(VEC) FORCE
|
|
cargo build --locked --profile $(CARGO_PROFILE) --manifest-path ../../rust/Cargo.toml -p sw-vector-distributed --bin weed-vector
|
|
cp $(CARGO_OUTPUT)/weed-vector $(WORKER)
|
|
endif
|
|
|
|
$(VOLUME): $(VEC) $(WORKER) FORCE
|
|
cargo build --locked --profile $(CARGO_PROFILE) --manifest-path ../../seaweed-volume/Cargo.toml --bin weed-volume
|
|
cp $(CARGO_OUTPUT)/weed-volume $(VOLUME)
|
|
|
|
FORCE:
|
|
|
|
build: $(WEED) $(VEC) $(WORKER) $(VOLUME)
|
|
|
|
test: build
|
|
./run_test.sh
|
|
|
|
perf: build $(CLI)
|
|
./run_perf.sh
|
|
|
|
clean:
|
|
rm -f $(WEED) $(VEC) $(CLI) ./weed-vector-worker $(VOLUME)
|