-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun-chunked-patterns.sh
More file actions
executable file
·91 lines (71 loc) · 4.26 KB
/
Copy pathrun-chunked-patterns.sh
File metadata and controls
executable file
·91 lines (71 loc) · 4.26 KB
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
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
# Run Chunked approach for all patterns
PATTERNS=("low_variability" "step_pattern" "spike_pattern" "low_freq_oscillation" "high_freq_oscillation")
echo "Running Chunked approach for all patterns..."
for pattern in "${PATTERNS[@]}"; do
echo ""
echo "================================================================================================"
echo "Testing Chunked at $pattern"
echo "================================================================================================"
# Clean up previous logs
rm -f chunked_latency_log.csv streaming_query_hive_resource_log.csv chunked_debug_summary.json chunked_emission_proof.json
# Run chunked approach
DATA_PATH="pattern_comparison/$pattern" gtimeout 240 node dist/approaches/StreamingQueryChunkedApproachOrchestrator.js > /dev/null 2>&1 &
chunked_pid=$!
# Start data publisher
sleep 2
DATA_PATH="pattern_comparison/$pattern" gtimeout 240 node dist/streamer/src/publish.js > /dev/null 2>&1 &
publisher_pid=$!
# Wait for both to complete
wait $chunked_pid 2>/dev/null || true
wait $publisher_pid 2>/dev/null || true
sleep 2
# Check results
if [ -f "chunked_latency_log.csv" ]; then
chunked_result=$(tail -n 1 chunked_latency_log.csv | awk -F',' '{print $NF}')
chunked_windows=$(tail -n +2 chunked_latency_log.csv | wc -l | tr -d ' ')
echo "✓ Chunked windows: $chunked_windows"
echo "✓ Chunked result: $chunked_result"
# Copy results
cp chunked_latency_log.csv "pattern_comparison_results/chunked_${pattern}.csv"
if [ -f "chunked_debug_summary.json" ]; then
cp chunked_debug_summary.json "pattern_comparison_results/chunked_${pattern}_debug_summary.json"
fi
if [ -f "chunked_emission_proof.json" ]; then
cp chunked_emission_proof.json "pattern_comparison_results/chunked_${pattern}_emission_proof.json"
fi
if [ -f "streaming_query_hive_resource_log.csv" ]; then
cp streaming_query_hive_resource_log.csv "pattern_comparison_results/chunked_${pattern}_resources.csv"
# Calculate resource averages
avg_cpu_user=$(tail -n +2 streaming_query_hive_resource_log.csv | awk -F',' '{sum+=$2; count++} END {if(count>0) printf "%.2f", sum/count; else print "0"}')
avg_cpu_system=$(tail -n +2 streaming_query_hive_resource_log.csv | awk -F',' '{sum+=$3; count++} END {if(count>0) printf "%.2f", sum/count; else print "0"}')
avg_memory=$(tail -n +2 streaming_query_hive_resource_log.csv | awk -F',' '{sum+=$7; count++} END {if(count>0) printf "%.4f", sum/count; else print "0"}')
peak_memory=$(tail -n +2 streaming_query_hive_resource_log.csv | awk -F',' '{max=0} {if($7>max) max=$7} END {printf "%.2f", max}')
echo " CPU User: $avg_cpu_user, CPU Sys: $avg_cpu_system, Memory: $avg_memory MB, Peak: $peak_memory MB"
fi
# Append to summary
# Get fetching baseline for MAPE calculation
baseline=$(grep "^${pattern},Fetching," pattern_comparison_results/summary.csv | cut -d',' -f4)
if [[ "$baseline" != "" && "$chunked_result" != "" ]]; then
mape=$(echo "scale=6; (sqrt(($chunked_result - $baseline)^2) / sqrt($baseline^2)) * 100" | bc)
abs_error=$(echo "scale=6; sqrt(($chunked_result - $baseline)^2)" | bc)
else
mape="N/A"
abs_error="N/A"
fi
echo "$pattern,Chunked,$chunked_windows,$chunked_result,$mape,$abs_error,$avg_cpu_user,$avg_cpu_system,$avg_memory,$peak_memory" >> pattern_comparison_results/summary.csv
else
echo "✗ No chunked results generated"
fi
# Clean up
rm -f chunked_latency_log.csv streaming_query_hive_resource_log.csv chunked_debug_summary.json chunked_emission_proof.json
done
echo ""
echo "================================================================================================"
echo "Chunked experiments complete!"
echo "================================================================================================"
echo ""
echo "Updating report..."
python3 update_pattern_report.py
echo ""
echo "✅ All done! Check PATTERN_COMPARISON_REPORT.md"