11# Comparative Benchmarking
22
3- It's useful for comparative purposes to be able to run the same
4- benchmark on DBSP and other systems. The ` run-nexmark.sh ` script in
5- this directory supports running the
6- [ Nexmark ] ( https://datalab.cs.pdx.edu/niagara/NEXMark/ ) benchmarks in
7- comparable ways across a few different systems, currently:
3+ It's useful to be able to run the same benchmark on Feldera and other
4+ systems. The ` run-nexmark.sh ` script in this directory supports
5+ running the [ Nexmark ] ( https://datalab.cs.pdx.edu/niagara/NEXMark/ )
6+ benchmarks in comparable ways across a few different systems,
7+ currently:
88
9- * DBSP .
9+ * Feldera .
1010
1111 * Flink.
1212
@@ -20,7 +20,7 @@ options are:
2020
2121 * The underlying system to use, with ` --runner ` :
2222
23- - ` --runner=dbsp ` for DBSP .
23+ - ` --runner=feldera ` for Feldera .
2424
2525 - `--runner=flink` for standalone Flink.
2626
@@ -51,7 +51,7 @@ options are:
5151 formulated that way.
5252
5353 * Set the number of cores to use with ` --cores ` . The default is
54- however many cores your system has, but no more than 16. DBSP
54+ however many cores your system has, but no more than 16. Feldera
5555 uses the exact number of cores specified; some of the other
5656 runners only approximate the number of cores.
5757
@@ -69,9 +69,19 @@ options, or you can use `suite.mk`, which is a wrapper around
6969
7070# Setting up the runners
7171
72- ## DBSP setup
72+ ## Feldera setup
7373
74- ` run-nexmark.sh ` supports DBSP without special setup.
74+ ` run-nexmark.sh ` supports Feldera without special setup.
75+
76+ Feldera uses temporary files for storage, by default in ` /tmp ` . If
77+ ` /tmp ` is ` tmpfs ` , as is the default on Fedora and some other
78+ distributions, then these files will really be written into memory.
79+ In that case, consider setting ` TMPDIR ` in the environment to a
80+ directory on a real filesystem, e.g.:
81+
82+ ```
83+ TMPDIR=/var/run ./run-nexmark.sh
84+ ```
7585
7686## Flink setup
7787
@@ -88,7 +98,7 @@ To use `run-nexmark.sh` with Beam, first follow the instructions for
8898building Nexmark in ` beam/README.md ` . This can be as simple as:
8999
90100```
91- (cd flink && ./setup.sh)
101+ (cd beam && ./setup.sh)
92102```
93103
94104### Google Cloud Dataflow on Beam
@@ -180,50 +190,3 @@ To make sure that you don't get billed further, you can delete the
180190project that you created for benchmarking. The ongoing cost of the
181191project is minimal (perhaps $1 per month or less) as long as no jobs
182192run, so there is not much reason to delete it.
183-
184- # Sample results
185-
186- The following table, produced using ` suite.mk ` and ` analysis.sps ` ,
187- shows results obtained on one particular system:
188-
189- ```
190- 16-core Nexmark Streaming Performance
191- ╭────────┬───────────────────────────────────────────────────────────────────────────╮
192- │ │ runner │
193- │ ├─────────┬─────────┬──────────────────────────┬────────────────────────────┤
194- │ │ DBSP │ Flink │ Flink on Beam │ Dataflow on Beam │
195- │ ├─────────┼─────────┼──────────────────────────┼────────────────────────────┤
196- │ │ language│ language│ language │ language │
197- │ ├─────────┼─────────┼────────┬────────┬────────┼─────────┬─────────┬────────┤
198- │ │ default │ default │ default│ SQL │ ZetaSQL│ default │ SQL │ ZetaSQL│
199- │ ├─────────┼─────────┼────────┼────────┼────────┼─────────┼─────────┼────────┤
200- │ │ events/s│ events/s│events/s│events/s│events/s│ events/s│ events/s│events/s│
201- │ ├─────────┼─────────┼────────┼────────┼────────┼─────────┼─────────┼────────┤
202- │ │ Mean │ Mean │ Mean │ Mean │ Mean │ Mean │ Mean │ Mean │
203- ├────────┼─────────┼─────────┼────────┼────────┼────────┼─────────┼─────────┼────────┤
204- │query 0 │9,926,544│1,889,538│ 283,366│ 225,276│ 208,986│ 697,837│ 679,810│ 197,746│
205- │ 1 │9,942,334│ 516,358│ 316,056│ 305,904│ │1,023,541│ 819,001│ │
206- │ 2 │9,927,529│1,834,189│ 517,331│ 500,250│ 417,014│1,824,818│1,773,050│ 329,598│
207- │ 3 │9,936,407│ 617,623│ 555,247│ 415,455│ 402,414│ 793,651│ 694,444│ 413,394│
208- │ 4 │9,768,487│ 423,881│ 93,712│ │ │ 63,068│ │ │
209- │ 5 │9,906,875│ 362,190│ 251,699│ │ │ 114,758│ │ │
210- │ 6 │9,829,942│ │ 88,488│ │ │ 63,577│ │ │
211- │ 7 │7,380,618│ 208,461│ 194,970│ 68,069│ │ 102,491│ 5,518│ │
212- │ 8 │9,380,863│ 532,430│ 396,511│ │ │ 418,760│ │ │
213- │ 9 │2,107,437│ 205,650│ 88,715│ │ │ 69,701│ │ │
214- │ 10│ │ │ 199,681│ │ │ 106,758│ │ │
215- │ 11│ │ 509,767│ 194,326│ │ │ 83,731│ │ │
216- │ 12│9,134,088│ 753,699│ 365,631│ │ │ 176,149│ │ │
217- │ 13│5,778,009│ 584,037│ 225,734│ 141,844│ 134,445│1,002,004│ 564,016│ 110,681│
218- │ 14│9,928,515│ 539,046│ 200,803│ │ │ 108,319│ │ │
219- │ 15│8,911,862│ 431,345│ │ │ │ │ │ │
220- │ 16│3,094,251│ 236,567│ 339,443│ │ │ 208,030│ │ │
221- │ 17│7,127,076│1,382,246│ │ │ │ │ │ │
222- │ 18│3,377,351│1,079,844│ │ │ │ │ │ │
223- │ 19│2,732,390│ 556,923│ │ │ │ │ │ │
224- │ 20│3,444,356│ 367,674│ │ │ │ │ │ │
225- │ 21│9,760,859│ 780,567│ │ │ │ │ │ │
226- │ 22│9,935,420│ 433,862│ │ │ │ │ │ │
227- ╰────────┴─────────┴─────────┴────────┴────────┴────────┴─────────┴─────────┴────────╯
228- Beam Spark performance omitted because Nexmark hangs in streaming mode.
229- ```
0 commit comments