Skip to content

Commit

Permalink
address comments and more
Browse files Browse the repository at this point in the history
  • Loading branch information
moogacs committed Aug 7, 2024
1 parent f63b113 commit 128ac15
Show file tree
Hide file tree
Showing 15 changed files with 67 additions and 73 deletions.
17 changes: 15 additions & 2 deletions ann_benchmark.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,24 @@

set -e

source common.sh

dataset=${DATASET:-"sift-128-euclidean"}
distance=${DISTANCE:-"l2-squared"}

function wait_weaviate() {
echo "Wait for Weaviate to be ready"
for _ in {1..120}; do
if curl -sf -o /dev/null localhost:8080/v1/.well-known/ready; then
echo "Weaviate is ready"
return 0
fi

echo "Weaviate is not ready, trying again in 1s"
sleep 1
done
echo "ERROR: Weaviate is not ready after 120s"
exit 1
}

echo "Building all required containers"
( cd apps/ann-benchmarks/ && docker build -t ann_benchmarks . )

Expand Down
18 changes: 16 additions & 2 deletions ann_benchmark_quantization.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,26 @@

set -e

source common.sh

dataset=${DATASET:-"sift-128-euclidean"}
distance=${DISTANCE:-"l2-squared"}
quantization=${QUANTIZATION:-"none"}


function wait_weaviate() {
echo "Wait for Weaviate to be ready"
for _ in {1..120}; do
if curl -sf -o /dev/null localhost:8080/v1/.well-known/ready; then
echo "Weaviate is ready"
return 0
fi

echo "Weaviate is not ready, trying again in 1s"
sleep 1
done
echo "ERROR: Weaviate is not ready after 120s"
exit 1
}

echo "Building all required containers"
( cd apps/ann-benchmarks/ && docker build -t ann_benchmarks . )

Expand Down
20 changes: 18 additions & 2 deletions common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

set -e

function logs() {
echo "Showing logs:"
compose_files=$(ls apps/weaviate/docker-compose-*.yml)
for file in $compose_files; do
services=$(docker compose -f "$file" config --services)
# Loop through each service
for service in $services; do
# Check if the service name starts with "weaviate"
if [[ $service == weaviate* ]]; then
# Fetch and print logs for the matching service
docker compose -f "$file" logs "$service"
fi
done
done
}

