Making k8s-cluster-simulator event-driven #208
Labels
api
Area: API for users
breaking change
Importance: Design and implementations that break existing user programs
enhancement
Category: Enhancement on existing features
implementation
Area: Internal implementation of the simulator
needs decision
Importance: in need of decision
performance
Category: Problems and improvement on simulator performance
Currently, the k8s-cluster-simulator is designed as a time-driven simulator (using a variable, tick, as a time). The simplicity of the design is nice :-) This design, however, might cause some difficulties when simulating:
To address the difficulties, this issue proposes to make the simulator event-driven instead of time-driven one. The event-driven simulator can skip useless ticks since it only handles events (an element to change state) instead of handling periodic ticks. Events include a scheduler’s scheduling , node addition/deletion, submitter’s job submission/cancellation, and so on. One deficit of the proposal I recognize is complexity - I don’t know whether it fits in the current simulator’s design. So, do you have any comments about the point?
For the purpose of reference, I implemented a basic data structure, evseq, for an event-driven simulator. I hope that this sample pseudo main loop helps our discussion.
The text was updated successfully, but these errors were encountered: