REX: A Development Platform and Online Learning Approach for Runtime Emergent Software Systems
Introduction:
The idea in this paper is
similar to a paper[Auto DBMS Tuning...]
we have discussed on class before. In the paper[Auto DBMS Tuning...], the author use ML model to automatically tune
database knobs, while in this paper the author use ML model to optimize the
combination of components in a complex software system to achieve better
performance.
The whole framework could
be divided into 3 parts:
1. Dane: A light weight programming language for
implementing small components. These components could be assembled together to
build a large scale software system. Some of these components may have the same
function but do jobs in different ways. The main contribution of Dane is that
it is fast so that different component could be dynamically rewired with very
low cost.
2. A perception, assembly and learning framework (PAL):
It contains 2 modules: 1). Assembly Module. It could assemble different components
to implement a feature. 2). Perception Module. It could monitor the performance
of the software system, as well as the runtime environment.
3. The online learning part. It uses reinforcement
learning model “multi-armed bandit” to optimize the selection of components. Also,
like the [Auto DBMS Tuning...] paper,
some selection of components are related so they could share information. Thus,
the author uses regression model to reduce the search space.
Application of ML method:
Positive Points:
1. The idea is interesting. It used an automatic ML
model to replace manually written rules in previous work. This idea could also apply
to other computer system problems where configurations and performance are linked.
2. The usage of regression factor model reduces the
search space, which achieved balancing exploration and exploitation.
2. Compared to [Auto
DBMS Tuning...] paper, this paper considered how to adapt to the changes in
deployment environment.
Negative Points:
1. The performance of the model deeply relies on the components
implemented by Dane. Firstly, it means that this model could not be applied to
present software systems that are written in more common languages, like C++
and java. Secondly, this requires that the whole software could be disassembled
into multiple irrelevant, small, dynamic components. In some situations it may not
be guaranteed.
2. For a specific tasks(like web server), the author
could have built a configuration dataset, so when first running the model, the
application could be have a less optimal, but not bad combination of
components. This could be better than choosing randomly at first.
Yuanli Wang
You are correct that the paper is limited to decomposable applications that fit this particular structure. It is certainly interesting. However, the emergent learning didn't discover anything surprising or hard for a human to have encoded using simple if-then clauses within the code.
ReplyDelete