{"id":13587128,"url":"https://github.com/flock-lab/flock","last_synced_at":"2025-04-07T19:30:55.328Z","repository":{"id":37211669,"uuid":"295168255","full_name":"flock-lab/flock","owner":"flock-lab","description":"Flock: A Low-Cost Streaming Query Engine on FaaS Platforms","archived":false,"fork":false,"pushed_at":"2023-12-29T05:31:56.000Z","size":4283,"stargazers_count":288,"open_issues_count":17,"forks_count":39,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-30T22:03:01.378Z","etag":null,"topics":["continuous-queries","etl","lambda-functions","olap","serverless","streaming"],"latest_commit_sha":null,"homepage":"https://flock-lab.github.io/flock/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flock-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-09-13T14:27:10.000Z","updated_at":"2024-10-28T19:32:45.000Z","dependencies_parsed_at":"2023-12-29T06:29:50.567Z","dependency_job_id":"72a0788f-cc8f-4a3a-abef-d3f4d9b09e24","html_url":"https://github.com/flock-lab/flock","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flock-lab%2Fflock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flock-lab%2Fflock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flock-lab%2Fflock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flock-lab%2Fflock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flock-lab","download_url":"https://codeload.github.com/flock-lab/flock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223290386,"owners_count":17120906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous-queries","etl","lambda-functions","olap","serverless","streaming"],"created_at":"2024-08-01T15:06:02.264Z","updated_at":"2024-11-06T05:31:14.453Z","avatar_url":"https://github.com/flock-lab.png","language":"Rust","readme":"## Flock: A Low-Cost Streaming Query Engine on FaaS Platforms\n\n[![CI](https://github.com/flock-lab/flock/workflows/CI/badge.svg?branch=code\u0026event=pull_request)](https://github.com/flock-lab/flock/actions)\n[![codecov](https://codecov.io/gh/flock-lab/flock/branch/master/graph/badge.svg?token=1FOM4DJUZJ)](https://codecov.io/gh/flock-lab/flock)\n\u003ca href=\"https://cla-assistant.io/flock-lab/flock\"\u003e\u003cimg src=\"https://cla-assistant.io/readme/badge/flock-lab/flock\" alt=\"CLA assistant\" /\u003e\u003c/a\u003e\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)\n\nFlock is a cloud-native streaming query engine that leverages the on-demand elasticity of Function-as-a-Service (FaaS) platforms to perform real-time data analytics. Traditional server-centric deployments often suffer from resource under- or over-provisioning, leading to resource wastage or performance degradation. Flock addresses these issues by providing more fine-grained elasticity that can dynamically match the per-query basis with continuous scaling, and its billing methods are more fine-grained with millisecond granularity, making it a low-cost solution for stream processing. Our approach, payload invocation, eliminates the need for external storage services and eliminates the requirement for a query coordinator in the data architecture. Our evaluation shows that Flock significantly outperforms state-of-the-art systems in terms of cost, especially on ARM processors, making it a promising solution for real-time data analytics on FaaS platforms.\n\n\n\nThe generic lambda function code is built in advance and uploaded to AWS S3.\n\n| FaaS Service | AWS Lambda | GCP Functions | Azure Functions | Architectures | SIMD | [YSB](https://github.com/yahoo/streaming-benchmarks) | [NEXMark](https://beam.apache.org/documentation/sdks/java/testing/nexmark/) |\n| :----------: | :--------: | :-----------: | :-------------: | :-----------: | :--: | :--------------------------------------------------: | :-------------------------------------------------------------------------: |\n|  **Flock**   |  🏅🏅🏅🏅  |    👉 TBD     |     👉 TBD      | **Arm**, x86  |  ✅  |                          ✅                          |                                     ✅                                      |\n\n## [Arxiv Paper](https://arxiv.org/abs/2312.16735)\n\n```\n@misc{gang2023flock,\n      title={Flock: A Low-Cost Streaming Query Engine on FaaS Platforms}, \n      author={Gang Liao and Amol Deshpande and Daniel J. Abadi},\n      year={2023},\n      eprint={2312.16735},\n      archivePrefix={arXiv},\n      primaryClass={cs.DB}\n}\n```\n\n## Build From Source Code\n\nYou can enable the features `simd` (to use SIMD instructions) and/or `mimalloc` or `snmalloc` (to use either the mimalloc or snmalloc allocator) as features by passing them in as --features:\n\nTo build and deploy Flock to AWS Lambda in one step, you can use the following command:\n\n```ignore\n$ ./configure -c -a x86_64\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cstrong\u003eOutput\u003c/strong\u003e\n\u003c/summary\u003e\n\n```ignore\n============================================================\n Compiling and Deploying Benchmarks\n============================================================\n\nBuilding x86_64-unknown-linux-gnu\n\n[1/3] Compiling Flock Lambda Function...\n[2/3] Compiling Flock CLI...\n[3/3] Deploying Flock Lambda Function...\n\n============================================================\n                Upload function code to S3\n============================================================\n\nPackaging code and uploading to S3...\n[OK] Upload Succeed.\n\n============================================================\n```\n\n\u003c/details\u003e\n\u003c/br\u003e\n\nIf you prefer to use the `cargo` command to build and deploy Flock, you can use the following commands:\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cstrong\u003eCommands\u003c/strong\u003e\n\u003c/summary\u003e\n\n1.  Build Flock for x86_64\n\n    ```ignore\n    $ cargo +nightly build --target x86_64-unknown-linux-gnu --release --features \"simd mimalloc\"\n    ```\n\n2.  Deploy Flock binary to AWS S3\n\n    ```ignore\n    $ cd ./target/x86_64-unknown-linux-gnu/release\n    $ ./flock-cli s3 put --path ./flock --key flock_x86_64\n    ```\n\n    \u003c/details\u003e\n    \u003c/br\u003e\n\n## Nexmark Benchmark\n\n### Schemas\n\nThese are multiple queries over a three entities model representing on online auction system:\n\n- **Person** represents a person submitting an item for auction and/or making a bid on an auction.\n- **Auction** represents an item under auction.\n- **Bid** represents a bid for an item under auction.\n\n### Queries\n\n| Query                                                                                              | Name                            | Summary                                                                                                             | Flock |\n| -------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ----- |\n| [q0](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q0.sql)   | Pass Through                    | Measures the monitoring overhead including the source generator.                                                    | ✅    |\n| [q1](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q1.sql)   | Currency Conversion             | Convert each bid value from dollars to euros.                                                                       | ✅    |\n| [q2](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q2.sql)   | Selection                       | Find bids with specific auction ids and show their bid price.                                                       | ✅    |\n| [q3](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q3.sql)   | Local Item Suggestion           | Who is selling in OR, ID or CA in category 10, and for what auction ids?                                            | ✅    |\n| [q4](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q4.sql)   | Average Price for a Category    | Select the average of the wining bid prices for all auctions in each category.                                      | ✅    |\n| [q5](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q5.sql)   | Hot Items                       | Which auctions have seen the most bids in the last period?                                                          | ✅    |\n| [q6](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q6.sql)   | Average Selling Price by Seller | What is the average selling price per seller for their last 10 closed auctions.                                     | ✅    |\n| [q7](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q7.sql)   | Highest Bid                     | Select the bids with the highest bid price in the last period.                                                      | ✅    |\n| [q8](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q8.sql)   | Monitor New Users               | Select people who have entered the system and created auctions in the last period.                                  | ✅    |\n| [q9](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q9.sql)   | Winning Bids                    | Find the winning bid for each auction.                                                                              | ✅    |\n| [q10](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q10.sql) | Log to File System              | Log all events to AWS S3, SQS, and DynamoDB. Illustrates windows streaming data into partitioned file system.       | ✅    |\n| [q11](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q11.sql) | User Sessions                   | How many bids did a user make in each session they were active? Illustrates session windows.                        | ✅    |\n| [q12](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q12.sql) | Processing Time Windows         | How many bids does a user make within a fixed processing time limit? Illustrates working in processing time window. | ✅    |\n| [q13](https://github.com/flock-lab/flock/blob/master/flock/src/datasource/nexmark/queries/q13.sql) | Bounded Side Input Join         | Joins a stream to a bounded side input, modeling basic stream enrichment.                                           | ✅    |\n\n\u003e Note: q1 ~ q8 are from original NEXMark queries, q0 and q9 ~ q13 are from Apache Beam.\n\n### Run the benchmark\n\n`flock-cli` is a command line interface to Flock. It can be used to run queries or benchmarks against Flock. For example, to run the query 5 on x86_64 for 10 seconds with 1,000 events per second, and 1 generator, you can run:\n\n```ignore\n$ ./flock-cli nexmark run -q 5 -s 10 -e 1000 -g 1 --arch x86_64\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cstrong\u003eClient Output\u003c/strong\u003e\n\u003c/summary\u003e\n\n``````bash\n /`\n/:y/` `\n`shdhso.\n -yhddh+.\n  .yhhhy+-\n   .syyhs+/.\n    `+shhs++:.\n     `:syyyo++/.\n       .+ssys+++/-`          `.----.`\n        ./oyyyo+++/:.`     `-/+++/-..`\n          -/osyso++++/:.` -/++/-`\n           .-/osssoo++++/:++++`\n           `.-/++osooo++++++++-\n              `-:/+oooo++++++o/\n                `-:/+o++++++oo-                                `````             `\n                 `.-//++++++o/   `:++:::://   .:++:`        .:///////.       .://///+-   ./++:` .++/.\n                 ``..:+++++o+`     os`   -+     ss        `/+-`//. `-+/`   `+s:`   `o:    `so  `:+-\n                     :+++++/`      os`  --      ss        /o`  `+o`  `++   +s:      ``    `so .+:`\n                   `:+++++:        os:::o/      ss        o/   /+++`  :s   ss.            `ss/so`\n                 .:++++:.`         os`  --      ss     `  /o``+/``o/:`++   +s:      `     `so .oo.\n             `.:/++++/.            os`          ss    :+   /+:-`  .-:+/`   `+s:`    o/    `so  `+s:\n          .-----:/++-            `:++:-       .:++::::+/    .:++//++:.       ./++///+-   .:o+:`  :o/:\n          `.-:::-/:`                                            ``\n        `--.``-/:`\n            .:-`\n\n\nFlock: A Practical Serverless Streaming SQL Query Engine (https://github.com/flock-lab/flock)\n\nCopyright (c) 2020-present, UMD Data System Group.\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n\nThis program is free software: you can use, redistribute, and/or modify it under the terms of the GNU Affero\nGeneral Public License, version 3 or later (\"AGPL\"), as published by the Free Software Foundation.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the\nimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\nYou should have received a copy of the GNU Affero General Public License along with this program. If not, see\n\u003chttp://www.gnu.org/licenses/\u003e.\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\n\n================================================================\n                    Running the benchmark\n================================================================\n[info] Running the NEXMark benchmark with the following options:\n\nNexmarkBenchmarkOpt {\n    query_number: 5,\n    generators: 1,\n    seconds: 10,\n    events_per_second: 1000,\n    data_sink_type: \"blackhole\",\n    async_type: false,\n    memory_size: 128,\n    architecture: \"x86_64\",\n}\n\n[info] Creating lambda function: flock_datasource\n[info] Creating lambda function group: Group((\"q5-00\", 8))\n[info] Creating function member: q5-00-00\n[info] Creating function member: q5-00-01\n[info] Creating function member: q5-00-02\n[info] Creating function member: q5-00-03\n[info] Creating function member: q5-00-04\n[info] Creating function member: q5-00-05\n[info] Creating function member: q5-00-06\n[info] Creating function member: q5-00-07\n[info] [OK] Invoking NEXMark source function: flock_datasource by generator 0\n[info] [OK] Received status from function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n[info] Waiting for the current invocations to be logged.\n[2021-12-16T19:09:35Z INFO  driver::logwatch::tail] 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(1639681715344) }\n[2021-12-16T19:09:38Z INFO  driver::logwatch::tail] [OK] Got response from AWS CloudWatch Logs.\n2021-12-16 14:09:18 START RequestId: fd8ae2ad-b64a-4e02-88c8-c43f00974022 Version: $LATEST\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Generating events for 10s over 1 partitions.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  flock::nexmark::source] Nexmark Benchmark: Query 5\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  flock::nexmark::source] NEXMarkSource { config: Config { args: {\"threads\": \"1\", \"events-per-second\": \"1000\", \"seconds\": \"10\"} }, window: Hopping((10, 5)) }\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  flock::nexmark::source] [OK] Generate nexmark events.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 0: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 1: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 2: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 3: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 4: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:18 [2021-12-16T19:09:18Z INFO  runtime::datasource::nexmark::nexmark] Epoch 5: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  runtime::datasource::nexmark::nexmark] Epoch 6: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  runtime::datasource::nexmark::nexmark] Epoch 7: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  runtime::datasource::nexmark::nexmark] Epoch 8: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  runtime::datasource::nexmark::nexmark] Epoch 9: 20 persons, 60 auctions, 920 bids.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Send 10 NexMark events from a window (epoch: 0-10) to function: q5-00-04.\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 0 - function payload bytes: 21078\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 1 - function payload bytes: 22419\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 2 - function payload bytes: 21598\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 3 - function payload bytes: 21997\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 4 - function payload bytes: 22364\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 5 - function payload bytes: 22185\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 6 - function payload bytes: 21767\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 7 - function payload bytes: 21436\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 8 - function payload bytes: 21806\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Event 9 - function payload bytes: 21829\n2021-12-16 14:09:19 [2021-12-16T19:09:19Z INFO  flock::window] [OK] Received status from async lambda function. InvocationResponse { executed_version: None, function_error: None, log_result: None, payload: Some(b\"\"), status_code: Some(202) }\n2021-12-16 14:09:19 END RequestId: fd8ae2ad-b64a-4e02-88c8-c43f00974022\n2021-12-16 14:09:19 REPORT RequestId: fd8ae2ad-b64a-4e02-88c8-c43f00974022      Duration: 1177.85 ms    Billed Duration: 1189 ms        Memory Size: 128 MB     Max Memory Used: 22 MB  Init Duration: 10.88 ms\n[2021-12-16T19:09:38Z INFO  driver::deploy::common] Got a Token response\n-------------------------------------------------------------\n\n[OK] Nexmark Benchmark Complete\n``````\n\n\u003c/details\u003e\n\u003c/br\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cstrong\u003eFunction Output\u003c/strong\u003e\n\u003c/summary\u003e\n\n```bash\nTART RequestId: 78a68707-3f3d-4244-a51a-584f9432709d Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 0, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: 78a68707-3f3d-4244-a51a-584f9432709d\nREPORT RequestId: 78a68707-3f3d-4244-a51a-584f9432709d\tDuration: 38.83 ms\tBilled Duration: 66 ms\tMemory Size: 128 MB\tMax Memory Used: 17 MB\tInit Duration: 26.32 ms\nSTART RequestId: 23dae113-ccf3-449f-944f-116bb925daaf Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 5, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: 23dae113-ccf3-449f-944f-116bb925daaf\nREPORT RequestId: 23dae113-ccf3-449f-944f-116bb925daaf\tDuration: 1.71 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 17 MB\nSTART RequestId: e5e51594-5819-494c-a6d3-c9c9ed9ab865 Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 6, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: e5e51594-5819-494c-a6d3-c9c9ed9ab865\nREPORT RequestId: e5e51594-5819-494c-a6d3-c9c9ed9ab865\tDuration: 1.30 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: def2fc0b-61da-49f8-80b4-9e49f5f4a091 Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 7, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: def2fc0b-61da-49f8-80b4-9e49f5f4a091\nREPORT RequestId: def2fc0b-61da-49f8-80b4-9e49f5f4a091\tDuration: 6.89 ms\tBilled Duration: 7 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: a18c2e75-d1a4-4595-aa84-4cde90eecad4 Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 8, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: a18c2e75-d1a4-4595-aa84-4cde90eecad4\nREPORT RequestId: a18c2e75-d1a4-4595-aa84-4cde90eecad4\tDuration: 1.16 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: 01168950-7558-4af6-9e8c-8f71c4542149 Version: $LATEST\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 9, seq_len: 10 }\n[2021-12-15T15:20:56Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: 01168950-7558-4af6-9e8c-8f71c4542149\nREPORT RequestId: 01168950-7558-4af6-9e8c-8f71c4542149\tDuration: 8.22 ms\tBilled Duration: 9 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: c28193bb-b818-4cf4-863c-2e9d34dd2398 Version: $LATEST\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 1, seq_len: 10 }\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: c28193bb-b818-4cf4-863c-2e9d34dd2398\nREPORT RequestId: c28193bb-b818-4cf4-863c-2e9d34dd2398\tDuration: 1.18 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: 46e54b2e-91da-4609-9f54-f152d38681c7 Version: $LATEST\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 2, seq_len: 10 }\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: 46e54b2e-91da-4609-9f54-f152d38681c7\nREPORT RequestId: 46e54b2e-91da-4609-9f54-f152d38681c7\tDuration: 1.15 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: 2b1c1fe0-9556-4849-8251-39ede796f0f0 Version: $LATEST\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 3, seq_len: 10 }\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Window data collection has not been completed.\nEND RequestId: 2b1c1fe0-9556-4849-8251-39ede796f0f0\nREPORT RequestId: 2b1c1fe0-9556-4849-8251-39ede796f0f0\tDuration: 1.08 ms\tBilled Duration: 2 ms\tMemory Size: 128 MB\tMax Memory Used: 18 MB\nSTART RequestId: 78c64a1a-b312-4099-b596-541c078b04b7 Version: $LATEST\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Receiving a data packet: Uuid { tid: \"q5-1639581654\", seq_num: 4, seq_len: 10 }\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor] Received all data packets for the window: \"q5-1639581654\"\n[2021-12-15T15:20:58Z INFO  nexmark_lambda::actor]\n+---------+-----+\n| auction | num |\n+---------+-----+\n| 1500    | 841 |\n+---------+-----+\n```\n\n\u003c/details\u003e\n\u003c/br\u003e\n\n## Advanced Usage\n\n`flock-cli` has a number of advanced features that can be used to control and customize the behavior of Flock.\n\nFor example, to delete all functions, you can use the `flock-cli lambda -D` command. Or use the `flock-cli lambda -d \u003cfunction pattern\u003e` command to delete specific functions. To list all functions, use the `flock-cli lambda -L` command.\n\nTo see the help for the `nexmark run` command, issue the command: `flock-cli nexmark run -h`\n\n```ignore\nRuns the NEXMark Benchmark\n\nUSAGE:\n    flock-cli nexmark run [OPTIONS]\n\nOPTIONS:\n    -a, --async-type\n            Runs the NEXMark benchmark with async function invocations\n\n    -e, --events-per-second \u003cevents per second\u003e\n            Runs the NEXMark benchmark with a number of events per second [default: 1000]\n\n    -g, --generators \u003cdata generators\u003e\n            Runs the NEXMark benchmark with a number of data generators [default: 1]\n\n    -h, --help\n            Print help information\n\n        --log-level \u003clog-level\u003e\n            Log level [default: info] [possible values: error, warn, info, debug, trace, off]\n\n    -m, --memory-size \u003cmemory size\u003e\n            Sets the memory size (MB) for the worker function [default: 128]\n\n    -q, --query \u003cquery number\u003e\n            Sets the NEXMark benchmark query number [default: 3] [possible values: 0, 1, 2, 3, 4, 5,\n            6, 7, 8, 9, 10, 11, 12, 13]\n\n    -r, --arch \u003carchitecture\u003e\n            Sets the architecture for the worker function [default: x86_64] [possible values:\n            x86_64, arm64]\n\n    -s, --seconds \u003cduration\u003e\n            Runs the NEXMark benchmark for a number of seconds [default: 20]\n\n        --silent\n            Suppress all output\n\n    -t, --data-sink-type \u003cdata sink type\u003e\n            Runs the NEXMark benchmark with a data sink type [default: blackhole] [possible values:\n            sqs, s3, dynamodb, efs, blackhole]\n\n        --trace\n            Log ultra-verbose (trace level) information\n```\n\n## License\n\nCopyright (c) 2020-present UMD Database Group.\nThe library, examples, and all source code are released under [AGPL-3.0 License](LICENSE).\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflock-lab%2Fflock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflock-lab%2Fflock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflock-lab%2Fflock/lists"}