flock-lab / flock

Flock: A Low-Cost Streaming Query Engine on FaaS Platforms
https://flock-lab.github.io/flock/
GNU Affero General Public License v3.0
294 stars 39 forks source link

feat: add nexmark bench in flock-cli #399

Closed gangliao closed 2 years ago

gangliao commented 2 years ago

Which issue does this PR close?

Closes #.

Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

By submitting this pull request

gangliao commented 2 years ago
~/f/flock-cli (code)> flock-cli nexmark run --help
flock-cli-nexmark-run 0.2.0
Runs the NEXMark Benchmark

USAGE:
    flock-cli nexmark run [FLAGS] [OPTIONS]

FLAGS:
    -a, --async-type    Runs the NEXMark benchmark with async function invocations
    -d, --debug         Runs the NEXMark benchmark in debug mode
    -h, --help          Prints help information
        --silent        Suppress all output
        --trace         Log ultra-verbose (trace level) information
    -V, --version       Prints version information

OPTIONS:
    -g, --generators <data generators>
            Runs the NEXMark benchmark with a number of data generators [default: 1]

    -t, --data-sink-type <data sink type>
            Runs the NEXMark benchmark with a data sink type [default: blackhole]  [possible values: sqs, s3, dynamodb,
            efs, blackhole]
    -s, --seconds <duration>                       Runs the NEXMark benchmark for a number of seconds [default: 20]
    -e, --events-per-second <events per second>
            Runs the NEXMark benchmark with a number of events per second [default: 1000]

        --log-level <log-level>
            Log level [default: info] [possible values: error, warn, info, debug, trace, off]

    -m, --memory-size <memory size>                Sets the memory size (MB) for the worker function [default: 128]
    -q, --query <query number>                     Sets the NEXMark benchmark query number [0-12] [default: 3]
