Ask HN: People who work on V8, how hard would it be to adapt V8 to do this?

A JIT compiler that can work across multiple machine, true Scaling.

I think we have microservices backwards. What we are doing should be the job of a program. It should be possible for a JIT compiler to automatically find code that is a bottleneck and spawn it on another server + provide remote connection to heap/stack for spawned code. In fact, have shared VRAM where all shared heap/stacks can live.

- It'd simplify debugging

- you'd get by with just monoliths

- lot less need to monitor

- no need for gRPCs, etc.

- highly simplified programs

If V8 could provide nodejs with this it'd be a game changer. A JIT compiler that can scale automatically. I believe, and I've no experience in compilers, the hardest part would be sharing stack/heap between code in efficient manner. But program should do the math and figure out if performance gained by 'outsourcing' execution is more than latency and extra processing introduced.

  • First off, distributed memory has been tried (e.g. in https://en.wikipedia.org/wiki/Amoeba_(operating_system) which is famous for its relationship with Python). It’s extremely hard to do in a performant and coherent way. It basically didn’t work.

    Second off, automatically distributing computations implies automatically adding the necessary synchronization. That’s super hard/maybe impossible in general.

    Third, IMO there’s value in human readable APIs for services. I think it makes systems easier to debug since you have clear boundaries and (should) have simple constraints for each service.

  • I think, excluding the JIT and optimization, you just described worker nodes and worker pools [0] (?).

    Another frame, can be, openfass serverless for certains part of code.

    2cents, will keep the JIT for someone else, interesting topic

    [0] https://medium.com/coinmonks/visually-understanding-worker-p...