- rsync now uses rsyncd daemon over TCP (rsync://127.0.0.1:port)
so it experiences the same tc netem network simulation as fastSyncAI
- rclone uses rclone serve over TCP for fair comparison
- Network simulation stays active for ALL TCP-based tool tests
- cp remains as local baseline (no network)
- Results clearly separated into:
* fastSyncAI (multi-connection, over TCP)
* Other Network Tools (over TCP)
* Local Baseline (cp, no network)
- Added network overhead analysis vs local cp
This ensures fair apples-to-apples comparison between tools under
identical network conditions (LAN, WAN, packet loss, jitter).
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add rsync, rsync+compress, cp (baseline) comparisons
- Add optional rclone comparison (if installed)
- Network simulation active during fastSyncAI tests only
- Local tools (rsync, cp, rclone) run without network latency
- Compare speedup of best fastSyncAI config vs rsync
- Separated results into 'fastSyncAI' and 'Other Tools' sections
- Shows best configuration recommendation per network scenario
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Fixed awk ternary operator parentheses escaping in speedup comparison
logic. The script had a syntax error from improper quoting of parentheses
in bash conditional statements.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Added documentation for latency simulation (LAN/WAN) support in all
benchmark scripts. Updated examples to show preset profiles (--lan, --wan)
and direct latency values.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Added latency simulation support to compare_rsync.sh with:
- Direct latency value: ./compare_rsync.sh 100 1 20 (20ms RTT)
- Preset profiles: ./compare_rsync.sh 100 1 --lan (10ms) or --wan (100ms)
- tc netem integration for network delay simulation
- Clean display of network condition in output
This brings compare_rsync.sh in line with benchmark.sh and
benchmark_comprehensive.sh which already supported latency simulation.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
The 5-second timeout for UDP handshake (knock) was too short for
some network conditions. Increased to 30 seconds for better reliability.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Replace manual unpacking of batch_meta_header_t fields with direct
struct field reads. The magic was already read separately, so we
now read count, total_name_len, and total_size directly into the
struct fields, which is cleaner and less error-prone.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Cast st_size to uint64_t to match file_size type in server.c
- Remove unused functions: send_one_file, send_file_udp, verify_and_resend
- Reduce rel buffer size to 1024 to prevent snprintf truncation in collect_files
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
The file_meta_t and file_task_t structs were missing the checksum field
that was being used in both client and server code, causing a compilation
error. Added uint64_t checksum to both structs and updated wq_push
declaration to match implementation.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>