Compare commits
5 Commits
master
...
replicate-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8719c20df | ||
|
|
de9aa1fd56 | ||
|
|
1c55f9c5bd | ||
|
|
c7fb5016d3 | ||
|
|
f9ce2a4be6 |
114
tools/debug/memgraph_syntetic_load.sh
Executable file
114
tools/debug/memgraph_syntetic_load.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
!/bin/bash -e
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
||||
|
||||
cd $DIR/../../build
|
||||
|
||||
|
||||
query_list=(
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CALL dummy_query.dummy_read() YIELD *;"
|
||||
"CALL dummy_query.dummy_write() YIELD *;"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
"CREATE (:Node)-[:CONNECTED]->(:Node);"
|
||||
|
||||
)
|
||||
|
||||
# Start the first memgraph instance
|
||||
echo "Starting memgraph..."
|
||||
./memgraph --log-level=TRACE --storage-recover-on-startup=true --storage-snapshot-interval-sec=600 --log-file=$DIR/memgraph.log --bolt-port 7687 --query-modules-directory=$DIR/query_modules &
|
||||
|
||||
sleep 5
|
||||
# Capture the process ID (PID)
|
||||
memgraph=$!
|
||||
echo $memgraph
|
||||
|
||||
docker run -d -p 7688:7687 --name memgraph_docker memgraph/memgraph:2.8.0 --log-level=TRACE --storage-recover-on-startup=true --storage-snapshot-interval-sec=600 &
|
||||
sleep 5
|
||||
|
||||
cd $DIR/query_modules
|
||||
tar -cf - dummy_query.py | docker cp -a - memgraph_docker:/usr/lib/memgraph/query_modules/
|
||||
docker exec -it -u 0 memgraph_docker bash -c "chown -R root:root /usr/lib/memgraph/query_modules"
|
||||
docker_ip=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' memgraph_docker)
|
||||
echo $docker_ip
|
||||
|
||||
#check docker query module ownership
|
||||
docker exec -it memgraph_docker ls -l /usr/lib/memgraph/query_modules
|
||||
|
||||
|
||||
# Function to execute query commands
|
||||
execute_query_native() {
|
||||
local query=$1
|
||||
|
||||
echo "$query" | mgconsole -host "127.0.0.1" -port 7687
|
||||
}
|
||||
|
||||
execute_query_docker(){
|
||||
local query=$1
|
||||
echo "$query" | mgconsole -host "127.0.0.1" -port 7688
|
||||
}
|
||||
|
||||
execute_query_docker "CALL mg.load_all();"
|
||||
execute_query_docker "CALL dummy_query.dummy_read() YIELD *;"
|
||||
|
||||
function cleanup {
|
||||
echo "Terminating child processes..."
|
||||
echo "Stopping memgraph..."
|
||||
kill -9 $memgraph
|
||||
sleep 5
|
||||
echo "Stopping memgraph_docker..."
|
||||
docker stop memgraph_docker
|
||||
echo "Removing memgraph_docker..."
|
||||
docker rm memgraph_docker
|
||||
echo "Script execution completed."
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
trap cleanup SIGINT
|
||||
|
||||
|
||||
|
||||
|
||||
previous_time=$(date +%s)
|
||||
previous_minute=$(date +%M)
|
||||
previous_hour=$(date +%H)
|
||||
|
||||
while true; do
|
||||
current_time=$(date +%s)
|
||||
current_minute=$(date +%M)
|
||||
current_hour=$(date +%H)
|
||||
|
||||
if ((current_time - previous_time >= 5)); then
|
||||
echo "Five seconds have passe running create query."
|
||||
for query in "${query_list[@]}"; do
|
||||
execute_query_native "$query" &
|
||||
execute_query_docker "$query" &
|
||||
done
|
||||
previous_time=$current_time
|
||||
fi
|
||||
|
||||
if [[ $current_minute != $previous_minute ]]; then
|
||||
echo "One minute has passed running match query."
|
||||
|
||||
execute_query_native "MATCH (n)-[r]->(m) RETURN DISTINCT COUNT(n);" &
|
||||
execute_query_docker "MATCH (n)-[r]->(m) RETURN DISTINCT COUNT(n);" &
|
||||
previous_minute=$current_minute
|
||||
fi
|
||||
|
||||
if [[ $current_hour != $previous_hour ]]; then
|
||||
echo "One hour has passed running delete query."
|
||||
execute_query_native "MATCH (n) DETACH DELETE n;" &
|
||||
execute_query_docker "MATCH (n) DETACH DELETE n;" &
|
||||
previous_hour=$current_hour
|
||||
fi
|
||||
|
||||
done
|
||||
27
tools/debug/query_modules/dummy_query.py
Normal file
27
tools/debug/query_modules/dummy_query.py
Normal file
@@ -0,0 +1,27 @@
|
||||
import random
|
||||
|
||||
import mgp
|
||||
|
||||
|
||||
@mgp.read_proc
|
||||
def dummy_read(
|
||||
context: mgp.ProcCtx,
|
||||
) -> mgp.Record(total_vertices=int, total_edges=int):
|
||||
vertices = context.graph.vertices
|
||||
total_edges = 0
|
||||
for vertex in vertices:
|
||||
for edge in vertex.out_edges:
|
||||
total_edges += 1
|
||||
return mgp.Record(total_vertices=len(vertices), total_edges=total_edges)
|
||||
|
||||
|
||||
@mgp.write_proc
|
||||
def dummy_write(
|
||||
context: mgp.ProcCtx,
|
||||
) -> mgp.Record(vertex=mgp.Vertex):
|
||||
for i in range(0, 5):
|
||||
node = context.graph.create_vertex()
|
||||
node.add_label("Procedure_node")
|
||||
node.properties.set("id", random.randint(0, 100000))
|
||||
|
||||
return mgp.Record(vertex=node)
|
||||
Reference in New Issue
Block a user