gangliao commented 2 years ago
 ~/f/flock-cli (code)> flock-cli nexmark run -q 5 -s 12 -e 1000 -d
 /`
/:y/` `
`shdhso.
 -yhddh+.
  .yhhhy+-
   .syyhs+/.
    `+shhs++:.
     `:syyyo++/.
       .+ssys+++/-`          `.----.`
        ./oyyyo+++/:.`     `-/+++/-..`
          -/osyso++++/:.` -/++/-`
           .-/osssoo++++/:++++`
           `.-/++osooo++++++++-
              `-:/+oooo++++++o/
                `-:/+o++++++oo-                                `````             `
                 `.-//++++++o/   `:++:::://   .:++:`        .:///////.       .://///+-   ./++:` .++/.
                 ``..:+++++o+`     os`   -+     ss        `/+-`//. `-+/`   `+s:`   `o:    `so  `:+-
                     :+++++/`      os`  --      ss        /o`  `+o`  `++   +s:      ``    `so .+:`
                   `:+++++:        os:::o/      ss        o/   /+++`  :s   ss.            `ss/so`
                 .:++++:.`         os`  --      ss     `  /o``+/``o/:`++   +s:      `     `so .oo.
             `.:/++++/.            os`          ss    :+   /+:-`  .-:+/`   `+s:`    o/    `so  `+s:
          .-----:/++-            `:++:-       .:++::::+/    .:++//++:.       ./++///+-   .:o+:`  :o/:
          `.-:::-/:`                                            ``
        `--.``-/:`
            .:-`

Flock: A Practical Serverless Streaming SQL Query Engine (https://github.com/flock-lab/flock)

Copyright (c) 2020-present, UMD Data System Group.

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

This program is free software: you can use, redistribute, and/or modify it under the terms of the GNU Affero
General Public License, version 3 or later ("AGPL"), as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see
<http://www.gnu.org/licenses/>.

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

NexmarkBenchmarkOpt { query_number: 5, debug: true, generators: 1, seconds: 12, events_per_second: 1000, data_sink_type: "blackhole", async_type: false, memory_size: 128 }
[info] Running the NEXMark benchmark with the following options:
NexmarkBenchmarkOpt {
    query_number: 5,
    debug: true,
    generators: 1,
    seconds: 12,
    events_per_second: 1000,
    data_sink_type: "blackhole",
    async_type: false,
    memory_size: 128,
}
[info] Creating lambda function: flock_datasource
[info] Creating lambda function group: Group(("q5-00", 32))
[info] Creating function member: q5-00-0
[info] Creating function member: q5-00-1
[info] Creating function member: q5-00-2
[info] Creating function member: q5-00-3
[info] Creating function member: q5-00-4
[info] Creating function member: q5-00-5
[info] Creating function member: q5-00-6
[info] Creating function member: q5-00-7
[info] Creating function member: q5-00-8
[info] Creating function member: q5-00-9
[info] Creating function member: q5-00-11
[info] Creating function member: q5-00-10
[info] Creating function member: q5-00-12
[info] Creating function member: q5-00-13
[info] Creating function member: q5-00-14
[info] Creating function member: q5-00-15
[info] Creating function member: q5-00-16
[info] Creating function member: q5-00-17
[info] Creating function member: q5-00-18
[info] Creating function member: q5-00-19
[info] Creating function member: q5-00-20
[info] Creating function member: q5-00-21
[info] Creating function member: q5-00-22
[info] Creating function member: q5-00-23
[info] Creating function member: q5-00-24
[info] Creating function member: q5-00-25
[info] Creating function member: q5-00-26
[info] Creating function member: q5-00-27
[info] Creating function member: q5-00-28
[info] Creating function member: q5-00-29
[info] Creating function member: q5-00-30
[info] Creating function member: q5-00-31
[info] [OK] Invoking NEXMark source function: flock_datasource by generator 0
[info] Waiting for the current invocations to be logged.
[info] Sending log request FilterLogEventsRequest { end_time: None, filter_pattern: None, limit: Some(100), log_group_name: "/aws/lambda/flock_datasource", log_stream_name_prefix: None, log_stream_names: None, next_token: None, start_time: Some(1640984442794) }
[info] [OK] Got response from AWS CloudWatch Logs.
2021-12-31 21:00:53 START RequestId: 1fae5f37-cfbd-4d81-91a5-8270560ff05d Version: $LATEST
2021-12-31 21:00:54 END RequestId: 1fae5f37-cfbd-4d81-91a5-8270560ff05d
2021-12-31 21:00:54 REPORT RequestId: 1fae5f37-cfbd-4d81-91a5-8270560ff05d      Duration: 1578.95 ms    Billed Duration: 1579 ms        Memory Size: 2048 MB    Max Memory Used: 26 MB
2021-12-31 21:01:39 START RequestId: f9ed8470-8243-4b4a-bc07-531372ee1688 Version: $LATEST
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Generating events for 12s over 1 partitions.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::nexmark::source] Nexmark Benchmark: Query 5
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::nexmark::source] NEXMarkSource { config: Config { args: {"threads": "1", "seconds": "12", "events-per-second": "1000"} }, window: HoppingWindow((10, 5)) }
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::nexmark::source] [OK] Generate nexmark events.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 0: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 1: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 2: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 3: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 4: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 5: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 6: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 7: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 8: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::datasource::nexmark::nexmark] Selecting events for epoch 9: 20 persons, 60 auctions, 920 bids.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::window] [OK] Send 10 events from a window (epoch: 0-10) to function: q5-00-25.
2021-12-31 21:01:39 [2021-12-31T21:01:39Z INFO  flock::window] [OK] Event 0 - function payload bytes: 21189
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 1 - function payload bytes: 22387
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 2 - function payload bytes: 21696
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 3 - function payload bytes: 21976
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 4 - function payload bytes: 22434
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 5 - function payload bytes: 22275
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 6 - function payload bytes: 21838
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 7 - function payload bytes: 21437
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 8 - function payload bytes: 21719
2021-12-31 21:01:40 [2021-12-31T21:01:40Z INFO  flock::window] [OK] Event 9 - function payload bytes: 21910
2021-12-31 21:01:40 END RequestId: f9ed8470-8243-4b4a-bc07-531372ee1688
2021-12-31 21:01:40 REPORT RequestId: f9ed8470-8243-4b4a-bc07-531372ee1688      Duration: 1768.38 ms    Billed Duration: 1780 ms        Memory Size: 2048 MB    Max Memory Used: 24 MB  Init Duration: 11.31 ms