Mett-Eagle is a Serverless platform to execute functions on top of the Fiasco.OC microkernel using the L4Re Framework.
The project should be cloned into the l4 package directory <l4>/pkg/<faas>
.
It can then be build using the default make
command inside the <l4-build>
directory.
To execute the Mett-Eagle server together with the benchmark client invoke:
CLIENT_ARGS='--threads=<client_num> --iterations=<iter>' \
QEMU_OPTIONS='-smp <client_num>' \
make qemu \
MODULE_SEARCH_PATH="<fiasco-build>:<l4>/pkg/<faas>" \
MODULES_LIST="<l4>/pkg/<faas>/modules.list" \
E=mett-eagle
Using this command <client_num>
specifies the number of threads that will be spawned by the client. These threads will concurrently send invocation requests to the server. Since the server will assign each client a dedicated core qemu needs at least the same number of cores (-smp) as clients will be started. Each thread will make <iter>
invocations.
For more information about how the server and client can be used individually, have a look at the ned config of this benchmark example (mett-eagle.cfg).
This repository contains a small collection of l4 packages necessary for the Mett-Eagle serverless platform. These components make use of the L4Re build system for a modular design. Thus most of the components can also be used on their own.
Package | Content |
---|---|
The server implementation of the platform. This also includes the client-server interface as well as the server-worker interface specification. Note: It also provides some wrappers for more convenient client implementation. |
|
This package produces multiple binaries for serverless function development. It provides a library |
|
This packages contains the client implementation that was used to measure the performance of the Mett-Eagle platform. It can be used as a reference for writing custom clients. |
|
A logging library for L4Re that provides more useful information. This library can log the source location of invocations as well the system time, thread id and severity of the message. It is used inside the Mett-Eagle framework. Note: This library is currently a header-only library and does not need to be linked against. |
|
An L4Re port of the |
|
liballoc |
A library containing a thread safe capability allocator. However, Since a lot of usages of |
Refer to the documentation of the Mett-Eagle server for more information about the platform architecture.