apache / openwhisk

Apache OpenWhisk is an open source serverless cloud platform
https://openwhisk.apache.org/
Apache License 2.0
6.55k stars 1.17k forks source link

Enable the scheduler by default #5463

Closed style95 closed 8 months ago

style95 commented 9 months ago

Description

This is to enable the scheduler by default. It is necessary to release the next version of OpenWhisk Core.

Related issue and scope

My changes affect the following components

Types of changes

Checklist:

codecov-commenter commented 9 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 77.75%. Comparing base (5529cc4) to head (e257423).

:exclamation: Current head e257423 differs from pull request most recent head bcf8d2f. Consider uploading reports for the commit bcf8d2f to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #5463 +/- ## ========================================== + Coverage 76.26% 77.75% +1.48% ========================================== Files 234 241 +7 Lines 14386 14650 +264 Branches 640 644 +4 ========================================== + Hits 10972 11391 +419 + Misses 3414 3259 -155 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

style95 commented 9 months ago

I realized that it is necessary to split scheduler tests into unit tests and system tests to run successfully. Some tests in the scheduler tests workflow manipulate ETCD data and it interferes other tests.

style95 commented 9 months ago

Strangely, unit tests only failed int the github action runner.

style95 commented 9 months ago

Now only two workflows are remaining..

bdoyle0182 commented 9 months ago

LGTM. I think if we're going to continue working on this scheduler, the next major needed architectural improvement is to distribute function traffic across schedulers. As it is right now since a queue to handle activations for a specific action is assigned to a single scheduler, the max throughput of an action is limited to the max cpu / network throughput / kafka consumer reads of that scheduler node.

style95 commented 9 months ago

are there docs explaining how the scheduler works?

@dubee You can refer to this document: https://cwiki.apache.org/confluence/display/OPENWHISK/New+architecture+proposal It might be slightly outdated, but it explains most of the major things.

style95 commented 9 months ago

LGTM. I think if we're going to continue working on this scheduler, the next major needed architectural improvement is to distribute function traffic across schedulers. As it is right now since a queue to handle activations for a specific action is assigned to a single scheduler, the max throughput of an action is limited to the max cpu / network throughput / kafka consumer reads of that scheduler node.

Exactly, merging this PR should be a starting point. I think there is still room for improvement in many directions.

style95 commented 9 months ago

Thank you all for the reviews. I will merge this at the end of this week. Please share any concerns, or comments at any time. After merging this, I will look into the openwhisk-deploy-kube repo part.