DEPARTMENT OF COMPUTING

3-Tier Server Demo Guide

This guide focuses on visibly demonstrating blocking vs concurrent server behavior.

One-command demo (recommended)

Run:

./scripts/demo_servers.sh

What it does: - Builds everything (make -j4) - Runs three experiments against each server variant (sync, threaded, select, event) - Prints timing summaries - Saves logs under /tmp/3tier-demo

What to point out during the demo

Experiment 1: Baseline

Experiment 2: Slow sender interference

Experiment 3: DB bottleneck control

Manual walkthrough (if you want to narrate each step)

Use separate terminals.

  1. Build: bash make -j4

  2. Start DB: bash ./db/db --port 24100

  3. Start one server (change binary per variant): bash ./server_sync/server –port 24000 –db-port 24100

    or: ./server_threaded/server –port 24000 –db-port 24100

    or: ./server_select/server –port 24000 –db-port 24100

    or: ./server_event/server –port 24000 –db-port 24100

  4. Baseline run: bash ./client/client --port 24000 --n 1

  5. For head-of-line blocking: bash ./scripts/demo_servers.sh The script injects a byte-drip slow sender and measures how long a normal client waits.

  6. For DB bottleneck behavior, run the same script and look at db_bottleneck_total_ms.

Optional knobs

Override defaults when running the script:

DB_DELAY_MS=500 DRIP_BYTE_DELAY_MS=100 ./scripts/demo_servers.sh

Last Updated 02/12/2026