@@ -32,13 +32,19 @@ Currently Supported Features
32
32
===
33
33
* Experiments are conducted in a Docker container with extended Postgres setup
34
34
* Supported Postgres versions: 9.6, 10
35
+ * Postgres config specified via options, may be partial
35
36
* Supported locations for experimental runs:
36
37
* Any machine with Docker installed
37
38
* AWS EC2:
38
39
* Run on AWS EC2 Spot Instances (using Docker Machine)
39
40
* Allow to specify EC2 instance type
40
41
* Auto-detect and use current lowest EC2 Spot Instance prices
42
+ * Support i3 instances (with NVMe SSD drives)
43
+ * Support arbitrary-size EBS volumes
41
44
* Support local or remote (S3) files – config, dump, etc
45
+ * The object (database) can be specified in various ways:
46
+ * Plain text
47
+ * Dump file (.sql, .gz, .bz2) – :warning : only plain, single-file dumps are currently supported
42
48
* What to test (a.k.a. "target" or "delta"):
43
49
* Test Postgres parameters change
44
50
* Test DDL change (specified as "do" and "undo" SQL to return state)
@@ -93,23 +99,36 @@ nancy run help
93
99
94
100
"Hello World!"
95
101
===
102
+ Locally:
96
103
``` bash
97
- echo " create table hello_world as select i::int4 from generate_series(1, 1000000) _(i);" > ./sample.dump
98
- bzip2 ./sample.dump
104
+ echo " create table hello_world as select i::int4 from generate_series(1, (10^6)::int) _(i);" > ./sample.dump
99
105
100
106
# "Clean run": w/o index
101
107
# (seqscan is expected, total time ~150ms, depending on resources)
102
108
nancy run \
103
109
--run-on localhost \
104
- --workload-custom-sql " select count(1) from hello_world where i between 100000 and 100010;" \
105
- --db-dump-path file://$( pwd) /sample.dump.bz2 --tmp-path /tmp
110
+ --db-dump-path file://$( pwd) /sample.dump.bz2 \
111
+ --tmp-path /tmp \
112
+ --workload-custom-sql " select count(1) from hello_world where i between 100000 and 100010;"
106
113
107
114
# Now check how a regular btree index affects performance
108
115
# (expected total time: ~0.05ms)
109
116
nancy run \
110
117
--run-on localhost \
118
+ --db-dump-path file://$( pwd) /sample.dump.bz2 \
119
+ --tmp-path /tmp \
111
120
--workload-custom-sql " select count(1) from hello_world where i between 100000 and 100010;" \
112
- --db-dump-path file://$( pwd) /sample.dump.bz2 --tmp-path /tmp \
113
121
--target-ddl-do " create index i_hello_world_i on hello_world(i);" \
114
122
--target-ddl-undo " drop index i_hello_world_i;"
115
123
```
124
+
125
+ On AWS EC2:
126
+ ``` bash
127
+ nancy run \
128
+ --run-on aws \
129
+ --aws-ec2-type " i3.large" \
130
+ --aws-keypair-name awskey --aws-ssh-key-path file://$( echo ~ ) /.ssh/awskey.pem \
131
+ --db-dump-path " create table a as select i::int4 from generate_series(1, (10^9)::int) _(i);" \
132
+ --workload-custom-sql " select count(1) from a where i between 10 and 20;"
133
+ ```
134
+
0 commit comments