Skip to content

Commit

Permalink
update bigquery schema
Browse files Browse the repository at this point in the history
  • Loading branch information
jefer94 committed Jan 15, 2024
1 parent 4ba604c commit 1e79092
Show file tree
Hide file tree
Showing 12 changed files with 994 additions and 246 deletions.
2 changes: 2 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,5 @@ psycopg = {extras = ["pool", "binary"], version = "*"}
cryptography = "~=41.0.7"
adrf = "*"
uvicorn = "*"
django-minify-html = "*"
aiohttp = "*"
299 changes: 170 additions & 129 deletions Pipfile.lock

Large diffs are not rendered by default.

263 changes: 263 additions & 0 deletions benchmarks/django-workers/bench5.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
# trio is not supported by django yet and should break gevent

FILE="./sync.md"
CONNECTIONS=2000
THREADS=20
PORT=8000
HOST="http://localhost:$PORT"
TIMEOUT=10
SLEEP_TIME=3

# it support wsgi
function sync_bench {
HOST="http://localhost:8000"

echo "" >> "$FILE"
echo "### JSON performance" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/json" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Queries returned as JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/json_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Queries returned as HTML" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/template_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Simulate a request 1s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_1s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Simulate a request 3s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_3s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Simulate a request 10s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_10s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Brotli" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/brotli" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Requests" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/requests" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### HTTPX" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/httpx" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
}

# it support wsgi and asgi
function bench {
HOST="http://localhost:8000"

echo "" >> "$FILE"
echo "### JSON performance" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/json" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/json" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Queries returned as JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/json_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/json_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Queries returned as HTML" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/template_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/template_query" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Simulate a request 1s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_1s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/gateway_1s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Simulate a request 3s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_3s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/gateway_3s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Simulate a request 10s inside the server, then return a JSON" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/gateway_10s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/gateway_10s" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### Brotli" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/brotli" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/brotli" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

echo "### Requests" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/requests" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/requests" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### HTTPX" >> "$FILE"
echo "#### Sync" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/sync/httpx" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/httpx" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"

sleep $SLEEP_TIME

echo "### AIOHTTP" >> "$FILE"
echo "#### Async" >> "$FILE"
echo "" >> "$FILE"
echo "\`\`\`bash" >> "$FILE"
wrk -t "$THREADS" -c "$CONNECTIONS" -d10s "$HOST/myapp/async/aiohttp" >> "$FILE"
echo "\`\`\`" >> "$FILE"
echo "" >> "$FILE"
}

echo "# Django Workers" > $FILE

sudo fuser -k $PORT/tcp
gunicorn mysite.wsgi --timeout $TIMEOUT --workers $THREADS --worker-class gevent & echo "starting server..."
sleep $SLEEP_TIME
# it is failing
curl -s "$HOST/myapp/async/seed"
echo "## WSGI Gunicorn Gevent" >> $FILE
sync_bench

sudo fuser -k $PORT/tcp
granian --interface wsgi mysite.wsgi:application --workers $THREADS & echo "starting server..."
sleep $SLEEP_TIME
echo "## WSGI Granian" >> $FILE
sync_bench

sudo fuser -k $PORT/tcp
9 changes: 1 addition & 8 deletions benchmarks/django-workers/mysite/asgi.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,9 @@

import os

if os.getenv('UVLOOP') == '1':
import asyncio

import uvloop

# Set the event loop policy to uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = get_asgi_application()
app = application
Loading

0 comments on commit 1e79092

Please sign in to comment.