Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a discrete event simulator #90

Open
teymour-aldridge opened this issue Jan 22, 2022 · 2 comments
Open

Implement a discrete event simulator #90

teymour-aldridge opened this issue Jan 22, 2022 · 2 comments

Comments

@teymour-aldridge
Copy link
Contributor

As described in https://sled.rs/simulation.html.

@teymour-aldridge
Copy link
Contributor Author

I'm currently experimenting with this.

@bkolobara
Copy link
Contributor

I have been looking into this since I started working on distributed lunatic. My conclusion is that this would only be feasible if we shipped our own wasm execution engine (currently we use Wasmtime). We lose a lot of information when Wasmtime jit compiles the wasm code to machine code. I believe that we require a bit more granularity and control around the suspension points to make a truly deterministic test environment. Especially around sensitive edge cases, like what happens if a process links to another, but the other one doesn't get scheduled until the first one has already trapped and didn't finish establishing the link. This are some scenarios were we could tremendously benefit from a discrete event simulator.

Replacing Wasmtime with our own engine would have other benefits too and allow us to build something tailored around lunatic's use cases. It's also something I would be really excited to work on. The only downside is that it would be a huge undertaking and take us months/years to get to a usable state :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants