Revision 643533376131 () - Diff

Link to this snippet: https://friendpaste.com/5g0kOEPonxdXMKibNRzetJ
Embed:
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
#!/bin/bash

# usage benchbulk.sh dbname

BULKSIZE=1000
DOCSIZE=100
INSERTS=20
DBURL="http://localhost:5984/$1"
POSTURL="$DBURL/_bulk_docs"

function make_bulk_docs() {
ROW=0
SIZE=$(($1-1))
START=$2
BODYSIZE=$3
BODY=$(printf "%0${BODYSIZE}d")

echo '{"docs":['
while [ $ROW -lt $SIZE ]; do
printf '{"_id":"%020d", "body":"'$BODY'"},' $(($ROW + $START))
let ROW=ROW+1
done
printf '{"_id":"%020d", "body":"'$BODY'"}' $(($ROW + $START))
echo ']}'
}

echo "Making $INSERTS bulk inserts of $BULKSIZE docs each"

echo "Attempt to delete db at $DBURL"
curl -X DELETE $DBURL -w\\n

echo "Attempt to create db at $DBURL"
curl -X PUT $DBURL -w\\n

echo "Post to $POSTURL $INSERTS times"
POSTS=0
while [ $POSTS -lt $INSERTS ]; do
STARTKEY=$[ POSTS * BULKSIZE]
echo "starkey $STARTKEY bulksize $BULKSIZE"
# switch comments on the following two lines to see how it's bash that's the slow part
# time echo $(make_bulk_docs $BULKSIZE $STARTKEY $DOCSIZE)
echo $(make_bulk_docs $BULKSIZE $STARTKEY $DOCSIZE) | curl -T - -X POST $POSTURL -w%{http_code}\ %{time_total}\ sec\\n -o out.file 2> /dev/null &
let POSTS=POSTS+1
done

wait

curl $DBURL -w\\n