function wait_weaviate() {
local port="${1:-8080}" # Set default port to 8080 if $1 is not provided
echo "Wait for Weaviate to be ready"
Expand All @@ -14,7 +30,7 @@ function wait_weaviate() {
echo "Weaviate is not ready on $port, trying again in 1s"
sleep 1
done
echo "ERROR: Weaviate is not ready in port ${port} after 120s"
echo "ERROR: Weaviate is not ready in port ${port} after 120s"
exit 1
}

Expand All @@ -35,4 +51,4 @@ function shutdown() {
rm -rf apps/weaviate/data* || true
rm -rf workdir
}
trap 'shutdown; exit 1' SIGINT ERR
trap 'logs; shutdown; exit 1' SIGINT ERR
3 changes: 1 addition & 2 deletions concurrent_inverted_index_read_write.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ if ! docker run \
-e 'ORIGIN=http://localhost:8080' \
--network host \
-t importer; then
echo "Importer failed, printing latest Weaviate logs..."
docker compose -f apps/weaviate/docker-compose.yml logs weaviate
echo "Importer failed, printing latest Weaviate logs..."
exit 1
fi

Expand Down
2 changes: 1 addition & 1 deletion consecutive_create_and_update_operations.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

set -e
set -e

source common.sh

Expand Down
1 change: 0 additions & 1 deletion counting_while_compacting.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,3 @@ docker run --network host -e ORIGIN=http://localhost:8080 -t counting-while-comp

echo "Passed!"
shutdown

10 changes: 3 additions & 7 deletions deletes_with_node_out_of_sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_healthy -t cluster_healthy; then
echo "All objects read with consistency level ONE".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -58,22 +57,19 @@ wait_weaviate 8082
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name check_objects_in_nodes -t check_objects_in_nodes; then
echo "tenant2 objects are present in Node 1 but not in Node 3, as it was down."
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
exit 1
fi

if docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name deleter -t deleter; then
echo "All tenant2 objects deleted with consistency level ONE."
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
exit 1
fi

if docker run --network host -v "$PWD/workdir/:/workdir/data" --name check_objects_deleted -t check_objects_deleted; then
echo "tenant2 objects were deleted from all nodes."
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
exit 1
fi

echo "Success!"
Expand Down
3 changes: 1 addition & 2 deletions import_while_crashing.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ if ! docker run \
-e 'ORIGIN=http://localhost:8080' \
--network host \
-t importer; then
echo "Importer failed, printing latest Weaviate logs..."
docker compose -f apps/weaviate/docker-compose.yml logs weaviate
echo "Importer failed, printing latest Weaviate logs..."
exit 1
fi

Expand Down
7 changes: 3 additions & 4 deletions import_while_crashing_no_vector.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ if ! docker run \
-e 'ORIGIN=http://localhost:8080' \
--network host \
-t importer-no-vector; then
echo "Importer failed, printing latest Weaviate logs..."
docker compose -f apps/weaviate/docker-compose.yml logs weaviate
exit 1
echo "Importer failed, printing latest Weaviate logs..."
exit 1
fi

echo "Import completed successfully, stop killer"
Expand Down Expand Up @@ -66,7 +65,7 @@ done

if [ $attempt -gt $retries ]; then
echo "Failed to validate object count after $retries attempts"
exit 1
exit 1
fi

echo "Passed!"
Expand Down
5 changes: 1 addition & 4 deletions multi_node_ref_imports.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ if ! docker run \
--name ref-importer \
--network host \
-t ref-importer python3 run.py; then
echo "Importer failed, printing latest Weaviate logs..."
docker compose -f apps/weaviate/docker-compose-replication.yml logs --tail 100
shutdown
echo "Importer failed, printing latest Weaviate logs..."
exit 1
fi

Expand All @@ -31,7 +29,6 @@ errors="$(docker compose -f apps/weaviate/docker-compose-replication.yml logs 2>
if (( $warnings > 0 )); then
docker compose -f apps/weaviate/docker-compose-replication.yml logs 2>&1 | grep memberlist | grep error
echo "too many errors ($errors)"
shutdown
exit 1
fi

Expand Down
30 changes: 1 addition & 29 deletions read_repair.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,7 @@

set -e

function wait_weaviate() {
echo "Wait for Weaviate to be ready"
for _ in {1..120}; do
if curl -sf -o /dev/null localhost:$1/v1/.well-known/ready; then
echo "Weaviate is ready"
return 0
fi

echo "Weaviate is not ready on $1, trying again in 1s"
sleep 1
done
echo "ERROR: Weaviate is not ready in port ${1} after 120s"
exit 1
}
source common.sh

echo "Building all required containers"
( cd apps/read_repair/ && docker build --build-arg APP_NAME=generator -t generator . )
Expand All @@ -24,18 +11,6 @@ echo "Building all required containers"
( cd apps/read_repair/ && docker build --build-arg APP_NAME=cluster_healthy -t cluster_healthy . )
( cd apps/read_repair/ && docker build --build-arg APP_NAME=cluster_read_repair -t cluster_read_repair . )

function shutdown() {
echo "Cleaning up ressources..."
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml down --remove-orphans
rm -rf apps/weaviate/data* || true
docker container rm -f generator &>/dev/null && echo 'Deleted container generator'
docker container rm -f importer &>/dev/null && echo 'Deleted container importer'
docker container rm -f importer_additional &>/dev/null && echo 'Deleted container importer_additional'
docker container rm -f cluster_read_repair &>/dev/null && echo 'Deleted container cluster_read_repair'
docker container rm -f cluster_healthy &>/dev/null && echo 'Deleted container cluster_healthy'
rm -rf workdir
}
trap 'shutdown; exit 1' SIGINT ERR

rm -rf workdir
mkdir workdir
Expand All @@ -58,7 +33,6 @@ docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_healthy -t cluster_healthy; then
echo "All objects read with consistency level ONE".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -69,7 +43,6 @@ sleep 10
if docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name importer_additional -t importer_additional; then
echo "All objects added with consistency level QUORUM with one node down".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -80,7 +53,6 @@ wait_weaviate 8082
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_read_repair -t cluster_read_repair; then
echo "All objects read with consistency level ALL after weaviate-node-3 restarted".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand Down
6 changes: 2 additions & 4 deletions replication_importing_while_crashing.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ if ! docker run \
--rm \
--name importer \
-t importer python3 run.py --action schema; then
echo "Could not apply schema"
docker compose -f apps/weaviate/docker-compose.yml logs
echo "Could not apply schema"
exit 1
fi

Expand All @@ -45,8 +44,7 @@ if ! docker run \
-e 'ORIGIN=http://localhost:8080' \
--network host \
-t importer python3 run.py --action import; then
echo "Importer failed, printing latest Weaviate logs..."
docker compose -f apps/weaviate/docker-compose-replication.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
echo "Importer failed, printing latest Weaviate logs..."
exit 1
fi

Expand Down
8 changes: 3 additions & 5 deletions replication_importing_with_backup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ docker compose -f apps/replicated_import_with_backup/docker-compose.yml up \

if [ $(compose_exit_code importer-schema-node-1) -ne 0 ]; then
echo "Could not apply schema"
# shutdown
# exit 1
exit 1
fi

echo "Batch import to 2 nodes + parallel backup..."
Expand All @@ -53,9 +52,8 @@ if [[ $exit_code_imp_1 != 0 && $exit_code_imp_1 != 137 ]] || \
[[ $exit_code_imp_2 != 0 && $exit_code_imp_2 != 137 ]] || \
[[ $exit_code_bck != 0 && $exit_code_bck != 137 ]]; then
echo "Could not import/backup"
# shutdown
# exit 1
exit 1
fi

echo "Passed!"
# shutdown
shutdown
5 changes: 0 additions & 5 deletions replication_tunable_consistency.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_healthy -t cluster_healthy; then
echo "All objects read with consistency level ONE".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -45,7 +44,6 @@ sleep 10
if docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name patcher -t patcher; then
echo "All objects patched with consistency level QUORUM with one node down".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -56,7 +54,6 @@ wait_weaviate 8082
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_one_node_down -t cluster_one_node_down; then
echo "All objects read with consistency level QUORUM after weaviate-node-3 restarted".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -69,7 +66,6 @@ sleep 10
if docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name updater -t updater; then
echo "All objects updated with consistency level ONE with only weaviate-node-1 up".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand All @@ -81,7 +77,6 @@ wait_weaviate 8082
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_one_node_remaining -t cluster_one_node_remaining; then
echo "All objects read with consistency level ALL after weaviate-node-2 and weaviate-node-3 restarted".
else
docker compose -f apps/weaviate/docker-compose-replication_single_voter.yml logs weaviate-node-1 weaviate-node-2 weaviate-node-3
exit 1
fi

Expand Down
5 changes: 2 additions & 3 deletions upgrade_single_node_journey.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function validateObjects() {
if docker run --network host -v "$PWD/workdir/:/workdir/data" --name cluster_healthy -t cluster_healthy; then
echo "All objects read with consistency level ONE".
else
docker compose -f apps/weaviate/docker-compose-single-voter-without-node-name.yml logs weaviate-node-1
docker compose -f apps/weaviate/docker-compose-single-voter-without-node-name.yml logs weaviate-node-1
exit 1
fi
}
Expand Down Expand Up @@ -61,9 +61,8 @@ restart

echo "Import additional objects"
if docker run --network host -v "$PWD/workdir/data.json:/workdir/data.json" --name importer_additional -t importer_additional; then
echo "All objects added with consistency level ONE".
echo "All objects added with consistency level QUORUM with one node down".
else
docker compose -f apps/weaviate/docker-compose-single-voter-without-node-name.yml logs weaviate-node-1
exit 1
fi

Expand Down

0 comments on commit 128ac15

Please sign in to comment.