Skip to content

Prev/HotFunctions

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
March 6, 2020 15:51
January 31, 2021 20:14
January 31, 2021 20:21

HotFunctions Build Status GitHub license

A micro FaaS framework and tools to test performance of load balancing algorithms. Consists of 5 parts like described in below:

  • Worker front: Codes for the worker node to run the user functions in the Docker container.
  • Load balancer: Codes for distributing requests to multiple worker nodes
  • Simulator: Codes to run a simulation with load balancer
  • Sample functions: Pre-defined user functions to run a simulation
  • Utils: Utilities like generating simulation scenario or analyzing the result.

Getting Started

Prerequisites

  • Golang >= 1.13 (Since we use gomod for dependency control, at least 1.11 is required)
  • Docker (Functions are running in the Docker container)

Step1: Configure a worker node (or worker nodes)

$ cd worker_front
$ go run *.go start

You can see the details in worker front page.
After configuration, visit http://localhost:8222/execute?name=W1 to test worker node.

Our framework supports 30 different functions. You can see the detail of the supporting sample functions in sample functions page.

Step2: Configure a load balancer

$ cd load_balancer
$ go run *.go rr|ll|ch|pasch|ours

You can also see the details on load balancer page.
After configuration, visit http://localhost:8111/execute?name=W1 to test load balancer. Note that you should not close the worker node while running the load balancer.

Step3: Run simulator and analyze result with utils

Follow the "How to run" section on simulator page. After the simulation is finished, utils for analyzing the logs are prepared on utils.